aboutsummaryrefslogtreecommitdiff
path: root/src/main/java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/config/WidgetsElementList.java51
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/tabhud/widget/VisitorsWidget.java32
2 files changed, 63 insertions, 20 deletions
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<WidgetsListEntry> {
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<WidgetsListEntry> {
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<WidgetsListEntry> {
@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<Text> 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)));
+ }
+ }
+}