diff options
| author | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2025-06-30 05:07:59 -0400 |
|---|---|---|
| committer | Aaron <51387595+AzureAaron@users.noreply.github.com> | 2025-06-30 05:07:59 -0400 |
| commit | 49b799b69ba775ad9fabed6a3159122e805c2eee (patch) | |
| tree | a1fc66956bbe708728896479182634766ea7b1a9 /src/main/java/de | |
| parent | 943d2681f3b79e33ac727addee56935a1f0fc4b7 (diff) | |
| download | Skyblocker-49b799b69ba775ad9fabed6a3159122e805c2eee.tar.gz Skyblocker-49b799b69ba775ad9fabed6a3159122e805c2eee.tar.bz2 Skyblocker-49b799b69ba775ad9fabed6a3159122e805c2eee.zip | |
Add up/down buttons to move waypoint indices
Diffstat (limited to 'src/main/java/de')
| -rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsListWidget.java | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsListWidget.java b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsListWidget.java index c3a138e8..20507035 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsListWidget.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsListWidget.java @@ -212,6 +212,8 @@ public class WaypointsListWidget extends ElementListWidget<WaypointsListWidget.A private final WaypointGroupEntry groupEntry; private NamedWaypoint waypoint; private final List<ClickableWidget> children; + private final ButtonWidget buttonUp; + private final ButtonWidget buttonDown; private final CheckboxWidget enabled; private final TextFieldWidget nameField; private final TextFieldWidget xField; @@ -228,6 +230,12 @@ public class WaypointsListWidget extends ElementListWidget<WaypointsListWidget.A this.groupEntry = groupEntry; this.waypoint = initialWaypoint; //Do not use the initialWaypoint parameter after here for the same reasons as the group one + buttonUp = ButtonWidget.builder(Text.of("↑"), button -> { + this.shiftWaypointIndex(-1); + }).size(11, 11).build(); + buttonDown = ButtonWidget.builder(Text.of("↓"), button -> { + this.shiftWaypointIndex(1); + }).size(11, 11).build(); enabled = CheckboxWidget.builder(Text.literal(""), client.textRenderer).checked(screen.isEnabled(waypoint)).callback((checkbox, checked) -> screen.enabledChanged(waypoint, checked)).build(); nameField = new TextFieldWidget(client.textRenderer, 65, 20, Text.literal("Name")); nameField.setText(waypoint.getName().getString()); @@ -253,7 +261,7 @@ public class WaypointsListWidget extends ElementListWidget<WaypointsListWidget.A groupEntry.group.waypoints().remove(waypoint); WaypointsListWidget.this.children().remove(this); }).width(38).build(); - children = List.of(enabled, nameField, xField, yField, zField, colorField, buttonDelete); + children = List.of(buttonUp, buttonDown, enabled, nameField, xField, yField, zField, colorField, buttonDelete); } @Override @@ -266,6 +274,15 @@ public class WaypointsListWidget extends ElementListWidget<WaypointsListWidget.A return children; } + private void shiftWaypointIndex(int shift) { + int currentIndex = groupEntry.group.waypoints().indexOf(waypoint); + int newIndex = Math.clamp(currentIndex + shift, 0, groupEntry.group.waypoints().size() - 1); + + groupEntry.group.waypoints().remove(currentIndex); + groupEntry.group.waypoints().add(newIndex, waypoint); + WaypointsListWidget.this.updateEntries(); + } + private void updateName(String name) { if (waypoint.name.getString().equals(name)) return; int index = groupEntry.group.waypoints().indexOf(waypoint); @@ -331,6 +348,8 @@ public class WaypointsListWidget extends ElementListWidget<WaypointsListWidget.A context.drawTextWithShadow(client.textRenderer, "Y:", width / 2 - 11, y + 6, 0xFF_FFFFFF); context.drawTextWithShadow(client.textRenderer, "Z:", width / 2 + 26, y + 6, 0xFF_FFFFFF); context.drawTextWithShadow(client.textRenderer, "#", x + entryWidth - 105, y + 6, 0xFF_FFFFFF); + buttonUp.setPosition(x + 3, y + (entryHeight - buttonUp.getHeight()) / 2); + buttonDown.setPosition(x + 14, y + (entryHeight - buttonDown.getHeight()) / 2); enabled.setPosition(x + 26, y + 1); nameField.setPosition(enabled.getRight() + 5, y); xField.setPosition(width / 2 - 40, y); |
