From 324ccffcf31b7fd37ae3f31285d057d7ce0c5a8a Mon Sep 17 00:00:00 2001 From: raoulvdberge Date: Sun, 12 Dec 2021 20:27:57 +0100 Subject: [PATCH] Show tooltip when focused on side buttons --- .../refinedstorage/screen/BaseScreen.java | 4 ++-- .../widget/sidebutton/AccessTypeSideButton.java | 2 +- .../sidebutton/ConstructorDropSideButton.java | 2 +- .../widget/sidebutton/CrafterModeSideButton.java | 2 +- .../sidebutton/DestructorPickupSideButton.java | 2 +- .../widget/sidebutton/DetectorModeSideButton.java | 2 +- .../widget/sidebutton/ExactModeSideButton.java | 2 +- .../widget/sidebutton/FilterTypeSideButton.java | 2 +- .../widget/sidebutton/GridSizeSideButton.java | 2 +- .../sidebutton/GridSortingDirectionSideButton.java | 2 +- .../sidebutton/GridSortingTypeSideButton.java | 2 +- .../widget/sidebutton/GridViewTypeSideButton.java | 2 +- .../screen/widget/sidebutton/IoModeSideButton.java | 2 +- .../widget/sidebutton/RedstoneModeSideButton.java | 2 +- .../widget/sidebutton/SearchBoxModeSideButton.java | 2 +- .../screen/widget/sidebutton/SideButton.java | 14 +++++++++++--- .../screen/widget/sidebutton/TypeSideButton.java | 2 +- .../sidebutton/WhitelistBlacklistSideButton.java | 2 +- 18 files changed, 29 insertions(+), 21 deletions(-) diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/BaseScreen.java b/src/main/java/com/refinedmods/refinedstorage/screen/BaseScreen.java index 3bc95891a..30f2c821a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/BaseScreen.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/BaseScreen.java @@ -172,8 +172,8 @@ public abstract class BaseScreen extends Abstra renderForeground(matrixStack, mouseX, mouseY); for (Widget button : this.renderables) { - if (button instanceof SideButton && ((SideButton) button).isHoveredOrFocused()) { - renderTooltip(matrixStack, mouseX, mouseY, ((SideButton) button).getTooltip()); + if (button instanceof SideButton sideButton) { + sideButton.renderTooltip(matrixStack, mouseX, mouseY); } } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/AccessTypeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/AccessTypeSideButton.java index 13e14d933..019f5edf5 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/AccessTypeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/AccessTypeSideButton.java @@ -24,7 +24,7 @@ public class AccessTypeSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.access_type") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.access_type." + parameter.getValue().getId()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ConstructorDropSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ConstructorDropSideButton.java index 9c6a4d92f..e037600bc 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ConstructorDropSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ConstructorDropSideButton.java @@ -19,7 +19,7 @@ public class ConstructorDropSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.constructor.drop") + "\n" + ChatFormatting.GRAY + I18n.get(Boolean.TRUE.equals(ConstructorTile.DROP.getValue()) ? "gui.yes" : "gui.no"); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/CrafterModeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/CrafterModeSideButton.java index 2f6978c7b..bdc16fdbe 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/CrafterModeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/CrafterModeSideButton.java @@ -14,7 +14,7 @@ public class CrafterModeSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.crafter_mode") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.crafter_mode." + CrafterTile.MODE.getValue()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DestructorPickupSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DestructorPickupSideButton.java index a2446927b..d4b760c30 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DestructorPickupSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DestructorPickupSideButton.java @@ -19,7 +19,7 @@ public class DestructorPickupSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.destructor.pickup") + "\n" + ChatFormatting.GRAY + I18n.get(Boolean.TRUE.equals(DestructorTile.PICKUP.getValue()) ? "gui.yes" : "gui.no"); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DetectorModeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DetectorModeSideButton.java index bc779df98..48dd8ad62 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DetectorModeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/DetectorModeSideButton.java @@ -15,7 +15,7 @@ public class DetectorModeSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.detector.mode") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.detector.mode." + DetectorTile.MODE.getValue()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ExactModeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ExactModeSideButton.java index 126e9ab90..4a34c89a1 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ExactModeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/ExactModeSideButton.java @@ -20,7 +20,7 @@ public class ExactModeSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { String tooltip = I18n.get("sidebutton.refinedstorage.exact_mode") + "\n" + ChatFormatting.GRAY; if ((parameter.getValue() & MASK) == MASK) { diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/FilterTypeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/FilterTypeSideButton.java index e9965aab8..70d664e95 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/FilterTypeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/FilterTypeSideButton.java @@ -16,7 +16,7 @@ public class FilterTypeSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.type") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.type." + filterScreen.getType()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSizeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSizeSideButton.java index 2f0fb1c1b..c61c5033c 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSizeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSizeSideButton.java @@ -20,7 +20,7 @@ public class GridSizeSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.grid.size") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.size." + this.sizeSupplier.get()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingDirectionSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingDirectionSideButton.java index ef09b49a7..6721ba241 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingDirectionSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingDirectionSideButton.java @@ -17,7 +17,7 @@ public class GridSortingDirectionSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.grid.sorting.direction") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.sorting.direction." + grid.getSortingDirection()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingTypeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingTypeSideButton.java index c3d4b00a9..c461d7d54 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingTypeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridSortingTypeSideButton.java @@ -19,7 +19,7 @@ public class GridSortingTypeSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.grid.sorting.type") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.sorting.type." + grid.getSortingType()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridViewTypeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridViewTypeSideButton.java index 590c8b011..e1c0ea00a 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridViewTypeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/GridViewTypeSideButton.java @@ -17,7 +17,7 @@ public class GridViewTypeSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.grid.view_type") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.view_type." + grid.getViewType()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/IoModeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/IoModeSideButton.java index 6ff5e3ece..1851609ca 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/IoModeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/IoModeSideButton.java @@ -15,7 +15,7 @@ public class IoModeSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.iomode") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.iomode." + (DiskManipulatorTile.IO_MODE.getValue() == DiskManipulatorNetworkNode.IO_MODE_INSERT ? "insert" : "extract")); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/RedstoneModeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/RedstoneModeSideButton.java index e77b677c7..3ec51aa95 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/RedstoneModeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/RedstoneModeSideButton.java @@ -17,7 +17,7 @@ public class RedstoneModeSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.redstone_mode") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.redstone_mode." + parameter.getValue()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SearchBoxModeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SearchBoxModeSideButton.java index 70c182c23..0cb721e07 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SearchBoxModeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SearchBoxModeSideButton.java @@ -30,7 +30,7 @@ public abstract class SearchBoxModeSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.grid.search_box_mode") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.grid.search_box_mode." + getSearchBoxMode()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SideButton.java index f8f1d1e2b..0e46eec81 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/SideButton.java @@ -24,10 +24,18 @@ public abstract class SideButton extends Button { this.screen = screen; } + public void renderTooltip(PoseStack matrixStack, int mouseX, int mouseY) { + boolean isFocused = isFocused(); + if (isHovered || isFocused) { + int x = isHovered ? mouseX : (this.x - screen.getGuiLeft()) + width; + int y = isHovered ? mouseY : (this.y - screen.getGuiTop()) + (height / 2); + screen.renderTooltip(matrixStack, x, y, getTooltip()); + } + } + @Override public void renderButton(PoseStack matrixStack, int mouseX, int mouseY, float partialTicks) { RenderSystem.setShaderColor(1.0F, 1.0F, 1.0F, 1.0F); - // TODO RenderSystem.enableAlphaTest(); isHovered = RenderUtils.inBounds(x, y, width, height, mouseX, mouseY); @@ -36,7 +44,7 @@ public abstract class SideButton extends Button { renderButtonIcon(matrixStack, x + 1, y + 1); - if (isHovered) { + if (isHoveredOrFocused()) { RenderSystem.enableBlend(); RenderSystem.blendFunc(GL11.GL_SRC_ALPHA, GL11.GL_ONE_MINUS_SRC_ALPHA); RenderSystem.setShaderColor(1.0f, 1.0f, 1.0f, 0.5f); @@ -51,5 +59,5 @@ public abstract class SideButton extends Button { protected abstract void renderButtonIcon(PoseStack matrixStack, int x, int y); - public abstract String getTooltip(); + protected abstract String getTooltip(); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/TypeSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/TypeSideButton.java index e2ae6754d..571449078 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/TypeSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/TypeSideButton.java @@ -18,7 +18,7 @@ public class TypeSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.type") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.type." + type.getValue()); } diff --git a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/WhitelistBlacklistSideButton.java b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/WhitelistBlacklistSideButton.java index 8d5dce36f..748ebedd9 100644 --- a/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/WhitelistBlacklistSideButton.java +++ b/src/main/java/com/refinedmods/refinedstorage/screen/widget/sidebutton/WhitelistBlacklistSideButton.java @@ -18,7 +18,7 @@ public class WhitelistBlacklistSideButton extends SideButton { } @Override - public String getTooltip() { + protected String getTooltip() { return I18n.get("sidebutton.refinedstorage.mode") + "\n" + ChatFormatting.GRAY + I18n.get("sidebutton.refinedstorage.mode." + (parameter.getValue() == IWhitelistBlacklist.WHITELIST ? "whitelist" : "blacklist")); }