mirror of
https://github.com/TeamMidnightDust/MidnightControls.git
synced 2025-12-16 08:35:10 +01:00
Get modded keybinds from vanilla instead of fabric
Additional keybinds are now loaded from the vanilla list instead of fabric's modded list - Better support for mods not using the Fabric Keybinding API (Closes #218) - Also now supports Forge mods via Sinytra Connector - Added configurable list to exclude certain keybinds
This commit is contained in:
@@ -1,35 +1,12 @@
|
||||
package eu.midnightdust.midnightcontrols.client.compat;
|
||||
|
||||
import eu.midnightdust.midnightcontrols.MidnightControls;
|
||||
import eu.midnightdust.midnightcontrols.client.MidnightControlsClient;
|
||||
import eu.midnightdust.midnightcontrols.client.MidnightControlsConfig;
|
||||
import eu.midnightdust.midnightcontrols.client.compat.mixin.SodiumOptionsGUIAccessor;
|
||||
import eu.midnightdust.midnightcontrols.client.controller.InputManager;
|
||||
import me.jellysquid.mods.sodium.client.gui.SodiumOptionsGUI;
|
||||
import me.jellysquid.mods.sodium.client.gui.options.control.ControlElement;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
|
||||
public class SodiumCompat {
|
||||
private static final MinecraftClient client = MinecraftClient.getInstance();
|
||||
public static void handleInput(Screen screen, boolean direction) {
|
||||
if (screen instanceof SodiumOptionsGUI optionsGUI) {
|
||||
SodiumOptionsGUIAccessor accessor = (SodiumOptionsGUIAccessor) optionsGUI;
|
||||
final int max = accessor.getControls().size()-1;
|
||||
|
||||
var option = accessor.getControls().stream().filter(ControlElement::isHovered).findFirst().orElse(accessor.getControls().get(0));
|
||||
int i = accessor.getControls().indexOf(option);
|
||||
i = (direction ? ((max > i) ? ++i : 0) : (i > 0 ? --i : max));
|
||||
|
||||
var dimensions = accessor.getControls().get(i).getDimensions();
|
||||
int x = (int) (client.getWindow().getScaleFactor() * dimensions.getCenterX());
|
||||
int y = (int) (client.getWindow().getScaleFactor() * dimensions.getCenterY());
|
||||
InputManager.queueMousePosition(x,y);
|
||||
InputManager.INPUT_MANAGER.updateMousePosition(client);
|
||||
MidnightControlsClient.get().input.actionGuiCooldown = 5;
|
||||
if (MidnightControlsConfig.debug) MidnightControls.get().log(i+" "+accessor.getControls().size()+" | " + dimensions.getCenterX() + " " + dimensions.getCenterY());
|
||||
}
|
||||
}
|
||||
public static void handleTabs(Screen screen, boolean direction) {
|
||||
if (screen instanceof SodiumOptionsGUI optionsGUI) {
|
||||
SodiumOptionsGUIAccessor accessor = (SodiumOptionsGUIAccessor) optionsGUI;
|
||||
|
||||
Reference in New Issue
Block a user