diff options
author | syeyoung <cyong06@naver.com> | 2021-02-27 00:55:04 +0900 |
---|---|---|
committer | syeyoung <cyong06@naver.com> | 2021-02-27 00:57:04 +0900 |
commit | 740c141be9abb13b7b54389a408b082570945153 (patch) | |
tree | 09654da24efbee43f9a175fec025c011d5d6d950 /src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder | |
parent | 4c8212e74781dfa09c0036e94ceaf150e31da9d4 (diff) | |
download | Skyblock-Dungeons-Guide-740c141be9abb13b7b54389a408b082570945153.tar.gz Skyblock-Dungeons-Guide-740c141be9abb13b7b54389a408b082570945153.tar.bz2 Skyblock-Dungeons-Guide-740c141be9abb13b7b54389a408b082570945153.zip |
massive refactor
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder')
-rwxr-xr-x | src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/DungeonRoom.java | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/DungeonRoom.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/DungeonRoom.java index 05eb09e9..def02c91 100755 --- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/DungeonRoom.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/roomfinder/DungeonRoom.java @@ -6,6 +6,8 @@ import kr.syeyoung.dungeonsguide.dungeon.MapProcessor; import kr.syeyoung.dungeonsguide.dungeon.data.DungeonRoomInfo; import kr.syeyoung.dungeonsguide.dungeon.doorfinder.DungeonDoor; import kr.syeyoung.dungeonsguide.dungeon.events.DungeonStateChangeEvent; +import kr.syeyoung.dungeonsguide.dungeon.mechanics.DungeonMechanic; +import kr.syeyoung.dungeonsguide.dungeon.mechanics.DungeonRoomDoor; import kr.syeyoung.dungeonsguide.pathfinding.NodeProcessorDungeonRoom; import kr.syeyoung.dungeonsguide.roomprocessor.ProcessorFactory; import kr.syeyoung.dungeonsguide.roomprocessor.RoomProcessor; @@ -45,6 +47,18 @@ public class DungeonRoom { private int totalSecrets = -1; private RoomState currentState = RoomState.DISCOVERED; + private Map<String, DungeonMechanic> cached = null; + public Map<String, DungeonMechanic> getMechanics() { + if (cached == null) { + cached = new HashMap<String, DungeonMechanic>(dungeonRoomInfo.getMechanics()); + int index = 0; + for (DungeonDoor door : doors) { + if (door.isExist()) cached.put((door.isRequiresKey() ? "withergate" : "gate")+"-"+(++index), new DungeonRoomDoor(door)); + } + } + return cached; + } + public void setCurrentState(RoomState currentState) { context.createEvent(new DungeonStateChangeEvent(unitPoints.get(0), dungeonRoomInfo.getName(), this.currentState, currentState)); this.currentState = currentState; |