diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightInput.java b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightInput.java index 18ca643..e4a7671 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightInput.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/MidnightInput.java @@ -25,7 +25,6 @@ import eu.midnightdust.midnightcontrols.client.mixin.*; import eu.midnightdust.midnightcontrols.client.ring.RingPage; import eu.midnightdust.midnightcontrols.client.util.HandledScreenAccessor; import eu.midnightdust.midnightcontrols.client.util.MathUtil; -import eu.midnightdust.midnightcontrols.client.util.MouseAccessor; import dev.lambdaurora.spruceui.navigation.NavigationDirection; import dev.lambdaurora.spruceui.screen.SpruceScreen; import dev.lambdaurora.spruceui.widget.AbstractSprucePressableButtonWidget; diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputHandlers.java b/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputHandlers.java index 2cbc4f8..4df71af 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputHandlers.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputHandlers.java @@ -21,12 +21,8 @@ import eu.midnightdust.midnightcontrols.client.compat.SodiumCompat; import eu.midnightdust.midnightcontrols.client.compat.YACLCompat; import eu.midnightdust.midnightcontrols.client.gui.RingScreen; import eu.midnightdust.midnightcontrols.client.gui.TouchscreenOverlay; -import eu.midnightdust.midnightcontrols.client.mixin.AdvancementsScreenAccessor; -import eu.midnightdust.midnightcontrols.client.mixin.CreativeInventoryScreenAccessor; -import eu.midnightdust.midnightcontrols.client.mixin.RecipeBookWidgetAccessor; -import eu.midnightdust.midnightcontrols.client.mixin.TabNavigationWidgetAccessor; +import eu.midnightdust.midnightcontrols.client.mixin.*; import eu.midnightdust.midnightcontrols.client.util.HandledScreenAccessor; -import eu.midnightdust.midnightcontrols.client.util.MouseAccessor; import net.fabricmc.fabric.impl.client.itemgroup.CreativeGuiExtensions; import net.fabricmc.fabric.impl.client.itemgroup.FabricCreativeGuiComponents; import net.fabricmc.fabric.impl.itemgroup.FabricItemGroup; diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputManager.java b/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputManager.java index 2feea52..1e4528b 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputManager.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/controller/InputManager.java @@ -12,7 +12,7 @@ package eu.midnightdust.midnightcontrols.client.controller; import eu.midnightdust.midnightcontrols.ControlsMode; import eu.midnightdust.midnightcontrols.client.enums.ButtonState; import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig; -import eu.midnightdust.midnightcontrols.client.util.MouseAccessor; +import eu.midnightdust.midnightcontrols.client.mixin.MouseAccessor; import it.unimi.dsi.fastutil.ints.*; import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap; import net.minecraft.client.MinecraftClient; diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseAccessor.java b/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseAccessor.java index ee6261e..b9c90b6 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseAccessor.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseAccessor.java @@ -7,9 +7,9 @@ import org.spongepowered.asm.mixin.gen.Invoker; @Mixin(Mouse.class) public interface MouseAccessor { + @Invoker("onCursorPos") + void midnightcontrols$onCursorPos(long window, double x, double y); @Accessor void setLeftButtonClicked(boolean value); - @Invoker("onCursorPos") - void midnightcontrols$onCursorPos(long window, double x, double y); } 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 04dc524..c7fe2b4 100644 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseMixin.java +++ b/src/main/java/eu/midnightdust/midnightcontrols/client/mixin/MouseMixin.java @@ -15,7 +15,6 @@ import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig; import eu.midnightdust.midnightcontrols.client.gui.TouchscreenOverlay; import eu.midnightdust.midnightcontrols.client.touch.TouchInput; import eu.midnightdust.midnightcontrols.client.touch.TouchUtils; -import eu.midnightdust.midnightcontrols.client.util.MouseAccessor; import net.minecraft.client.MinecraftClient; import net.minecraft.client.Mouse; import net.minecraft.client.util.GlfwUtil; @@ -66,7 +65,7 @@ public abstract class MouseMixin implements MouseAccessor { if (action == 1 && button == GLFW.GLFW_MOUSE_BUTTON_4 && client.currentScreen != null) { MidnightControlsClient.get().input.tryGoBack(client.currentScreen); } - else if ((doMixedInput() || client.currentScreen instanceof TouchscreenOverlay) && client.player != null && button == GLFW_MOUSE_BUTTON_1) { + else if ((client.currentScreen == null && 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; @@ -95,6 +94,7 @@ public abstract class MouseMixin implements MouseAccessor { private void midnightcontrols$isCursorLocked(CallbackInfoReturnable ci) { if (this.client.currentScreen == null) { if (MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER && MidnightControlsConfig.virtualMouse) { + ci.setReturnValue(true); ci.cancel(); } } @@ -102,7 +102,8 @@ 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 || doMixedInput()) + if ((MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER && MidnightControlsConfig.virtualMouse) || + MidnightControlsConfig.controlsMode == ControlsMode.TOUCHSCREEN || doMixedInput()) ci.cancel(); } diff --git a/src/main/java/eu/midnightdust/midnightcontrols/client/util/MouseAccessor.java b/src/main/java/eu/midnightdust/midnightcontrols/client/util/MouseAccessor.java deleted file mode 100644 index 0b6e004..0000000 --- a/src/main/java/eu/midnightdust/midnightcontrols/client/util/MouseAccessor.java +++ /dev/null @@ -1,18 +0,0 @@ -/* - * Copyright © 2021 LambdAurora - * - * This file is part of midnightcontrols. - * - * Licensed under the MIT license. For more information, - * see the LICENSE file. - */ - -package eu.midnightdust.midnightcontrols.client.util; - -/** - * Represents mouse's extra access. - */ -public interface MouseAccessor { - void midnightcontrols$onCursorPos(long window, double x, double y); - void setLeftButtonClicked(boolean value); -}