From 8445b9ee122ed1fbb4ad31f7e9da35406f7dc182 Mon Sep 17 00:00:00 2001
From: lcy <1459594991@qq.com>
Date: 星期五, 21 十一月 2025 17:08:51 +0800
Subject: [PATCH] 262 幻境阁系统-客户端 邮件富文本支持

---
 Main/Config/ConfigBase.cs |   66 ++++++++++++++++++++++-----------
 1 files changed, 44 insertions(+), 22 deletions(-)

diff --git a/Main/Config/ConfigBase.cs b/Main/Config/ConfigBase.cs
index acadfe4..e51fef1 100644
--- a/Main/Config/ConfigBase.cs
+++ b/Main/Config/ConfigBase.cs
@@ -7,49 +7,67 @@
 
 public class ConfigBase<U, T> where T : ConfigBase<U, T>, new()
 {
-    public static Dictionary<U, T> dic = new Dictionary<U, T>();
+    /// <summary>
+    /// 鏄惁璁块棶杩囬潤鎬佹瀯閫犲嚱鏁�
+    /// </summary>
+    public static bool visit = false;
+
+    static ConfigBase()
+    {
+        if (isInit)
+        {
+            return;
+        }
+
+        LazyInit();
+    }
+
+    private static Dictionary<U, T> m_dic = new Dictionary<U, T>();
+
+    public static Dictionary<U, T> dic
+    {
+        get
+        {
+            return m_dic;
+        }
+    }
 
     public static bool isInit = false;
 
     public static T Get(U id)
     {
-        LazyInit();
-
-        if (dic.ContainsKey(id))
+        if (m_dic.ContainsKey(id))
         {
-            return dic[id];
+            return m_dic[id];
         }
 
         return null;
     }
 
-    public static void ForceInit()
-    {
-        ConfigManager.Instance.LoadConfigByType(typeof(T));
-    }
+    // public static void ForceRelease()
+    // {
+    //     m_dic.Clear();
+    //     isInit = false;
+    // }
 
     public static List<U> GetKeys()
     {
-        LazyInit();
         List<U> result = new List<U>();
-        result.AddRange(dic.Keys);
+        result.AddRange(m_dic.Keys);
         return result;
     }
 
 
     public static List<T> GetValues()
     {
-        LazyInit();
         List<T> result = new List<T>();
-        result.AddRange(dic.Values);
+        result.AddRange(m_dic.Values);
         return result;
     }
 
     public static bool HasKey(U key)
     {
-        LazyInit();
-
-        return dic.ContainsKey(key);
+        return m_dic.ContainsKey(key);
     }
 
     public static void LazyInit()
@@ -63,7 +81,10 @@
 
     public static void Init(string[] lines)
     {
-        dic.Clear();
+        if (isInit)
+        {
+            return;
+        }
 
         for (int i = 3; i < lines.Length; i++)
         {
@@ -83,7 +104,7 @@
             try
             {
 #endif
-                dic.Add(key, config);
+                m_dic.Add(key, config);
 #if UNITY_EDITOR
             }
             catch (ArgumentException exception)
@@ -93,10 +114,11 @@
 #endif
         }
 
-        foreach (var cfg in dic.Values)
-        {
-            cfg.AllConfigLoadFinish();
-        }
+        
+        // foreach (var cfg in m_dic.Values)
+        // {
+        //     cfg.AllConfigLoadFinish();
+        // }
 
         isInit = true;
     }

--
Gitblit v1.8.0