Fixed a bug where changing an existing AudioSource to use a specific AudioClip resource didn't work

This commit is contained in:
xen-42 2025-04-08 11:54:07 -04:00
parent ee776e384b
commit e02dd94cad
2 changed files with 14 additions and 4 deletions

View File

@ -2,7 +2,6 @@ using NewHorizons.External.SerializableData;
using NewHorizons.External.SerializableEnums; using NewHorizons.External.SerializableEnums;
using Newtonsoft.Json; using Newtonsoft.Json;
using System.ComponentModel; using System.ComponentModel;
using System.ComponentModel.DataAnnotations;
namespace NewHorizons.External.Modules namespace NewHorizons.External.Modules
{ {

View File

@ -27,23 +27,34 @@ namespace NewHorizons.Utility.Files
source._clipArrayLength = 0; source._clipArrayLength = 0;
source._clipSelectionOnPlay = OWAudioSource.ClipSelectionOnPlay.MANUAL; source._clipSelectionOnPlay = OWAudioSource.ClipSelectionOnPlay.MANUAL;
source.clip = clip; source.clip = clip;
NHLogger.LogVerbose($"[{nameof(AudioUtilities)}] : Audio {audio} was loaded from a file");
return; return;
} }
catch catch
{ {
NHLogger.LogError($"Could not load file {audio}"); NHLogger.LogError($"[{nameof(AudioUtilities)}] : Could not load file {audio}");
} }
} }
if (EnumUtils.TryParse(audio, out AudioType type)) if (EnumUtils.TryParse(audio, out AudioType type))
{ {
source._audioLibraryClip = type; source._audioLibraryClip = type;
NHLogger.LogVerbose($"[{nameof(AudioUtilities)}] : Audio {audio} was an AudioType enum");
} }
else else
{ {
var audioClip = SearchUtilities.FindResourceOfTypeAndName<AudioClip>(audio); var audioClip = SearchUtilities.FindResourceOfTypeAndName<AudioClip>(audio);
if (audioClip == null) NHLogger.Log($"Couldn't find audio clip {audio}"); if (audioClip == null)
else source.clip = audioClip; {
NHLogger.LogError($"[{nameof(AudioUtilities)}] : Couldn't find audio clip {audio}");
}
else
{
NHLogger.LogVerbose($"[{nameof(AudioUtilities)}] : Audio {audio} was an AudioClip resource");
// Else if this is set it will try to change the clip back when it starts playing
source._audioLibraryClip = AudioType.None;
source.clip = audioClip;
}
} }
} }