优化鼠标操控灵敏度

This commit is contained in:
Atsuishio 2025-06-14 23:31:19 +08:00 committed by Light_Quanta
parent 027170b146
commit 92e12f9eeb
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
2 changed files with 21 additions and 7 deletions

View file

@ -690,17 +690,17 @@ public class Ah6Entity extends ContainerMobileVehicleEntity implements GeoEntity
@Override @Override
public double getMouseSensitivity() { public double getMouseSensitivity() {
return 0.15; return 0.25;
} }
@Override @Override
public double getMouseSpeedX() { public double getMouseSpeedX() {
return 0.35; return 0.4;
} }
@Override @Override
public double getMouseSpeedY() { public double getMouseSpeedY() {
return 0.2; return 0.25;
} }
@OnlyIn(Dist.CLIENT) @OnlyIn(Dist.CLIENT)

View file

@ -60,15 +60,24 @@ public class ClientMouseHandler {
LocalPlayer player = Minecraft.getInstance().player; LocalPlayer player = Minecraft.getInstance().player;
if (player == null) return; if (player == null) return;
if (notInGame()) {
PacketDistributor.sendToServer(new MouseMoveMessage(0, 0));
return;
}
posO = posN; posO = posN;
posN = MouseMovementHandler.getMousePos(); posN = MouseMovementHandler.getMousePos();
ItemStack stack = player.getMainHandItem(); ItemStack stack = player.getMainHandItem();
var tag = NBTTool.getTag(stack); var tag = NBTTool.getTag(stack);
if (!notInGame() && stack.is(ModItems.MONITOR.get()) && tag.getBoolean("Using") && tag.getBoolean("Linked")) { if (stack.is(ModItems.MONITOR.get()) && tag.getBoolean("Using") && tag.getBoolean("Linked")) {
DroneEntity drone = EntityFindUtil.findDrone(player.level(), tag.getString("LinkedDrone")); DroneEntity drone = EntityFindUtil.findDrone(player.level(), tag.getString("LinkedDrone"));
if (drone != null) { if (drone != null) {
if (notInGame()) {
PacketDistributor.sendToServer(new MouseMoveMessage(0, 0));
return;
}
speedX = drone.getMouseSensitivity() * (posN.x - posO.x); speedX = drone.getMouseSensitivity() * (posN.x - posO.x);
speedY = drone.getMouseSensitivity() * (posN.y - posO.y); speedY = drone.getMouseSensitivity() * (posN.y - posO.y);
@ -80,7 +89,12 @@ public class ClientMouseHandler {
return; return;
} }
if (!notInGame() && player.getVehicle() instanceof VehicleEntity vehicle && player == vehicle.getFirstPassenger()) { if (player.getVehicle() instanceof VehicleEntity vehicle && player == vehicle.getFirstPassenger()) {
if (notInGame()) {
PacketDistributor.sendToServer(new MouseMoveMessage(0, 0));
return;
}
int y = 1; int y = 1;
@ -131,8 +145,8 @@ public class ClientMouseHandler {
freeCameraYaw -= 0.4f * times * lerpSpeedX; freeCameraYaw -= 0.4f * times * lerpSpeedX;
freeCameraPitch += 0.3f * times * lerpSpeedY; freeCameraPitch += 0.3f * times * lerpSpeedY;
if (!isFreeCam(player)) { if (!isFreeCam(player)) {
freeCameraYaw = Mth.lerp(0.4 * times, freeCameraYaw, 0); freeCameraYaw = Mth.lerp(0.6 * times, freeCameraYaw, 0);
freeCameraPitch = Mth.lerp(0.4 * times, freeCameraPitch, 0); freeCameraPitch = Mth.lerp(0.6 * times, freeCameraPitch, 0);
} }
while (freeCameraYaw > 180F) { while (freeCameraYaw > 180F) {