From f44647ba529c31039e8e8ab58e5a97a2d6fe47f7 Mon Sep 17 00:00:00 2001 From: Klesti Selimaj Date: Thu, 26 Mar 2026 16:56:44 +0100 Subject: [PATCH] Working freelook --- common | 2 +- .../saturnclient/impl/features/mixins/entity/CameraMixin.java | 4 ++-- .../saturnclient/impl/features/mixins/entity/EntityMixin.java | 2 +- .../impl/features/mixins/render/GameRendererMixin.java | 4 ++++ .../saturnclient/impl/features/mixins/entity/CameraMixin.java | 4 ++-- .../saturnclient/impl/features/mixins/entity/EntityMixin.java | 2 +- .../saturnclient/impl/features/mixins/entity/CameraMixin.java | 4 ++-- .../saturnclient/impl/features/mixins/entity/EntityMixin.java | 2 +- 8 files changed, 14 insertions(+), 10 deletions(-) diff --git a/common b/common index 53dfa37..7eb8b6a 160000 --- a/common +++ b/common @@ -1 +1 @@ -Subproject commit 53dfa37b642b4b8770b1e47c68d28e0f54abd782 +Subproject commit 7eb8b6a120e708d69b6e6e3137bdabd797b5c745 diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java index 834286b..e1ff321 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java @@ -26,7 +26,7 @@ public abstract class CameraMixin { @Inject(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/Camera;setRotation(FF)V", ordinal = 1, shift = At.Shift.AFTER)) public void lockRotation(BlockView focusedBlock, Entity cameraEntity, boolean isThirdPerson, boolean isFrontFacing, float tickDelta, CallbackInfo ci) { - if (FreelookMod.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) { + if (FreelookMod.isFreeLooking() && cameraEntity instanceof ClientPlayerEntity) { CameraOverriddenEntity cameraOverriddenEntity = (CameraOverriddenEntity) cameraEntity; if (firstTime && SaturnClient.client.player != null) { @@ -38,7 +38,7 @@ public abstract class CameraMixin { cameraOverriddenEntity.freelook$getCameraPitch()); } - if (!FreelookMod.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) { + if (!FreelookMod.isFreeLooking() && cameraEntity instanceof ClientPlayerEntity) { firstTime = true; } } diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java index 0dff4b0..a079e19 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java @@ -24,7 +24,7 @@ public class EntityMixin implements CameraOverriddenEntity { public void changeCameraLookDirection(double xDelta, double yDelta, CallbackInfo ci) { // noinspection ConstantValue// IntelliJ is incorrect here, this code block is // reachable - if (FreelookMod.isFreeLooking && (Object) this instanceof ClientPlayerEntity) { + if (FreelookMod.isFreeLooking() && (Object) this instanceof ClientPlayerEntity) { double pitchDelta = (yDelta * 0.15); double yawDelta = (xDelta * 0.15); diff --git a/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/render/GameRendererMixin.java b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/render/GameRendererMixin.java index c6d97f3..82ccd2c 100644 --- a/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/render/GameRendererMixin.java +++ b/versions/1.21.4/src/main/java/org/saturnclient/impl/features/mixins/render/GameRendererMixin.java @@ -2,6 +2,7 @@ package org.saturnclient.impl.features.mixins.render; import net.minecraft.client.render.GameRenderer; +import org.saturnclient.mod.mods.FreelookMod; import org.saturnclient.mod.mods.ZoomMod; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -32,6 +33,9 @@ public class GameRendererMixin { if (ZoomMod.shouldZoom()) { float zoomedFov = cir.getReturnValue() / ZoomMod.getZoomLevel(); cir.setReturnValue(zoomedFov); + } else if (FreelookMod.shouldZoomOut()) { + float zoomedFov = cir.getReturnValue() / FreelookMod.getZoomLevel(); + cir.setReturnValue(zoomedFov); } } } diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java index 834286b..e1ff321 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java @@ -26,7 +26,7 @@ public abstract class CameraMixin { @Inject(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/Camera;setRotation(FF)V", ordinal = 1, shift = At.Shift.AFTER)) public void lockRotation(BlockView focusedBlock, Entity cameraEntity, boolean isThirdPerson, boolean isFrontFacing, float tickDelta, CallbackInfo ci) { - if (FreelookMod.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) { + if (FreelookMod.isFreeLooking() && cameraEntity instanceof ClientPlayerEntity) { CameraOverriddenEntity cameraOverriddenEntity = (CameraOverriddenEntity) cameraEntity; if (firstTime && SaturnClient.client.player != null) { @@ -38,7 +38,7 @@ public abstract class CameraMixin { cameraOverriddenEntity.freelook$getCameraPitch()); } - if (!FreelookMod.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) { + if (!FreelookMod.isFreeLooking() && cameraEntity instanceof ClientPlayerEntity) { firstTime = true; } } diff --git a/versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java index 0dff4b0..a079e19 100644 --- a/versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java +++ b/versions/1.21.5/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java @@ -24,7 +24,7 @@ public class EntityMixin implements CameraOverriddenEntity { public void changeCameraLookDirection(double xDelta, double yDelta, CallbackInfo ci) { // noinspection ConstantValue// IntelliJ is incorrect here, this code block is // reachable - if (FreelookMod.isFreeLooking && (Object) this instanceof ClientPlayerEntity) { + if (FreelookMod.isFreeLooking() && (Object) this instanceof ClientPlayerEntity) { double pitchDelta = (yDelta * 0.15); double yawDelta = (xDelta * 0.15); diff --git a/versions/1.21.6/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java b/versions/1.21.6/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java index 834286b..e1ff321 100644 --- a/versions/1.21.6/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java +++ b/versions/1.21.6/src/main/java/org/saturnclient/impl/features/mixins/entity/CameraMixin.java @@ -26,7 +26,7 @@ public abstract class CameraMixin { @Inject(method = "update", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/render/Camera;setRotation(FF)V", ordinal = 1, shift = At.Shift.AFTER)) public void lockRotation(BlockView focusedBlock, Entity cameraEntity, boolean isThirdPerson, boolean isFrontFacing, float tickDelta, CallbackInfo ci) { - if (FreelookMod.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) { + if (FreelookMod.isFreeLooking() && cameraEntity instanceof ClientPlayerEntity) { CameraOverriddenEntity cameraOverriddenEntity = (CameraOverriddenEntity) cameraEntity; if (firstTime && SaturnClient.client.player != null) { @@ -38,7 +38,7 @@ public abstract class CameraMixin { cameraOverriddenEntity.freelook$getCameraPitch()); } - if (!FreelookMod.isFreeLooking && cameraEntity instanceof ClientPlayerEntity) { + if (!FreelookMod.isFreeLooking() && cameraEntity instanceof ClientPlayerEntity) { firstTime = true; } } diff --git a/versions/1.21.6/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java b/versions/1.21.6/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java index 0dff4b0..a079e19 100644 --- a/versions/1.21.6/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java +++ b/versions/1.21.6/src/main/java/org/saturnclient/impl/features/mixins/entity/EntityMixin.java @@ -24,7 +24,7 @@ public class EntityMixin implements CameraOverriddenEntity { public void changeCameraLookDirection(double xDelta, double yDelta, CallbackInfo ci) { // noinspection ConstantValue// IntelliJ is incorrect here, this code block is // reachable - if (FreelookMod.isFreeLooking && (Object) this instanceof ClientPlayerEntity) { + if (FreelookMod.isFreeLooking() && (Object) this instanceof ClientPlayerEntity) { double pitchDelta = (yDelta * 0.15); double yawDelta = (xDelta * 0.15);