22
33import com .lambda .interaction .RotationManager ;
44import com .lambda .module .modules .player .Freecam ;
5+ import com .lambda .module .modules .render .CameraTweaks ;
56import net .minecraft .client .render .Camera ;
67import net .minecraft .entity .Entity ;
78import net .minecraft .world .BlockView ;
89import org .spongepowered .asm .mixin .Mixin ;
910import org .spongepowered .asm .mixin .Shadow ;
1011import org .spongepowered .asm .mixin .injection .At ;
1112import org .spongepowered .asm .mixin .injection .Inject ;
13+ import org .spongepowered .asm .mixin .injection .ModifyArg ;
1214import org .spongepowered .asm .mixin .injection .callback .CallbackInfo ;
15+ import org .spongepowered .asm .mixin .injection .callback .CallbackInfoReturnable ;
1316
1417@ Mixin (Camera .class )
1518public abstract class CameraMixin {
@@ -36,4 +39,20 @@ private void injectQuickPerspectiveSwap(BlockView area, Entity focusedEntity, bo
3639 if (rot == null ) return ;
3740 setRotation (rot .getYawF (), rot .getPitchF ());
3841 }
42+
43+ @ Inject (method = "clipToSpace" , at = @ At ("HEAD" ), cancellable = true )
44+ private void onClipToSpace (double desiredCameraDistance , CallbackInfoReturnable <Double > info ) {
45+ if (CameraTweaks .getNoClipCam ()) {
46+ info .setReturnValue (desiredCameraDistance );
47+ }
48+ }
49+
50+ @ ModifyArg (method = "update" , at = @ At (value = "INVOKE" , target = "Lnet/minecraft/client/render/Camera;clipToSpace(D)D" ))
51+ private double onDistanceUpdate (double desiredCameraDistance ) {
52+ if (CameraTweaks .INSTANCE .isEnabled ()) {
53+ return CameraTweaks .getCamDistance ();
54+ }
55+
56+ return desiredCameraDistance ;
57+ }
3958}
0 commit comments