From c2d28cbf7028ffed2f56169adbce3f03cc0c5b49 Mon Sep 17 00:00:00 2001 From: Unknown Date: Tue, 19 Mar 2019 14:25:15 +0800 Subject: v2.5 Beta --- .../shedaniel/rei/gui/ContainerScreenOverlay.java | 117 ++++++++++++--------- 1 file changed, 69 insertions(+), 48 deletions(-) (limited to 'src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java') diff --git a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java index b752ae04d..8692e68a9 100644 --- a/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java +++ b/src/main/java/me/shedaniel/rei/gui/ContainerScreenOverlay.java @@ -2,11 +2,11 @@ package me.shedaniel.rei.gui; import com.google.common.collect.Lists; import com.mojang.blaze3d.platform.GlStateManager; +import me.shedaniel.cloth.ClothInitializer; import me.shedaniel.rei.RoughlyEnoughItemsCore; import me.shedaniel.rei.client.ClientHelper; import me.shedaniel.rei.client.ScreenHelper; import me.shedaniel.rei.client.Weather; -import me.shedaniel.rei.gui.credits.CreditsScreen; import me.shedaniel.rei.gui.widget.*; import net.minecraft.client.MinecraftClient; import net.minecraft.client.audio.PositionedSoundInstance; @@ -26,10 +26,10 @@ import net.minecraft.util.math.MathHelper; import net.minecraft.world.GameMode; import java.awt.*; -import java.util.Arrays; import java.util.Collections; import java.util.LinkedList; import java.util.List; +import java.util.Optional; import java.util.stream.Collectors; public class ContainerScreenOverlay extends ScreenComponent { @@ -45,6 +45,10 @@ public class ContainerScreenOverlay extends ScreenComponent { private ButtonWidget buttonLeft, buttonRight; private int lastLeft; + public static ItemListOverlay getItemListOverlay() { + return itemListOverlay; + } + public void onInitialized() { onInitialized(false); } @@ -66,6 +70,15 @@ public class ContainerScreenOverlay extends ScreenComponent { page = getTotalPage(); itemListOverlay.updateList(getItemListArea(), page, searchTerm); } + + @Override + public Optional getTooltips() { + return Optional.ofNullable(I18n.translate("text.rei.previous_page")); + } + + @Override + public void setHasFocus(boolean boolean_1) { + } }); widgets.add(buttonRight = new ButtonWidget(rectangle.x + rectangle.width - 18, rectangle.y + 5, 16, 16, new TranslatableTextComponent("text.rei.right_arrow")) { @Override @@ -75,6 +88,15 @@ public class ContainerScreenOverlay extends ScreenComponent { page = 0; itemListOverlay.updateList(getItemListArea(), page, searchTerm); } + + @Override + public Optional getTooltips() { + return Optional.ofNullable(I18n.translate("text.rei.next_page")); + } + + @Override + public void setHasFocus(boolean boolean_1) { + } }); if (setPage) page = MathHelper.clamp(page, 0, getTotalPage()); @@ -97,24 +119,23 @@ public class ContainerScreenOverlay extends ScreenComponent { MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE); GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F); drawTexturedRect(getBounds().x + 3, getBounds().y + 3, 0, 0, 14, 14); - if (isHighlighted(mouseX, mouseY)) { - List list = new LinkedList<>(Arrays.asList(I18n.translate("text.rei.config_tooltip").split("\n"))); - list.add(" "); - if (!ClientHelper.isCheating()) - list.add("§c§m" + I18n.translate("text.rei.cheating")); - else - list.add("§a" + I18n.translate("text.rei.cheating")); - addTooltip(QueuedTooltip.create(list)); - } + } + + @Override + public Optional getTooltips() { + String tooltips = I18n.translate("text.rei.config_tooltip"); + tooltips += "\n "; + if (!ClientHelper.isCheating()) + tooltips += "\n§c§m" + I18n.translate("text.rei.cheating"); + else + tooltips += "\n§a" + I18n.translate("text.rei.cheating"); + return Optional.ofNullable(tooltips); + } + + @Override + public void setHasFocus(boolean boolean_1) { } }); - if (!RoughlyEnoughItemsCore.getConfigManager().getConfig().disableCreditsButton) - widgets.add(new ButtonWidget(RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? window.getScaledWidth() - 50 : 10, window.getScaledHeight() - 30, 40, 20, I18n.translate("text.rei.credits")) { - @Override - public void onPressed() { - MinecraftClient.getInstance().openScreen(new CreditsScreen(ScreenHelper.getLastContainerScreen())); - } - }); if (RoughlyEnoughItemsCore.getConfigManager().getConfig().showUtilsButtons) { widgets.add(new ButtonWidget(RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? window.getScaledWidth() - 55 : 35, 10, 20, 20, "") { @Override @@ -126,14 +147,21 @@ public class ContainerScreenOverlay extends ScreenComponent { public void draw(int mouseX, int mouseY, float partialTicks) { text = getGameModeShortText(getCurrentGameMode()); super.draw(mouseX, mouseY, partialTicks); - if (isHighlighted(mouseX, mouseY)) - addTooltip(QueuedTooltip.create(I18n.translate("text.rei.gamemode_button.tooltip", getGameModeText(getNextGameMode())).split("\n"))); + } + + @Override + public Optional getTooltips() { + return Optional.ofNullable(I18n.translate("text.rei.gamemode_button.tooltip", getGameModeText(getNextGameMode()))); + } + + @Override + public void setHasFocus(boolean boolean_1) { } }); widgets.add(new ButtonWidget(RoughlyEnoughItemsCore.getConfigManager().getConfig().mirrorItemPanel ? window.getScaledWidth() - 80 : 60, 10, 20, 20, "") { @Override public void onPressed() { - MinecraftClient.getInstance().player.sendChatMessage(RoughlyEnoughItemsCore.getConfigManager().getConfig().weatherCommand.replaceAll("\\{weather}", getNextWeather().getName().toLowerCase())); + MinecraftClient.getInstance().player.sendChatMessage(RoughlyEnoughItemsCore.getConfigManager().getConfig().weatherCommand.replaceAll("\\{weather}", getNextWeather().name().toLowerCase())); } @Override @@ -143,8 +171,15 @@ public class ContainerScreenOverlay extends ScreenComponent { MinecraftClient.getInstance().getTextureManager().bindTexture(CHEST_GUI_TEXTURE); GlStateManager.color4f(1.0F, 1.0F, 1.0F, 1.0F); drawTexturedRect(getBounds().x + 3, getBounds().y + 3, getCurrentWeather().getId() * 14, 14, 14, 14); - if (isHighlighted(mouseX, mouseY)) - addTooltip(QueuedTooltip.create(I18n.translate("text.rei.weather_button.tooltip", getNextWeather().getName()).split("\n"))); + } + + @Override + public Optional getTooltips() { + return Optional.ofNullable(I18n.translate("text.rei.weather_button.tooltip", I18n.translate(getNextWeather().getTranslateKey()))); + } + + @Override + public void setHasFocus(boolean boolean_1) { } }); } @@ -156,6 +191,8 @@ public class ContainerScreenOverlay extends ScreenComponent { super.draw(mouseX, mouseY, partialTicks); if (isHighlighted(mouseX, mouseY)) addTooltip(QueuedTooltip.create(I18n.translate("text.rei.go_back_first_page").split("\n"))); + else if (focused) + ScreenHelper.getLastOverlay().addTooltip(QueuedTooltip.create(new Point(x, y), I18n.translate("text.rei.go_back_first_page").split("\n"))); } @Override @@ -164,6 +201,10 @@ public class ContainerScreenOverlay extends ScreenComponent { page = 0; itemListOverlay.updateList(getItemListArea(), page, searchTerm); } + + @Override + public void setHasFocus(boolean boolean_1) { + } }); if (ScreenHelper.searchField == null) ScreenHelper.searchField = new TextFieldWidget(0, 0, 0, 0) { @@ -217,38 +258,18 @@ public class ContainerScreenOverlay extends ScreenComponent { } private String getGameModeShortText(GameMode gameMode) { - switch (gameMode) { - case CREATIVE: - return "C"; - case SURVIVAL: - return "S"; - case ADVENTURE: - return "A"; - case SPECTATOR: - return "SP"; - } - return gameMode.name(); + return I18n.translate("text.rei.short_gamemode." + gameMode.getName()); } private String getGameModeText(GameMode gameMode) { - switch (gameMode) { - case CREATIVE: - return "Creative"; - case SURVIVAL: - return "Survival"; - case ADVENTURE: - return "Adventure"; - case SPECTATOR: - return "Spectator"; - } - return gameMode.name(); + return I18n.translate("selectWorld.gameMode." + gameMode.getName()); } private GameMode getNextGameMode() { try { GameMode current = getCurrentGameMode(); int next = current.getId() + 1; - if (next >= 3) + if (next > 3) next = 0; return GameMode.byId(next); } catch (Exception e) { @@ -372,7 +393,7 @@ public class ContainerScreenOverlay extends ScreenComponent { public boolean mouseScrolled(double i, double j, double amount) { if (!ScreenHelper.isOverlayVisible()) return false; - if (rectangle.contains(ClientHelper.getMouseLocation())) { + if (rectangle.contains(ClothInitializer.clientUtils.getMouseLocation())) { if (amount > 0 && buttonLeft.enabled) buttonLeft.onPressed(); else if (amount < 0 && buttonRight.enabled) @@ -399,7 +420,7 @@ public class ContainerScreenOverlay extends ScreenComponent { } if (!ScreenHelper.isOverlayVisible()) return false; - Point point = ClientHelper.getMouseLocation(); + Point point = ClothInitializer.clientUtils.getMouseLocation(); ItemStack itemStack = null; if (MinecraftClient.getInstance().currentScreen instanceof ContainerScreen) if (ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot() != null && !ScreenHelper.getLastContainerScreenHooks().rei_getHoveredSlot().getStack().isEmpty()) -- cgit