new-horizons/NewHorizons/Patches/SunPatches/SunSurfaceAudioControllerPatches.cs
2023-03-18 13:30:22 -04:00

23 lines
890 B
C#

using HarmonyLib;
using UnityEngine;
namespace NewHorizons.Patches.SunPatches
{
[HarmonyPatch(typeof(SunSurfaceAudioController))]
public static class SunSurfaceAudioControllerPatches
{
[HarmonyPrefix]
[HarmonyPatch(nameof(SunSurfaceAudioController.Update))]
public static bool SunSurfaceAudioController_Update(SunSurfaceAudioController __instance)
{
if (__instance._sunController != null) return true;
var surfaceRadius = __instance.transform.parent.parent.localScale.magnitude;
float value = Mathf.Max(0f, Vector3.Distance(Locator.GetPlayerCamera().transform.position, __instance.transform.position) - surfaceRadius);
float num = Mathf.InverseLerp(1600f, 100f, value);
__instance._audioSource.SetLocalVolume(num * num * __instance._fade);
return false;
}
}
}