guodong 3 vuotta sitten
vanhempi
commit
6a8822abd6

+ 29 - 9
GameClient/Assets/Editor/Excel/CodeBuilder.cs

@@ -81,8 +81,8 @@ namespace GFGEditor
             SQLiteHelper.Instance.CreateTable(configArrayName, _names.ToArray(), _types.ToArray());
             AddDataToSql(rowCollection, configName, configArrayName);
 
-            string template = CodeTemplateFactory.ConfigArrayTemplate;
-            string configArrayStr = template;
+            //生成管理类代码
+            string configArrayStr = CodeTemplateFactory.ConfigArrayTemplate;
             string paramsStr;
             string colNames;
             string colValues;
@@ -113,7 +113,7 @@ namespace GFGEditor
             //处理查询多条数据函数
             if (groupNames.Count > 0)
             {
-                string FunctionGroupStr = groupOnly ? CodeTemplateFactory.FunctionGroupOnlyTemplate : CodeTemplateFactory.FunctionGroupTemplate;
+                string FunctionGroupStr = CodeTemplateFactory.FunctionGroupTemplate;
                 CreateParamsString(groupNames, groupTypes, out paramsStr, out colNames, out colValues);
                 FunctionGroupStr = FunctionGroupStr.Replace("{params}", paramsStr);
                 FunctionGroupStr = FunctionGroupStr.Replace("{colNames}", colNames);
@@ -126,29 +126,49 @@ namespace GFGEditor
                 configArrayStr = configArrayStr.Replace("{groupFunction}", "");
             }
             //处理全部数据函数
