From d0f7a156c7f5a53e52ac9c4f0394a09fd8bcff38 Mon Sep 17 00:00:00 2001 From: mikx Date: Thu, 12 Feb 2026 09:05:33 -0500 Subject: [PATCH] (1.5.8) Perf. Optimization --- MxValheim/MxValheim.cs | 14 +++++++++++++- MxValheim/Patch/Doors.cs | 4 ++-- 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/MxValheim/MxValheim.cs b/MxValheim/MxValheim.cs index 58f5fec..cc763ba 100644 --- a/MxValheim/MxValheim.cs +++ b/MxValheim/MxValheim.cs @@ -15,6 +15,7 @@ using System.Xml; using TMPro; using UnityEngine; using UnityEngine.UI; +using static MxValheim.Patch.Doors_Patch; [BepInPlugin(ModGUID, ModName, ModVersion)] public class MxValheimMod : BaseUnityPlugin @@ -25,7 +26,7 @@ public class MxValheimMod : BaseUnityPlugin private const string ModGUID = "ovh.mxdev.mxvalheim"; private const string ModName = "MxValheim"; - public const string ModVersion = "1.5.7"; + public const string ModVersion = "1.5.8"; public static ConfigEntry Config_Locked; public static ConfigEntry Config_OreMultiplier; @@ -40,6 +41,7 @@ public class MxValheimMod : BaseUnityPlugin public static string internalConfigsPath = Path.Combine(modPath, "Configs"); public static string WeightConfigPath => Path.Combine(internalConfigsPath, "items_weight.json"); public static string AutoDoorConfigPath => Path.Combine(internalConfigsPath, "auto_doors.json"); + public static DoorRoot CachedConfig; public static Dictionary WeightSettings = new Dictionary(); // Data structures @@ -87,6 +89,7 @@ public class MxValheimMod : BaseUnityPlugin LoadLocalization(); LoadJsonConfig(); + LoadDoorConfig(); _doorTimer = MxValheimMod.Config_autoDoorClose.Value; @@ -305,6 +308,15 @@ public class MxValheimMod : BaseUnityPlugin } } + public void LoadDoorConfig() + { + if (System.IO.File.Exists(AutoDoorConfigPath)) + { + string json = System.IO.File.ReadAllText(AutoDoorConfigPath); + CachedConfig = JsonConvert.DeserializeObject(json); + } + } + internal static void ShowKillMessage(string v) { throw new NotImplementedException(); diff --git a/MxValheim/Patch/Doors.cs b/MxValheim/Patch/Doors.cs index 77dbcca..11d2396 100644 --- a/MxValheim/Patch/Doors.cs +++ b/MxValheim/Patch/Doors.cs @@ -29,8 +29,8 @@ namespace MxValheim.Patch int prefabHash = nview.GetZDO().GetPrefab(); string prefabName = ZNetScene.instance.GetPrefab(prefabHash).name; - DoorRoot iL = JsonConvert.DeserializeObject(File.ReadAllText(MxValheimMod.AutoDoorConfigPath)); - if (iL.ignoreList.Contains(prefabName)) return; + if (MxValheimMod.CachedConfig?.ignoreList != null) + if (MxValheimMod.CachedConfig.ignoreList.Contains(prefabName)) return; if (hold || alt || ___m_nview == null || !___m_nview.IsValid()) return;