diff options
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java | 6 | ||||
-rw-r--r-- | src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/Room.java | 10 |
2 files changed, 14 insertions, 2 deletions
diff --git a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java index 722ecd85..70a0fd8c 100644 --- a/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java +++ b/src/main/java/de/hysky/skyblocker/skyblock/dungeon/secrets/DungeonManager.java @@ -215,7 +215,7 @@ public class DungeonManager { return null; }); ClientLifecycleEvents.CLIENT_STOPPING.register(DungeonManager::saveCustomWaypoints); - Scheduler.INSTANCE.scheduleCyclic(DungeonManager::update, 10); + Scheduler.INSTANCE.scheduleCyclic(DungeonManager::update, 5); WorldRenderEvents.AFTER_TRANSLUCENT.register(DungeonManager::render); ClientReceiveMessageEvents.GAME.register(DungeonManager::onChatMessage); ClientReceiveMessageEvents.GAME_CANCELED.register(DungeonManager::onChatMessage); @@ -554,6 +554,10 @@ public class DungeonManager { } } if (room != null && currentRoom != room) { + if (currentRoom != null && room.getType() == Room.Type.FAIRY) { + currentRoom.nextRoom = room; + room.keyFound = currentRoom.keyFound; + } currentRoom = room; } currentRoom.tick(); 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 d59bf7bf..4857e8fe 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 @@ -99,11 +99,16 @@ public class Room implements Tickable, Renderable { protected List<Tickable> tickables = new ArrayList<>(); protected List<Renderable> renderables = new ArrayList<>(); + /** + * Stores the next room in the dungeon. Currently only used if the next room is the fairy room. + */ + @Nullable + protected Room nextRoom; @Nullable private BlockPos doorPos; @Nullable private Box doorBox; - private boolean keyFound; + protected boolean keyFound; public Room(@NotNull Type type, @NotNull Vector2ic... physicalPositions) { this.type = type; @@ -633,6 +638,9 @@ public class Room implements Tickable, Renderable { } protected void keyFound() { + if (nextRoom != null && nextRoom.type == Type.FAIRY) { + nextRoom.keyFound = true; + } keyFound = true; } |