aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsScreen.java
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-02-04 16:10:04 -0500
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2024-05-24 19:51:43 -0400
commitd84b0ce5169c1aea99c6e4842665c6e3598e97d8 (patch)
treea87bfa6ad2fe06435ded3fa5c7e5cf3af503e605 /src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsScreen.java
parentbf4034da76adcc7760628d49e518404273efceee (diff)
downloadSkyblocker-d84b0ce5169c1aea99c6e4842665c6e3598e97d8.tar.gz
Skyblocker-d84b0ce5169c1aea99c6e4842665c6e3598e97d8.tar.bz2
Skyblocker-d84b0ce5169c1aea99c6e4842665c6e3598e97d8.zip
Add waypoint adding
Diffstat (limited to 'src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsScreen.java')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsScreen.java36
1 files changed, 34 insertions, 2 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsScreen.java b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsScreen.java
index f98addda..4f760995 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsScreen.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsScreen.java
@@ -1,12 +1,22 @@
package de.hysky.skyblocker.skyblock.waypoint;
+import com.google.common.collect.Multimap;
+import com.google.common.collect.MultimapBuilder;
+import de.hysky.skyblocker.utils.waypoint.WaypointCategory;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
+import net.minecraft.client.gui.widget.ButtonWidget;
+import net.minecraft.client.gui.widget.GridWidget;
+import net.minecraft.client.gui.widget.SimplePositioningWidget;
+import net.minecraft.screen.ScreenTexts;
import net.minecraft.text.Text;
public class WaypointsScreen extends Screen {
- private WaypointsListWidget waypointsListWidget;
private final Screen parent;
+ final Multimap<String, WaypointCategory> waypoints = MultimapBuilder.hashKeys().arrayListValues().build(Waypoints.waypoints); // TODO deep copy
+ private WaypointsListWidget waypointsListWidget;
+ private ButtonWidget buttonNew;
+ private ButtonWidget buttonDone;
protected WaypointsScreen() {
this(null);
@@ -20,7 +30,21 @@ public class WaypointsScreen extends Screen {
@Override
protected void init() {
super.init();
- waypointsListWidget = addDrawableChild(new WaypointsListWidget(client, width, height - 96, 32, 25));
+ waypointsListWidget = addDrawableChild(new WaypointsListWidget(client, this, width, height - 96, 32, 25));
+ GridWidget gridWidget = new GridWidget();
+ gridWidget.getMainPositioner().marginX(5).marginY(2);
+ GridWidget.Adder adder = gridWidget.createAdder(2);
+ adder.add(ButtonWidget.builder(Text.translatable("skyblocker.waypoints.share"), buttonShare -> {}).build());
+ buttonNew = adder.add(ButtonWidget.builder(Text.translatable("skyblocker.waypoints.newCategory"), buttonNew -> waypointsListWidget.addWaypointCategoryAfterSelected()).build());
+ adder.add(ButtonWidget.builder(ScreenTexts.CANCEL, button -> close()).build());
+ buttonDone = adder.add(ButtonWidget.builder(ScreenTexts.DONE, button -> {
+ saveWaypoints();
+ close();
+ }).build());
+ gridWidget.refreshPositions();
+ SimplePositioningWidget.setPos(gridWidget, 0, this.height - 64, this.width, 64);
+ gridWidget.forEachChild(this::addDrawableChild);
+ updateButtons();
}
@Override
@@ -29,6 +53,14 @@ public class WaypointsScreen extends Screen {
context.drawCenteredTextWithShadow(this.textRenderer, this.title, this.width / 2, 16, 0xFFFFFF);
}
+ private void saveWaypoints() {
+ Waypoints.waypoints.clear();
+ Waypoints.waypoints.putAll(waypoints);
+ Waypoints.saveWaypoints(client);
+ }
+
+ private void updateButtons() {}
+
@SuppressWarnings("DataFlowIssue")
@Override
public void close() {