提取sensitivity属性

This commit is contained in:
Light_Quanta 2025-04-18 20:55:32 +08:00
parent 70dc4c5bb0
commit 532f380612
No known key found for this signature in database
GPG key ID: 11A39A1B8C890959
3 changed files with 6 additions and 6 deletions

View file

@ -123,7 +123,7 @@ public class ClientMouseHandler {
ItemStack stack = mc.player.getMainHandItem(); ItemStack stack = mc.player.getMainHandItem();
if (stack.getItem() instanceof GunItem) { if (stack.getItem() instanceof GunItem) {
var data = GunData.from(stack); var data = GunData.from(stack);
float customSens = (float) data.tag.getInt("sensitivity"); float customSens = data.sensitivity.get();
if (!player.getMainHandItem().isEmpty() && mc.options.getCameraType() == CameraType.FIRST_PERSON) { 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 / Math.max((1 + (0.2 * (data.zoom() - (0.3 * customSens)) * ClientEventHandler.zoomTime)), 0.1);

View file

@ -76,6 +76,7 @@ public class GunData {
holdOpen = new BooleanValue(data, "HoldOpen"); holdOpen = new BooleanValue(data, "HoldOpen");
hideBulletChain = new BooleanValue(data, "HideBulletChain"); hideBulletChain = new BooleanValue(data, "HideBulletChain");
draw = new BooleanValue(data, "Draw"); draw = new BooleanValue(data, "Draw");
sensitivity = new IntValue(data, "Sensitivity");
} }
private CompoundTag getOrPut(String name) { private CompoundTag getOrPut(String name) {
@ -458,6 +459,7 @@ public class GunData {
public final BooleanValue holdOpen; public final BooleanValue holdOpen;
public final BooleanValue hideBulletChain; public final BooleanValue hideBulletChain;
public final BooleanValue draw; public final BooleanValue draw;
public final IntValue sensitivity;
// 其他子级属性 // 其他子级属性

View file

@ -28,15 +28,13 @@ public record SensitivityMessage(boolean isAdd) implements CustomPacketPayload {
if (!(stack.getItem() instanceof GunItem)) return; if (!(stack.getItem() instanceof GunItem)) return;
var data = GunData.from(stack); var data = GunData.from(stack);
final var tag = data.tag();
if (message.isAdd) { if (message.isAdd) {
tag.putInt("sensitivity", Math.min(10, tag.getInt("sensitivity") + 1)); data.sensitivity.set(Math.min(10, data.sensitivity.get() + 1));
} else { } else {
tag.putInt("sensitivity", Math.max(-10, tag.getInt("sensitivity") - 1)); data.sensitivity.set(Math.max(-10, data.sensitivity.get() - 1));
} }
data.save(); data.save();
player.displayClientMessage(Component.translatable("tips.superbwarfare.sensitivity", tag.getInt("sensitivity")), true); player.displayClientMessage(Component.translatable("tips.superbwarfare.sensitivity", data.sensitivity.get()), true);
} }
@Override @Override