From c9c37113d3af7bbd7b69220850fdbd830a2599f7 Mon Sep 17 00:00:00 2001 From: Absolutely disgusting Date: Thu, 23 Oct 2025 19:11:17 +0400 Subject: [PATCH] Starting implement deserialize migration --- 2DGAMELIB/_2DGAMELIB/ObjExtensions.cs | 28 +++++++++++++++++++ 2DGAMELIB/_2DGAMELIB/Oth.cs | 9 +++--- SlaveMatrix/SlaveMatrix.csproj.user | 5 ++++ .../BodyPartClasses/{咳.cs => Cough.cs} | 6 ++-- .../SlaveMatrix/BodyPartClasses/咳D.cs | 2 +- SlaveMatrix/SlaveMatrix/GameClasses/Bod.cs | 4 +-- SlaveMatrix/SlaveMatrix/GameClasses/Sta.cs | 5 +++- 7 files changed, 48 insertions(+), 11 deletions(-) create mode 100644 2DGAMELIB/_2DGAMELIB/ObjExtensions.cs rename SlaveMatrix/SlaveMatrix/BodyPartClasses/{咳.cs => Cough.cs} (98%) diff --git a/2DGAMELIB/_2DGAMELIB/ObjExtensions.cs b/2DGAMELIB/_2DGAMELIB/ObjExtensions.cs new file mode 100644 index 0000000..0b71dc1 --- /dev/null +++ b/2DGAMELIB/_2DGAMELIB/ObjExtensions.cs @@ -0,0 +1,28 @@ +using System; +using System.Collections.Generic; +using System.Text; + +namespace _2DGAMELIB +{ + public static class ObjExtensions + { + static readonly Dictionary KeyMap = new() + { + ["咳"] = "Cough" + }; + + public static void MigrateKeys(this Obj obj) + { + var newDict = new OrderedDictionary(); + + foreach (var key in obj.Keys) + { + var newKey = KeyMap.TryGetValue(key, out var mapped) ? mapped : key; + + newDict.Add(newKey, obj.Difss[key]); + } + + obj.Difss = newDict; + } + } +} diff --git a/2DGAMELIB/_2DGAMELIB/Oth.cs b/2DGAMELIB/_2DGAMELIB/Oth.cs index 8329d38..a49575f 100644 --- a/2DGAMELIB/_2DGAMELIB/Oth.cs +++ b/2DGAMELIB/_2DGAMELIB/Oth.cs @@ -13,7 +13,6 @@ namespace _2DGAMELIB private static double s0; - public static Color Reverse(this Color c) { return Color.FromArgb(c.A, 255 - c.R, 255 - c.G, 255 - c.B); @@ -159,10 +158,12 @@ namespace _2DGAMELIB public static Obj ObjLoad(this byte[] bd) { - return bd.Load().ToDeserialObject().SetDefaultR(); - } + Obj obj = bd.Load().ToDeserialObject().SetDefaultR(); + return obj; + } - public static bool Lot(this double p) + + public static bool Lot(this double p) { return RNG.XS.NextDouble() < p; } diff --git a/SlaveMatrix/SlaveMatrix.csproj.user b/SlaveMatrix/SlaveMatrix.csproj.user index f259d38..3323947 100644 --- a/SlaveMatrix/SlaveMatrix.csproj.user +++ b/SlaveMatrix/SlaveMatrix.csproj.user @@ -6,4 +6,9 @@ SlaveMatrix + + + Designer + + \ No newline at end of file diff --git a/SlaveMatrix/SlaveMatrix/BodyPartClasses/咳.cs b/SlaveMatrix/SlaveMatrix/BodyPartClasses/Cough.cs similarity index 98% rename from SlaveMatrix/SlaveMatrix/BodyPartClasses/咳.cs rename to SlaveMatrix/SlaveMatrix/BodyPartClasses/Cough.cs index e909b53..3ac1bd4 100644 --- a/SlaveMatrix/SlaveMatrix/BodyPartClasses/咳.cs +++ b/SlaveMatrix/SlaveMatrix/BodyPartClasses/Cough.cs @@ -2,7 +2,7 @@ using _2DGAMELIB; namespace SlaveMatrix { - public class 咳 : Ele + public class Cough : Ele { public Par X0Y0_咳基; @@ -346,10 +346,10 @@ namespace SlaveMatrix } } - public 咳(double DisUnit, 配色指定 配色指定, 体配色 体配色, Med Med, 咳D e) + public Cough(double DisUnit, 配色指定 配色指定, 体配色 体配色, Med Med, 咳D e) { ThisType = GetType(); - 本体 = new Difs(Sta.胴体["咳"]); + 本体 = new Difs(Sta.胴体["Cough"]); Pars pars = 本体[0][0]; X0Y0_咳基 = pars["咳基"].ToPar(); X0Y0_雫1 = pars["雫1"].ToPar(); diff --git a/SlaveMatrix/SlaveMatrix/BodyPartClasses/咳D.cs b/SlaveMatrix/SlaveMatrix/BodyPartClasses/咳D.cs index 5697132..2bf782f 100644 --- a/SlaveMatrix/SlaveMatrix/BodyPartClasses/咳D.cs +++ b/SlaveMatrix/SlaveMatrix/BodyPartClasses/咳D.cs @@ -25,7 +25,7 @@ namespace SlaveMatrix public override Ele GetEle(double DisUnit, Med Med, 体配色 体配色) { - return new 咳(DisUnit, 配色指定, 体配色, Med, this); + return new Cough(DisUnit, 配色指定, 体配色, Med, this); } } } diff --git a/SlaveMatrix/SlaveMatrix/GameClasses/Bod.cs b/SlaveMatrix/SlaveMatrix/GameClasses/Bod.cs index 99e2232..ed617d9 100644 --- a/SlaveMatrix/SlaveMatrix/GameClasses/Bod.cs +++ b/SlaveMatrix/SlaveMatrix/GameClasses/Bod.cs @@ -120,7 +120,7 @@ namespace SlaveMatrix public 性器精液_人 口精液; - public 咳 咳; + public Cough 咳; public 呼気 呼気; @@ -4009,7 +4009,7 @@ namespace SlaveMatrix 涎右.SetHitFalse(); 口精液 = 頭.口_接続.GetEle<性器精液_人>(); 口精液.SetHitFalse(); - 咳 = 頭.口_接続.GetEle<咳>(); + 咳 = 頭.口_接続.GetEle(); 咳.SetHitFalse(); 呼気 = 頭.口_接続.GetEle<呼気>(); 呼気.SetHitFalse(); diff --git a/SlaveMatrix/SlaveMatrix/GameClasses/Sta.cs b/SlaveMatrix/SlaveMatrix/GameClasses/Sta.cs index 6f5b9cb..83034d6 100644 --- a/SlaveMatrix/SlaveMatrix/GameClasses/Sta.cs +++ b/SlaveMatrix/SlaveMatrix/GameClasses/Sta.cs @@ -1084,7 +1084,10 @@ namespace SlaveMatrix static Sta() { - 胴体 = Resources.胴体.ObjLoad(); + var obj = Resources.胴体.ObjLoad(); + obj.MigrateKeys(); + 胴体 = obj; + //胴体.SaveExMod("C:\\Users\\dave\\Documents\\胴体"); //Ser.ToJson(胴体, "C:\\Users\\dave\\Documents\\胴体.json"); //胴体 = Ser.UnJson("C:\\Users\\dave\\Documents\\胴体.json");