public static bool Prefix(CameraRig __instance, ref Vector3 ___m_TargetPosition) { if (!settings.toggleRotateOnAllMaps && !settings.toggleCameraPitch && !settings.toggleCameraElevation && !Main.resetExtraCameraAngles && !settings.toggleInvertXAxis && !settings.toggleInvertKeyboardXAxis) { return(true); } var usePitch = settings.toggleCameraPitch; if (__instance.m_RotateRoutine != null && (double)Time.time > (double)__instance.m_RotateRoutineEndsOn) { __instance.StopCoroutine(__instance.m_RotateRoutine); __instance.m_RotateRoutine = (Coroutine)null; } if (__instance.m_ScrollRoutine != null || __instance.m_RotateRoutine != null)// || __instance.m_HandRotationLock) { return(false); } __instance.RotateByMiddleButton(); var mouseMovement = new Vector2(0, 0); var xRotationSign = 1f; var yRotationSign = settings.toggleInvertYAxis ? 1f : -1f; if (__instance.m_RotationByMouse) { if (!settings.toggleInvertXAxis) { xRotationSign = -1; } mouseMovement = __instance.CameraDragToRotate2D(); } else if (__instance.m_RotationByKeyboard) { mouseMovement.x = __instance.m_RotateOffset; if (settings.toggleInvertKeyboardXAxis) { xRotationSign = -1; } } if (__instance.m_RotationByMouse || __instance.m_RotationByKeyboard || Main.resetExtraCameraAngles) { var eulerAngles = __instance.transform.rotation.eulerAngles; eulerAngles.y += xRotationSign * mouseMovement.x * __instance.m_RotationSpeed * CameraRig.ConsoleRotationMod; if (Main.resetExtraCameraAngles) { eulerAngles.x = 0f; CameraElevation = 60f; __instance.m_TargetPosition = __instance.PlaceOnGround2(__instance.m_TargetPosition); var cameraRig = Game.Instance.UI.GetCameraRig(); var highlightingFeature = OwlcatRenderPipeline.Asset.ScriptableRendererData.rendererFeatures.OfType <OccludedObjectHighlightingFeature>().Single <OccludedObjectHighlightingFeature>(); highlightingFeature.DepthClip.NearCameraClipDistance = 10; highlightingFeature.DepthClip.ClipTreshold = 0; Main.resetExtraCameraAngles = false; } else { if (Input.GetKey(KeyCode.LeftControl)) { ___m_TargetPosition.y += yRotationSign * mouseMovement.y / 10f; CameraElevation = ___m_TargetPosition.y; } else if (usePitch) { eulerAngles.x += yRotationSign * mouseMovement.y * __instance.m_RotationSpeed * CameraRig.ConsoleRotationMod; //Mod.Debug($"eulerX: {eulerAngles.x}"); } } __instance.transform.DOKill(); __instance.transform.DOLocalRotate(eulerAngles, __instance.m_RotationTime).SetUpdate <Tweener>(true); } __instance.m_RotationByKeyboard = false; __instance.m_RotateOffset = 0.0f; return(false); }