Fix inactive signals being used with signalscope strongest signal method

This commit is contained in:
Noah Pilarski 2024-07-02 18:40:46 -04:00
parent 9e00c229c7
commit f313e14ffa
2 changed files with 16 additions and 0 deletions

View File

@ -1,4 +1,6 @@
using HarmonyLib;
using System.Collections.Generic;
using System.Linq;
namespace NewHorizons.Patches
{
@ -108,5 +110,12 @@ namespace NewHorizons.Patches
_mapSatellite = null;
_sunStation = null;
}
[HarmonyPostfix]
[HarmonyPatch(nameof(Locator.GetAudioSignals))]
public static void Locator_GetAudioSignals(ref List<AudioSignal> __result)
{
__result = __result.Where(signal => signal.IsActive()).ToList();
}
}
}

View File

@ -11,6 +11,13 @@ namespace NewHorizons.Patches.SignalPatches
[HarmonyPatch(typeof(AudioSignal))]
public static class AudioSignalPatches
{
[HarmonyPostfix]
[HarmonyPatch(nameof(AudioSignal.IsActive))]
public static void AudioSignal_IsActive(AudioSignal __instance, ref bool __result)
{
__result = __result && __instance.gameObject.activeInHierarchy;
}
[HarmonyPrefix]
[HarmonyPatch(nameof(AudioSignal.SignalNameToString))]
public static bool AudioSignal_SignalNameToString(SignalName name, ref string __result)