Show tooltip when focused on side buttons

This commit is contained in:
raoulvdberge
2021-12-12 20:27:57 +01:00
parent 293b1a2227
commit 324ccffcf3
18 changed files with 29 additions and 21 deletions

View File

@@ -172,8 +172,8 @@ public abstract class BaseScreen<T extends AbstractContainerMenu> 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);
}
}

View File

@@ -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());
}

View File

@@ -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");
}

View File

@@ -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());
}

View File

@@ -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");
}

View File

@@ -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());
}

View File

@@ -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) {

View File

@@ -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());
}

View File

@@ -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());
}

View File

@@ -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());
}

View File

@@ -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());
}

View File

@@ -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());
}

View File

@@ -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"));
}

View File

@@ -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());
}

View File

@@ -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());
}

View File

@@ -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();
}

View File

@@ -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());
}

View File

@@ -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"));
}