From 68498480456d83d4bf20ab60457e6a1cefbdc070 Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Fri, 26 Aug 2022 21:37:53 -0400 Subject: [PATCH 1/5] Use EnumUtils --- NewHorizons/Builder/General/SectorBuilder.cs | 5 +- .../Builder/Props/AudioVolumeBuilder.cs | 3 +- NewHorizons/Builder/Props/NomaiTextBuilder.cs | 14 +-- NewHorizons/Builder/Props/SignalBuilder.cs | 90 ++++--------------- NewHorizons/Handlers/AudioTypeHandler.cs | 8 +- NewHorizons/Handlers/RemoteHandler.cs | 14 +-- NewHorizons/Main.cs | 4 +- NewHorizons/Utility/AudioUtilities.cs | 4 +- NewHorizons/Utility/EnumUtilities.cs | 48 ++++++++++ NewHorizons/Utility/NewHorizonExtensions.cs | 14 +-- 10 files changed, 98 insertions(+), 106 deletions(-) create mode 100644 NewHorizons/Utility/EnumUtilities.cs diff --git a/NewHorizons/Builder/General/SectorBuilder.cs b/NewHorizons/Builder/General/SectorBuilder.cs index a1853415..16800cf9 100644 --- a/NewHorizons/Builder/General/SectorBuilder.cs +++ b/NewHorizons/Builder/General/SectorBuilder.cs @@ -1,9 +1,12 @@ +using OWML.Utils; using System.Collections.Generic; using UnityEngine; namespace NewHorizons.Builder.General { public static class SectorBuilder { + private static Sector.Name Name = EnumUtils.Create("NewHorizons"); + public static Sector Make(GameObject planetBody, OWRigidbody owRigidBody, float sphereOfInfluence) { GameObject sectorGO = new GameObject("Sector"); @@ -22,7 +25,7 @@ namespace NewHorizons.Builder.General sectorGO.AddComponent(); Sector S = sectorGO.AddComponent(); - S._name = (Sector.Name)24; + S._name = Name; S._attachedOWRigidbody = owRigidBody; S._subsectors = new List(); diff --git a/NewHorizons/Builder/Props/AudioVolumeBuilder.cs b/NewHorizons/Builder/Props/AudioVolumeBuilder.cs index 8e45efc8..6e62d9cb 100644 --- a/NewHorizons/Builder/Props/AudioVolumeBuilder.cs +++ b/NewHorizons/Builder/Props/AudioVolumeBuilder.cs @@ -1,6 +1,7 @@ using NewHorizons.External.Modules; using NewHorizons.Utility; using OWML.Common; +using OWML.Utils; using System; using System.Collections.Generic; using System.Linq; @@ -27,7 +28,7 @@ namespace NewHorizons.Builder.Props var owAudioSource = go.AddComponent(); owAudioSource._audioSource = audioSource; owAudioSource.loop = true; - owAudioSource.SetTrack((OWAudioMixer.TrackName)Enum.Parse(typeof(OWAudioMixer.TrackName), Enum.GetName(typeof(AudioMixerTrackName), info.track))); + owAudioSource.SetTrack(EnumUtils.Parse(info.track.ToString())); AudioUtilities.SetAudioClip(owAudioSource, info.audio, mod); var audioVolume = go.AddComponent(); diff --git a/NewHorizons/Builder/Props/NomaiTextBuilder.cs b/NewHorizons/Builder/Props/NomaiTextBuilder.cs index 7743d754..b0d8295b 100644 --- a/NewHorizons/Builder/Props/NomaiTextBuilder.cs +++ b/NewHorizons/Builder/Props/NomaiTextBuilder.cs @@ -10,6 +10,8 @@ using System.Xml; using UnityEngine; using Logger = NewHorizons.Utility.Logger; using Random = UnityEngine.Random; +using OWML.Utils; + namespace NewHorizons.Builder.Props { public static class NomaiTextBuilder @@ -273,7 +275,7 @@ namespace NewHorizons.Builder.Props var computer = computerObject.GetComponent(); computer.SetSector(sector); - computer._location = (NomaiText.Location)Enum.Parse(typeof(NomaiText.Location), Enum.GetName(typeof(PropModule.NomaiTextInfo.NomaiTextLocation), info.location)); + computer._location = EnumUtils.Parse(info.location.ToString()); computer._dictNomaiTextData = MakeNomaiTextDict(xmlPath); computer._nomaiTextAsset = new TextAsset(xmlPath); computer._nomaiTextAsset.name = Path.GetFileNameWithoutExtension(info.xmlFile); @@ -321,7 +323,7 @@ namespace NewHorizons.Builder.Props var computer = computerObject.GetComponent(); computer.SetSector(sector); - computer._location = (NomaiText.Location)Enum.Parse(typeof(NomaiText.Location), Enum.GetName(typeof(PropModule.NomaiTextInfo.NomaiTextLocation), info.location)); + computer._location = EnumUtils.Parse(info.location.ToString()); computer._dictNomaiTextData = MakeNomaiTextDict(xmlPath); computer._nomaiTextAsset = new TextAsset(xmlPath); computer._nomaiTextAsset.name = Path.GetFileNameWithoutExtension(info.xmlFile); @@ -410,7 +412,7 @@ namespace NewHorizons.Builder.Props var nomaiWallText = cairnObject.transform.Find("Props_TH_ClutterSmall/Arc_Short").GetComponent(); nomaiWallText.SetSector(sector); - nomaiWallText._location = (NomaiText.Location)Enum.Parse(typeof(NomaiText.Location), Enum.GetName(typeof(PropModule.NomaiTextInfo.NomaiTextLocation), info.location)); + nomaiWallText._location = EnumUtils.Parse(info.location.ToString()); nomaiWallText._dictNomaiTextData = MakeNomaiTextDict(xmlPath); nomaiWallText._nomaiTextAsset = new TextAsset(xmlPath); nomaiWallText._nomaiTextAsset.name = Path.GetFileNameWithoutExtension(info.xmlFile); @@ -450,7 +452,7 @@ namespace NewHorizons.Builder.Props var nomaiText = recorderObject.GetComponentInChildren(); nomaiText.SetSector(sector); - nomaiText._location = (NomaiText.Location)Enum.Parse(typeof(NomaiText.Location), Enum.GetName(typeof(PropModule.NomaiTextInfo.NomaiTextLocation), info.location)); + nomaiText._location = EnumUtils.Parse(info.location.ToString()); nomaiText._dictNomaiTextData = MakeNomaiTextDict(xmlPath); nomaiText._nomaiTextAsset = new TextAsset(xmlPath); nomaiText._nomaiTextAsset.name = Path.GetFileNameWithoutExtension(info.xmlFile); @@ -509,7 +511,7 @@ namespace NewHorizons.Builder.Props var nomaiWallText = trailmarkerObject.transform.Find("Arc_Short").GetComponent(); nomaiWallText.SetSector(sector); - nomaiWallText._location = (NomaiText.Location)Enum.Parse(typeof(NomaiText.Location), Enum.GetName(typeof(PropModule.NomaiTextInfo.NomaiTextLocation), info.location)); + nomaiWallText._location = EnumUtils.Parse(info.location.ToString()); nomaiWallText._dictNomaiTextData = MakeNomaiTextDict(xmlPath); nomaiWallText._nomaiTextAsset = new TextAsset(xmlPath); nomaiWallText._nomaiTextAsset.name = Path.GetFileNameWithoutExtension(info.xmlFile); @@ -542,7 +544,7 @@ namespace NewHorizons.Builder.Props var nomaiWallText = nomaiWallTextObj.AddComponent(); - nomaiWallText._location = (NomaiText.Location)Enum.Parse(typeof(NomaiText.Location), Enum.GetName(typeof(PropModule.NomaiTextInfo.NomaiTextLocation), info.location)); + nomaiWallText._location = EnumUtils.Parse(info.location.ToString()); var text = new TextAsset(xmlPath); diff --git a/NewHorizons/Builder/Props/SignalBuilder.cs b/NewHorizons/Builder/Props/SignalBuilder.cs index 72895387..cb47d90c 100644 --- a/NewHorizons/Builder/Props/SignalBuilder.cs +++ b/NewHorizons/Builder/Props/SignalBuilder.cs @@ -7,6 +7,8 @@ using System; using System.Collections.Generic; using UnityEngine; using Logger = NewHorizons.Utility.Logger; +using OWML.Utils; + namespace NewHorizons.Builder.Props { public static class SignalBuilder @@ -14,11 +16,8 @@ namespace NewHorizons.Builder.Props private static AnimationCurve _customCurve = null; private static Dictionary _customSignalNames; - private static Stack _availableSignalNames; - private static int _nextCustomSignalName; private static Dictionary _customFrequencyNames; - private static int _nextCustomFrequencyName; public static int NumberOfFrequencies; @@ -31,51 +30,12 @@ namespace NewHorizons.Builder.Props { Logger.LogVerbose($"Initializing SignalBuilder"); _customSignalNames = new Dictionary(); - _availableSignalNames = new Stack(new SignalName[] - { - (SignalName)17, - (SignalName)18, - (SignalName)19, - (SignalName)26, - (SignalName)27, - (SignalName)28, - (SignalName)29, - (SignalName)33, - (SignalName)34, - (SignalName)35, - (SignalName)36, - (SignalName)37, - (SignalName)38, - (SignalName)39, - (SignalName)50, - (SignalName)51, - (SignalName)52, - (SignalName)53, - (SignalName)54, - (SignalName)55, - (SignalName)56, - (SignalName)57, - (SignalName)58, - (SignalName)59, - SignalName.WhiteHole_WH, - SignalName.WhiteHole_SS_Receiver, - SignalName.WhiteHole_CT_Receiver, - SignalName.WhiteHole_CT_Experiment, - SignalName.WhiteHole_TT_Receiver, - SignalName.WhiteHole_TT_TimeLoopCore, - SignalName.WhiteHole_TH_Receiver, - SignalName.WhiteHole_BH_NorthPoleReceiver, - SignalName.WhiteHole_BH_ForgeReceiver, - SignalName.WhiteHole_GD_Receiver, - }); _customFrequencyNames = new Dictionary() { { SignalFrequency.Statue, "FREQ_STATUE" }, { SignalFrequency.Default, "FREQ_UNKNOWN" }, { SignalFrequency.WarpCore, "FREQ_WARP_CORE" } }; - _nextCustomSignalName = 200; - _nextCustomFrequencyName = 256; - NumberOfFrequencies = 8; + NumberOfFrequencies = EnumUtils.GetValues().Length; QMSignals = new List() { SignalName.Quantum_QM }; CloakedSignals = new List(); @@ -85,6 +45,9 @@ namespace NewHorizons.Builder.Props public static SignalFrequency AddFrequency(string str) { + var freq = CollectionUtilities.KeyByValue(_customFrequencyNames, str); + if (freq != default) return freq; + Logger.Log($"Registering new frequency name [{str}]"); if (NumberOfFrequencies == 31) @@ -93,17 +56,10 @@ namespace NewHorizons.Builder.Props return SignalFrequency.Default; } - var freq = CollectionUtilities.KeyByValue(_customFrequencyNames, str); - if (freq != default) - { - return freq; - } - - freq = (SignalFrequency)_nextCustomFrequencyName; - _nextCustomFrequencyName *= 2; + freq = EnumUtilities.Create(str); _customFrequencyNames.Add(freq, str); - NumberOfFrequencies++; + NumberOfFrequencies = EnumUtils.GetValues().Length; // This stuff happens after the signalscope is Awake so we have to change the number of frequencies now GameObject.FindObjectOfType()._strongestSignals = new AudioSignal[NumberOfFrequencies + 1]; @@ -119,14 +75,15 @@ namespace NewHorizons.Builder.Props public static SignalName AddSignalName(string str) { + var name = CollectionUtilities.KeyByValue(_customSignalNames, str); + if (name != default) return name; + Logger.Log($"Registering new signal name [{str}]"); - SignalName newName; - if (_availableSignalNames.Count == 0) newName = (SignalName)_nextCustomSignalName++; - else newName = _availableSignalNames.Pop(); + name = EnumUtilities.Create(str); + _customSignalNames.Add(name, str); - _customSignalNames.Add(newName, str); - return newName; + return name; } public static string GetCustomSignalName(SignalName signalName) @@ -228,27 +185,12 @@ namespace NewHorizons.Builder.Props private static SignalFrequency StringToFrequency(string str) { - foreach (SignalFrequency freq in Enum.GetValues(typeof(SignalFrequency))) - { - if (str.Equals(freq.ToString())) return freq; - } - var customName = CollectionUtilities.KeyByValue(_customFrequencyNames, str); - - if (customName == default) customName = AddFrequency(str); - - return customName; + return EnumUtils.IsDefined(str) ? EnumUtils.Parse(str, SignalFrequency.Default) : AddFrequency(str); } public static SignalName StringToSignalName(string str) { - foreach (SignalName name in Enum.GetValues(typeof(SignalName))) - { - if (str.Equals(name.ToString())) return name; - } - var customName = CollectionUtilities.KeyByValue(_customSignalNames, str); - if (customName == default) customName = AddSignalName(str); - - return customName; + return EnumUtils.IsDefined(str) ? EnumUtils.Parse(str, SignalName.Default) : AddSignalName(str); } } } diff --git a/NewHorizons/Handlers/AudioTypeHandler.cs b/NewHorizons/Handlers/AudioTypeHandler.cs index 698514c8..f3ca7db0 100644 --- a/NewHorizons/Handlers/AudioTypeHandler.cs +++ b/NewHorizons/Handlers/AudioTypeHandler.cs @@ -1,5 +1,6 @@ using NewHorizons.Utility; using OWML.Common; +using OWML.Utils; using System; using System.Collections.Generic; using System.Linq; @@ -12,7 +13,6 @@ namespace NewHorizons.Handlers { private static Dictionary _customAudioTypes; private static List _audioEntries; - private static int _startingInt = 4000; public static void Init() { @@ -47,7 +47,7 @@ namespace NewHorizons.Handlers } else { - return (AudioType)Enum.Parse(typeof(AudioType), audio); + return EnumUtils.Parse(audio); } } catch (Exception e) @@ -79,9 +79,9 @@ namespace NewHorizons.Handlers // Create a custom audio type from a set of audio clips. Needs a unique ID public static AudioType AddCustomAudioType(string id, AudioClip[] audioClips) { - var audioType = (AudioType)_startingInt + _customAudioTypes.Count(); + Logger.LogVerbose($"Registering new audio type [{id}]"); - Logger.LogVerbose($"Registering custom audio type {id} as {audioType}"); + var audioType = EnumUtilities.Create(id); _audioEntries.Add(new AudioLibrary.AudioEntry(audioType, audioClips)); _customAudioTypes.Add(id, audioType); diff --git a/NewHorizons/Handlers/RemoteHandler.cs b/NewHorizons/Handlers/RemoteHandler.cs index 1d7a647a..a8f3aaf4 100644 --- a/NewHorizons/Handlers/RemoteHandler.cs +++ b/NewHorizons/Handlers/RemoteHandler.cs @@ -1,5 +1,6 @@ using NewHorizons.Utility; using OWML.Common; +using OWML.Utils; using System; using System.Collections.Generic; using System.Linq; @@ -11,7 +12,6 @@ namespace NewHorizons.Handlers public static class RemoteHandler { private static Dictionary _customPlatformIDs; - private static readonly int _startingInt = 19; public static void Init() { @@ -41,10 +41,14 @@ namespace NewHorizons.Handlers try { NomaiRemoteCameraPlatform.ID platformID; - if (_customPlatformIDs.TryGetValue(id, out platformID) || Enum.TryParse(id, true, out platformID)) + if (_customPlatformIDs.TryGetValue(id, out platformID)) { return platformID; } + else if (EnumUtils.IsDefined(id)) + { + return EnumUtils.Parse(id); + } else { return AddCustomPlatformID(id); @@ -52,16 +56,16 @@ namespace NewHorizons.Handlers } catch (Exception e) { - Logger.LogError($"Couldn't load platform id:\n{e}"); + Logger.LogError($"Couldn't load platform id [{id}]:\n{e}"); return NomaiRemoteCameraPlatform.ID.None; } } public static NomaiRemoteCameraPlatform.ID AddCustomPlatformID(string id) { - var platformID = (NomaiRemoteCameraPlatform.ID)_startingInt + _customPlatformIDs.Count(); + Logger.LogVerbose($"Registering new platform id [{id}]"); - Logger.LogVerbose($"Registering custom platform id {id} as {platformID}"); + var platformID = EnumUtilities.Create(id); _customPlatformIDs.Add(id, platformID); diff --git a/NewHorizons/Main.cs b/NewHorizons/Main.cs index cb64f092..9015bd32 100644 --- a/NewHorizons/Main.cs +++ b/NewHorizons/Main.cs @@ -24,6 +24,7 @@ using UnityEngine.SceneManagement; using Logger = NewHorizons.Utility.Logger; using NewHorizons.OtherMods.OWRichPresence; using NewHorizons.Components.SizeControllers; +using OWML.Utils; namespace NewHorizons { @@ -228,6 +229,7 @@ namespace NewHorizons ImageUtilities.ClearCache(); AudioUtilities.ClearCache(); AssetBundleUtilities.ClearCache(); + EnumUtilities.ClearCache(); IsSystemReady = false; } @@ -567,7 +569,7 @@ namespace NewHorizons private void LoadTranslations(string folder, IModBehaviour mod) { var foundFile = false; - foreach (TextTranslation.Language language in Enum.GetValues(typeof(TextTranslation.Language))) + foreach (TextTranslation.Language language in EnumUtils.GetValues()) { if (language == TextTranslation.Language.UNKNOWN || language == TextTranslation.Language.TOTAL) continue; diff --git a/NewHorizons/Utility/AudioUtilities.cs b/NewHorizons/Utility/AudioUtilities.cs index d78e5b53..985c06b7 100644 --- a/NewHorizons/Utility/AudioUtilities.cs +++ b/NewHorizons/Utility/AudioUtilities.cs @@ -1,4 +1,5 @@ using OWML.Common; +using OWML.Utils; using System; using System.Collections.Generic; using System.Linq; @@ -35,8 +36,7 @@ namespace NewHorizons.Utility try { - var audioType = (AudioType)Enum.Parse(typeof(AudioType), audio); - source._audioLibraryClip = audioType; + source._audioLibraryClip = EnumUtils.Parse(audio); } catch { diff --git a/NewHorizons/Utility/EnumUtilities.cs b/NewHorizons/Utility/EnumUtilities.cs new file mode 100644 index 00000000..fa202c19 --- /dev/null +++ b/NewHorizons/Utility/EnumUtilities.cs @@ -0,0 +1,48 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using OWML.Utils; + +namespace NewHorizons.Utility +{ + public static class EnumUtilities + { + private static List Enums = new List(); + + public static void ClearCache() + { + foreach (var @enum in Enums) + { + if (@enum == null) continue; + EnumUtils.Remove(@enum.GetType(), @enum); + } + Enums.Clear(); + } + + public static T Create(string name) where T : Enum + { + T @enum = EnumUtils.Create(name); + Enums.SafeAdd(@enum); + return @enum; + } + + public static void Create(string name, T value) where T : Enum + { + EnumUtils.Create(name, value); + Enums.SafeAdd(value); + } + + public static void Remove(string name) where T : Enum + { + T @enum = EnumUtils.Parse(name); + Enums.Remove(@enum); + EnumUtils.Remove(name); + } + + public static void Remove(T value) where T : Enum + { + Enums.Remove(value); + EnumUtils.Remove(value); + } + } +} diff --git a/NewHorizons/Utility/NewHorizonExtensions.cs b/NewHorizons/Utility/NewHorizonExtensions.cs index 389975be..5817bdd6 100644 --- a/NewHorizons/Utility/NewHorizonExtensions.cs +++ b/NewHorizons/Utility/NewHorizonExtensions.cs @@ -1,6 +1,7 @@ using NewHorizons.External.Configs; using NewHorizons.External.Modules; using Newtonsoft.Json; +using OWML.Utils; using System; using System.Collections.Generic; using System.IO; @@ -217,17 +218,6 @@ namespace NewHorizons.Utility return xCorrect && yCorrect && zCorrect; } - public static FluidVolume.Type ConvertToOW(this FluidType fluidType, FluidVolume.Type @default = FluidVolume.Type.NONE) - { - try - { - return (FluidVolume.Type)Enum.Parse(typeof(FluidVolume.Type), Enum.GetName(typeof(FluidType), fluidType).ToUpper()); - } - catch (Exception ex) - { - Logger.LogError($"Couldn't parse fluid volume type [{fluidType}]:\n{ex}"); - return @default; - } - } + public static FluidVolume.Type ConvertToOW(this FluidType fluidType, FluidVolume.Type @default = FluidVolume.Type.NONE) => EnumUtils.Parse(fluidType.ToString().ToUpper(), @default); } } From a772443c811db67709976cf2d37571c32dc91caf Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Thu, 1 Sep 2022 07:18:53 -0400 Subject: [PATCH 2/5] Forgor curiosity name --- NewHorizons/Builder/ShipLog/RumorModeBuilder.cs | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/NewHorizons/Builder/ShipLog/RumorModeBuilder.cs b/NewHorizons/Builder/ShipLog/RumorModeBuilder.cs index a5c18d78..ebeed076 100644 --- a/NewHorizons/Builder/ShipLog/RumorModeBuilder.cs +++ b/NewHorizons/Builder/ShipLog/RumorModeBuilder.cs @@ -2,6 +2,7 @@ using NewHorizons.External.Configs; using NewHorizons.External.Modules; using NewHorizons.Handlers; using NewHorizons.Utility; +using OWML.Utils; using System; using System.Collections.Generic; using System.Xml.Linq; @@ -13,14 +14,12 @@ namespace NewHorizons.Builder.ShipLog { private static Dictionary _curiosityColors; private static Dictionary _curiosityHighlightColors; - private static Dictionary _rawNameToCuriosityName; private static Dictionary _entryIdToRawName; public static void Init() { _curiosityColors = new Dictionary(); _curiosityHighlightColors = new Dictionary(); - _rawNameToCuriosityName = new Dictionary(); _entryIdToRawName = new Dictionary(); } @@ -28,10 +27,9 @@ namespace NewHorizons.Builder.ShipLog { foreach (ShipLogModule.CuriosityColorInfo newColor in newColors) { - if (_rawNameToCuriosityName.ContainsKey(newColor.id) == false) + if (!EnumUtils.IsDefined(newColor.id)) { - CuriosityName newName = (CuriosityName)8 + _rawNameToCuriosityName.Count; - _rawNameToCuriosityName.Add(newColor.id, newName); + CuriosityName newName = EnumUtilities.Create(newColor.id); _curiosityColors.Add(newName, newColor.color.ToColor()); _curiosityHighlightColors.Add(newName, newColor.highlightColor.ToColor()); } @@ -192,9 +190,9 @@ namespace NewHorizons.Builder.ShipLog if (_entryIdToRawName.ContainsKey(entry._id)) { var raw = _entryIdToRawName[entry._id]; - if (_rawNameToCuriosityName.ContainsKey(raw)) + if (EnumUtils.IsDefined(raw)) { - entry._curiosity = _rawNameToCuriosityName[raw]; + entry._curiosity = EnumUtils.Parse(raw); } else { From d565ac52d1532f1508d35433af7a11a0946dd91f Mon Sep 17 00:00:00 2001 From: Noah Pilarski Date: Mon, 19 Sep 2022 02:38:56 -0400 Subject: [PATCH 3/5] Use TryParse instead --- NewHorizons/Builder/Props/SignalBuilder.cs | 4 ++-- NewHorizons/Builder/ShipLog/RumorModeBuilder.cs | 4 ++-- NewHorizons/Handlers/RemoteHandler.cs | 6 +----- NewHorizons/NewHorizons.csproj | 4 ++-- NewHorizons/Utility/AudioUtilities.cs | 6 +++--- 5 files changed, 10 insertions(+), 14 deletions(-) diff --git a/NewHorizons/Builder/Props/SignalBuilder.cs b/NewHorizons/Builder/Props/SignalBuilder.cs index cb47d90c..be694a65 100644 --- a/NewHorizons/Builder/Props/SignalBuilder.cs +++ b/NewHorizons/Builder/Props/SignalBuilder.cs @@ -185,12 +185,12 @@ namespace NewHorizons.Builder.Props private static SignalFrequency StringToFrequency(string str) { - return EnumUtils.IsDefined(str) ? EnumUtils.Parse(str, SignalFrequency.Default) : AddFrequency(str); + return EnumUtils.TryParse(str, out SignalFrequency frequency) ? frequency : AddFrequency(str); } public static SignalName StringToSignalName(string str) { - return EnumUtils.IsDefined(str) ? EnumUtils.Parse(str, SignalName.Default) : AddSignalName(str); + return EnumUtils.TryParse(str, out SignalName name) ? name : AddSignalName(str); } } } diff --git a/NewHorizons/Builder/ShipLog/RumorModeBuilder.cs b/NewHorizons/Builder/ShipLog/RumorModeBuilder.cs index 84874a20..ed717557 100644 --- a/NewHorizons/Builder/ShipLog/RumorModeBuilder.cs +++ b/NewHorizons/Builder/ShipLog/RumorModeBuilder.cs @@ -191,9 +191,9 @@ namespace NewHorizons.Builder.ShipLog if (_entryIdToRawName.ContainsKey(entry._id)) { var raw = _entryIdToRawName[entry._id]; - if (EnumUtils.IsDefined(raw)) + if (EnumUtils.TryParse(raw, out CuriosityName name)) { - entry._curiosity = EnumUtils.Parse(raw); + entry._curiosity = name; } else { diff --git a/NewHorizons/Handlers/RemoteHandler.cs b/NewHorizons/Handlers/RemoteHandler.cs index a8f3aaf4..a012074f 100644 --- a/NewHorizons/Handlers/RemoteHandler.cs +++ b/NewHorizons/Handlers/RemoteHandler.cs @@ -41,14 +41,10 @@ namespace NewHorizons.Handlers try { NomaiRemoteCameraPlatform.ID platformID; - if (_customPlatformIDs.TryGetValue(id, out platformID)) + if (_customPlatformIDs.TryGetValue(id, out platformID) || EnumUtils.TryParse(id, out platformID)) { return platformID; } - else if (EnumUtils.IsDefined(id)) - { - return EnumUtils.Parse(id); - } else { return AddCustomPlatformID(id); diff --git a/NewHorizons/NewHorizons.csproj b/NewHorizons/NewHorizons.csproj index a4e7f6e4..f232a410 100644 --- a/NewHorizons/NewHorizons.csproj +++ b/NewHorizons/NewHorizons.csproj @@ -1,4 +1,4 @@ - + net48 default @@ -16,7 +16,7 @@ - + diff --git a/NewHorizons/Utility/AudioUtilities.cs b/NewHorizons/Utility/AudioUtilities.cs index 128f7854..5db65386 100644 --- a/NewHorizons/Utility/AudioUtilities.cs +++ b/NewHorizons/Utility/AudioUtilities.cs @@ -35,11 +35,11 @@ namespace NewHorizons.Utility } } - try + if (EnumUtils.TryParse(audio, out AudioType type)) { - source._audioLibraryClip = EnumUtils.Parse(audio); + source._audioLibraryClip = type; } - catch + else { var audioClip = SearchUtilities.FindResourceOfTypeAndName(audio); if (audioClip == null) Logger.Log($"Couldn't find audio clip {audio}"); From b1113e3eb2f34bf899720289b09df7aafe8adb75 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Mon, 3 Oct 2022 22:05:16 +0000 Subject: [PATCH 4/5] Updated Schemas --- NewHorizons/Schemas/body_schema.json | 6 ------ 1 file changed, 6 deletions(-) diff --git a/NewHorizons/Schemas/body_schema.json b/NewHorizons/Schemas/body_schema.json index 75424b21..ddfb16c5 100644 --- a/NewHorizons/Schemas/body_schema.json +++ b/NewHorizons/Schemas/body_schema.json @@ -34,12 +34,6 @@ "description": "Add bramble nodes to this planet and/or make this planet a bramble dimension", "$ref": "#/definitions/BrambleModule" }, - "buildPriority": { - "type": "integer", - "description": "Set to a higher number if you wish for this body to be built sooner", - "format": "int32", - "default": -1 - }, "canShowOnTitle": { "type": "boolean", "description": "Should this planet ever be shown on the title screen?", From 50a4422c793a5a2a4f1aa043b529796c9a3557e4 Mon Sep 17 00:00:00 2001 From: Nick Date: Mon, 3 Oct 2022 21:04:53 -0400 Subject: [PATCH 5/5] var --- NewHorizons/Builder/General/SectorBuilder.cs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/NewHorizons/Builder/General/SectorBuilder.cs b/NewHorizons/Builder/General/SectorBuilder.cs index 16800cf9..467ed91f 100644 --- a/NewHorizons/Builder/General/SectorBuilder.cs +++ b/NewHorizons/Builder/General/SectorBuilder.cs @@ -5,16 +5,16 @@ namespace NewHorizons.Builder.General { public static class SectorBuilder { - private static Sector.Name Name = EnumUtils.Create("NewHorizons"); + private static readonly Sector.Name Name = EnumUtils.Create("NewHorizons"); public static Sector Make(GameObject planetBody, OWRigidbody owRigidBody, float sphereOfInfluence) { - GameObject sectorGO = new GameObject("Sector"); + var sectorGO = new GameObject("Sector"); sectorGO.SetActive(false); sectorGO.transform.parent = planetBody.transform; sectorGO.transform.localPosition = Vector3.zero; - SphereShape SS = sectorGO.AddComponent(); + var SS = sectorGO.AddComponent(); SS.SetCollisionMode(Shape.CollisionMode.Volume); SS.SetLayer(Shape.Layer.Sector); SS.layerMask = -1; @@ -24,7 +24,7 @@ namespace NewHorizons.Builder.General sectorGO.AddComponent(); - Sector S = sectorGO.AddComponent(); + var S = sectorGO.AddComponent(); S._name = Name; S._attachedOWRigidbody = owRigidBody; S._subsectors = new List(); @@ -39,12 +39,12 @@ namespace NewHorizons.Builder.General { if (parent == null) return null; - GameObject sectorGO = new GameObject("Sector"); + var sectorGO = new GameObject("Sector"); sectorGO.SetActive(false); sectorGO.transform.parent = planetBody.transform; sectorGO.transform.localPosition = Vector3.zero; - Sector S = sectorGO.AddComponent(); + var S = sectorGO.AddComponent(); S._idString = parent._idString; S._name = parent._name; S._attachedOWRigidbody = owRigidBody;