From c72ac64ad869cd2702cbb39f8384bf7a4bdfd1a5 Mon Sep 17 00:00:00 2001 From: Light_Quanta Date: Fri, 18 Apr 2025 19:24:25 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E7=81=B5=E6=95=8F=E5=BA=A6?= =?UTF-8?q?=E8=AE=A1=E7=AE=97=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../event/ClientMouseHandler.java | 33 +++++++++---------- 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/src/main/java/com/atsuishio/superbwarfare/event/ClientMouseHandler.java b/src/main/java/com/atsuishio/superbwarfare/event/ClientMouseHandler.java index f4026a8b9..d9d89c2d1 100644 --- a/src/main/java/com/atsuishio/superbwarfare/event/ClientMouseHandler.java +++ b/src/main/java/com/atsuishio/superbwarfare/event/ClientMouseHandler.java @@ -89,8 +89,9 @@ public class ClientMouseHandler { @SubscribeEvent public static void calculatePlayerTurn(CalculatePlayerTurnEvent event) { - var newSensitivity = changeSensitivity(event.getMouseSensitivity()) * invertY(); - event.setMouseSensitivity(newSensitivity); + var raw = event.getMouseSensitivity() * 0.6 + 0.2; + var newSensitivity = changeSensitivity(raw) * invertY(); + event.setMouseSensitivity((newSensitivity - 0.2) / 0.6); } public static float invertY() { @@ -120,6 +121,18 @@ public class ClientMouseHandler { } ItemStack stack = mc.player.getMainHandItem(); + if (stack.getItem() instanceof GunItem) { + var data = GunData.from(stack); + float customSens = (float) data.tag.getInt("sensitivity"); + + if (!player.getMainHandItem().isEmpty() && mc.options.getCameraType() == CameraType.FIRST_PERSON) { + return original / Math.max((1 + (0.2 * (data.zoom() - (0.3 * customSens)) * ClientEventHandler.zoomTime)), 0.1); + } + } + + if (stack.is(ModItems.MONITOR.get()) && NBTTool.getTag(stack).getBoolean("Using") && NBTTool.getTag(stack).getBoolean("Linked")) { + return 0.33 / (1 + 0.08 * (droneFovLerp - 1)); + } if (isFreeCam(player)) { return 0; @@ -157,22 +170,6 @@ public class ClientMouseHandler { return 0.3; } - var tag = NBTTool.getTag(stack); - if (stack.is(ModItems.MONITOR.get()) && tag.getBoolean("Using") && tag.getBoolean("Linked")) { - return 0.33 / (1 + 0.08 * (droneFovLerp - 1)); - } - - if (!(stack.getItem() instanceof GunItem)) { - return original; - } - - var data = GunData.from(stack); - float customSens = (float) data.tag().getInt("sensitivity"); - - if (!player.getMainHandItem().isEmpty() && mc.options.getCameraType() == CameraType.FIRST_PERSON) { - return original / Math.max((1 + (0.2 * (data.zoom() - (0.3 * customSens)) * ClientEventHandler.zoomTime)), 0.1); - } - return original; } }