using HarmonyLib;
namespace NewHorizons.Patches
{
[HarmonyPatch]
public static class TimeLoopPatches
{
///
/// Disables starfield updates
///
[HarmonyPrefix]
[HarmonyPatch(typeof(StarfieldController), nameof(StarfieldController.Update))]
public static bool StarfieldController_Update() => Main.Instance.TimeLoopEnabled;
///
/// Disables interloper destruction
///
[HarmonyPrefix]
[HarmonyPatch(typeof(TempCometCollisionFix), nameof(TempCometCollisionFix.Update))]
public static bool TempCometCollisionFix_Update() => Main.Instance.TimeLoopEnabled;
///
/// Disables sun logic
///
[HarmonyPrefix]
[HarmonyPatch(typeof(SunController), nameof(SunController.Update))]
public static bool SunController_Update(SunController __instance) => Main.Instance.TimeLoopEnabled && __instance.isActiveAndEnabled;
///
/// Disables sun expansion
///
[HarmonyPrefix]
[HarmonyPatch(typeof(SunController), nameof(SunController.UpdateScale))]
public static bool SunController_UpdateScale(SunController __instance) => Main.Instance.TimeLoopEnabled && __instance.isActiveAndEnabled;
///
/// Disables sun collapse SFX
///
[HarmonyPrefix]
[HarmonyPatch(typeof(SunController), nameof(SunController.OnTriggerSupernova))]
public static bool SunController_OnTriggerSupernova(SunController __instance) => Main.Instance.TimeLoopEnabled && __instance.isActiveAndEnabled;
///
/// Disables end times music
///
[HarmonyPrefix]
[HarmonyPatch(typeof(GlobalMusicController), nameof(GlobalMusicController.UpdateEndTimesMusic))]
public static bool GlobalMusicController_UpdateEndTimesMusic() => Main.Instance.TimeLoopEnabled;
}
}