From a3b8d7cbb54f64c3280281aee1dcc2617f390532 Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Sun, 20 Oct 2024 16:59:26 +0200 Subject: [PATCH] Various fixes - Fix #309 (Missing translations) - Fix controller input always being read - Improved injection of options button (Closes #305) --- .../client/MidnightControlsClient.java | 6 ++++-- .../client/MidnightControlsConfig.java | 2 +- .../client/mixin/GameOptionsScreenMixin.java | 20 +++++++++---------- .../assets/midnightcontrols/lang/en_us.json | 4 ++-- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java index 96fab44..c6128f5 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsClient.java @@ -88,8 +88,10 @@ public class MidnightControlsClient extends MidnightControls { timer.scheduleAtFixedRate(new TimerTask() { public void run() { // TODO: Add a try/catch here after the alpha testing period if (lateInitDone && client.isRunning()) { - input.tickCameraStick(); - input.updateCamera(); + if (MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER && (client.isWindowFocused() || MidnightControlsConfig.unfocusedInput)) { + input.tickCameraStick(); + input.updateCamera(); + } } } }, delay, period); diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java index 24d89df..894cff2 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java @@ -74,7 +74,7 @@ public class MidnightControlsConfig extends MidnightConfig { @Entry(category = VISUAL, name = "Reacharound Outline Alpha", isSlider = true, min = 0, max = 255) public static int reacharoundOutlineColorAlpha = 102; @Entry(category = CONTROLLER, name = "midnightcontrols.menu.right_dead_zone", isSlider = true, min = 0.05, max = 1) public static double rightDeadZone = 0.25; @Entry(category = CONTROLLER, name = "midnightcontrols.menu.left_dead_zone", isSlider = true, min = 0.05, max = 1) public static double leftDeadZone = 0.25; - @Entry(category = CONTROLLER, name = "midnightcontrols.menu.trigger_dead_zone", isSlider = true, min = 0.05, max = 1) public static double triggerDeadZone = 0.1; + @Entry(category = CONTROLLER, name = "Trigger Dead-Zone", isSlider = true, min = 0.05, max = 1) public static double triggerDeadZone = 0.1; @Entry(category = CONTROLLER, name = "midnightcontrols.menu.invert_right_y_axis") public static boolean invertRightYAxis = false; @Entry(category = CONTROLLER, name = "midnightcontrols.menu.invert_right_x_axis") public static boolean invertRightXAxis = false; @Entry(category = CONTROLLER, name = "midnightcontrols.menu.rotation_speed", isSlider = true, min = 0, max = 100, precision = 10) public static double rotationSpeed = 35.0; //used for x-axis, name kept for compatibility diff --git a/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/GameOptionsScreenMixin.java b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/GameOptionsScreenMixin.java index 29d6fc3..31b7aa8 100644 --- a/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/GameOptionsScreenMixin.java +++ b/common/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/GameOptionsScreenMixin.java @@ -40,22 +40,22 @@ public abstract class GameOptionsScreenMixin extends Screen { super(title); } - @Inject(method = "initTabNavigation", at = @At("TAIL")) - public void addMidnightButton(CallbackInfo ci) { + @Inject(method = "init", at = @At("TAIL")) + public void midnightcontrols$addMCButton(CallbackInfo ci) { if (this.getClass().toString().equals(ControlsOptionsScreen.class.toString())) { - this.midnightcontrols$setupButton(); + this.midnightcontrols$setButtonPos(); this.addDrawableChild(midnightcontrols$button); } } - @Override - public void resize(MinecraftClient client, int width, int height) { - super.resize(client, width, height); - this.midnightcontrols$setupButton(); + @Inject(method = "initTabNavigation", at = @At("TAIL")) + public void midnightcontrols$onResize(CallbackInfo ci) { + this.midnightcontrols$setButtonPos(); } @Unique - public void midnightcontrols$setupButton() { - assert body != null; - midnightcontrols$button.setPosition(body.getWidth() / 2 + 158, body.getY() + 4); + public void midnightcontrols$setButtonPos() { + if (body != null) { + midnightcontrols$button.setPosition(body.getWidth() / 2 + 158, body.getY() + 4); + } } } diff --git a/common/src/main/resources/assets/midnightcontrols/lang/en_us.json b/common/src/main/resources/assets/midnightcontrols/lang/en_us.json index ea99cf7..99ff087 100644 --- a/common/src/main/resources/assets/midnightcontrols/lang/en_us.json +++ b/common/src/main/resources/assets/midnightcontrols/lang/en_us.json @@ -130,8 +130,8 @@ "midnightcontrols.controls_mode.default": "Keyboard/Mouse", "midnightcontrols.controls_mode.controller": "Controller", "midnightcontrols.controls_mode.touchscreen": "Touchscreen (Beta)", - "midnightcontrols.hud_side.left": "Left", - "midnightcontrols.hud_side.right": "Right", + "midnightcontrols.hud_side.LEFT": "Left", + "midnightcontrols.hud_side.RIGHT": "Right", "midnightcontrols.menu.analog_movement": "Analog Movement", "midnightcontrols.menu.analog_movement.tooltip": "When possible, enables analog movement.", "midnightcontrols.menu.auto_switch_mode": "Auto Switch Mode",