fixed issue where having a signal inside a cloak and one with the same name outside a cloak would cause only one to be functional, also applied fix to quantum moon signals

This commit is contained in:
clay 2023-05-28 19:51:44 -04:00
parent 0e0f345245
commit 9fa0b4606e
2 changed files with 13 additions and 12 deletions

View File

@ -8,6 +8,7 @@ using OWML.Utils;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using NewHorizons.External.Modules.Props.Audio; using NewHorizons.External.Modules.Props.Audio;
using System.Linq;
namespace NewHorizons.Builder.Props.Audio namespace NewHorizons.Builder.Props.Audio
{ {
@ -19,8 +20,8 @@ namespace NewHorizons.Builder.Props.Audio
public static int NumberOfFrequencies; public static int NumberOfFrequencies;
private static List<SignalName> _qmSignals; private static List<AudioSignal> _qmSignals;
private static List<SignalName> _cloakedSignals; private static List<AudioSignal> _cloakedSignals;
public static bool Initialized; public static bool Initialized;
@ -35,20 +36,20 @@ namespace NewHorizons.Builder.Props.Audio
}; };
NumberOfFrequencies = EnumUtils.GetValues<SignalFrequency>().Length; NumberOfFrequencies = EnumUtils.GetValues<SignalFrequency>().Length;
_qmSignals = new List<SignalName>() { SignalName.Quantum_QM }; _qmSignals = new List<AudioSignal>() { SearchUtilities.Find("QuantumMoon_Body/Signal_Quantum").GetComponent<AudioSignal>() };
_cloakedSignals = new List<SignalName>(); _cloakedSignals = new List<AudioSignal>();
Initialized = true; Initialized = true;
} }
public static bool IsCloaked(this SignalName signalName) public static bool IsCloaked(this AudioSignal signal)
{ {
return _cloakedSignals.Contains(signalName); return _cloakedSignals.Contains(signal);
} }
public static bool IsOnQuantumMoon(this SignalName signalName) public static bool IsOnQuantumMoon(this AudioSignal signal)
{ {
return _qmSignals.Contains(signalName); return _qmSignals.Contains(signal);
} }
public static SignalFrequency AddFrequency(string str) public static SignalFrequency AddFrequency(string str)
@ -149,8 +150,8 @@ namespace NewHorizons.Builder.Props.Audio
signalGO.SetActive(true); signalGO.SetActive(true);
// Track certain special signal things // Track certain special signal things
if (planetGO.GetComponent<AstroObject>()?.GetAstroObjectName() == AstroObject.Name.QuantumMoon) _qmSignals.Add(name); if (planetGO.GetComponent<AstroObject>()?.GetAstroObjectName() == AstroObject.Name.QuantumMoon) _qmSignals.Add(audioSignal);
if (info.insideCloak) _cloakedSignals.Add(name); if (info.insideCloak) _cloakedSignals.Add(audioSignal);
return signalGO; return signalGO;
} }

View File

@ -81,8 +81,8 @@ namespace NewHorizons.Patches.SignalPatches
{ {
if (!SignalBuilder.Initialized) return true; if (!SignalBuilder.Initialized) return true;
var isCloaked = __instance._name.IsCloaked(); var isCloaked = __instance.IsCloaked();
var isOnQuantumMoon = __instance._name.IsOnQuantumMoon(); var isOnQuantumMoon = __instance.IsOnQuantumMoon();
if (!isCloaked && !isOnQuantumMoon) return true; if (!isCloaked && !isOnQuantumMoon) return true;