aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics
diff options
context:
space:
mode:
authorsyeyoung <42869671+cyoung06@users.noreply.github.com>2020-12-15 01:23:36 +0900
committersyeyoung <42869671+cyoung06@users.noreply.github.com>2020-12-15 01:23:36 +0900
commitc4448fea149d2638f126813deba6406a7a15d67d (patch)
tree7701c48f47dc95644acfae4756596b6b9a089dff /src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics
parent496efb764360cd26fa40982532048aa18ae4c6be (diff)
downloadSkyblock-Dungeons-Guide-c4448fea149d2638f126813deba6406a7a15d67d.tar.gz
Skyblock-Dungeons-Guide-c4448fea149d2638f126813deba6406a7a15d67d.tar.bz2
Skyblock-Dungeons-Guide-c4448fea149d2638f126813deba6406a7a15d67d.zip
predicate equals and more edits
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics')
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonBreakableWall.java1
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDoor.java21
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonLever.java1
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayDoor.java1
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayLever.java3
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonPressurePlate.java1
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonSecret.java1
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonTomb.java1
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateBat.java5
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateSuperBoom.java5
10 files changed, 34 insertions, 6 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonBreakableWall.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonBreakableWall.java
index fe89b7cb..701f9a4a 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonBreakableWall.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonBreakableWall.java
@@ -45,6 +45,7 @@ public class DungeonBreakableWall implements DungeonMechanic, RouteBlocker {
}
{
for (String str : preRequisite) {
+ if (str.isEmpty()) continue;
ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
preRequisites.add(actionChangeState);
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDoor.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDoor.java
index cbf7520f..d496b450 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDoor.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDoor.java
@@ -20,7 +20,8 @@ import java.util.*;
@Data
public class DungeonDoor implements DungeonMechanic, RouteBlocker {
private OffsetPointSet secretPoint = new OffsetPointSet();
- private List<String> preRequisite = new ArrayList<String>();
+ private List<String> openPreRequisite = new ArrayList<String>();
+ private List<String> closePreRequisite = new ArrayList<String>();
@Override
@@ -43,9 +44,18 @@ public class DungeonDoor implements DungeonMechanic, RouteBlocker {
preRequisites = actionMove.getPreRequisite();
}
{
- for (String str : preRequisite) {
- ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
- preRequisites.add(actionChangeState);
+ if (state.equalsIgnoreCase("open")) {
+ for (String str : openPreRequisite) {
+ if (str.isEmpty()) continue;
+ ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
+ preRequisites.add(actionChangeState);
+ }
+ } else {
+ for (String str : closePreRequisite) {
+ if (str.isEmpty()) continue;
+ ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
+ preRequisites.add(actionChangeState);
+ }
}
}
return base;
@@ -75,7 +85,8 @@ public class DungeonDoor implements DungeonMechanic, RouteBlocker {
public DungeonDoor clone() throws CloneNotSupportedException {
DungeonDoor dungeonSecret = new DungeonDoor();
dungeonSecret.secretPoint = (OffsetPointSet) secretPoint.clone();
- dungeonSecret.preRequisite = new ArrayList<String>(preRequisite);
+ dungeonSecret.openPreRequisite = new ArrayList<String>(openPreRequisite);
+ dungeonSecret.closePreRequisite = new ArrayList<String>(closePreRequisite);
return dungeonSecret;
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonLever.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonLever.java
index 9fe0165f..01b3323e 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonLever.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonLever.java
@@ -37,6 +37,7 @@ public class DungeonLever implements DungeonMechanic {
}
{
for (String str : preRequisite) {
+ if (str.isEmpty()) continue;
ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
preRequisites.add(actionChangeState);
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayDoor.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayDoor.java
index 3ee41f1b..9027f0dc 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayDoor.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayDoor.java
@@ -44,6 +44,7 @@ public class DungeonOnewayDoor implements DungeonMechanic, RouteBlocker {
}
{
for (String str : preRequisite) {
+ if (str.isEmpty()) continue;
ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
preRequisites.add(actionChangeState);
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayLever.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayLever.java
index d9b396f0..a1500fa7 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayLever.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayLever.java
@@ -22,7 +22,7 @@ public class DungeonOnewayLever implements DungeonMechanic {
@Override
public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
- if (!("triggered".equalsIgnoreCase(state) || "untriggered".equalsIgnoreCase(state))) throw new IllegalArgumentException(state+" is not valid state for secret");
+ if (!("triggered".equalsIgnoreCase(state))) throw new IllegalArgumentException(state+" is not valid state for secret");
Set<Action> base;
Set<Action> preRequisites = base = new HashSet<Action>();
{
@@ -37,6 +37,7 @@ public class DungeonOnewayLever implements DungeonMechanic {
}
{
for (String str : preRequisite) {
+ if (str.isEmpty()) continue;
ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
preRequisites.add(actionChangeState);
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonPressurePlate.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonPressurePlate.java
index da126215..ab33a5db 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonPressurePlate.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonPressurePlate.java
@@ -39,6 +39,7 @@ public class DungeonPressurePlate implements DungeonMechanic {
}
{
for (String str : preRequisite) {
+ if (str.isEmpty()) continue;
ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
preRequisites.add(actionChangeState);
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonSecret.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonSecret.java
index e5b8d54a..91ede235 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonSecret.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonSecret.java
@@ -64,6 +64,7 @@ public class DungeonSecret implements DungeonMechanic {
}
{
for (String str : preRequisite) {
+ if (str.isEmpty()) continue;
ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
preRequisites.add(actionChangeState);
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonTomb.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonTomb.java
index ce74e955..86c6a818 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonTomb.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonTomb.java
@@ -45,6 +45,7 @@ public class DungeonTomb implements DungeonMechanic, RouteBlocker {
}
{
for (String str : preRequisite) {
+ if (str.isEmpty()) continue;
ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
preRequisites.add(actionChangeState);
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateBat.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateBat.java
index 136efd0e..5eb38597 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateBat.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateBat.java
@@ -14,4 +14,9 @@ public class PredicateBat implements Predicate<Entity> {
public boolean apply(@Nullable Entity input) {
return input instanceof EntityBat;
}
+
+ @Override
+ public boolean equals(Object o) {
+ return o == this || o != null && (o.getClass() == this.getClass());
+ }
}
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateSuperBoom.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateSuperBoom.java
index ccc1b017..6054c268 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateSuperBoom.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateSuperBoom.java
@@ -12,4 +12,9 @@ public class PredicateSuperBoom implements Predicate<ItemStack> {
public boolean apply(@Nullable ItemStack input) {
return false;
}
+
+ @Override
+ public boolean equals(Object o) {
+ return o == this || o != null && (o.getClass() == this.getClass());
+ }
}