(1.5.7) AutoDoor Ignore List
This commit is contained in:
@@ -25,7 +25,7 @@ public class MxValheimMod : BaseUnityPlugin
|
|||||||
|
|
||||||
private const string ModGUID = "ovh.mxdev.mxvalheim";
|
private const string ModGUID = "ovh.mxdev.mxvalheim";
|
||||||
private const string ModName = "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<bool> Config_Locked;
|
||||||
public static ConfigEntry<int> Config_OreMultiplier;
|
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 modPath = Path.Combine(Paths.PluginPath, "MxValheim");
|
||||||
public static string internalConfigsPath = Path.Combine(modPath, "Configs");
|
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>();
|
public static Dictionary<string, float> WeightSettings = new Dictionary<string, float>();
|
||||||
|
|
||||||
// Data structures
|
// Data structures
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
using BepInEx;
|
using BepInEx;
|
||||||
using HarmonyLib;
|
using HarmonyLib;
|
||||||
|
using Newtonsoft.Json;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.IO;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.Diagnostics;
|
using UnityEngine.Diagnostics;
|
||||||
using static MxValheimMod;
|
using static MxValheimMod;
|
||||||
@@ -9,6 +12,11 @@ namespace MxValheim.Patch
|
|||||||
{
|
{
|
||||||
public class Doors_Patch
|
public class Doors_Patch
|
||||||
{
|
{
|
||||||
|
public class DoorRoot
|
||||||
|
{
|
||||||
|
public List<string> ignoreList { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
[HarmonyPatch(typeof(Door), nameof(Door.Interact))]
|
[HarmonyPatch(typeof(Door), nameof(Door.Interact))]
|
||||||
public static class DoorTracker
|
public static class DoorTracker
|
||||||
{
|
{
|
||||||
@@ -21,14 +29,15 @@ namespace MxValheim.Patch
|
|||||||
int prefabHash = nview.GetZDO().GetPrefab();
|
int prefabHash = nview.GetZDO().GetPrefab();
|
||||||
string prefabName = ZNetScene.instance.GetPrefab(prefabHash).name;
|
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;
|
if (hold || alt || ___m_nview == null || !___m_nview.IsValid()) return;
|
||||||
|
|
||||||
// Get state: 0 is closed
|
// Get state: 0 is closed
|
||||||
int state = ___m_nview.GetZDO().GetInt("state");
|
int state = ___m_nview.GetZDO().GetInt("state");
|
||||||
|
|
||||||
if (state == 0) return;
|
if (state == 0) return;
|
||||||
|
|
||||||
lock (_doorQueueNview)
|
lock (_doorQueueNview)
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user