修改灵敏度mixin逻辑

This commit is contained in:
17146 2024-06-01 23:52:04 +08:00
parent 6aa80c7f0b
commit 30c695542e

View file

@ -24,12 +24,13 @@ public class MouseHandlerMixin {
float additionalAdsSensitivity = 1.0F; float additionalAdsSensitivity = 1.0F;
Minecraft mc = Minecraft.getInstance(); Minecraft mc = Minecraft.getInstance();
Player player = Minecraft.getInstance().player; Player player = Minecraft.getInstance().player;
ItemStack stack = mc.player.getMainHandItem();
if (player == null) { if (player == null) {
return original; return original;
} }
ItemStack stack = mc.player.getMainHandItem();
boolean flag = false; boolean flag = false;
float sens = 0.2f; float sens = 0.2f;
float fov = (float) player.getPersistentData().getDouble("fov"); float fov = (float) player.getPersistentData().getDouble("fov");
@ -37,11 +38,16 @@ public class MouseHandlerMixin {
float original_fov = mc.options.fov().get(); float original_fov = mc.options.fov().get();
if (mc.player != null && !mc.player.getMainHandItem().isEmpty() && mc.options.getCameraType() == CameraType.FIRST_PERSON) { if (!player.getMainHandItem().isEmpty() && mc.options.getCameraType() == CameraType.FIRST_PERSON) {
if (stack.is(TargetModTags.Items.GUN)) { if (stack.is(TargetModTags.Items.GUN)) {
if ((player.getCapability(TargetModVariables.PLAYER_VARIABLES_CAPABILITY, null).orElse(new TargetModVariables.PlayerVariables())).zooming) {
additionalAdsSensitivity = (float) Mth.clamp((1 + 0.1f * custom_sens) * (1.25F * fov / original_fov) * (1 + 0.05f * Math.pow((original_fov / fov), 2)), 0.125F, 2F); additionalAdsSensitivity = (float) Mth.clamp((1 + 0.1f * custom_sens) * (1.25F * fov / original_fov) * (1 + 0.05f * Math.pow((original_fov / fov), 2)), 0.125F, 2F);
} else {
additionalAdsSensitivity = Mth.clamp((1 + 0.1f * custom_sens) * 1.25F, 0.125F, 2F);
}
flag = true; flag = true;
} else {
return original;
} }
} }
return original * additionalAdsSensitivity * (1.0 - sens * (flag ? 1 : 0)); return original * additionalAdsSensitivity * (1.0 - sens * (flag ? 1 : 0));