diff --git a/NewHorizons/Builder/Volumes/AudioVolumeBuilder.cs b/NewHorizons/Builder/Volumes/AudioVolumeBuilder.cs index 6b961a79..9b742f83 100644 --- a/NewHorizons/Builder/Volumes/AudioVolumeBuilder.cs +++ b/NewHorizons/Builder/Volumes/AudioVolumeBuilder.cs @@ -3,6 +3,7 @@ using NewHorizons.External.Modules.Volumes.VolumeInfos; using NewHorizons.Utility; using NewHorizons.Utility.Files; using NewHorizons.Utility.OuterWilds; +using NewHorizons.Utility.OWML; using OWML.Common; using UnityEngine; @@ -24,6 +25,11 @@ namespace NewHorizons.Builder.Volumes owAudioSource.SetClipSelectionType(info.clipSelection.ConvertToOW()); owAudioSource.SetTrack(info.track.ConvertToOW()); AudioUtilities.SetAudioClip(owAudioSource, info.audio, mod); + Delay.FireOnNextUpdate(() => + { + owAudioSource.spatialBlend = info.spatialBlend ? 1 : 0; + owAudioSource.spread = info.spread; + }); var audioVolume = go.AddComponent(); audioVolume._layer = info.layer; diff --git a/NewHorizons/External/Modules/Volumes/VolumeInfos/AudioVolumeInfo.cs b/NewHorizons/External/Modules/Volumes/VolumeInfos/AudioVolumeInfo.cs index 6334ace0..42347ef2 100644 --- a/NewHorizons/External/Modules/Volumes/VolumeInfos/AudioVolumeInfo.cs +++ b/NewHorizons/External/Modules/Volumes/VolumeInfos/AudioVolumeInfo.cs @@ -52,6 +52,18 @@ namespace NewHorizons.External.Modules.Volumes.VolumeInfos /// Pause the music when exiting the volume. /// public bool pauseOnFadeOut; + + /// + /// Whether the audio sounds like it emits from the center of the volume. + /// + public bool spatialBlend; + + /// + /// If spatialBlend is true, how much does the direction of audio "spread" out from facing the center, between 0 and 180 degrees. + /// + [Range(0f, 180f)] + [DefaultValue(180f)] + public float spread = 180f; } }