From 16e002e467d69e37f4dfe88404c3c89fb232e232 Mon Sep 17 00:00:00 2001 From: viciscat <51047087+viciscat@users.noreply.github.com> Date: Thu, 4 Jul 2024 17:25:44 +0200 Subject: visitors widget, replace keybindings with arrows in widget list --- .../skyblock/tabhud/config/WidgetsElementList.java | 51 +++++++++++++--------- .../skyblock/tabhud/widget/VisitorsWidget.java | 32 ++++++++++++++ 2 files changed, 63 insertions(+), 20 deletions(-) create mode 100644 src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/VisitorsWidget.java (limited to 'src/main/java') diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/WidgetsElementList.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/WidgetsElementList.java index 5824ea97..0791c8a5 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/WidgetsElementList.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/WidgetsElementList.java @@ -4,8 +4,8 @@ import de.hysky.skyblocker.skyblock.tabhud.config.entries.WidgetsListEntry; import net.minecraft.client.MinecraftClient; import net.minecraft.client.gui.DrawContext; import net.minecraft.client.gui.widget.ElementListWidget; +import net.minecraft.text.Text; import net.minecraft.util.Identifier; -import org.lwjgl.glfw.GLFW; import java.util.Objects; @@ -16,8 +16,10 @@ public class WidgetsElementList extends ElementListWidget { static final Identifier MOVE_DOWN_HIGHLIGHTED_TEXTURE = Identifier.ofVanilla("transferable_list/move_down_highlighted"); static final Identifier MOVE_DOWN_TEXTURE = Identifier.ofVanilla("transferable_list/move_down"); private final WidgetsOrderingTab parent; - private boolean upArrowHovered = false; - private boolean downArrowHovered = false; + private boolean rightUpArrowHovered = false; + private boolean rightDownArrowHovered = false; + private boolean leftUpArrowHovered = false; + private boolean leftDownArrowHovered = false; private int editingPosition = - 1; @@ -44,17 +46,31 @@ public class WidgetsElementList extends ElementListWidget { super.renderList(context, mouseX, mouseY, delta); WidgetsListEntry hoveredEntry = getHoveredEntry(); if (hoveredEntry != null) hoveredEntry.renderTooltip(context, x, y, entryWidth, entryHeight, mouseX, mouseY); + if (rightUpArrowHovered || rightDownArrowHovered) { + context.drawTooltip(client.textRenderer, Text.literal("Move widget"), mouseX, mouseY); + } + if (leftUpArrowHovered || leftDownArrowHovered) { + context.drawTooltip(client.textRenderer, Text.literal("Change selection"), mouseX, mouseY); + } } @Override protected void renderEntry(DrawContext context, int mouseX, int mouseY, float delta, int index, int x, int y, int entryWidth, int entryHeight) { super.renderEntry(context, mouseX, mouseY, delta, index, x, y, entryWidth, entryHeight); if (index == editingPosition) { - boolean xGood = mouseX >= x + entryWidth && mouseX < x + entryWidth + 15; - upArrowHovered = xGood && mouseY >= y && mouseY < y + entryHeight / 2; - downArrowHovered = xGood && mouseY >= y + entryHeight / 2 && mouseY < y + entryHeight; - context.drawGuiTexture(upArrowHovered ? MOVE_UP_HIGHLIGHTED_TEXTURE : MOVE_UP_TEXTURE, getRowRight() - 16, y, 32, 32); - context.drawGuiTexture(downArrowHovered ? MOVE_DOWN_HIGHLIGHTED_TEXTURE : MOVE_DOWN_TEXTURE, getRowRight() - 16, y, 32, 32); + boolean rightXGood = mouseX >= x + entryWidth && mouseX < x + entryWidth + 15; + boolean leftXGood = mouseX >= x - 16 && mouseX < x - 1; + boolean isOnUp = mouseY >= y && mouseY < y + entryHeight / 2; + boolean isOnDown = mouseY >= y + entryHeight / 2 && mouseY < y + entryHeight; + rightUpArrowHovered = rightXGood && isOnUp; + rightDownArrowHovered = rightXGood && isOnDown; + leftUpArrowHovered = leftXGood && isOnUp; + leftDownArrowHovered = leftXGood && isOnDown; + context.drawGuiTexture(rightUpArrowHovered ? MOVE_UP_HIGHLIGHTED_TEXTURE : MOVE_UP_TEXTURE, getRowRight() - 16, y, 32, 32); + context.drawGuiTexture(rightDownArrowHovered ? MOVE_DOWN_HIGHLIGHTED_TEXTURE : MOVE_DOWN_TEXTURE, getRowRight() - 16, y, 32, 32); + + context.drawGuiTexture(leftUpArrowHovered ? MOVE_UP_HIGHLIGHTED_TEXTURE : MOVE_UP_TEXTURE, x - 33, y, 32, 32); + context.drawGuiTexture(leftDownArrowHovered ? MOVE_DOWN_HIGHLIGHTED_TEXTURE : MOVE_DOWN_TEXTURE, x - 33, y, 32, 32); } if (Objects.equals(getHoveredEntry(), getEntry(index))) { this.x = x; @@ -80,26 +96,21 @@ public class WidgetsElementList extends ElementListWidget { @Override public boolean mouseClicked(double mouseX, double mouseY, int button) { - if (upArrowHovered) { + if (editingPosition == -1) return super.mouseClicked(mouseX, mouseY, button); + if (rightUpArrowHovered) { parent.shiftClickAndWaitForServer(13, 1); return true; } - if (downArrowHovered) { + if (rightDownArrowHovered) { parent.shiftClickAndWaitForServer(13, 0); return true; } - return super.mouseClicked(mouseX, mouseY, button); - } - - @Override - public boolean keyPressed(int keyCode, int scanCode, int modifiers) { - if (keyCode == GLFW.GLFW_KEY_UP && editingPosition != -1) { + if (leftUpArrowHovered) { parent.clickAndWaitForServer(13, 1); - return true; - } else if (keyCode == GLFW.GLFW_KEY_DOWN && editingPosition != -1) { + } + if (leftDownArrowHovered) { parent.clickAndWaitForServer(13, 0); - return true; } - return super.keyPressed(keyCode, scanCode, modifiers); + return super.mouseClicked(mouseX, mouseY, button); } } diff --git a/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/VisitorsWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/VisitorsWidget.java new file mode 100644 index 00000000..2026cad3 --- /dev/null +++ b/src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/VisitorsWidget.java @@ -0,0 +1,32 @@ +package de.hysky.skyblocker.skyblock.tabhud.widget; + +import de.hysky.skyblocker.skyblock.tabhud.widget.component.PlainTextComponent; +import net.minecraft.text.MutableText; +import net.minecraft.text.Text; +import net.minecraft.util.Formatting; + +import java.util.List; + +public class VisitorsWidget extends TabHudWidget { + + private static final MutableText TITLE = Text.literal("Visitors").formatted(Formatting.AQUA, + Formatting.BOLD); + + public VisitorsWidget() { + super("Visitors", TITLE, Formatting.AQUA.getColorValue()); + } + + @Override + protected void updateContent(List lines) { + String string = lines.getFirst().getString().replaceAll("[()]", ""); + addComponent(new PlainTextComponent( + Text.literal(string).formatted(Formatting.YELLOW, Formatting.BOLD).append( + Text.literal(" visitor(s)").formatted(Formatting.WHITE)) + ) + ); + + for (int i = 1; i < lines.size(); i++) { + addComponent(new PlainTextComponent(lines.get(i))); + } + } +} -- cgit