From fd39fe5184c48aa9007f99a8fb918ae4724b3540 Mon Sep 17 00:00:00 2001 From: Unknown Date: Wed, 24 Jul 2019 21:43:35 +0800 Subject: Close #126 --- src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java | 10 +++++++--- src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java | 1 + 2 files changed, 8 insertions(+), 3 deletions(-) (limited to 'src/main/java/me') diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index 93dbf72ac..4236047fb 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -166,7 +166,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra widgets.add(new ButtonWidget(RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? window.getScaledWidth() - 55 : 35, 10, 20, 20, "") { @Override public void onPressed() { - MinecraftClient.getInstance().player.sendChatMessage(RoughlyEnoughItemsCore.getConfigManager().getConfig().gamemodeCommand.replaceAll("\\{gamemode}", getNextGameMode().getName())); + MinecraftClient.getInstance().player.sendChatMessage(RoughlyEnoughItemsCore.getConfigManager().getConfig().gamemodeCommand.replaceAll("\\{gamemode}", getNextGameMode(Screen.hasShiftDown()).getName())); } @Override @@ -177,7 +177,7 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra @Override public Optional getTooltips() { - return Optional.ofNullable(I18n.translate("text.rei.gamemode_button.tooltip", getGameModeText(getNextGameMode()))); + return Optional.ofNullable(I18n.translate("text.rei.gamemode_button.tooltip", getGameModeText(getNextGameMode(Screen.hasShiftDown())))); } @Override @@ -298,12 +298,16 @@ public class ContainerScreenOverlay extends AbstractParentElement implements Dra return I18n.translate("selectWorld.gameMode." + gameMode.getName()); } - private GameMode getNextGameMode() { + private GameMode getNextGameMode(boolean reverse) { try { GameMode current = getCurrentGameMode(); int next = current.getId() + 1; + if (reverse) + next -= 2; if (next > 3) next = 0; + if (next < 0) + next = 3; return GameMode.byId(next); } catch (Exception e) { return GameMode.NOT_SET; diff --git a/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java b/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java index 63793909d..e3f58b089 100644 --- a/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java +++ b/src/main/java/me/shedaniel/rei/utils/ClothScreenRegistry.java @@ -33,6 +33,7 @@ public class ClothScreenRegistry { public static final String RESET = "text.cloth-config.reset_value"; + @SuppressWarnings("deprecation") public static Screen getConfigScreen(Screen parent) { final ConfigManager configManager = RoughlyEnoughItemsCore.getConfigManager(); ConfigBuilder builder = ConfigBuilder.create().setParentScreen(parent).setTitle("text.rei.config.title").setSavingRunnable(() -> { -- cgit