diff --git a/ExcelExport/ExportTemplate_Main.txt b/ExcelExport/ExportTemplate_Main.txt index b508b3765..c210e8b01 100644 --- a/ExcelExport/ExportTemplate_Main.txt +++ b/ExcelExport/ExportTemplate_Main.txt @@ -14,7 +14,7 @@ namespace ExcelConfig public override void Init(byte[] data) { - Dict = MemoryPackSerializer.Deserialize>(data); + Dict = (Dictionary)MemoryPackSerializer.Deserialize(typeof(Dictionary), data)!; } } diff --git a/ExcelExport/ExportTemplate_Partial.txt b/ExcelExport/ExportTemplate_Partial.txt index 72bb33e41..f0d730b6a 100644 --- a/ExcelExport/ExportTemplate_Partial.txt +++ b/ExcelExport/ExportTemplate_Partial.txt @@ -23,7 +23,7 @@ namespace ExcelConfig public override byte[] GetData() { - return MemoryPackSerializer.Serialize(Dict); + return MemoryPackSerializer.Serialize(typeof(Dictionary), Dict); } } diff --git a/ExcelExport/GenerateCS/AIConfig.cs b/ExcelExport/GenerateCS/AIConfig.cs index 8042d8e6a..6239ca057 100644 --- a/ExcelExport/GenerateCS/AIConfig.cs +++ b/ExcelExport/GenerateCS/AIConfig.cs @@ -14,7 +14,7 @@ namespace ExcelConfig public override void Init(byte[] data) { - Dict = MemoryPackSerializer.Deserialize>(data); + Dict = (Dictionary)MemoryPackSerializer.Deserialize(typeof(Dictionary), data)!; } } diff --git a/ExcelExport/GenerateCS/GeoDesc.cs b/ExcelExport/GenerateCS/GeoDesc.cs index 03c7ef340..0f4e78356 100644 --- a/ExcelExport/GenerateCS/GeoDesc.cs +++ b/ExcelExport/GenerateCS/GeoDesc.cs @@ -14,7 +14,7 @@ namespace ExcelConfig public override void Init(byte[] data) { - Dict = MemoryPackSerializer.Deserialize>(data); + Dict = (Dictionary)MemoryPackSerializer.Deserialize(typeof(Dictionary), data)!; } } diff --git a/ExcelExport/GenerateCS/Moment.cs b/ExcelExport/GenerateCS/Moment.cs index 0b3176f96..e40156cb2 100644 --- a/ExcelExport/GenerateCS/Moment.cs +++ b/ExcelExport/GenerateCS/Moment.cs @@ -14,7 +14,7 @@ namespace ExcelConfig public override void Init(byte[] data) { - Dict = MemoryPackSerializer.Deserialize>(data); + Dict = (Dictionary)MemoryPackSerializer.Deserialize(typeof(Dictionary), data)!; } } diff --git a/ExcelExport/GenerateCSPartial/AIConfig.cs b/ExcelExport/GenerateCSPartial/AIConfig.cs index 6c7f82290..ebeb75e78 100644 --- a/ExcelExport/GenerateCSPartial/AIConfig.cs +++ b/ExcelExport/GenerateCSPartial/AIConfig.cs @@ -23,7 +23,7 @@ namespace ExcelConfig public override byte[] GetData() { - return MemoryPackSerializer.Serialize(Dict); + return MemoryPackSerializer.Serialize(typeof(Dictionary), Dict); } } diff --git a/ExcelExport/GenerateCSPartial/GeoDesc.cs b/ExcelExport/GenerateCSPartial/GeoDesc.cs index 90702e07b..70d25935c 100644 --- a/ExcelExport/GenerateCSPartial/GeoDesc.cs +++ b/ExcelExport/GenerateCSPartial/GeoDesc.cs @@ -23,7 +23,7 @@ namespace ExcelConfig public override byte[] GetData() { - return MemoryPackSerializer.Serialize(Dict); + return MemoryPackSerializer.Serialize(typeof(Dictionary), Dict); } } diff --git a/ExcelExport/GenerateCSPartial/Moment.cs b/ExcelExport/GenerateCSPartial/Moment.cs index 054e20be0..c1f8ed036 100644 --- a/ExcelExport/GenerateCSPartial/Moment.cs +++ b/ExcelExport/GenerateCSPartial/Moment.cs @@ -23,7 +23,7 @@ namespace ExcelConfig public override byte[] GetData() { - return MemoryPackSerializer.Serialize(Dict); + return MemoryPackSerializer.Serialize(typeof(Dictionary), Dict); } } diff --git a/Unity/Assets/Scripts/TH1_Config/GenerateCS/AIConfig.cs b/Unity/Assets/Scripts/TH1_Config/GenerateCS/AIConfig.cs index 8042d8e6a..6239ca057 100644 --- a/Unity/Assets/Scripts/TH1_Config/GenerateCS/AIConfig.cs +++ b/Unity/Assets/Scripts/TH1_Config/GenerateCS/AIConfig.cs @@ -14,7 +14,7 @@ namespace ExcelConfig public override void Init(byte[] data) { - Dict = MemoryPackSerializer.Deserialize>(data); + Dict = (Dictionary)MemoryPackSerializer.Deserialize(typeof(Dictionary), data)!; } } diff --git a/Unity/Assets/Scripts/TH1_Config/GenerateCS/GeoDesc.cs b/Unity/Assets/Scripts/TH1_Config/GenerateCS/GeoDesc.cs index 03c7ef340..0f4e78356 100644 --- a/Unity/Assets/Scripts/TH1_Config/GenerateCS/GeoDesc.cs +++ b/Unity/Assets/Scripts/TH1_Config/GenerateCS/GeoDesc.cs @@ -14,7 +14,7 @@ namespace ExcelConfig public override void Init(byte[] data) { - Dict = MemoryPackSerializer.Deserialize>(data); + Dict = (Dictionary)MemoryPackSerializer.Deserialize(typeof(Dictionary), data)!; } } diff --git a/Unity/Assets/Scripts/TH1_Config/GenerateCS/Moment.cs b/Unity/Assets/Scripts/TH1_Config/GenerateCS/Moment.cs index 0b3176f96..e40156cb2 100644 --- a/Unity/Assets/Scripts/TH1_Config/GenerateCS/Moment.cs +++ b/Unity/Assets/Scripts/TH1_Config/GenerateCS/Moment.cs @@ -14,7 +14,7 @@ namespace ExcelConfig public override void Init(byte[] data) { - Dict = MemoryPackSerializer.Deserialize>(data); + Dict = (Dictionary)MemoryPackSerializer.Deserialize(typeof(Dictionary), data)!; } } diff --git a/Unity/Assets/Scripts/TH1_Logic/Multilingual/MultilingualManager.cs b/Unity/Assets/Scripts/TH1_Logic/Multilingual/MultilingualManager.cs index 807e2472a..7607b8604 100644 --- a/Unity/Assets/Scripts/TH1_Logic/Multilingual/MultilingualManager.cs +++ b/Unity/Assets/Scripts/TH1_Logic/Multilingual/MultilingualManager.cs @@ -28,7 +28,7 @@ namespace Logic.Multilingual // 原始翻译快照:仅在游戏启动时拍照一次(apply mod 之前的纯净数据)。 // 之后所有 mod apply / 重 apply 都基于"先 restore 再 apply",避免覆盖叠加。 // key = MultilingualItem.ID, value = 各语种字段的原始值 - private Dictionary _originalSnapshot; + private Dictionary _originalSnapshot; // 跟踪 export 数据是否已经被 mod 改写过:用于在切语言时判断是否需要重新 apply // (理论上只有 SaveAndApplyMods 会改写,所以这个标志只在那里翻转) @@ -114,7 +114,7 @@ namespace Logic.Multilingual _multilingualData.RefreshDict(); if (_multilingualData.ItemDict == null) return; - _originalSnapshot = new Dictionary(_multilingualData.ItemDict.Count); + _originalSnapshot = new Dictionary(_multilingualData.ItemDict.Count); foreach (var kv in _multilingualData.ItemDict) { _originalSnapshot[kv.Key] = OriginalLangFields.From(kv.Value); @@ -131,9 +131,7 @@ namespace Logic.Multilingual foreach (var kv in _originalSnapshot) { if (!_multilingualData.ItemDict.TryGetValue(kv.Key, out var item)) continue; - var fields = kv.Value as OriginalLangFields; - if (fields == null) continue; - fields.RestoreTo(item); + kv.Value.RestoreTo(item); } _modsApplied = false; } @@ -373,7 +371,7 @@ namespace Logic.Multilingual /// /// 原始翻译快照行:仅保存 mod 会覆盖的字段(与 WorkshopModLoader.SetItemStr 列表对齐) /// - internal sealed class OriginalLangFields + internal struct OriginalLangFields { public string ZH; public string TDZH;