From d0a5b35a35d53aadae6bf145ebdbb51700e26d9d Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Sat, 10 Sep 2022 23:09:21 -0400 Subject: [PATCH] Fix silly mistake --- NewHorizons/Handlers/InterferenceHandler.cs | 26 ++++++++++++++++++--- NewHorizons/Patches/HUDPatches.cs | 2 +- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/NewHorizons/Handlers/InterferenceHandler.cs b/NewHorizons/Handlers/InterferenceHandler.cs index 97ff0046..3b9f374c 100644 --- a/NewHorizons/Handlers/InterferenceHandler.cs +++ b/NewHorizons/Handlers/InterferenceHandler.cs @@ -21,53 +21,73 @@ namespace NewHorizons.Handlers _shipInterference = new List(); } - public static bool PlayerHasInterference() => _playerInterference.Any(volume => volume != null); - public static bool ProbeHasInterference() => _probeInterference.Any(volume => volume != null); - public static bool ShipHasInterference() => _shipInterference.Any(volume => volume != null); + public static bool PlayerHasInterference() + { + if (_playerInterference == null) Init(); + return _playerInterference.Any(volume => volume != null); + } + public static bool ProbeHasInterference() + { + if (_probeInterference == null) Init(); + return _probeInterference.Any(volume => volume != null); + } + public static bool ShipHasInterference() + { + if (_shipInterference == null) Init(); + return _shipInterference.Any(volume => volume != null); + } public static bool IsPlayerSameAsProbe() { + if (_playerInterference == null || _probeInterference == null) Init(); _playerInterference.RemoveAll(volume => volume == null); return _playerInterference.All(_probeInterference.Contains) && _playerInterference.Count == _probeInterference.Count; } public static bool IsPlayerSameAsShip() { + if (_playerInterference == null || _shipInterference == null) Init(); _playerInterference.RemoveAll(volume => volume == null); return _playerInterference.All(_shipInterference.Contains) && _playerInterference.Count == _shipInterference.Count; } public static void OnPlayerEnterInterferenceVolume(InterferenceVolume interferenceVolume) { + if (_playerInterference == null) Init(); _playerInterference.SafeAdd(interferenceVolume); GlobalMessenger.FireEvent("RefreshHUDVisibility"); } public static void OnPlayerExitInterferenceVolume(InterferenceVolume interferenceVolume) { + if (_playerInterference == null) Init(); _playerInterference.Remove(interferenceVolume); GlobalMessenger.FireEvent("RefreshHUDVisibility"); } public static void OnProbeEnterInterferenceVolume(InterferenceVolume interferenceVolume) { + if (_probeInterference == null) Init(); _probeInterference.SafeAdd(interferenceVolume); GlobalMessenger.FireEvent("RefreshHUDVisibility"); } public static void OnProbeExitInterferenceVolume(InterferenceVolume interferenceVolume) { + if (_probeInterference == null) Init(); _probeInterference.Remove(interferenceVolume); GlobalMessenger.FireEvent("RefreshHUDVisibility"); } public static void OnShipEnterInterferenceVolume(InterferenceVolume interferenceVolume) { + if (_shipInterference == null) Init(); _shipInterference.SafeAdd(interferenceVolume); GlobalMessenger.FireEvent("RefreshHUDVisibility"); } public static void OnShipExitInterferenceVolume(InterferenceVolume interferenceVolume) { + if (_shipInterference == null) Init(); _shipInterference.Remove(interferenceVolume); GlobalMessenger.FireEvent("RefreshHUDVisibility"); } diff --git a/NewHorizons/Patches/HUDPatches.cs b/NewHorizons/Patches/HUDPatches.cs index fc37e4e0..bb9a1c4f 100644 --- a/NewHorizons/Patches/HUDPatches.cs +++ b/NewHorizons/Patches/HUDPatches.cs @@ -84,7 +84,7 @@ namespace NewHorizons.Patches bool insideEYE = Locator.GetEyeStateManager() != null && Locator.GetEyeStateManager().IsInsideTheEye(); bool insideQM = __instance._quantumMoon != null && (__instance._quantumMoon.IsPlayerInside() || __instance._quantumMoon.IsShipInside()); bool insideRW = Locator.GetRingWorldController() != null && Locator.GetRingWorldController().isPlayerInside; - bool insideIP = Locator.GetCloakFieldController() != null ? true : Locator.GetCloakFieldController().isPlayerInsideCloak == Locator.GetCloakFieldController().isShipInsideCloak; + bool insideIP = Locator.GetCloakFieldController() != null && Locator.GetCloakFieldController().isPlayerInsideCloak == Locator.GetCloakFieldController().isShipInsideCloak; bool insideCloak = Components.CloakSectorController.isPlayerInside == Components.CloakSectorController.isShipInside; bool sameInterference = InterferenceHandler.IsPlayerSameAsShip();