public static List <MethodGenerationData> GenerateSaverMethods(List <PlayerDataEditorData> datas, string category) { var methods = new List <MethodGenerationData>(); List <string> bodyStatement = new List <string>(); // Example: _playerDataManager.TrySave<int>(PlayerDataKeys.INT_TEST_INT, _playerData.matchThreeLevel.Value); for (int i = 0, count = datas.Count; i < count; i++) { methods.Add(new MethodGenerationData { m_MethodName = PlayerDataCodeGeneratorConstants.SAVER_METHOD_NAME + datas[i].key.ToCamelCase(true), m_MethodReturnType = "void", m_MethodBodyStatements = new List <string> { string.Format("{0}.TrySave<{1}>({2}.{3}, {4});", PlayerDataCodeGeneratorConstants.PLAYER_DATA_MANAGER_REFERENCE_NAME, PlayerDataCodeGeneratorUtility.CreateValueReturnType(datas[i]), PlayerDataCodeGeneratorConstants.PLAYER_DATA_KEYS_CLASS_NAME, datas[i].key, PlayerDataCodeGeneratorUtility.GetPlayerDataVariableReferenceForSaver(datas[i])) } }); } return(methods); }
public static MethodGenerationData GenerateGetValueMethod(PlayerDataEditorData data) { return(new MethodGenerationData { m_MethodName = PlayerDataCodeGeneratorConstants.GETTER_GET_VALUE_METHOD_NAME + data.key.ToCamelCase(true), m_MethodReturnType = PlayerDataCodeGeneratorUtility.CreateValueReturnType(data), m_MethodBodyStatements = new List <string> { $"return {PlayerDataCodeGeneratorConstants.GETTER_GET_REACTIVE_PROPERTY_METHOD_NAME}{data.key.ToCamelCase(true)}().Value;" } }); }
private static MethodGenerationData GenerateAddRangeToListMethod(PlayerDataEditorData data) { return(new MethodGenerationData { m_MethodName = "AddRange_" + data.key.ToCamelCase(true), m_MethodReturnType = "void", m_MethodParams = new List <MethodParameterData> { new MethodParameterData(PlayerDataCodeGeneratorUtility.CreateValueReturnType(data), "values") }, m_MethodBodyStatements = new List <string> { $"foreach (var value in values)\n\r{PlayerDataCodeGeneratorConstants.MUTATOR_COLLECTION_ADD_TO_LIST_METHOD_NAME}{data.key.ToCamelCase(true)}(value);", } }); }
private static MethodGenerationData GenerateAddRangeToDictionaryMethod(PlayerDataEditorData data) { return(new MethodGenerationData { m_MethodName = "AddRange_" + data.key.ToCamelCase(true), m_MethodReturnType = "void", m_MethodParams = new List <MethodParameterData> { new MethodParameterData(PlayerDataCodeGeneratorUtility.CreateValueReturnType(data), "dictionary") }, m_MethodBodyStatements = new List <string> { "foreach (var kvp in dictionary)", $"\n\r{PlayerDataCodeGeneratorConstants.MUTATOR_DICTIONARY_ADD_KVP_METHOD_NAME + data.key.ToCamelCase(true)}(kvp.Key, kvp.Value);" } }); }
// for lists only private static MethodGenerationData GenerateFindByPredicateMethod(PlayerDataEditorData data) { // List<string> test = new List<string>(); // System.Predicate<string> predicate = x => x.Equals("test"); // test.FindAll(predicate); return(new MethodGenerationData { m_MethodName = PlayerDataCodeGeneratorConstants.GETTER_COLLECTION_GET_VALUES_BY_PREDICATE_METHOD_NAME + data.key.ToCamelCase(true), m_MethodReturnType = PlayerDataCodeGeneratorUtility.CreateValueReturnType(data), m_MethodParams = new List <MethodParameterData> { new MethodParameterData($"Predicate<{data.valueDataType}>", "predicate") }, m_MethodBodyStatements = new List <string> { $"return {PlayerDataCodeGeneratorConstants.GETTER_GET_REACTIVE_PROPERTY_METHOD_NAME}{data.key.ToCamelCase(true)}().FindAll(predicate);" } }); }
public static MethodGenerationData GenerateSetMethod(PlayerDataEditorData data) { return(new MethodGenerationData { m_MethodName = PlayerDataCodeGeneratorConstants.MUTATOR_SET_METHOD_NAME + data.key.ToCamelCase(true), m_MethodReturnType = "void", m_MethodParams = new List <MethodParameterData> { new MethodParameterData(PlayerDataCodeGeneratorUtility.CreateValueReturnType(data), "value") }, m_MethodBodyStatements = new List <string> { VariableTypeCheckerUtility.IsVariableCollection(data.baseDataType) ? $"{PlayerDataCodeGeneratorConstants.PLAYER_DATA_REFERENCE_NAME}.{data.key.ToCamelCase(false)} = value.ToReactiveCollection();" : VariableTypeCheckerUtility.IsVariableDictionary(data.baseDataType) ? $"{PlayerDataCodeGeneratorConstants.PLAYER_DATA_REFERENCE_NAME}.{data.key.ToCamelCase(false)} = value.ToReactiveDictionary();" : $"{PlayerDataCodeGeneratorConstants.PLAYER_DATA_REFERENCE_NAME}.{data.key.ToCamelCase(false)}.Value = value;" } }); }