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; /// /// Disables supernova trigger /// [HarmonyPrefix] [HarmonyPatch(typeof(TimeLoop), nameof(TimeLoop.Update))] public static bool TimeLoop_Update() => Main.Instance.TimeLoopEnabled; } }