优化鼠标操控灵敏度

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
public double getMouseSensitivity() {
return 0.15;
return 0.25;
}
@Override
public double getMouseSpeedX() {
return 0.35;
return 0.4;
}
@Override
public double getMouseSpeedY() {
return 0.2;
return 0.25;
}
@OnlyIn(Dist.CLIENT)

View file

@ -60,15 +60,24 @@ public class ClientMouseHandler {
LocalPlayer player = Minecraft.getInstance().player;
if (player == null) return;
if (notInGame()) {
PacketDistributor.sendToServer(new MouseMoveMessage(0, 0));
return;
}
posO = posN;
posN = MouseMovementHandler.getMousePos();
ItemStack stack = player.getMainHandItem();
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"));
if (drone != null) {
if (notInGame()) {
PacketDistributor.sendToServer(new MouseMoveMessage(0, 0));
return;
}
speedX = drone.getMouseSensitivity() * (posN.x - posO.x);
speedY = drone.getMouseSensitivity() * (posN.y - posO.y);
@ -80,7 +89,12 @@ public class ClientMouseHandler {
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;
@ -131,8 +145,8 @@ public class ClientMouseHandler {
freeCameraYaw -= 0.4f * times * lerpSpeedX;
freeCameraPitch += 0.3f * times * lerpSpeedY;
if (!isFreeCam(player)) {
freeCameraYaw = Mth.lerp(0.4 * times, freeCameraYaw, 0);
freeCameraPitch = Mth.lerp(0.4 * times, freeCameraPitch, 0);
freeCameraYaw = Mth.lerp(0.6 * times, freeCameraYaw, 0);
freeCameraPitch = Mth.lerp(0.6 * times, freeCameraPitch, 0);
}
while (freeCameraYaw > 180F) {