aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/dungeon/actions/tree
diff options
context:
space:
mode:
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.java6
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);