diff options
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/dungeon/actions/tree')
| -rw-r--r-- | src/main/java/kr/syeyoung/dungeonsguide/dungeon/actions/tree/ActionTree.java | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/actions/tree/ActionTree.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/actions/tree/ActionTree.java index 1db6767c..334f7c2b 100644 --- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/actions/tree/ActionTree.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/actions/tree/ActionTree.java @@ -4,6 +4,7 @@ import kr.syeyoung.dungeonsguide.dungeon.actions.Action; import kr.syeyoung.dungeonsguide.dungeon.actions.ActionRoot; import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom; import lombok.Data; +import lombok.EqualsAndHashCode; import java.util.HashMap; import java.util.HashSet; @@ -12,10 +13,14 @@ import java.util.Set; @Data public class ActionTree { + @EqualsAndHashCode.Exclude private ActionTree parent; private Action current; private Set<ActionTree> children; + @Override + public int hashCode() { return current == null ? 0 : current.hashCode(); } + public static ActionTree buildActionTree(Set<Action> actions, DungeonRoom dungeonRoom) { ActionRoot root = new ActionRoot(); @@ -31,6 +36,7 @@ public class ActionTree { return tree; } + private static ActionTree buildActionTree(ActionTree parent, Action action, DungeonRoom dungeonRoom, Map<Action, ActionTree> alreadyBuilt) { if (action == null) return null; if (alreadyBuilt.containsKey(action)) return alreadyBuilt.get(action); |
