mirror of
https://github.com/TeamMidnightDust/MidnightControls.git
synced 2025-12-14 07:35:10 +01:00
Merge pull request #262 from TeamMidnightDust/1.20.4
Backport fixes to 1.20.1
This commit is contained in:
@@ -8,7 +8,7 @@ yarn_mappings=1.20.1+build.10
|
|||||||
loader_version=0.15.6
|
loader_version=0.15.6
|
||||||
|
|
||||||
# Mod Properties
|
# Mod Properties
|
||||||
mod_version = 1.9.3
|
mod_version = 1.9.4
|
||||||
maven_group = eu.midnightdust
|
maven_group = eu.midnightdust
|
||||||
archives_base_name = midnightcontrols
|
archives_base_name = midnightcontrols
|
||||||
modrinth_id = bXX9h73M
|
modrinth_id = bXX9h73M
|
||||||
@@ -24,7 +24,7 @@ midnightlib_version=1.4.1-fabric
|
|||||||
modmenu_version=7.0.0
|
modmenu_version=7.0.0
|
||||||
emotecraft_version=2.1.3-SNAPSHOT-build.29-MC1.19-fabric
|
emotecraft_version=2.1.3-SNAPSHOT-build.29-MC1.19-fabric
|
||||||
bendylib_version=2.0.+
|
bendylib_version=2.0.+
|
||||||
emi_version=0.5.0+1.19.3
|
emi_version=1.1.1+1.20.4+fabric
|
||||||
libgui_version=6.0.0+1.19
|
libgui_version=6.0.0+1.19
|
||||||
inventorytabs_version=inventorytabs-0.9.beta-1.19.x
|
inventorytabs_version=inventorytabs-0.9.beta-1.19.x
|
||||||
clothconfig_version=7.0.72
|
clothconfig_version=7.0.72
|
||||||
|
|||||||
@@ -25,7 +25,6 @@ import eu.midnightdust.midnightcontrols.client.mixin.*;
|
|||||||
import eu.midnightdust.midnightcontrols.client.ring.RingPage;
|
import eu.midnightdust.midnightcontrols.client.ring.RingPage;
|
||||||
import eu.midnightdust.midnightcontrols.client.util.HandledScreenAccessor;
|
import eu.midnightdust.midnightcontrols.client.util.HandledScreenAccessor;
|
||||||
import eu.midnightdust.midnightcontrols.client.util.MathUtil;
|
import eu.midnightdust.midnightcontrols.client.util.MathUtil;
|
||||||
import eu.midnightdust.midnightcontrols.client.util.MouseAccessor;
|
|
||||||
import dev.lambdaurora.spruceui.navigation.NavigationDirection;
|
import dev.lambdaurora.spruceui.navigation.NavigationDirection;
|
||||||
import dev.lambdaurora.spruceui.screen.SpruceScreen;
|
import dev.lambdaurora.spruceui.screen.SpruceScreen;
|
||||||
import dev.lambdaurora.spruceui.widget.AbstractSprucePressableButtonWidget;
|
import dev.lambdaurora.spruceui.widget.AbstractSprucePressableButtonWidget;
|
||||||
|
|||||||
@@ -1,13 +1,12 @@
|
|||||||
package eu.midnightdust.midnightcontrols.client.compat;
|
package eu.midnightdust.midnightcontrols.client.compat;
|
||||||
|
|
||||||
|
import dev.emi.emi.api.EmiApi;
|
||||||
import dev.emi.emi.config.EmiConfig;
|
import dev.emi.emi.config.EmiConfig;
|
||||||
import dev.emi.emi.screen.EmiScreen;
|
|
||||||
import dev.emi.emi.screen.EmiScreenManager;
|
import dev.emi.emi.screen.EmiScreenManager;
|
||||||
import eu.midnightdust.midnightcontrols.client.MidnightControlsClient;
|
import eu.midnightdust.midnightcontrols.client.MidnightControlsClient;
|
||||||
import eu.midnightdust.midnightcontrols.client.controller.ButtonBinding;
|
import eu.midnightdust.midnightcontrols.client.controller.ButtonBinding;
|
||||||
import eu.midnightdust.midnightcontrols.client.controller.ButtonCategory;
|
import eu.midnightdust.midnightcontrols.client.controller.ButtonCategory;
|
||||||
import eu.midnightdust.midnightcontrols.client.controller.InputManager;
|
import eu.midnightdust.midnightcontrols.client.controller.InputManager;
|
||||||
import net.minecraft.client.gui.screen.ingame.HandledScreen;
|
|
||||||
import org.aperlambda.lambdacommon.Identifier;
|
import org.aperlambda.lambdacommon.Identifier;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.lwjgl.glfw.GLFW;
|
import org.lwjgl.glfw.GLFW;
|
||||||
@@ -30,13 +29,13 @@ public class EMICompat implements CompatHandler {
|
|||||||
.buttons(GLFW.GLFW_GAMEPAD_BUTTON_LEFT_BUMPER, ButtonBinding.axisAsButton(GLFW.GLFW_GAMEPAD_AXIS_LEFT_TRIGGER, true))
|
.buttons(GLFW.GLFW_GAMEPAD_BUTTON_LEFT_BUMPER, ButtonBinding.axisAsButton(GLFW.GLFW_GAMEPAD_AXIS_LEFT_TRIGGER, true))
|
||||||
.category(category)
|
.category(category)
|
||||||
.action((client,action,value,buttonState)->handleTabs(false)).cooldown()
|
.action((client,action,value,buttonState)->handleTabs(false)).cooldown()
|
||||||
.filter(((client, buttonBinding) -> client.currentScreen instanceof HandledScreen<?> || client.currentScreen instanceof EmiScreen))
|
.filter(((client, buttonBinding) -> EmiApi.getHandledScreen() != null))
|
||||||
.register();
|
.register();
|
||||||
new ButtonBinding.Builder("emi_page_right")
|
new ButtonBinding.Builder("emi_page_right")
|
||||||
.buttons(GLFW.GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER, ButtonBinding.axisAsButton(GLFW.GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER, true))
|
.buttons(GLFW.GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER, ButtonBinding.axisAsButton(GLFW.GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER, true))
|
||||||
.category(category)
|
.category(category)
|
||||||
.action((client,action,value,buttonState)->handleTabs(true)).cooldown()
|
.action((client,action,value,buttonState)->handleTabs(true)).cooldown()
|
||||||
.filter(((client, buttonBinding) -> client.currentScreen instanceof HandledScreen<?> || client.currentScreen instanceof EmiScreen))
|
.filter(((client, buttonBinding) -> EmiApi.getHandledScreen() != null))
|
||||||
.register();
|
.register();
|
||||||
}
|
}
|
||||||
public static boolean isEMIEnabled() {
|
public static boolean isEMIEnabled() {
|
||||||
|
|||||||
@@ -21,12 +21,8 @@ import eu.midnightdust.midnightcontrols.client.compat.SodiumCompat;
|
|||||||
import eu.midnightdust.midnightcontrols.client.compat.YACLCompat;
|
import eu.midnightdust.midnightcontrols.client.compat.YACLCompat;
|
||||||
import eu.midnightdust.midnightcontrols.client.gui.RingScreen;
|
import eu.midnightdust.midnightcontrols.client.gui.RingScreen;
|
||||||
import eu.midnightdust.midnightcontrols.client.gui.TouchscreenOverlay;
|
import eu.midnightdust.midnightcontrols.client.gui.TouchscreenOverlay;
|
||||||
import eu.midnightdust.midnightcontrols.client.mixin.AdvancementsScreenAccessor;
|
import eu.midnightdust.midnightcontrols.client.mixin.*;
|
||||||
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.util.HandledScreenAccessor;
|
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.CreativeGuiExtensions;
|
||||||
import net.fabricmc.fabric.impl.client.itemgroup.FabricCreativeGuiComponents;
|
import net.fabricmc.fabric.impl.client.itemgroup.FabricCreativeGuiComponents;
|
||||||
import net.fabricmc.fabric.impl.itemgroup.FabricItemGroup;
|
import net.fabricmc.fabric.impl.itemgroup.FabricItemGroup;
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ package eu.midnightdust.midnightcontrols.client.controller;
|
|||||||
import eu.midnightdust.midnightcontrols.ControlsMode;
|
import eu.midnightdust.midnightcontrols.ControlsMode;
|
||||||
import eu.midnightdust.midnightcontrols.client.enums.ButtonState;
|
import eu.midnightdust.midnightcontrols.client.enums.ButtonState;
|
||||||
import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
|
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.ints.*;
|
||||||
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
|
import it.unimi.dsi.fastutil.objects.Object2ObjectOpenHashMap;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
|
|||||||
@@ -7,9 +7,9 @@ import org.spongepowered.asm.mixin.gen.Invoker;
|
|||||||
|
|
||||||
@Mixin(Mouse.class)
|
@Mixin(Mouse.class)
|
||||||
public interface MouseAccessor {
|
public interface MouseAccessor {
|
||||||
|
@Invoker("onCursorPos")
|
||||||
|
void midnightcontrols$onCursorPos(long window, double x, double y);
|
||||||
@Accessor
|
@Accessor
|
||||||
void setLeftButtonClicked(boolean value);
|
void setLeftButtonClicked(boolean value);
|
||||||
|
|
||||||
@Invoker("onCursorPos")
|
|
||||||
void midnightcontrols$onCursorPos(long window, double x, double y);
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,6 @@ import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
|
|||||||
import eu.midnightdust.midnightcontrols.client.gui.TouchscreenOverlay;
|
import eu.midnightdust.midnightcontrols.client.gui.TouchscreenOverlay;
|
||||||
import eu.midnightdust.midnightcontrols.client.touch.TouchInput;
|
import eu.midnightdust.midnightcontrols.client.touch.TouchInput;
|
||||||
import eu.midnightdust.midnightcontrols.client.touch.TouchUtils;
|
import eu.midnightdust.midnightcontrols.client.touch.TouchUtils;
|
||||||
import eu.midnightdust.midnightcontrols.client.util.MouseAccessor;
|
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
import net.minecraft.client.Mouse;
|
import net.minecraft.client.Mouse;
|
||||||
import net.minecraft.client.util.GlfwUtil;
|
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) {
|
if (action == 1 && button == GLFW.GLFW_MOUSE_BUTTON_4 && client.currentScreen != null) {
|
||||||
MidnightControlsClient.get().input.tryGoBack(client.currentScreen);
|
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 mouseX = x / client.getWindow().getScaleFactor();
|
||||||
double mouseY = y / client.getWindow().getScaleFactor();
|
double mouseY = y / client.getWindow().getScaleFactor();
|
||||||
int centerX = client.getWindow().getScaledWidth() / 2;
|
int centerX = client.getWindow().getScaledWidth() / 2;
|
||||||
@@ -95,6 +94,7 @@ public abstract class MouseMixin implements MouseAccessor {
|
|||||||
private void midnightcontrols$isCursorLocked(CallbackInfoReturnable<Boolean> ci) {
|
private void midnightcontrols$isCursorLocked(CallbackInfoReturnable<Boolean> ci) {
|
||||||
if (this.client.currentScreen == null) {
|
if (this.client.currentScreen == null) {
|
||||||
if (MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER && MidnightControlsConfig.virtualMouse) {
|
if (MidnightControlsConfig.controlsMode == ControlsMode.CONTROLLER && MidnightControlsConfig.virtualMouse) {
|
||||||
|
ci.setReturnValue(true);
|
||||||
ci.cancel();
|
ci.cancel();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -102,7 +102,8 @@ public abstract class MouseMixin implements MouseAccessor {
|
|||||||
|
|
||||||
@Inject(method = "lockCursor", at = @At("HEAD"), cancellable = true)
|
@Inject(method = "lockCursor", at = @At("HEAD"), cancellable = true)
|
||||||
private void midnightcontrols$onCursorLocked(CallbackInfo ci) {
|
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();
|
ci.cancel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1,18 +0,0 @@
|
|||||||
/*
|
|
||||||
* Copyright © 2021 LambdAurora <aurora42lambda@gmail.com>
|
|
||||||
*
|
|
||||||
* 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);
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user