From 4cbdc5d77a1406ef6d8b350ddedce987cbed3647 Mon Sep 17 00:00:00 2001 From: shedaniel Date: Sun, 27 Jun 2021 16:47:45 +0800 Subject: Close #561 --- .../shedaniel/rei/impl/client/config/ConfigObjectImpl.java | 14 ++++++++++---- .../client/gui/screen/CompositeDisplayViewingScreen.java | 9 ++++++++- .../client/gui/screen/DefaultDisplayViewingScreen.java | 9 ++++++++- 3 files changed, 26 insertions(+), 6 deletions(-) (limited to 'runtime/src/main/java/me') diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java index cd99039c4..089819553 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/config/ConfigObjectImpl.java @@ -266,6 +266,11 @@ public class ConfigObjectImpl implements ConfigObject, ConfigData { return basics.keyBindings.exportImageKeybind == null ? ModifierKeyCode.unknown() : basics.keyBindings.exportImageKeybind; } + @Override + public ModifierKeyCode getPreviousScreenKeybind() { + return basics.keyBindings.previousScreenKeybind == null ? ModifierKeyCode.unknown() : basics.keyBindings.previousScreenKeybind; + } + @Override public double getEntrySize() { return advanced.accessibility.entrySize; @@ -419,15 +424,16 @@ public class ConfigObjectImpl implements ConfigObject, ConfigData { } public static class KeyBindings { - private ModifierKeyCode recipeKeybind = ModifierKeyCode.of(InputConstants.Type.KEYSYM.getOrCreate(82), Modifier.none()); - private ModifierKeyCode usageKeybind = ModifierKeyCode.of(InputConstants.Type.KEYSYM.getOrCreate(85), Modifier.none()); - private ModifierKeyCode hideKeybind = ModifierKeyCode.of(InputConstants.Type.KEYSYM.getOrCreate(79), Modifier.of(false, true, false)); + private ModifierKeyCode recipeKeybind = ModifierKeyCode.of(InputConstants.Type.KEYSYM.getOrCreate(InputConstants.KEY_R), Modifier.none()); + private ModifierKeyCode usageKeybind = ModifierKeyCode.of(InputConstants.Type.KEYSYM.getOrCreate(InputConstants.KEY_U), Modifier.none()); + private ModifierKeyCode hideKeybind = ModifierKeyCode.of(InputConstants.Type.KEYSYM.getOrCreate(InputConstants.KEY_O), Modifier.of(false, true, false)); private ModifierKeyCode previousPageKeybind = ModifierKeyCode.unknown(); private ModifierKeyCode nextPageKeybind = ModifierKeyCode.unknown(); private ModifierKeyCode focusSearchFieldKeybind = ModifierKeyCode.unknown(); private ModifierKeyCode copyRecipeIdentifierKeybind = ModifierKeyCode.unknown(); - private ModifierKeyCode favoriteKeybind = ModifierKeyCode.of(InputConstants.Type.KEYSYM.getOrCreate(65), Modifier.none()); + private ModifierKeyCode favoriteKeybind = ModifierKeyCode.of(InputConstants.Type.KEYSYM.getOrCreate(InputConstants.KEY_A), Modifier.none()); private ModifierKeyCode exportImageKeybind = ModifierKeyCode.unknown(); + private ModifierKeyCode previousScreenKeybind = ModifierKeyCode.of(InputConstants.Type.KEYSYM.getOrCreate(InputConstants.KEY_BACKSPACE), Modifier.none()); } public static class Appearance { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java index 42d451a9e..b2b86fb47 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/CompositeDisplayViewingScreen.java @@ -236,6 +236,13 @@ public class CompositeDisplayViewingScreen extends AbstractDisplayViewingScreen selectedRecipeIndex = categoryMap.get(categories.get(selectedCategoryIndex)).size() - 1; init(); return true; + } else if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesMouse(button)) { + if (REIRuntimeImpl.getInstance().hasLastDisplayScreen()) { + minecraft.setScreen(REIRuntimeImpl.getInstance().getLastDisplayScreen()); + } else { + minecraft.setScreen(REIRuntime.getInstance().getPreviousScreen()); + } + return true; } for (GuiEventListener entry : children()) if (entry.mouseClicked(mouseX, mouseY, button)) { @@ -408,7 +415,7 @@ public class CompositeDisplayViewingScreen extends AbstractDisplayViewingScreen Minecraft.getInstance().setScreen(REIRuntime.getInstance().getPreviousScreen()); return true; } - if (keyCode == 259) { + if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesKey(keyCode, scanCode)) { if (REIRuntimeImpl.getInstance().hasLastDisplayScreen()) { minecraft.setScreen(REIRuntimeImpl.getInstance().getLastDisplayScreen()); } else { diff --git a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java index 7239762ec..08fa19f81 100644 --- a/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java +++ b/runtime/src/main/java/me/shedaniel/rei/impl/client/gui/screen/DefaultDisplayViewingScreen.java @@ -138,7 +138,7 @@ public class DefaultDisplayViewingScreen extends AbstractDisplayViewingScreen { Minecraft.getInstance().setScreen(REIRuntime.getInstance().getPreviousScreen()); return true; } - if (keyCode == 259) { + if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesKey(keyCode, scanCode)) { if (REIRuntimeImpl.getInstance().hasLastDisplayScreen()) { minecraft.setScreen(REIRuntimeImpl.getInstance().getLastDisplayScreen()); } else { @@ -487,6 +487,13 @@ public class DefaultDisplayViewingScreen extends AbstractDisplayViewingScreen { if (recipeBack.isEnabled()) recipeBack.onClick(); return recipeBack.isEnabled(); + } else if (ConfigObject.getInstance().getPreviousScreenKeybind().matchesMouse(button)) { + if (REIRuntimeImpl.getInstance().hasLastDisplayScreen()) { + minecraft.setScreen(REIRuntimeImpl.getInstance().getLastDisplayScreen()); + } else { + minecraft.setScreen(REIRuntime.getInstance().getPreviousScreen()); + } + return true; } return super.mouseClicked(mouseX, mouseY, button); } -- cgit