-            if (needAll)
-            {
+            string FunctionAllStr = CodeTemplateFactory.FunctionAllTemplate;
+            configArrayStr = configArrayStr.Replace("{allFunction}", FunctionAllStr);
+            //if (needAll)
+            //{
                 configArrayStr = configArrayStr.Replace("{editorConditionStart}", "");
                 configArrayStr = configArrayStr.Replace("{editorConditionEnd}", "");
+            //}
+            //else
+            //{
+            //    configArrayStr = configArrayStr.Replace("{editorConditionStart}", "#if UNITY_EDITOR");
+            //    configArrayStr = configArrayStr.Replace("{editorConditionEnd}", "#endif");
+            //}
+            //处理回调函数内语句块
+            if (groupOnly)
+            {
+                configArrayStr = configArrayStr.Replace("{FunctionAllSingleBlock}", "");
             }
             else
             {
-                configArrayStr = configArrayStr.Replace("{editorConditionStart}", "#if UNITY_EDITOR");
-                configArrayStr = configArrayStr.Replace("{editorConditionEnd}", "#endif");
+                configArrayStr = configArrayStr.Replace("{FunctionAllSingleBlock}", CodeTemplateFactory.FunctionAllSingleBlockTemplate);
+            }
+            if (groupNames.Count > 0)
+            {
+                configArrayStr = configArrayStr.Replace("{FunctionAllGroupBlock}", CodeTemplateFactory.FunctionAllGroupBlockTemplate);
+            }
+            else
+            {
+                configArrayStr = configArrayStr.Replace("{FunctionAllGroupBlock}", "");
             }
             //名称处理
             configArrayStr = configArrayStr.Replace("{CfgName}", configName);
             configArrayStr = configArrayStr.Replace("{CfgArrayName}", configArrayName);
-            //生成游戏反序列化代码
+            //生成反序列化代码
             string configStr = CodeTemplateFactory.ConfigTemplate.Replace("{CfgName}", configName);
             configStr = configStr.Replace("{variable declaration}", _declarationBuilder.ToString());
             configStr = configStr.Replace("{variable assignment}", _assignmentBuilder.ToString());
             configStr = configStr.Replace("{variable parse}", _parseBuilder.ToString());
+            //创建配置项类代码
             using (StreamWriter sw = new StreamWriter(ExcelConfig.configCodePath + configName + ".cs"))
             {
                 sw.Write(configStr);
             }
-            //生成管理类代码
+            //创建管理类代码
             using (StreamWriter sw = new StreamWriter(ExcelConfig.configArrayCodePath + configArrayName + ".cs"))
             {
                 sw.Write(configArrayStr);

+ 16 - 6
GameClient/Assets/Editor/Excel/CodeTemplateFactory.cs

@@ -9,9 +9,11 @@ namespace GFGEditor
 
         public static string ConfigTemplate { get; private set; }
         public static string ConfigArrayTemplate { get; private set; }
-        public static string FunctionGroupTemplate { get; private set; }
-        public static string FunctionGroupOnlyTemplate { get; private set; }
         public static string FunctionSingleTemplate { get; private set; }
+        public static string FunctionGroupTemplate { get; private set; }
+        public static string FunctionAllTemplate { get; private set; }
+        public static string FunctionAllSingleBlockTemplate { get; private set; }
+        public static string FunctionAllGroupBlockTemplate { get; private set; }
         //public static string ConfigTemplateEditor { get => _configTemplateEditor; }
         //public static string ConfigArrayTemplateEditor { get => _configArrayTemplateEditor; }
 
@@ -26,18 +28,26 @@ namespace GFGEditor
             {
                 ConfigArrayTemplate = sr.ReadToEnd();
             }
+            using (StreamReader sr = new StreamReader(ExcelConfig.templatePath + "FunctionSingle.txt"))
+            {
+                FunctionSingleTemplate = sr.ReadToEnd();
+            }
             using (StreamReader sr = new StreamReader(ExcelConfig.templatePath + "FunctionGroup.txt"))
             {
                 FunctionGroupTemplate = sr.ReadToEnd();
             }
+            using (StreamReader sr = new StreamReader(ExcelConfig.templatePath + "FunctionAll.txt"))
+            {
+                FunctionAllTemplate = sr.ReadToEnd();
+            }
 
-            using (StreamReader sr = new StreamReader(ExcelConfig.templatePath + "FunctionGroupOnly.txt"))
+            using (StreamReader sr = new StreamReader(ExcelConfig.templatePath + "FunctionAllSingleBlock.txt"))
             {
-                FunctionGroupOnlyTemplate = sr.ReadToEnd();
+                FunctionAllSingleBlockTemplate = sr.ReadToEnd();
             }
-            using (StreamReader sr = new StreamReader(ExcelConfig.templatePath + "FunctionSingle.txt"))
+            using (StreamReader sr = new StreamReader(ExcelConfig.templatePath + "FunctionAllGroupBlock.txt"))
             {
-                FunctionSingleTemplate = sr.ReadToEnd();
+                FunctionAllGroupBlockTemplate = sr.ReadToEnd();
             }
         }
 

+ 1 - 14
GameClient/Assets/Editor/Excel/Template/ConfigArray.txt

@@ -9,19 +9,6 @@ namespace GFGGame
 
 {groupFunction}
 
-{editorConditionStart}
-        private {CfgName}[] _allDatas;
-        public {CfgName}[] dataArray
-        {
-            get
-            {
-                if(_allDatas == null)
-                {
-                    _allDatas = ConfigUtil.GetAllCfgs<{CfgName}>("{CfgArrayName}");
-                }
-                return _allDatas;
-            }
-        }
-{editorConditionEnd}
+{allFunction}
     }
 }

+ 21 - 0
GameClient/Assets/Editor/Excel/Template/FunctionAll.txt

@@ -0,0 +1,21 @@
+
+        private void HandleCfgInAll({CfgName} cfg)
+        {
+{FunctionAllSingleBlock}
+{FunctionAllGroupBlock}
+        }
+
+{editorConditionStart}
+        private {CfgName}[] _allDatas;
+        public {CfgName}[] dataArray
+        {
+            get
+            {
+                if(_allDatas == null)
+                {
+                    _allDatas = ConfigUtil.GetAllCfgs<{CfgName}>("{CfgArrayName}", HandleCfgInAll);
+                }
+                return _allDatas;
+            }
+        }
+{editorConditionEnd}

