mirror of
https://github.com/Outer-Wilds-New-Horizons/new-horizons.git
synced 2025-12-11 20:15:44 +01:00
AudioUtilities method to set audio from AudioType, existing AudioClip, or file
This commit is contained in:
parent
4a01e93ac6
commit
2a3ffcc268
@ -1,4 +1,6 @@
|
|||||||
using System.Collections.Generic;
|
using OWML.Common;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
using System.Linq;
|
using System.Linq;
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
@ -9,6 +11,34 @@ namespace NewHorizons.Utility
|
|||||||
{
|
{
|
||||||
private static Dictionary<string, AudioClip> _loadedAudioClips = new Dictionary<string, AudioClip>();
|
private static Dictionary<string, AudioClip> _loadedAudioClips = new Dictionary<string, AudioClip>();
|
||||||
|
|
||||||
|
public static void SetAudioClip(OWAudioSource source, string audio, IModBehaviour mod)
|
||||||
|
{
|
||||||
|
if (audio.Contains(".wav") || audio.Contains(".ogg"))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var clip = LoadAudio(mod.ModHelper.Manifest.ModFolderPath + "/" + audio);
|
||||||
|
source.clip = clip;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Logger.LogError($"Could not load file {audio}");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var audioType = (AudioType)Enum.Parse(typeof(AudioType), audio);
|
||||||
|
source._audioLibraryClip = audioType;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
var audioClip = SearchUtilities.FindResourceOfTypeAndName<AudioClip>(audio);
|
||||||
|
if (audioClip == null) Logger.Log($"Couldn't find audio clip {audio}");
|
||||||
|
else source.clip = audioClip;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static AudioClip LoadAudio(string path)
|
public static AudioClip LoadAudio(string path)
|
||||||
{
|
{
|
||||||
if (_loadedAudioClips.ContainsKey(path))
|
if (_loadedAudioClips.ContainsKey(path))
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user