Change line endings

This commit is contained in:
Nick 2022-07-26 12:30:01 -04:00
parent 90bbff26cd
commit cca8e375fb
4 changed files with 3800 additions and 3800 deletions

File diff suppressed because it is too large Load Diff

View File

@ -1,242 +1,242 @@
using NewHorizons.AchievementsPlus; using NewHorizons.AchievementsPlus;
using NewHorizons.Components; using NewHorizons.Components;
using NewHorizons.External.Modules; using NewHorizons.External.Modules;
using NewHorizons.Utility; using NewHorizons.Utility;
using OWML.Common; using OWML.Common;
using System; using System;
using System.Collections.Generic; using System.Collections.Generic;
using UnityEngine; using UnityEngine;
using Logger = NewHorizons.Utility.Logger; using Logger = NewHorizons.Utility.Logger;
namespace NewHorizons.Builder.Props namespace NewHorizons.Builder.Props
{ {
public static class SignalBuilder public static class SignalBuilder
{ {
private static AnimationCurve _customCurve = null; private static AnimationCurve _customCurve = null;
private static Dictionary<SignalName, string> _customSignalNames; private static Dictionary<SignalName, string> _customSignalNames;
private static Stack<SignalName> _availableSignalNames; private static Stack<SignalName> _availableSignalNames;
private static int _nextCustomSignalName; private static int _nextCustomSignalName;
private static Dictionary<SignalFrequency, string> _customFrequencyNames; private static Dictionary<SignalFrequency, string> _customFrequencyNames;
private static int _nextCustomFrequencyName; private static int _nextCustomFrequencyName;
public static int NumberOfFrequencies; public static int NumberOfFrequencies;
public static List<SignalName> QMSignals { get; private set; } public static List<SignalName> QMSignals { get; private set; }
public static List<SignalName> CloakedSignals { get; private set; } public static List<SignalName> CloakedSignals { get; private set; }
public static void Init() public static void Init()
{ {
Logger.LogVerbose($"Initializing SignalBuilder"); Logger.LogVerbose($"Initializing SignalBuilder");
_customSignalNames = new Dictionary<SignalName, string>(); _customSignalNames = new Dictionary<SignalName, string>();
_availableSignalNames = new Stack<SignalName>(new SignalName[] _availableSignalNames = new Stack<SignalName>(new SignalName[]
{ {
(SignalName)17, (SignalName)17,
(SignalName)18, (SignalName)18,
(SignalName)19, (SignalName)19,
(SignalName)26, (SignalName)26,
(SignalName)27, (SignalName)27,
(SignalName)28, (SignalName)28,
(SignalName)29, (SignalName)29,
(SignalName)33, (SignalName)33,
(SignalName)34, (SignalName)34,
(SignalName)35, (SignalName)35,
(SignalName)36, (SignalName)36,
(SignalName)37, (SignalName)37,
(SignalName)38, (SignalName)38,
(SignalName)39, (SignalName)39,
(SignalName)50, (SignalName)50,
(SignalName)51, (SignalName)51,
(SignalName)52, (SignalName)52,
(SignalName)53, (SignalName)53,
(SignalName)54, (SignalName)54,
(SignalName)55, (SignalName)55,
(SignalName)56, (SignalName)56,
(SignalName)57, (SignalName)57,
(SignalName)58, (SignalName)58,
(SignalName)59, (SignalName)59,
SignalName.WhiteHole_WH, SignalName.WhiteHole_WH,
SignalName.WhiteHole_SS_Receiver, SignalName.WhiteHole_SS_Receiver,
SignalName.WhiteHole_CT_Receiver, SignalName.WhiteHole_CT_Receiver,
SignalName.WhiteHole_CT_Experiment, SignalName.WhiteHole_CT_Experiment,
SignalName.WhiteHole_TT_Receiver, SignalName.WhiteHole_TT_Receiver,
SignalName.WhiteHole_TT_TimeLoopCore, SignalName.WhiteHole_TT_TimeLoopCore,
SignalName.WhiteHole_TH_Receiver, SignalName.WhiteHole_TH_Receiver,
SignalName.WhiteHole_BH_NorthPoleReceiver, SignalName.WhiteHole_BH_NorthPoleReceiver,
SignalName.WhiteHole_BH_ForgeReceiver, SignalName.WhiteHole_BH_ForgeReceiver,
SignalName.WhiteHole_GD_Receiver, SignalName.WhiteHole_GD_Receiver,
}); });
_customFrequencyNames = new Dictionary<SignalFrequency, string>() { _customFrequencyNames = new Dictionary<SignalFrequency, string>() {
{ SignalFrequency.Statue, "FREQ_STATUE" }, { SignalFrequency.Statue, "FREQ_STATUE" },
{ SignalFrequency.Default, "FREQ_UNKNOWN" }, { SignalFrequency.Default, "FREQ_UNKNOWN" },
{ SignalFrequency.WarpCore, "FREQ_WARP_CORE" } { SignalFrequency.WarpCore, "FREQ_WARP_CORE" }
}; };
_nextCustomSignalName = 200; _nextCustomSignalName = 200;
_nextCustomFrequencyName = 256; _nextCustomFrequencyName = 256;
NumberOfFrequencies = 8; NumberOfFrequencies = 8;
QMSignals = new List<SignalName>() { SignalName.Quantum_QM }; QMSignals = new List<SignalName>() { SignalName.Quantum_QM };
CloakedSignals = new List<SignalName>(); CloakedSignals = new List<SignalName>();
} }
public static SignalFrequency AddFrequency(string str) public static SignalFrequency AddFrequency(string str)
{ {
Logger.Log($"Registering new frequency name [{str}]"); Logger.Log($"Registering new frequency name [{str}]");
if (NumberOfFrequencies == 31) if (NumberOfFrequencies == 31)
{ {
Logger.LogWarning($"Can't store any more frequencies, skipping [{str}]"); Logger.LogWarning($"Can't store any more frequencies, skipping [{str}]");
return SignalFrequency.Default; return SignalFrequency.Default;
} }
var freq = CollectionUtilities.KeyByValue(_customFrequencyNames, str); var freq = CollectionUtilities.KeyByValue(_customFrequencyNames, str);
if (freq != default) if (freq != default)
{ {
return freq; return freq;
} }
freq = (SignalFrequency)_nextCustomFrequencyName; freq = (SignalFrequency)_nextCustomFrequencyName;
_nextCustomFrequencyName *= 2; _nextCustomFrequencyName *= 2;
_customFrequencyNames.Add(freq, str); _customFrequencyNames.Add(freq, str);
NumberOfFrequencies++; NumberOfFrequencies++;
// This stuff happens after the signalscope is Awake so we have to change the number of frequencies now // This stuff happens after the signalscope is Awake so we have to change the number of frequencies now
GameObject.FindObjectOfType<Signalscope>()._strongestSignals = new AudioSignal[NumberOfFrequencies + 1]; GameObject.FindObjectOfType<Signalscope>()._strongestSignals = new AudioSignal[NumberOfFrequencies + 1];
return freq; return freq;
} }
public static string GetCustomFrequencyName(SignalFrequency frequencyName) public static string GetCustomFrequencyName(SignalFrequency frequencyName)
{ {
_customFrequencyNames.TryGetValue(frequencyName, out string name); _customFrequencyNames.TryGetValue(frequencyName, out string name);
return name; return name;
} }
public static SignalName AddSignalName(string str) public static SignalName AddSignalName(string str)
{ {
Logger.Log($"Registering new signal name [{str}]"); Logger.Log($"Registering new signal name [{str}]");
SignalName newName; SignalName newName;
if (_availableSignalNames.Count == 0) newName = (SignalName)_nextCustomSignalName++; if (_availableSignalNames.Count == 0) newName = (SignalName)_nextCustomSignalName++;
else newName = _availableSignalNames.Pop(); else newName = _availableSignalNames.Pop();
_customSignalNames.Add(newName, str); _customSignalNames.Add(newName, str);
return newName; return newName;
} }
public static string GetCustomSignalName(SignalName signalName) public static string GetCustomSignalName(SignalName signalName)
{ {
_customSignalNames.TryGetValue(signalName, out string name); _customSignalNames.TryGetValue(signalName, out string name);
return name; return name;
} }
public static GameObject Make(GameObject planetGO, Sector sector, SignalModule.SignalInfo info, IModBehaviour mod) public static GameObject Make(GameObject planetGO, Sector sector, SignalModule.SignalInfo info, IModBehaviour mod)
{ {
var signalGO = new GameObject($"Signal_{info.name}"); var signalGO = new GameObject($"Signal_{info.name}");
signalGO.SetActive(false); signalGO.SetActive(false);
signalGO.transform.parent = sector?.transform ?? planetGO.transform; signalGO.transform.parent = sector?.transform ?? planetGO.transform;
if (!string.IsNullOrEmpty(info.parentPath)) if (!string.IsNullOrEmpty(info.parentPath))
{ {
signalGO.transform.parent = planetGO.transform.Find(info.parentPath); signalGO.transform.parent = planetGO.transform.Find(info.parentPath);
} }
signalGO.transform.position = planetGO.transform.TransformPoint(info.position != null ? (Vector3)info.position : Vector3.zero); signalGO.transform.position = planetGO.transform.TransformPoint(info.position != null ? (Vector3)info.position : Vector3.zero);
signalGO.layer = LayerMask.NameToLayer("AdvancedEffectVolume"); signalGO.layer = LayerMask.NameToLayer("AdvancedEffectVolume");
var source = signalGO.AddComponent<AudioSource>(); var source = signalGO.AddComponent<AudioSource>();
var owAudioSource = signalGO.AddComponent<OWAudioSource>(); var owAudioSource = signalGO.AddComponent<OWAudioSource>();
owAudioSource._audioSource = source; owAudioSource._audioSource = source;
var audioSignal = signalGO.AddComponent<AudioSignal>(); var audioSignal = signalGO.AddComponent<AudioSignal>();
audioSignal._owAudioSource = owAudioSource; audioSignal._owAudioSource = owAudioSource;
var frequency = StringToFrequency(info.frequency); var frequency = StringToFrequency(info.frequency);
var name = StringToSignalName(info.name); var name = StringToSignalName(info.name);
audioSignal.SetSector(sector); audioSignal.SetSector(sector);
if (name == SignalName.Default) audioSignal._preventIdentification = true; if (name == SignalName.Default) audioSignal._preventIdentification = true;
audioSignal._frequency = frequency; audioSignal._frequency = frequency;
audioSignal._name = name; audioSignal._name = name;
audioSignal._sourceRadius = info.sourceRadius; audioSignal._sourceRadius = info.sourceRadius;
audioSignal._revealFactID = info.reveals; audioSignal._revealFactID = info.reveals;
audioSignal._onlyAudibleToScope = info.onlyAudibleToScope; audioSignal._onlyAudibleToScope = info.onlyAudibleToScope;
audioSignal._identificationDistance = info.identificationRadius; audioSignal._identificationDistance = info.identificationRadius;
audioSignal._canBePickedUpByScope = true; audioSignal._canBePickedUpByScope = true;
audioSignal._outerFogWarpVolume = planetGO.GetComponentInChildren<OuterFogWarpVolume>(); // shouldn't break non-bramble signals audioSignal._outerFogWarpVolume = planetGO.GetComponentInChildren<OuterFogWarpVolume>(); // shouldn't break non-bramble signals
source.loop = true; source.loop = true;
source.minDistance = 0; source.minDistance = 0;
source.maxDistance = 30; source.maxDistance = 30;
source.velocityUpdateMode = AudioVelocityUpdateMode.Fixed; source.velocityUpdateMode = AudioVelocityUpdateMode.Fixed;
source.rolloffMode = AudioRolloffMode.Custom; source.rolloffMode = AudioRolloffMode.Custom;
if (_customCurve == null) if (_customCurve == null)
{ {
_customCurve = new AnimationCurve( _customCurve = new AnimationCurve(
new Keyframe(0.0333f, 1f, -30.012f, -30.012f, 0.3333f, 0.3333f), new Keyframe(0.0333f, 1f, -30.012f, -30.012f, 0.3333f, 0.3333f),
new Keyframe(0.0667f, 0.5f, -7.503f, -7.503f, 0.3333f, 0.3333f), new Keyframe(0.0667f, 0.5f, -7.503f, -7.503f, 0.3333f, 0.3333f),
new Keyframe(0.1333f, 0.25f, -1.8758f, -1.8758f, 0.3333f, 0.3333f), new Keyframe(0.1333f, 0.25f, -1.8758f, -1.8758f, 0.3333f, 0.3333f),
new Keyframe(0.2667f, 0.125f, -0.4689f, -0.4689f, 0.3333f, 0.3333f), new Keyframe(0.2667f, 0.125f, -0.4689f, -0.4689f, 0.3333f, 0.3333f),
new Keyframe(0.5333f, 0.0625f, -0.1172f, -0.1172f, 0.3333f, 0.3333f), new Keyframe(0.5333f, 0.0625f, -0.1172f, -0.1172f, 0.3333f, 0.3333f),
new Keyframe(1f, 0f, -0.0333f, -0.0333f, 0.3333f, 0.3333f)); new Keyframe(1f, 0f, -0.0333f, -0.0333f, 0.3333f, 0.3333f));
} }
source.SetCustomCurve(AudioSourceCurveType.CustomRolloff, _customCurve); source.SetCustomCurve(AudioSourceCurveType.CustomRolloff, _customCurve);
// If it can be heard regularly then we play it immediately // If it can be heard regularly then we play it immediately
source.playOnAwake = !info.onlyAudibleToScope; source.playOnAwake = !info.onlyAudibleToScope;
source.spatialBlend = 1f; source.spatialBlend = 1f;
source.volume = 0.5f; source.volume = 0.5f;
source.dopplerLevel = 0; source.dopplerLevel = 0;
owAudioSource.SetTrack(OWAudioMixer.TrackName.Signal); owAudioSource.SetTrack(OWAudioMixer.TrackName.Signal);
AudioUtilities.SetAudioClip(owAudioSource, info.audio, mod); AudioUtilities.SetAudioClip(owAudioSource, info.audio, mod);
// Frequency detection trigger volume // Frequency detection trigger volume
var sphereShape = signalGO.AddComponent<SphereShape>(); var sphereShape = signalGO.AddComponent<SphereShape>();
var owTriggerVolume = signalGO.AddComponent<OWTriggerVolume>(); var owTriggerVolume = signalGO.AddComponent<OWTriggerVolume>();
var audioSignalDetectionTrigger = signalGO.AddComponent<AudioSignalDetectionTrigger>(); var audioSignalDetectionTrigger = signalGO.AddComponent<AudioSignalDetectionTrigger>();
sphereShape.radius = info.detectionRadius == 0 ? info.sourceRadius + 30 : info.detectionRadius; sphereShape.radius = info.detectionRadius == 0 ? info.sourceRadius + 30 : info.detectionRadius;
audioSignalDetectionTrigger._signal = audioSignal; audioSignalDetectionTrigger._signal = audioSignal;
audioSignalDetectionTrigger._trigger = owTriggerVolume; audioSignalDetectionTrigger._trigger = owTriggerVolume;
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(name);
if (info.insideCloak) CloakedSignals.Add(name); if (info.insideCloak) CloakedSignals.Add(name);
return signalGO; return signalGO;
} }
private static SignalFrequency StringToFrequency(string str) private static SignalFrequency StringToFrequency(string str)
{ {
foreach (SignalFrequency freq in Enum.GetValues(typeof(SignalFrequency))) foreach (SignalFrequency freq in Enum.GetValues(typeof(SignalFrequency)))
{ {
if (str.Equals(freq.ToString())) return freq; if (str.Equals(freq.ToString())) return freq;
} }
var customName = CollectionUtilities.KeyByValue(_customFrequencyNames, str); var customName = CollectionUtilities.KeyByValue(_customFrequencyNames, str);
if (customName == default) customName = AddFrequency(str); if (customName == default) customName = AddFrequency(str);
return customName; return customName;
} }
public static SignalName StringToSignalName(string str) public static SignalName StringToSignalName(string str)
{ {
foreach (SignalName name in Enum.GetValues(typeof(SignalName))) foreach (SignalName name in Enum.GetValues(typeof(SignalName)))
{ {
if (str.Equals(name.ToString())) return name; if (str.Equals(name.ToString())) return name;
} }
var customName = CollectionUtilities.KeyByValue(_customSignalNames, str); var customName = CollectionUtilities.KeyByValue(_customSignalNames, str);
if (customName == default) customName = AddSignalName(str); if (customName == default) customName = AddSignalName(str);
return customName; return customName;
} }
} }
} }

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff