diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-02-04 16:10:04 -0500 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2024-05-24 19:51:43 -0400 |
commit | d84b0ce5169c1aea99c6e4842665c6e3598e97d8 (patch) | |
tree | a87bfa6ad2fe06435ded3fa5c7e5cf3af503e605 /src/main/java/de/hysky/skyblocker/skyblock/waypoint/WaypointsScreen.java | |
parent | bf4034da76adcc7760628d49e518404273efceee (diff) | |
download | Skyblocker-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.java | 36 |
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() { |