mirror of
https://github.com/TeamMidnightDust/MidnightControls.git
synced 2025-12-13 15:25:08 +01:00
- Update to 1.19.3 (Tabbing through creative tabs behaves the same as before, that was hard) - Add an option to move the chat input field to the top of the screen for better input on devices using an on-screen keyboard - Add an option to make the left joystick behave like a mouse in every screen - Add a button to more easily access the Advanced Config
49 lines
2.6 KiB
Java
49 lines
2.6 KiB
Java
package eu.midnightdust.midnightcontrols.client.compat;
|
|
|
|
import dev.emi.emi.config.EmiConfig;
|
|
import dev.emi.emi.screen.EmiScreen;
|
|
import dev.emi.emi.screen.EmiScreenManager;
|
|
import eu.midnightdust.midnightcontrols.client.MidnightControlsClient;
|
|
import eu.midnightdust.midnightcontrols.client.controller.ButtonBinding;
|
|
import eu.midnightdust.midnightcontrols.client.controller.ButtonCategory;
|
|
import eu.midnightdust.midnightcontrols.client.controller.InputManager;
|
|
import net.minecraft.client.gui.screen.ingame.HandledScreen;
|
|
import org.aperlambda.lambdacommon.Identifier;
|
|
import org.jetbrains.annotations.NotNull;
|
|
import org.lwjgl.glfw.GLFW;
|
|
|
|
public class EMICompat implements CompatHandler {
|
|
public static boolean handleTabs(boolean direction) {
|
|
if (isEMIEnabled() && MidnightControlsClient.get().input.actionGuiCooldown == 0 && EmiScreenManager.getSearchPanel() != null && EmiScreenManager.getSearchPanel().pageLeft != null && EmiScreenManager.getSearchPanel().pageRight != null) {
|
|
if (direction) EmiScreenManager.getSearchPanel().pageRight.onPress();
|
|
else EmiScreenManager.getSearchPanel().pageLeft.onPress();
|
|
MidnightControlsClient.get().input.actionGuiCooldown = 5;
|
|
return true;
|
|
}
|
|
return false;
|
|
}
|
|
@Override
|
|
public void handle(@NotNull MidnightControlsClient mod) {
|
|
ButtonCategory category = new ButtonCategory(new Identifier("midnightcontrols","category.emi"));
|
|
InputManager.registerCategory(category);
|
|
new ButtonBinding.Builder("emi_page_left")
|
|
.buttons(GLFW.GLFW_GAMEPAD_BUTTON_LEFT_BUMPER, ButtonBinding.axisAsButton(GLFW.GLFW_GAMEPAD_AXIS_LEFT_TRIGGER, true))
|
|
.category(category)
|
|
.action((client,action,value,buttonState)->handleTabs(false)).cooldown()
|
|
.filter(((client, buttonBinding) -> client.currentScreen instanceof HandledScreen<?> || client.currentScreen instanceof EmiScreen))
|
|
.register();
|
|
new ButtonBinding.Builder("emi_page_right")
|
|
.buttons(GLFW.GLFW_GAMEPAD_BUTTON_RIGHT_BUMPER, ButtonBinding.axisAsButton(GLFW.GLFW_GAMEPAD_AXIS_RIGHT_TRIGGER, true))
|
|
.category(category)
|
|
.action((client,action,value,buttonState)->handleTabs(true)).cooldown()
|
|
.filter(((client, buttonBinding) -> client.currentScreen instanceof HandledScreen<?> || client.currentScreen instanceof EmiScreen))
|
|
.register();
|
|
}
|
|
public static boolean isEMIEnabled() {
|
|
return EmiConfig.enabled;
|
|
}
|
|
public static boolean isSearchBarCentered() {
|
|
return EmiConfig.centerSearchBar;
|
|
}
|
|
}
|