aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/de/hysky/skyblocker
diff options
context:
space:
mode:
authorKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-10-23 23:20:17 -0400
committerKevinthegreat <92656833+kevinthegreat1@users.noreply.github.com>2023-10-28 00:51:24 -0400
commit47d80b6fabe48b5e5aab3ec800046e8cc3b2fdf5 (patch)
tree3278fb313946127bb50ba8dea6a499f59d57c25a /src/main/java/de/hysky/skyblocker
parent739eeb014e31aec54ad12b4ef14f95eca4bc2dea (diff)
downloadSkyblocker-47d80b6fabe48b5e5aab3ec800046e8cc3b2fdf5.tar.gz
Skyblocker-47d80b6fabe48b5e5aab3ec800046e8cc3b2fdf5.tar.bz2
Skyblocker-47d80b6fabe48b5e5aab3ec800046e8cc3b2fdf5.zip
Render custom waypoints
Diffstat (limited to 'src/main/java/de/hysky/skyblocker')
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonSecrets.java9
-rw-r--r--src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/Room.java3
-rw-r--r--src/main/java/de/hysky/skyblocker/utils/waypoint/Waypoint.java2
3 files changed, 11 insertions, 3 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonSecrets.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonSecrets.java
index 38dc1060..45eed595 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonSecrets.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonSecrets.java
@@ -1,5 +1,7 @@
package de.hysky.skyblocker.skyblock.dungeon.secrets;
+import com.google.common.collect.Multimap;
+import com.google.common.collect.MultimapBuilder;
import com.google.gson.JsonArray;
import com.google.gson.JsonElement;
import com.google.gson.JsonObject;
@@ -14,7 +16,6 @@ import de.hysky.skyblocker.config.SkyblockerConfigManager;
import de.hysky.skyblocker.utils.Constants;
import de.hysky.skyblocker.utils.Utils;
import de.hysky.skyblocker.utils.scheduler.Scheduler;
-import de.hysky.skyblocker.utils.waypoint.Waypoint;
import it.unimi.dsi.fastutil.objects.Object2ByteMap;
import it.unimi.dsi.fastutil.objects.Object2ByteOpenHashMap;
import it.unimi.dsi.fastutil.objects.ObjectIntPair;
@@ -107,7 +108,7 @@ public class DungeonSecrets {
private static final Map<Vector2ic, Room> rooms = new HashMap<>();
private static final Map<String, JsonElement> roomsJson = new HashMap<>();
private static final Map<String, JsonElement> waypointsJson = new HashMap<>();
- private static final Map<String, Waypoint> customWaypoints = new HashMap<>();
+ private static final Multimap<String, SecretWaypoint> customWaypoints = MultimapBuilder.hashKeys().arrayListValues().build();
@Nullable
private static CompletableFuture<Void> roomsLoaded;
/**
@@ -139,6 +140,10 @@ public class DungeonSecrets {
return waypointsJson.get(room).getAsJsonArray();
}
+ public static Collection<SecretWaypoint> getCustomWaypoints(String room) {
+ return customWaypoints.get(room);
+ }
+
/**
* Loads the dungeon secrets asynchronously from {@code /assets/skyblocker/dungeons}.
* Use {@link #isRoomsLoaded()} to check for completion of loading.
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/Room.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/Room.java
index 0d7a444f..0840c727 100644
--- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/Room.java
+++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/Room.java
@@ -307,6 +307,9 @@ public class Room {
BlockPos pos = DungeonMapUtils.relativeToActual(direction, physicalCornerPos, waypoint);
secretWaypointsMutable.put(secretIndex, pos, new SecretWaypoint(secretIndex, waypoint, secretName, pos));
}
+ for (SecretWaypoint customWaypoint : DungeonSecrets.getCustomWaypoints(name)) {
+ secretWaypointsMutable.put(customWaypoint.secretIndex, customWaypoint.pos, customWaypoint);
+ }
secretWaypoints = ImmutableTable.copyOf(secretWaypointsMutable);
matched = TriState.TRUE;
diff --git a/src/main/java/de/hysky/skyblocker/utils/waypoint/Waypoint.java b/src/main/java/de/hysky/skyblocker/utils/waypoint/Waypoint.java
index 26190d60..e7858f05 100644
--- a/src/main/java/de/hysky/skyblocker/utils/waypoint/Waypoint.java
+++ b/src/main/java/de/hysky/skyblocker/utils/waypoint/Waypoint.java
@@ -10,7 +10,7 @@ import java.util.function.Supplier;
public class Waypoint {
protected static final float DEFAULT_HIGHLIGHT_ALPHA = 0.5f;
protected static final float DEFAULT_LINE_WIDTH = 5f;
- protected final BlockPos pos;
+ public final BlockPos pos;
private final Box box;
private final Supplier<Type> typeSupplier;
private final float[] colorComponents;