From cb93f20b1859c012c1cf5c00a528db0eb09030b7 Mon Sep 17 00:00:00 2001 From: mikx Date: Thu, 12 Feb 2026 03:15:36 -0500 Subject: [PATCH] (1.5.7) AutoDoor Ignore List --- MxValheim/MxValheim.cs | 5 +++-- MxValheim/Patch/Doors.cs | 13 +++++++++++-- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/MxValheim/MxValheim.cs b/MxValheim/MxValheim.cs index e78bc02..58f5fec 100644 --- a/MxValheim/MxValheim.cs +++ b/MxValheim/MxValheim.cs @@ -25,7 +25,7 @@ public class MxValheimMod : BaseUnityPlugin private const string ModGUID = "ovh.mxdev.mxvalheim"; private const string ModName = "MxValheim"; - public const string ModVersion = "1.5.6"; + public const string ModVersion = "1.5.7"; public static ConfigEntry Config_Locked; public static ConfigEntry Config_OreMultiplier; @@ -38,7 +38,8 @@ public class MxValheimMod : BaseUnityPlugin public static string modPath = Path.Combine(Paths.PluginPath, "MxValheim"); public static string internalConfigsPath = Path.Combine(modPath, "Configs"); - private static string WeightConfigPath => Path.Combine(internalConfigsPath, "items_weight.json"); + public static string WeightConfigPath => Path.Combine(internalConfigsPath, "items_weight.json"); + public static string AutoDoorConfigPath => Path.Combine(internalConfigsPath, "auto_doors.json"); public static Dictionary WeightSettings = new Dictionary(); // Data structures diff --git a/MxValheim/Patch/Doors.cs b/MxValheim/Patch/Doors.cs index a9141cf..77dbcca 100644 --- a/MxValheim/Patch/Doors.cs +++ b/MxValheim/Patch/Doors.cs @@ -1,6 +1,9 @@ using BepInEx; using HarmonyLib; +using Newtonsoft.Json; using System.Collections; +using System.Collections.Generic; +using System.IO; using UnityEngine; using UnityEngine.Diagnostics; using static MxValheimMod; @@ -9,6 +12,11 @@ namespace MxValheim.Patch { public class Doors_Patch { + public class DoorRoot + { + public List ignoreList { get; set; } + } + [HarmonyPatch(typeof(Door), nameof(Door.Interact))] public static class DoorTracker { @@ -21,14 +29,15 @@ namespace MxValheim.Patch int prefabHash = nview.GetZDO().GetPrefab(); string prefabName = ZNetScene.instance.GetPrefab(prefabHash).name; - if (prefabName == "piece_crypt_door") return; + DoorRoot iL = JsonConvert.DeserializeObject(File.ReadAllText(MxValheimMod.AutoDoorConfigPath)); + if (iL.ignoreList.Contains(prefabName)) return; if (hold || alt || ___m_nview == null || !___m_nview.IsValid()) return; // Get state: 0 is closed int state = ___m_nview.GetZDO().GetInt("state"); - if (state == 0) return; + if (state == 0) return; lock (_doorQueueNview) {