diff --git a/NewHorizons/Patches/PlayerPatches/PlayerCameraControllerPatches.cs b/NewHorizons/Patches/PlayerPatches/PlayerCameraControllerPatches.cs new file mode 100644 index 00000000..12ae0e8c --- /dev/null +++ b/NewHorizons/Patches/PlayerPatches/PlayerCameraControllerPatches.cs @@ -0,0 +1,28 @@ +using HarmonyLib; +using NewHorizons.Utility.OWMLUtilities; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace NewHorizons.Patches.PlayerPatches +{ + [HarmonyPatch(typeof(PlayerCameraController))] + public static class PlayerCameraControllerPatches + { + [HarmonyPrefix] + [HarmonyPatch(nameof(PlayerCameraController.SnapToDegreesOverSeconds))] + public static bool PlayerCameraController_SnapToDegreesOverSeconds(PlayerCameraController __instance, float targetX, float targetY, float duration, bool smoothStep) + { + // AlignPlayerWithForce.OnSuitUp snaps the camera to center, but it never unsnaps because duration == 0f + if (duration <= 0f) + { + __instance._degreesX = targetX; + __instance._degreesY = targetY; + return false; + } + return true; + } + } +}