(1.5.7) AutoDoor Ignore List

This commit is contained in:
mikx
2026-02-12 03:15:36 -05:00
parent 2291d1c162
commit cb93f20b18
2 changed files with 14 additions and 4 deletions

View File

@@ -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<bool> Config_Locked;
public static ConfigEntry<int> 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<string, float> WeightSettings = new Dictionary<string, float>();
// Data structures

View File

@@ -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<string> 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<DoorRoot>(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)
{