From 5a4f5ac2070d7c622a25aa6314bbba11ef9b35ee Mon Sep 17 00:00:00 2001 From: Nick Date: Wed, 13 Jul 2022 20:22:05 -0400 Subject: [PATCH] Use new audio setting method for signals, unify audioClip and audioFilePath --- NewHorizons/Builder/Props/SignalBuilder.cs | 25 ++++---------------- NewHorizons/External/Modules/SignalModule.cs | 16 +++++++------ 2 files changed, 13 insertions(+), 28 deletions(-) diff --git a/NewHorizons/Builder/Props/SignalBuilder.cs b/NewHorizons/Builder/Props/SignalBuilder.cs index 87b2e7c3..297093ae 100644 --- a/NewHorizons/Builder/Props/SignalBuilder.cs +++ b/NewHorizons/Builder/Props/SignalBuilder.cs @@ -153,23 +153,6 @@ namespace NewHorizons.Builder.Props var frequency = StringToFrequency(info.frequency); var name = StringToSignalName(info.name); - AudioClip clip = null; - if (!string.IsNullOrEmpty(info.audioClip)) clip = SearchUtilities.FindResourceOfTypeAndName(info.audioClip); - else if (!string.IsNullOrEmpty(info.audioFilePath)) - { - try - { - clip = AudioUtilities.LoadAudio(mod.ModHelper.Manifest.ModFolderPath + "/" + info.audioFilePath); - } - catch { } - } - - if (clip == null) - { - Logger.LogError($"Couldn't find AudioClip {info.audioClip} or AudioFile {info.audioFilePath}"); - return null; - } - audioSignal.SetSector(sector); if (name == SignalName.Default) audioSignal._preventIdentification = true; @@ -182,13 +165,12 @@ namespace NewHorizons.Builder.Props audioSignal._identificationDistance = info.identificationRadius; audioSignal._canBePickedUpByScope = true; audioSignal._outerFogWarpVolume = planetGO.GetComponentInChildren(); // shouldn't break non-bramble signals - - source.clip = clip; + source.loop = true; source.minDistance = 0; source.maxDistance = 30; source.velocityUpdateMode = AudioVelocityUpdateMode.Fixed; - source.rolloffMode = AudioRolloffMode.Custom; + source.rolloffMode = AudioRolloffMode.Custom; if (_customCurve == null) _customCurve = SearchUtilities.Find("Moon_Body/Sector_THM/Characters_THM/Villager_HEA_Esker/Signal_Whistling").GetComponent().GetCustomCurve(AudioSourceCurveType.CustomRolloff); @@ -200,7 +182,8 @@ namespace NewHorizons.Builder.Props source.volume = 0.5f; source.dopplerLevel = 0; - owAudioSource.SetTrack(OWAudioMixer.TrackName.Signal); + owAudioSource.SetTrack(OWAudioMixer.TrackName.Signal); + AudioUtilities.SetAudioClip(owAudioSource, info.audio, mod); // Frequency detection trigger volume diff --git a/NewHorizons/External/Modules/SignalModule.cs b/NewHorizons/External/Modules/SignalModule.cs index 19a86fee..0e4b7b05 100644 --- a/NewHorizons/External/Modules/SignalModule.cs +++ b/NewHorizons/External/Modules/SignalModule.cs @@ -1,4 +1,5 @@ -using System.ComponentModel; +using System; +using System.ComponentModel; using System.ComponentModel.DataAnnotations; using NewHorizons.Utility; using Newtonsoft.Json; @@ -16,16 +17,17 @@ namespace NewHorizons.External.Modules [JsonObject] public class SignalInfo { - /// - /// Name of an existing AudioClip in the game that will player over the signal. - /// + [Obsolete("audioClip is deprecated, please use RemoveChildren instead")] public string audioClip; - /// - /// Relative filepath to the .wav file to use as the audio. Mutually exclusive with audioClip. - /// + [Obsolete("audioFilePath is deprecated, please use RemoveChildren instead")] public string audioFilePath; + /// + /// The audio to use. Can be a path to a .wav or .ogg file, or taken from the AudioClip list. + /// + public string audio; + /// /// How close the player must get to the signal to detect it. This is when you get the "Unknown Signal Detected" /// notification.