Upload from upload_mods.ps1
This commit is contained in:
125
Harmony/Harmony_AudioObject.cs
Normal file
125
Harmony/Harmony_AudioObject.cs
Normal file
@@ -0,0 +1,125 @@
|
||||
using Audio;
|
||||
using System.Linq;
|
||||
using static UIBasicSprite;
|
||||
|
||||
namespace Harmony.AudioObjectPatches
|
||||
{
|
||||
|
||||
[HarmonyPatch(typeof(EnvironmentAudioManager))]
|
||||
[HarmonyPatch("InitSounds")]
|
||||
public class InitSoundsPatch
|
||||
{
|
||||
public static bool Prefix(EnvironmentAudioManager __instance)
|
||||
{
|
||||
AudioObject[] audioObjectArray = new AudioObject[0 + __instance.mixedBiomeSounds.Length + __instance.forestOnlyBiomeSounds.Length + __instance.snowOnlyBiomeSounds.Length + __instance.desertOnlyBiomeSounds.Length + __instance.wastelandOnlyBiomeSounds.Length + __instance.waterOnlyBiomeSounds.Length + __instance.burnt_forestOnlyBiomeSounds.Length];
|
||||
int num1 = 0;
|
||||
foreach (AudioObject mixedBiomeSound in __instance.mixedBiomeSounds)
|
||||
{
|
||||
//Log.Out("AudioObjectPatches-InitSounds mixedBiomeSound.name: " + mixedBiomeSound.name);
|
||||
//Log.Out("AudioObjectPatches-InitSounds mixedBiomeSound.audioClips.Length: " + mixedBiomeSound.audioClips.Length);
|
||||
audioObjectArray[num1++] = mixedBiomeSound;
|
||||
}
|
||||
foreach (AudioObject forestOnlyBiomeSound in __instance.forestOnlyBiomeSounds)
|
||||
{
|
||||
//Log.Out("AudioObjectPatches-InitSounds forestOnlyBiomeSound.name: " + forestOnlyBiomeSound.name);
|
||||
//Log.Out("AudioObjectPatches-InitSounds forestOnlyBiomeSound.audioClips.Length: " + forestOnlyBiomeSound.audioClips.Length);
|
||||
audioObjectArray[num1++] = forestOnlyBiomeSound;
|
||||
}
|
||||
foreach (AudioObject snowOnlyBiomeSound in __instance.snowOnlyBiomeSounds)
|
||||
{
|
||||
//Log.Out("AudioObjectPatches-InitSounds snowOnlyBiomeSound.name: " + snowOnlyBiomeSound.name);
|
||||
//Log.Out("AudioObjectPatches-InitSounds snowOnlyBiomeSound.audioClips.Length: " + snowOnlyBiomeSound.audioClips.Length);
|
||||
audioObjectArray[num1++] = snowOnlyBiomeSound;
|
||||
}
|
||||
foreach (AudioObject desertOnlyBiomeSound in __instance.desertOnlyBiomeSounds)
|
||||
{
|
||||
//Log.Out("AudioObjectPatches-InitSounds desertOnlyBiomeSound.name: " + desertOnlyBiomeSound.name);
|
||||
//Log.Out("AudioObjectPatches-InitSounds desertOnlyBiomeSound.audioClips.Length: " + desertOnlyBiomeSound.audioClips.Length);
|
||||
audioObjectArray[num1++] = desertOnlyBiomeSound;
|
||||
}
|
||||
foreach (AudioObject wastelandOnlyBiomeSound in __instance.wastelandOnlyBiomeSounds)
|
||||
{
|
||||
//Log.Out("AudioObjectPatches-InitSounds wastelandOnlyBiomeSound.name: " + wastelandOnlyBiomeSound.name);
|
||||
//Log.Out("AudioObjectPatches-InitSounds wastelandOnlyBiomeSound.audioClips.Length: " + wastelandOnlyBiomeSound.audioClips.Length);
|
||||
audioObjectArray[num1++] = wastelandOnlyBiomeSound;
|
||||
}
|
||||
foreach (AudioObject waterOnlyBiomeSound in __instance.waterOnlyBiomeSounds)
|
||||
{
|
||||
//Log.Out("AudioObjectPatches-InitSounds waterOnlyBiomeSound.name: " + waterOnlyBiomeSound.name);
|
||||
//Log.Out("AudioObjectPatches-InitSounds waterOnlyBiomeSound.audioClips.Length: " + waterOnlyBiomeSound.audioClips.Length);
|
||||
audioObjectArray[num1++] = waterOnlyBiomeSound;
|
||||
}
|
||||
foreach (AudioObject forestOnlyBiomeSound in __instance.burnt_forestOnlyBiomeSounds)
|
||||
{
|
||||
//Log.Out("AudioObjectPatches-InitSounds forestOnlyBiomeSound.name: " + forestOnlyBiomeSound.name);
|
||||
//Log.Out("AudioObjectPatches-InitSounds forestOnlyBiomeSound.audioClips.Length: " + forestOnlyBiomeSound.audioClips.Length);
|
||||
audioObjectArray[num1++] = forestOnlyBiomeSound;
|
||||
}
|
||||
int num2 = 0;
|
||||
foreach (AudioObject _audioObject in audioObjectArray)
|
||||
{
|
||||
if (RebirthUtilities.ScenarioSkip() && _audioObject.name == "Birds_Loops")
|
||||
continue;
|
||||
|
||||
//Log.Out("AudioObjectPatches-InitSounds _audioObject NAME: " + _audioObject.name);
|
||||
//Log.Out("AudioObjectPatches-InitSounds validBiomes.Length: " + _audioObject.validBiomes.Length);
|
||||
foreach (int validBiome in _audioObject.validBiomes)
|
||||
{
|
||||
__instance.audioBiomes[validBiome].Add(_audioObject);
|
||||
if (_audioObject.trigger == AudioObject.Trigger.Day7Times || _audioObject.trigger == AudioObject.Trigger.TimeOfDay)
|
||||
++num2;
|
||||
}
|
||||
_audioObject.Init();
|
||||
}
|
||||
__instance.fromBiomeLoops = __instance.audioBiomes[(int)__instance.fromBiome];
|
||||
__instance.toBiomeLoops = __instance.audioBiomes[(int)__instance.toBiome];
|
||||
__instance.soundsInitDone = true;
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
[HarmonyPatch(typeof(AudioObject))]
|
||||
[HarmonyPatch("Init")]
|
||||
public class InitPatch
|
||||
{
|
||||
public static bool Prefix(AudioObject __instance)
|
||||
{
|
||||
foreach (AudioClip audioClip in __instance.audioClips)
|
||||
{
|
||||
if (RebirthUtilities.ScenarioSkip() && (audioClip.name == "a_daybreak_oneshot" ||
|
||||
audioClip.name == "a_nightfall_oneshot" ||
|
||||
audioClip.name == "a_bloodmoon_oneshot")
|
||||
)
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
if ((UnityEngine.Object)audioClip != (UnityEngine.Object)null)
|
||||
{
|
||||
AudioSource audioSource = UnityEngine.Object.Instantiate<AudioSource>(__instance.masterAudioSource);
|
||||
if (__instance.playOrder == AudioObject.PlayOrder.ByValue)
|
||||
{
|
||||
audioSource.transform.parent = EnvironmentAudioManager.Instance.transform;
|
||||
audioSource.loop = true;
|
||||
audioSource.gameObject.SetActive(false);
|
||||
}
|
||||
else
|
||||
audioSource.transform.parent = EnvironmentAudioManager.sourceSounds.transform;
|
||||
audioSource.clip = audioClip;
|
||||
audioSource.name = audioClip.name;
|
||||
//Log.Out("AudioObjectPatches-Init audioSource.name: " + audioSource.name);
|
||||
audioSource.volume = 0.0f;
|
||||
audioSource.outputAudioMixerGroup = __instance.audioMixerGroup;
|
||||
__instance.runtimeAudioSrcs.Add(audioSource);
|
||||
}
|
||||
}
|
||||
__instance.audioClips = (AudioClip[])null;
|
||||
if (__instance.trigger != AudioObject.Trigger.Random)
|
||||
return false;
|
||||
__instance.repeatTime = Time.time + Manager.random.RandomRange(__instance.repeatFreqRange.x, __instance.repeatFreqRange.y);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user