From 786be46e6e29230779b556dca206f9d3599309ea Mon Sep 17 00:00:00 2001
From: client_Wu Xijin <364452445@qq.com>
Date: 星期三, 13 二月 2019 17:49:02 +0800
Subject: [PATCH] 3335 配置表读取重构。

---
 Assets/Scripts                                        |    2 
 Assets/Editor/ScriptTemplate/ConfigDataTemplate.txt   |   37 ++++++++++++++++--
 Assets/Editor/Tool/SpriteManageTool.cs                |    2 
 Assets/Editor/Actor/NpcResourcesBuilder.cs            |    4 +-
 Assets/Editor/Tool/ExcelParseTool.cs                  |   12 +++---
 Assets/Editor/Actor/ActorEditor.cs                    |   14 +++---
 Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs |    4 +-
 Assets/Editor/Tool/ConfigClassGenerate.cs             |    5 --
 8 files changed, 51 insertions(+), 29 deletions(-)

diff --git a/Assets/Editor/Actor/ActorEditor.cs b/Assets/Editor/Actor/ActorEditor.cs
index 2e22008..79cbf3b 100644
--- a/Assets/Editor/Actor/ActorEditor.cs
+++ b/Assets/Editor/Actor/ActorEditor.cs
@@ -19,7 +19,7 @@
     [MenuItem("绋嬪簭/瑙掕壊鐩稿叧/鍗歌浇NPC鍔ㄧ敾鐘舵�佹満")]
     static void RemoveAnimator()
     {
-        var _dict = Config.Instance.GetAllValues<NPCConfig>();
+        var _dict = NPCConfig.GetValues();
         int i = 0;
         foreach (var _model in _dict)
         {
@@ -135,7 +135,7 @@
         if (GUILayout.Button("鎵�鏈夌繀鑶�", GUILayout.Height(24)))
         {
 
-            var _dict = Config.Instance.GetAllValues<ModelResConfig>();
+            var _dict = ModelResConfig.GetValues();
             foreach (var _item in _dict)
             {
                 if (_item.Type == (int)E_ModelResType.Wing)
@@ -148,7 +148,7 @@
         if (GUILayout.Button("鎵�鏈夋鍣�", GUILayout.Height(24)))
         {
 
-            var _dict = Config.Instance.GetAllValues<ModelResConfig>();
+            var _dict = ModelResConfig.GetValues();
             foreach (var _item in _dict)
             {
                 if (_item.Type == (int)E_ModelResType.Weapon)
@@ -161,7 +161,7 @@
         if (GUILayout.Button("鎵�鏈夊壇鎵�", GUILayout.Height(24)))
         {
 
-            var _dict = Config.Instance.GetAllValues<ModelResConfig>();
+            var _dict = ModelResConfig.GetValues();
             foreach (var _item in _dict)
             {
                 if (_item.Type == (int)E_ModelResType.Secondary)
@@ -174,7 +174,7 @@
         if (GUILayout.Button("鎵�鏈夎。鏈�", GUILayout.Height(24)))
         {
 
-            var _dict = Config.Instance.GetAllValues<ModelResConfig>();
+            var _dict = ModelResConfig.GetValues();
             foreach (var _item in _dict)
             {
                 if (_item.Type == (int)E_ModelResType.Suit)
@@ -187,7 +187,7 @@
         if (GUILayout.Button("鎵�鏈夊潗楠�", GUILayout.Height(24)))
         {
 
-            var _dict = Config.Instance.GetAllValues<ModelResConfig>();
+            var _dict = ModelResConfig.GetValues();
             foreach (var _item in _dict)
             {
                 if (_item.Type == (int)E_ModelResType.Horse)
@@ -202,7 +202,7 @@
             bool _result = EditorUtility.DisplayDialog("娓╅Θ鎻愰啋", "鐢熸垚鎵�鏈夋崲瑁呰祫婧愬皢浼氳�楄垂姣旇緝闀跨殑鏃堕棿, 璇疯寰楀嚑鐐�, 鏄惁鏄渶瑕佺敓鎴愭墍鏈夌殑璧勬簮, 濡傛灉涓嶆槸, 璁板緱鍙互鍘绘帀涓嶇敓鎴愮殑璧勬簮,鏄笉鏄笉闇�瑕佺敓鎴愬凡缁忓瓨鍦ㄧ殑璧勬簮, 濡傛灉涓嶉渶瑕�, 璁板緱鍕鹃�塠鍙敓鎴愪笉瀛樺湪鐨刔", "纭鐢熸垚", "鎴戞寜閿欎簡");
             if (_result)
             {
-                var _dict = Config.Instance.GetAllValues<ModelResConfig>();
+                var _dict = ModelResConfig.GetValues();
                 foreach (var _item in _dict)
                 {
                     m_ModelResBuilder.BuildModelRes(_item.ID, m_HighMesh);
diff --git a/Assets/Editor/Actor/NpcResourcesBuilder.cs b/Assets/Editor/Actor/NpcResourcesBuilder.cs
index 9d776f9..ec03769 100644
--- a/Assets/Editor/Actor/NpcResourcesBuilder.cs
+++ b/Assets/Editor/Actor/NpcResourcesBuilder.cs
@@ -15,7 +15,7 @@
         BuildAnimationClip1(modelName);
         BuildAnimatorController(modelName, outName, type);
 
-        var showConfigs = Config.Instance.GetAllValues<ActorShowConfig>();
+        var showConfigs = ActorShowConfig.GetValues();
         NPCConfig _npcModel = null;
         foreach (var _item in showConfigs)
         {
@@ -39,7 +39,7 @@
             }
         }
 
-        var realmConfigs = Config.Instance.GetAllValues<RealmConfig>();
+        var realmConfigs = RealmConfig.GetValues();
         foreach (var _realmConfig in realmConfigs)
         {
             _npcModel = NPCConfig.Get(_realmConfig.BossID);
diff --git a/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs b/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs
index 6b03857..e0d2cc9 100644
--- a/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs
+++ b/Assets/Editor/ScriptEditor/NewBieGuideEditorWindow.cs
@@ -454,7 +454,7 @@
         if (Config.Instance.inited && newbieGuides == null)
         {
             newbieGuides = new List<NewBieGuide>();
-            var guides = Config.Instance.GetAllValues<GuideConfig>();
+            var guides = GuideConfig.GetValues();
             foreach (var config in guides)
             {
                 if (config.Type == 1)
@@ -510,7 +510,7 @@
         if (Config.Instance.inited && functionalGuides == null)
         {
             functionalGuides = new List<FunctionalGuide>();
-            var guides = Config.Instance.GetAllValues<GuideConfig>();
+            var guides = GuideConfig.GetValues();
             foreach (var config in guides)
             {
                 if (config.Type == 2)
diff --git a/Assets/Editor/ScriptTemplate/ConfigDataTemplate.txt b/Assets/Editor/ScriptTemplate/ConfigDataTemplate.txt
index 7c2ba16..6bec637 100644
--- a/Assets/Editor/ScriptTemplate/ConfigDataTemplate.txt
+++ b/Assets/Editor/ScriptTemplate/ConfigDataTemplate.txt
@@ -14,6 +14,10 @@
 
     #Field#
 
+	public #ClassName#()
+    {
+    }
+
     public #ClassName#(string input)
     {
         try
@@ -90,7 +94,7 @@
     }
 
 	public static bool inited { get; private set; }
-    protected static Dictionary<string, string> rawDatas = null;
+    protected static Dictionary<string, string> rawDatas = new Dictionary<string, string>();
     public static void Init(bool sync=false)
     {
 	    inited = false;
@@ -104,17 +108,30 @@
             path = AssetVersionUtility.GetAssetFilePath("config/#FileName#.txt");
         }
 
+		var tempConfig = new #ClassName#();
+        var preParse = tempConfig is IConfigPostProcess;
+
         if (sync)
         {
             var lines = File.ReadAllLines(path);
-            rawDatas = new Dictionary<string, string>(lines.Length - 3);
+            if (!preParse)
+            {
+                rawDatas = new Dictionary<string, string>(lines.Length - 3);
+            }
             for (int i = 3; i < lines.Length; i++)
             {
                 var line = lines[i];
                 var index = line.IndexOf("\t");
                 var id = line.Substring(0, index);
 
-                rawDatas[id] = line;
+                if (preParse)
+                {
+                    configs[id] = new #ClassName#(line);
+                }
+                else
+                {
+                    rawDatas[id] = line;
+                }
             }
 			inited = true;
         }
@@ -123,14 +140,24 @@
             ThreadPool.QueueUserWorkItem((object _object) =>
             {
                 var lines = File.ReadAllLines(path);
-                rawDatas = new Dictionary<string, string>(lines.Length - 3);
+				if (!preParse)
+				{
+					rawDatas = new Dictionary<string, string>(lines.Length - 3);
+				}
                 for (int i = 3; i < lines.Length; i++)
                 {
                     var line = lines[i];
                     var index = line.IndexOf("\t");
                     var id = line.Substring(0, index);
 
-                    rawDatas[id] = line;
+					if (preParse)
+					{
+						configs[id] = new #ClassName#(line);
+					}
+					else
+					{
+						rawDatas[id] = line;
+					}
                 }
 
                 inited = true;
diff --git a/Assets/Editor/Tool/ConfigClassGenerate.cs b/Assets/Editor/Tool/ConfigClassGenerate.cs
index 82242e0..73e6ecd 100644
--- a/Assets/Editor/Tool/ConfigClassGenerate.cs
+++ b/Assets/Editor/Tool/ConfigClassGenerate.cs
@@ -257,11 +257,6 @@
         UnityEngine.Object o = CreateScriptAssetFromTemplate(newConfigPath, templatePath);
         AddConfigInit(newConfigPath);
         ProjectWindowUtil.ShowCreatedAsset(o);
-
-        if (FileCreateEvent != null)
-        {
-            FileCreateEvent();
-        }
     }
 
     internal static UnityEngine.Object CreateScriptAssetFromTemplate(string pathName, string resourceFile)
diff --git a/Assets/Editor/Tool/ExcelParseTool.cs b/Assets/Editor/Tool/ExcelParseTool.cs
index 649bc02..1981fc0 100644
--- a/Assets/Editor/Tool/ExcelParseTool.cs
+++ b/Assets/Editor/Tool/ExcelParseTool.cs
@@ -53,9 +53,9 @@
             m_Englishs.Clear();
             Config.Instance.SyncLoadConfigs();
             m_FitterKeys.Clear();
-            m_FitterKeys.AddRange(Config.Instance.GetAllKeys<LanguageConfig>());
-            m_FitterKeys.AddRange(Config.Instance.GetAllKeys<SysInfoConfig>());
-            m_FitterKeys.AddRange(Config.Instance.GetAllKeys<IconConfig>());
+            m_FitterKeys.AddRange(LanguageConfig.GetKeys());
+            m_FitterKeys.AddRange(SysInfoConfig.GetKeys());
+            m_FitterKeys.AddRange(IconConfig.GetKeys());
             FindEnglishLabel();
         }
 
@@ -86,9 +86,9 @@
             }
             Config.Instance.SyncLoadConfigs();
             m_FitterKeys.Clear();
-            m_FitterKeys.AddRange(Config.Instance.GetAllKeys<LanguageConfig>());
-            m_FitterKeys.AddRange(Config.Instance.GetAllKeys<SysInfoConfig>());
-            m_FitterKeys.AddRange(Config.Instance.GetAllKeys<IconConfig>());
+            m_FitterKeys.AddRange(LanguageConfig.GetKeys());
+            m_FitterKeys.AddRange(SysInfoConfig.GetKeys());
+            m_FitterKeys.AddRange(IconConfig.GetKeys());
             FindEnglishLabel(true);
         }
     }
diff --git a/Assets/Editor/Tool/SpriteManageTool.cs b/Assets/Editor/Tool/SpriteManageTool.cs
index b80fb4b..972c9f9 100644
--- a/Assets/Editor/Tool/SpriteManageTool.cs
+++ b/Assets/Editor/Tool/SpriteManageTool.cs
@@ -126,7 +126,7 @@
     private void OnEnable()
     {
         Config.Instance.SyncLoadConfigs();
-        m_IconCfgs = Config.Instance.GetAllValues<IconConfig>();
+        m_IconCfgs = IconConfig.GetValues();
         m_DeleteTexture = EditorGUIUtility.FindTexture("TreeEditor.Trash");
         InitStyle();
 
diff --git a/Assets/Scripts b/Assets/Scripts
index c7f64d9..6165d89 160000
--- a/Assets/Scripts
+++ b/Assets/Scripts
@@ -1 +1 @@
-Subproject commit c7f64d977c4e2884d5411a5a2d0f37b6afa52963
+Subproject commit 6165d890f1d21e566161cb184b609e19f2662833

--
Gitblit v1.8.0