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;"
         }
     });
 }
Example #3
0
        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);",
                }
            });
        }
Example #4
0
        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);"
                }
            });
        }
Example #6
0
 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;"
         }
     });
 }