+ 1 - 1
GameClient/Assets/Editor/Excel/Template/FunctionGroupOnly.txt.meta → GameClient/Assets/Editor/Excel/Template/FunctionAll.txt.meta

@@ -1,5 +1,5 @@
 fileFormatVersion: 2
-guid: 4c3ea99d214881749b0e84755d4fb3a6
+guid: c4f9c947e7718d24a9cfef47bd8f2f7c
 TextScriptImporter:
   externalObjects: {}
   userData: 

+ 11 - 0
GameClient/Assets/Editor/Excel/Template/FunctionAllGroupBlock.txt

@@ -0,0 +1,11 @@
+            _cfgsGroupDic.TryGetValue(cfg.combinedKey, out var list);
+            if(list != null)
+            {
+                list.Clear();
+            }
+            else
+            {
+                list = new List<{CfgName}>();
+                _cfgsGroupDic.Add(cfg.combinedKey, list);
+            }
+            list.Add(cfg);

+ 7 - 0
GameClient/Assets/Editor/Excel/Template/FunctionAllGroupBlock.txt.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 87478a61dade0694cb90eddf97cf1dfb
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1 - 0
GameClient/Assets/Editor/Excel/Template/FunctionAllSingleBlock.txt

@@ -0,0 +1 @@
+            _cfgsDic[cfg.combinedKey] = cfg;

+ 7 - 0
GameClient/Assets/Editor/Excel/Template/FunctionAllSingleBlock.txt.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: bae242068f7c8aa4c959e3f400b0c851
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 6 - 1
GameClient/Assets/Editor/Excel/Template/FunctionGroup.txt

@@ -1,8 +1,13 @@
+        private void HandleCfgInGroup({CfgName} cfg)
+        {
+{FunctionAllSingleBlock}
+        }
+
         private Dictionary<string, List<{CfgName}>> _cfgsGroupDic = new Dictionary<string, List<{CfgName}>>();
         public List<{CfgName}> GetCfgs({params})
         {
             var colNames = new string[] { {colNames}};
             var colValues = new string[] { {colValues} };
-            return ConfigUtil.GetCfgs<{CfgName}>("{CfgArrayName}", colNames, colValues, _cfgsGroupDic, HandleCfgInSingleDic);
+            return ConfigUtil.GetCfgs<{CfgName}>("{CfgArrayName}", colNames, colValues, _cfgsGroupDic, HandleCfgInGroup);
         }
         

+ 0 - 7
GameClient/Assets/Editor/Excel/Template/FunctionGroupOnly.txt

@@ -1,7 +0,0 @@
-        private Dictionary<string, List<{CfgName}>> _cfgsGroupDic = new Dictionary<string, List<{CfgName}>>();
-        public List<{CfgName}> GetCfgs({params})
-        {
-            var colNames = new string[] { {colNames}};
-            var colValues = new string[] { {colValues} };
-            return ConfigUtil.GetCfgs<{CfgName}>("{CfgArrayName}", colNames, colValues, _cfgsGroupDic);
-        }

+ 0 - 5
GameClient/Assets/Editor/Excel/Template/FunctionSingle.txt

@@ -4,9 +4,4 @@
             var colNames = new string[] { {colNames}};
             var colValues = new string[] { {colValues} };
             return ConfigUtil.GetCfg<{CfgName}>("{CfgArrayName}", colNames, colValues, _cfgsDic);
-        }
-
-        private void HandleCfgInSingleDic({CfgName} cfg)
-        {
-            _cfgsDic[cfg.combinedKey] = cfg;
         }

BIN
GameClient/Assets/ResIn/Config/excelConfig.sqlite.bytes