diff options
author | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-10-23 23:20:17 -0400 |
---|---|---|
committer | Kevinthegreat <92656833+kevinthegreat1@users.noreply.github.com> | 2023-10-28 00:51:24 -0400 |
commit | 47d80b6fabe48b5e5aab3ec800046e8cc3b2fdf5 (patch) | |
tree | 3278fb313946127bb50ba8dea6a499f59d57c25a /src/main/java/de/hysky/skyblocker | |
parent | 739eeb014e31aec54ad12b4ef14f95eca4bc2dea (diff) | |
download | Skyblocker-47d80b6fabe48b5e5aab3ec800046e8cc3b2fdf5.tar.gz Skyblocker-47d80b6fabe48b5e5aab3ec800046e8cc3b2fdf5.tar.bz2 Skyblocker-47d80b6fabe48b5e5aab3ec800046e8cc3b2fdf5.zip |
Render custom waypoints
Diffstat (limited to 'src/main/java/de/hysky/skyblocker')
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; |