From 3e665a14fd0e6ef345e62b202707f1d8ac321954 Mon Sep 17 00:00:00 2001 From: Martin Prokoph Date: Sun, 31 Dec 2023 11:00:14 +0100 Subject: [PATCH] MidnightControls 1.9.2 - Fix #251 --- build.gradle | 2 +- gradle.properties | 2 +- .../client/MidnightControlsConfig.java | 3 +++ .../midnightcontrols/client/mixin/MouseMixin.java | 13 +++++-------- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/build.gradle b/build.gradle index 0389373..62adb97 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ boolean isMCVersionNonRelease() { } String getMCVersionString() { - if (isMCVersionNonRelease() || project.minecraft_version == "1.20.2") { + if (isMCVersionNonRelease() || project.minecraft_version == "1.20.4") { return project.minecraft_version } def version = project.minecraft_version.split('\\.') diff --git a/gradle.properties b/gradle.properties index cecc13c..2492319 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,7 +8,7 @@ yarn_mappings=1.20.4+build.3 loader_version=0.15.3 # Mod Properties -mod_version = 1.9.1 +mod_version = 1.9.2 maven_group = eu.midnightdust archives_base_name = midnightcontrols modrinth_id = bXX9h73M diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java index 8e28629..3ec8cd2 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightControlsConfig.java @@ -404,4 +404,7 @@ public class MidnightControlsConfig extends MidnightConfig { else if (controller.contains("ouya")) return ControllerType.OUYA; else return ControllerType.DEFAULT; } + public static boolean doMixedInput() { + return touchInControllerMode && controlsMode == ControlsMode.CONTROLLER; + } } diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseMixin.java b/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseMixin.java index 4c26245..04dc524 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseMixin.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseMixin.java @@ -30,6 +30,7 @@ import org.spongepowered.asm.mixin.injection.callback.CallbackInfo; import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable; import eu.midnightdust.midnightcontrols.client.mouse.EyeTrackerHandler; +import static eu.midnightdust.midnightcontrols.client.MidnightControlsConfig.doMixedInput; import static org.lwjgl.glfw.GLFW.*; /** @@ -59,17 +60,13 @@ public abstract class MouseMixin implements MouseAccessor { @Shadow private boolean leftButtonClicked; - @Shadow private int activeButton; - - @Shadow private double glfwTime; - @Inject(method = "onMouseButton", at = @At(value = "HEAD"), cancellable = true) private void midnightcontrols$onMouseButton(long window, int button, int action, int mods, CallbackInfo ci) { if (window != this.client.getWindow().getHandle()) return; if (action == 1 && button == GLFW.GLFW_MOUSE_BUTTON_4 && client.currentScreen != null) { MidnightControlsClient.get().input.tryGoBack(client.currentScreen); } - else if ((client.currentScreen == null || client.currentScreen instanceof TouchscreenOverlay) && client.player != null && button == GLFW_MOUSE_BUTTON_1) { + else if ((doMixedInput() || client.currentScreen instanceof TouchscreenOverlay) && client.player != null && button == GLFW_MOUSE_BUTTON_1) { double mouseX = x / client.getWindow().getScaleFactor(); double mouseY = y / client.getWindow().getScaleFactor(); int centerX = client.getWindow().getScaledWidth() / 2; @@ -105,7 +102,7 @@ public abstract class MouseMixin implements MouseAccessor { @Inject(method = "lockCursor", at = @At("HEAD"), cancellable = true) private void midnightcontrols$onCursorLocked(CallbackInfo ci) { - if (MidnightControlsConfig.controlsMode == ControlsMode.TOUCHSCREEN || (MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER && MidnightControlsConfig.virtualMouse)) + if (MidnightControlsConfig.controlsMode == ControlsMode.TOUCHSCREEN || doMixedInput()) ci.cancel(); } @@ -124,14 +121,14 @@ public abstract class MouseMixin implements MouseAccessor { cursorDeltaY = 0.0; ci.cancel(); } - if ((MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER && MidnightControlsConfig.touchInControllerMode) && client.isWindowFocused()) { + if (doMixedInput() && client.isWindowFocused()) { ci.cancel(); } } @Inject(method = "lockCursor", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/util/InputUtil;setCursorParameters(JIDD)V",shift = At.Shift.BEFORE), cancellable = true) private void midnightcontrols$lockCursor(CallbackInfo ci) { - if ((MidnightControlsConfig.touchInControllerMode || MidnightControlsConfig.eyeTrackerAsMouse)) { + if ((doMixedInput() || MidnightControlsConfig.eyeTrackerAsMouse)) { //In eye tracking mode, we cannot have the cursor locked to the center. GLFW.glfwSetInputMode(client.getWindow().getHandle(), GLFW_CURSOR, GLFW_CURSOR_HIDDEN); client.setScreen(null);