aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics')
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonBreakableWall.java18
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDoor.java16
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDummy.java13
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonFairySoul.java56
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonJournal.java17
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonLever.java17
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonNPC.java67
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayDoor.java22
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayLever.java17
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonPressurePlate.java52
-rw-r--r--src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonRoomDoor.java50
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonSecret.java106
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonTomb.java64
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/dunegonmechanic/DungeonMechanic.java (renamed from src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonMechanic.java)8
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/dunegonmechanic/RouteBlocker.java (renamed from src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/RouteBlocker.java)4
-rwxr-xr-xsrc/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateArmorStand.java1
16 files changed, 275 insertions, 253 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 dc201fdb..64d4dc0b 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonBreakableWall.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonBreakableWall.java
@@ -19,11 +19,13 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
import com.google.common.collect.Sets;
-import kr.syeyoung.dungeonsguide.dungeon.actions.*;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.*;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPointSet;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.RouteBlocker;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.DungeonMechanic;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils;
import lombok.Data;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
@@ -41,10 +43,10 @@ public class DungeonBreakableWall implements DungeonMechanic, RouteBlocker {
@Override
- public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
+ public Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom) {
if (state.equalsIgnoreCase("navigate")) {
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
int leastY = Integer.MAX_VALUE;
OffsetPoint thatPt = null;
@@ -69,8 +71,8 @@ public class DungeonBreakableWall implements DungeonMechanic, RouteBlocker {
if (!isBlocking(dungeonRoom)) {
return Collections.emptySet();
}
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
{
ActionBreakWithSuperBoom actionClick;
preRequisites.add(actionClick = new ActionBreakWithSuperBoom(getRepresentingPoint(dungeonRoom)));
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 e31cc78e..fc5abe45 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDoor.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDoor.java
@@ -19,12 +19,14 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
import com.google.common.collect.Sets;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.AbstractAction;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPointSet;
-import kr.syeyoung.dungeonsguide.dungeon.actions.Action;
-import kr.syeyoung.dungeonsguide.dungeon.actions.ActionChangeState;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.ActionChangeState;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.RouteBlocker;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.DungeonMechanic;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils;
import lombok.Data;
import net.minecraft.init.Blocks;
import net.minecraft.util.BlockPos;
@@ -42,11 +44,11 @@ public class DungeonDoor implements DungeonMechanic, RouteBlocker {
@Override
- public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
+ public Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom) {
if (!("open".equalsIgnoreCase(state) || "closed".equalsIgnoreCase(state))) throw new IllegalArgumentException(state+" is not valid state for door");
if (state.equalsIgnoreCase(getCurrentState(dungeonRoom))) return Collections.emptySet();
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
{
if (state.equalsIgnoreCase("open")) {
for (String str : openPreRequisite) {
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDummy.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDummy.java
index 876764be..60ca1b3a 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDummy.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonDummy.java
@@ -19,10 +19,11 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
import com.google.common.collect.Sets;
-import kr.syeyoung.dungeonsguide.dungeon.actions.*;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.*;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.DungeonMechanic;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils;
import lombok.Data;
import net.minecraft.util.BlockPos;
@@ -40,10 +41,10 @@ public class DungeonDummy implements DungeonMechanic {
@Override
- public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
+ public Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom) {
// if (!"navigate".equalsIgnoreCase(state)) throw new IllegalArgumentException(state+" is not valid state for secret");
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
if (state.equalsIgnoreCase("navigate")){
ActionMove actionMove = new ActionMove(secretPoint);
preRequisites.add(actionMove);
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonFairySoul.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonFairySoul.java
index c5270a9c..0bbecfbd 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonFairySoul.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonFairySoul.java
@@ -19,17 +19,25 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
import com.google.common.collect.Sets;
-import kr.syeyoung.dungeonsguide.dungeon.actions.*;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.AbstractAction;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.ActionChangeState;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.ActionInteract;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.ActionMove;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.DungeonMechanic;
import kr.syeyoung.dungeonsguide.dungeon.mechanics.predicates.PredicateArmorStand;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils;
import lombok.Data;
+import net.minecraft.entity.Entity;
import net.minecraft.util.BlockPos;
import java.awt.*;
+import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
-import java.util.*;
+import java.util.Set;
+import java.util.function.Predicate;
@Data
public class DungeonFairySoul implements DungeonMechanic {
@@ -39,27 +47,25 @@ public class DungeonFairySoul implements DungeonMechanic {
@Override
- public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
- if (!"navigate".equalsIgnoreCase(state)) throw new IllegalArgumentException(state+" is not valid state for secret");
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
- {
- ActionInteract actionClick= new ActionInteract(secretPoint);
- actionClick.setPredicate(PredicateArmorStand.INSTANCE);
- actionClick.setRadius(3);
- preRequisites.add(actionClick);
- preRequisites = actionClick.getPreRequisite();
- }
- {
- ActionMove actionMove = new ActionMove(secretPoint);
- preRequisites.add(actionMove);
- preRequisites = actionMove.getPreRequisite();
- }
- {
- for (String str : preRequisite) {
- if (str.isEmpty()) continue;
- ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
- preRequisites.add(actionChangeState);
+ public Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom) {
+ if (!"navigate".equalsIgnoreCase(state))
+ throw new IllegalArgumentException(state + " is not valid state for secret");
+
+ Set<AbstractAction> base = new HashSet<>();
+ ActionInteract actionClick = new ActionInteract(secretPoint);
+ actionClick.setPredicate((Predicate<Entity>) PredicateArmorStand.INSTANCE);
+ actionClick.setRadius(3);
+ base.add(actionClick);
+
+ base = actionClick.getPreRequisite();
+ ActionMove actionMove = new ActionMove(secretPoint);
+ base.add(actionMove);
+ base = actionMove.getPreRequisite();
+
+ for (String str : preRequisite) {
+ if (!str.isEmpty()) {
+ String[] split = str.split(":");
+ base.add(new ActionChangeState(split[0], split[1]));
}
}
return base;
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonJournal.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonJournal.java
index 8796bccb..1edf51ef 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonJournal.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonJournal.java
@@ -19,12 +19,13 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
import com.google.common.collect.Sets;
-import kr.syeyoung.dungeonsguide.dungeon.actions.Action;
-import kr.syeyoung.dungeonsguide.dungeon.actions.ActionChangeState;
-import kr.syeyoung.dungeonsguide.dungeon.actions.ActionMove;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.AbstractAction;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.ActionChangeState;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.ActionMove;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.DungeonMechanic;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils;
import lombok.Data;
import net.minecraft.util.BlockPos;
@@ -42,10 +43,10 @@ public class DungeonJournal implements DungeonMechanic {
@Override
- public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
+ public Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom) {
if (!"navigate".equalsIgnoreCase(state)) throw new IllegalArgumentException(state+" is not valid state for secret");
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
{
ActionMove actionMove = new ActionMove(secretPoint);
preRequisites.add(actionMove);
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 6d50ae78..637c9c2d 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonLever.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonLever.java
@@ -19,10 +19,11 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
import com.google.common.collect.Sets;
-import kr.syeyoung.dungeonsguide.dungeon.actions.*;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.*;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.DungeonMechanic;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils;
import lombok.Data;
import net.minecraft.util.BlockPos;
@@ -37,11 +38,11 @@ public class DungeonLever implements DungeonMechanic {
private String triggering = "";
@Override
- public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
+ public Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom) {
if (state.equals(getCurrentState(dungeonRoom))) return Collections.emptySet();
if (state.equalsIgnoreCase("navigate")) {
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
ActionMoveNearestAir actionMove = new ActionMoveNearestAir(getRepresentingPoint(dungeonRoom));
preRequisites.add(actionMove);
preRequisites = actionMove.getPreRequisite();
@@ -54,8 +55,8 @@ public class DungeonLever implements DungeonMechanic {
}
if (!("triggered".equalsIgnoreCase(state) || "untriggered".equalsIgnoreCase(state))) throw new IllegalArgumentException(state+" is not valid state for secret");
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
if (!state.equalsIgnoreCase(getCurrentState(dungeonRoom))){
ActionClick actionClick;
preRequisites.add(actionClick = new ActionClick(leverPoint));
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonNPC.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonNPC.java
index 6007421f..9785cb62 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonNPC.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonNPC.java
@@ -19,15 +19,17 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
import com.google.common.collect.Sets;
-import kr.syeyoung.dungeonsguide.dungeon.actions.Action;
-import kr.syeyoung.dungeonsguide.dungeon.actions.ActionChangeState;
-import kr.syeyoung.dungeonsguide.dungeon.actions.ActionInteract;
-import kr.syeyoung.dungeonsguide.dungeon.actions.ActionMove;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.AbstractAction;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.ActionChangeState;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.ActionInteract;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.ActionMove;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.DungeonMechanic;
import kr.syeyoung.dungeonsguide.dungeon.mechanics.predicates.PredicateArmorStand;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils;
import lombok.Data;
+import net.minecraft.entity.Entity;
import net.minecraft.util.BlockPos;
import java.awt.*;
@@ -35,36 +37,35 @@ import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
+import java.util.function.Predicate;
@Data
public class DungeonNPC implements DungeonMechanic {
private static final long serialVersionUID = -89487601113028763L;
- private OffsetPoint secretPoint = new OffsetPoint(0,0,0);
+ private OffsetPoint secretPoint = new OffsetPoint(0, 0, 0);
private List<String> preRequisite = new ArrayList<String>();
@Override
- public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
- if (!"navigate".equalsIgnoreCase(state)) throw new IllegalArgumentException(state+" is not valid state for secret");
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
- {
- ActionInteract actionClick= new ActionInteract(secretPoint);
- actionClick.setPredicate(PredicateArmorStand.INSTANCE);
- actionClick.setRadius(3);
- preRequisites.add(actionClick);
- preRequisites = actionClick.getPreRequisite();
- }
- {
- ActionMove actionMove = new ActionMove(secretPoint);
- preRequisites.add(actionMove);
- preRequisites = actionMove.getPreRequisite();
- }
- {
- for (String str : preRequisite) {
- if (str.isEmpty()) continue;
- ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
- preRequisites.add(actionChangeState);
+ public Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom) {
+ if (!"navigate".equalsIgnoreCase(state))
+ throw new IllegalArgumentException(state + " is not valid state for secret");
+
+ Set<AbstractAction> base = new HashSet<>();
+ ActionInteract actionClick = new ActionInteract(secretPoint);
+ actionClick.setPredicate((Predicate<Entity>) PredicateArmorStand.INSTANCE);
+ actionClick.setRadius(3);
+ base.add(actionClick);
+
+ base = actionClick.getPreRequisite();
+ ActionMove actionMove = new ActionMove(secretPoint);
+ base.add(actionMove);
+ base = actionMove.getPreRequisite();
+
+ for (String str : preRequisite) {
+ if (!str.isEmpty()) {
+ String[] split = str.split(":");
+ base.add(new ActionChangeState(split[0], split[1]));
}
}
return base;
@@ -73,9 +74,9 @@ public class DungeonNPC implements DungeonMechanic {
@Override
public void highlight(Color color, String name, DungeonRoom dungeonRoom, float partialTicks) {
BlockPos pos = getSecretPoint().getBlockPos(dungeonRoom);
- RenderUtils.highlightBlock(pos, color,partialTicks);
- RenderUtils.drawTextAtWorld("F-"+name, pos.getX() +0.5f, pos.getY()+0.375f, pos.getZ()+0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
- RenderUtils.drawTextAtWorld(getCurrentState(dungeonRoom), pos.getX() +0.5f, pos.getY()+0f, pos.getZ()+0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
+ RenderUtils.highlightBlock(pos, color, partialTicks);
+ RenderUtils.drawTextAtWorld("F-" + name, pos.getX() + 0.5f, pos.getY() + 0.375f, pos.getZ() + 0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
+ RenderUtils.drawTextAtWorld(getCurrentState(dungeonRoom), pos.getX() + 0.5f, pos.getY() + 0f, pos.getZ() + 0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
}
@@ -96,10 +97,12 @@ public class DungeonNPC implements DungeonMechanic {
public Set<String> getPossibleStates(DungeonRoom dungeonRoom) {
return Sets.newHashSet("navigate");
}
+
@Override
public Set<String> getTotalPossibleStates(DungeonRoom dungeonRoom) {
- return Sets.newHashSet("no-state","navigate");
+ return Sets.newHashSet("no-state", "navigate");
}
+
@Override
public OffsetPoint getRepresentingPoint(DungeonRoom dungeonRoom) {
return secretPoint;
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 92634c00..84201a60 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayDoor.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayDoor.java
@@ -19,13 +19,15 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
import com.google.common.collect.Sets;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.AbstractAction;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPointSet;
-import kr.syeyoung.dungeonsguide.dungeon.actions.Action;
-import kr.syeyoung.dungeonsguide.dungeon.actions.ActionChangeState;
-import kr.syeyoung.dungeonsguide.dungeon.actions.ActionMoveNearestAir;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.ActionChangeState;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.ActionMoveNearestAir;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.RouteBlocker;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.DungeonMechanic;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils;
import lombok.Data;
import net.minecraft.init.Blocks;
import net.minecraft.util.BlockPos;
@@ -42,10 +44,10 @@ public class DungeonOnewayDoor implements DungeonMechanic, RouteBlocker {
@Override
- public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
+ public Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom) {
if (state.equalsIgnoreCase("navigate")) {
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
ActionMoveNearestAir actionMove = new ActionMoveNearestAir(getRepresentingPoint(dungeonRoom));
preRequisites.add(actionMove);
preRequisites = actionMove.getPreRequisite();
@@ -60,8 +62,8 @@ public class DungeonOnewayDoor implements DungeonMechanic, RouteBlocker {
if (!isBlocking(dungeonRoom)) {
return Collections.emptySet();
}
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
{
for (String str : preRequisite) {
if (str.isEmpty()) continue;
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 00c876c5..d0212380 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayLever.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonOnewayLever.java
@@ -19,10 +19,11 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
import com.google.common.collect.Sets;
-import kr.syeyoung.dungeonsguide.dungeon.actions.*;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.*;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.DungeonMechanic;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils;
import lombok.Data;
import net.minecraft.util.BlockPos;
@@ -38,11 +39,11 @@ public class DungeonOnewayLever implements DungeonMechanic {
private String triggering = "";
@Override
- public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
+ public Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom) {
if (state.equals(getCurrentState(dungeonRoom))) return Collections.emptySet();
if (state.equalsIgnoreCase("navigate")) {
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
ActionMoveNearestAir actionMove = new ActionMoveNearestAir(getRepresentingPoint(dungeonRoom));
preRequisites.add(actionMove);
preRequisites = actionMove.getPreRequisite();
@@ -54,8 +55,8 @@ public class DungeonOnewayLever implements DungeonMechanic {
return base;
}
if (!("triggered".equalsIgnoreCase(state))) throw new IllegalArgumentException(state+" is not valid state for secret");
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
{
ActionClick actionClick;
preRequisites.add(actionClick = new ActionClick(leverPoint));
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 1542513d..1f45e91d 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonPressurePlate.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonPressurePlate.java
@@ -19,10 +19,11 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
import com.google.common.collect.Sets;
-import kr.syeyoung.dungeonsguide.dungeon.actions.*;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.*;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.DungeonMechanic;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils;
import lombok.Data;
import net.minecraft.util.BlockPos;
@@ -33,16 +34,16 @@ import java.util.List;
@Data
public class DungeonPressurePlate implements DungeonMechanic {
private static final long serialVersionUID = 7450034718355390645L;
- private OffsetPoint platePoint = new OffsetPoint(0,0,0);
+ private OffsetPoint platePoint = new OffsetPoint(0, 0, 0);
private List<String> preRequisite = new ArrayList<String>();
private String triggering = "";
@Override
- public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
+ public Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom) {
if (state.equals(getCurrentState(dungeonRoom))) return Collections.emptySet();
if (state.equalsIgnoreCase("navigate")) {
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
ActionMoveNearestAir actionMove = new ActionMoveNearestAir(getRepresentingPoint(dungeonRoom));
preRequisites.add(actionMove);
preRequisites = actionMove.getPreRequisite();
@@ -53,37 +54,35 @@ public class DungeonPressurePlate implements DungeonMechanic {
}
return base;
}
- if (!("triggered".equalsIgnoreCase(state) || "untriggered".equalsIgnoreCase(state))) throw new IllegalArgumentException(state+" is not valid state for secret");
+ if (!("triggered".equalsIgnoreCase(state) || "untriggered".equalsIgnoreCase(state)))
+ throw new IllegalArgumentException(state + " is not valid state for secret");
if (state.equalsIgnoreCase(getCurrentState(dungeonRoom))) return Collections.emptySet();
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
if ("triggered".equalsIgnoreCase(state)) {
ActionDropItem actionClick;
preRequisites.add(actionClick = new ActionDropItem(platePoint));
preRequisites = actionClick.getPreRequisite();
}
- {
- ActionMove actionMove = new ActionMove(platePoint);
- preRequisites.add(actionMove);
- preRequisites = actionMove.getPreRequisite();
- }
- {
- for (String str : preRequisite) {
- if (str.isEmpty()) continue;
- ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
- preRequisites.add(actionChangeState);
- }
+ ActionMove actionMove = new ActionMove(platePoint);
+ preRequisites.add(actionMove);
+ preRequisites = actionMove.getPreRequisite();
+ for (String str : preRequisite) {
+ if (str.isEmpty()) continue;
+ ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
+ preRequisites.add(actionChangeState);
}
+
return base;
}
@Override
public void highlight(Color color, String name, DungeonRoom dungeonRoom, float partialTicks) {
BlockPos pos = getPlatePoint().getBlockPos(dungeonRoom);
- RenderUtils.highlightBlock(pos, color,partialTicks);
- RenderUtils.drawTextAtWorld(name, pos.getX() +0.5f, pos.getY()+0.75f, pos.getZ()+0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
- RenderUtils.drawTextAtWorld(getCurrentState(dungeonRoom), pos.getX() +0.5f, pos.getY()+0.25f, pos.getZ()+0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
+ RenderUtils.highlightBlock(pos, color, partialTicks);
+ RenderUtils.drawTextAtWorld(name, pos.getX() + 0.5f, pos.getY() + 0.75f, pos.getZ() + 0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
+ RenderUtils.drawTextAtWorld(getCurrentState(dungeonRoom), pos.getX() + 0.5f, pos.getY() + 0.25f, pos.getZ() + 0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
}
public DungeonPressurePlate clone() throws CloneNotSupportedException {
@@ -99,8 +98,7 @@ public class DungeonPressurePlate implements DungeonMechanic {
public String getCurrentState(DungeonRoom dungeonRoom) {
if (triggering == null) triggering = "null";
DungeonMechanic mechanic = dungeonRoom.getMechanics().get(triggering);
- if (mechanic == null)
- {
+ if (mechanic == null) {
return "undeterminable";
} else {
String state = mechanic.getCurrentState(dungeonRoom);
@@ -121,10 +119,12 @@ public class DungeonPressurePlate implements DungeonMechanic {
return Sets.newHashSet("navigate", "triggered");
return Sets.newHashSet("navigate");
}
+
@Override
public Set<String> getTotalPossibleStates(DungeonRoom dungeonRoom) {
return Sets.newHashSet("triggered", "untriggered");
}
+
@Override
public OffsetPoint getRepresentingPoint(DungeonRoom dungeonRoom) {
return platePoint;
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonRoomDoor.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonRoomDoor.java
index 5ff85a13..259f438e 100644
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonRoomDoor.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonRoomDoor.java
@@ -19,14 +19,14 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
import com.google.common.collect.Sets;
-import kr.syeyoung.dungeonsguide.dungeon.actions.Action;
-import kr.syeyoung.dungeonsguide.dungeon.actions.ActionMove;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.AbstractAction;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.ActionMove;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
-import kr.syeyoung.dungeonsguide.dungeon.doorfinder.DungeonDoor;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.mod.dungeon.doorfinder.DungeonDoor;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.DungeonMechanic;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils;
import lombok.Getter;
-import net.minecraft.init.Blocks;
import net.minecraft.util.BlockPos;
import java.awt.*;
@@ -41,15 +41,15 @@ public class DungeonRoomDoor implements DungeonMechanic {
public DungeonRoomDoor(DungeonRoom dungeonRoom, DungeonDoor doorfinder) {
this.doorfinder = doorfinder;
if (doorfinder.isZDir()) {
- if (dungeonRoom.canAccessAbsolute(doorfinder.getPosition().add(0,0,2)))
- offsetPoint = new OffsetPoint(dungeonRoom, doorfinder.getPosition().add(0,0,2));
- else if (dungeonRoom.canAccessAbsolute(doorfinder.getPosition().add(0,0,-2)))
- offsetPoint = new OffsetPoint(dungeonRoom, doorfinder.getPosition().add(0,0,-2));
+ if (dungeonRoom.canAccessAbsolute(doorfinder.getPosition().add(0, 0, 2)))
+ offsetPoint = new OffsetPoint(dungeonRoom, doorfinder.getPosition().add(0, 0, 2));
+ else if (dungeonRoom.canAccessAbsolute(doorfinder.getPosition().add(0, 0, -2)))
+ offsetPoint = new OffsetPoint(dungeonRoom, doorfinder.getPosition().add(0, 0, -2));
} else {
- if (dungeonRoom.canAccessAbsolute(doorfinder.getPosition().add(2,0,0)))
- offsetPoint = new OffsetPoint(dungeonRoom, doorfinder.getPosition().add(2,0,0));
- else if (dungeonRoom.canAccessAbsolute(doorfinder.getPosition().add(-2,0,0)))
- offsetPoint = new OffsetPoint(dungeonRoom, doorfinder.getPosition().add(-2,0,0));
+ if (dungeonRoom.canAccessAbsolute(doorfinder.getPosition().add(2, 0, 0)))
+ offsetPoint = new OffsetPoint(dungeonRoom, doorfinder.getPosition().add(2, 0, 0));
+ else if (dungeonRoom.canAccessAbsolute(doorfinder.getPosition().add(-2, 0, 0)))
+ offsetPoint = new OffsetPoint(dungeonRoom, doorfinder.getPosition().add(-2, 0, 0));
}
if (offsetPoint == null) {
offsetPoint = new OffsetPoint(dungeonRoom, doorfinder.getPosition());
@@ -57,24 +57,20 @@ public class DungeonRoomDoor implements DungeonMechanic {
}
@Override
- public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
- if (!"navigate".equalsIgnoreCase(state)) throw new IllegalArgumentException(state+" is not valid state for secret");
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
- {
- ActionMove actionMove = new ActionMove(offsetPoint);
- preRequisites.add(actionMove);
- preRequisites = actionMove.getPreRequisite();
- }
- return base;
+ public Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom) {
+ if (!"navigate".equalsIgnoreCase(state))
+ throw new IllegalArgumentException(state + " is not valid state for secret");
+ Set<AbstractAction> preRequisites = new HashSet<>();
+ preRequisites.add(new ActionMove(offsetPoint));
+ return preRequisites;
}
@Override
public void highlight(Color color, String name, DungeonRoom dungeonRoom, float partialTicks) {
BlockPos pos = offsetPoint.getBlockPos(dungeonRoom);
- RenderUtils.highlightBlock(pos, color,partialTicks);
- RenderUtils.drawTextAtWorld(name, pos.getX() +0.5f, pos.getY()+0.75f, pos.getZ()+0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
- RenderUtils.drawTextAtWorld(getCurrentState(dungeonRoom), pos.getX() +0.5f, pos.getY()+0.25f, pos.getZ()+0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
+ RenderUtils.highlightBlock(pos, color, partialTicks);
+ RenderUtils.drawTextAtWorld(name, pos.getX() + 0.5f, pos.getY() + 0.75f, pos.getZ() + 0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
+ RenderUtils.drawTextAtWorld(getCurrentState(dungeonRoom), pos.getX() + 0.5f, pos.getY() + 0.25f, pos.getZ() + 0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
}
@Override
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 5914be15..d806b7c5 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonSecret.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonSecret.java
@@ -19,52 +19,56 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
import com.google.common.collect.Sets;
-import kr.syeyoung.dungeonsguide.dungeon.DungeonActionManager;
-import kr.syeyoung.dungeonsguide.dungeon.actions.*;
+import kr.syeyoung.dungeonsguide.mod.DungeonsGuide;
+import kr.syeyoung.dungeonsguide.mod.dungeon.DungeonActionContext;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.*;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
-import kr.syeyoung.dungeonsguide.dungeon.mechanics.predicates.PredicateBat;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.pathfinding.NodeProcessorDungeonRoom;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.DungeonMechanic;
+import kr.syeyoung.dungeonsguide.mod.dungeon.pathfinding.NodeProcessorDungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.Getter;
import net.minecraft.block.state.IBlockState;
import net.minecraft.client.Minecraft;
+import net.minecraft.entity.passive.EntityBat;
import net.minecraft.init.Blocks;
import net.minecraft.tileentity.TileEntityChest;
import net.minecraft.util.BlockPos;
import net.minecraft.util.Vec3;
import java.awt.*;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
@Data
public class DungeonSecret implements DungeonMechanic {
private static final long serialVersionUID = 8784808599222706537L;
- private OffsetPoint secretPoint = new OffsetPoint(0,0,0);
+ private OffsetPoint secretPoint = new OffsetPoint(0, 0, 0);
private SecretType secretType = SecretType.CHEST;
private List<String> preRequisite = new ArrayList<String>();
public void tick(DungeonRoom dungeonRoom) {
if (secretType == SecretType.CHEST) {
BlockPos pos = secretPoint.getBlockPos(dungeonRoom);
- IBlockState blockState = dungeonRoom.getContext().getWorld().getBlockState(pos);
+ IBlockState blockState = DungeonsGuide.getDungeonsGuide().getBlockCache().getBlockState(pos);
if (blockState.getBlock() == Blocks.chest || blockState.getBlock() == Blocks.trapped_chest) {
TileEntityChest chest = (TileEntityChest) dungeonRoom.getContext().getWorld().getTileEntity(pos);
if (chest.numPlayersUsing > 0) {
- dungeonRoom.getRoomContext().put("c-"+pos.toString(), 2);
+ dungeonRoom.getRoomContext().put("c-" + pos.toString(), 2);
} else {
- dungeonRoom.getRoomContext().put("c-"+pos.toString(), 1);
+ dungeonRoom.getRoomContext().put("c-" + pos.toString(), 1);
}
}
} else if (secretType == SecretType.ESSENCE) {
BlockPos pos = secretPoint.getBlockPos(dungeonRoom);
- IBlockState blockState = dungeonRoom.getContext().getWorld().getBlockState(pos);
+ IBlockState blockState = DungeonsGuide.getDungeonsGuide().getBlockCache().getBlockState(pos);
if (blockState.getBlock() == Blocks.skull) {
- dungeonRoom.getRoomContext().put("e-"+pos.toString(), true);
+ dungeonRoom.getRoomContext().put("e-" + pos.toString(), true);
}
} else if (secretType == SecretType.ITEM_DROP) {
Vec3 pos = new Vec3(secretPoint.getBlockPos(dungeonRoom));
@@ -74,7 +78,7 @@ public class DungeonSecret implements DungeonMechanic {
for (int i = 0; i < player.distanceTo(pos); i++) {
Vec3 vec = player.addVector(vec3.xCoord * i, vec3.yCoord * i, vec3.zCoord * i);
BlockPos bpos = new BlockPos(vec);
- IBlockState blockState = dungeonRoom.getContext().getWorld().getBlockState(bpos);
+ IBlockState blockState = DungeonsGuide.getDungeonsGuide().getBlockCache().getBlockState(bpos);
if (!NodeProcessorDungeonRoom.isValidBlock(blockState))
return;
}
@@ -86,9 +90,9 @@ public class DungeonSecret implements DungeonMechanic {
public SecretStatus getSecretStatus(DungeonRoom dungeonRoom) {
if (secretType == SecretType.CHEST) {
BlockPos pos = secretPoint.getBlockPos(dungeonRoom);
- IBlockState blockState = dungeonRoom.getContext().getWorld().getBlockState(pos);
- if (dungeonRoom.getRoomContext().containsKey("c-"+pos.toString()))
- return ((int)dungeonRoom.getRoomContext().get("c-"+pos.toString()) == 2 || blockState.getBlock() == Blocks.air) ? SecretStatus.FOUND : SecretStatus.CREATED;
+ IBlockState blockState = DungeonsGuide.getDungeonsGuide().getBlockCache().getBlockState(pos);
+ if (dungeonRoom.getRoomContext().containsKey("c-" + pos.toString()))
+ return ((int) dungeonRoom.getRoomContext().get("c-" + pos.toString()) == 2 || blockState.getBlock() == Blocks.air) ? SecretStatus.FOUND : SecretStatus.CREATED;
if (blockState.getBlock() == Blocks.air) {
return SecretStatus.DEFINITELY_NOT;
@@ -98,33 +102,33 @@ public class DungeonSecret implements DungeonMechanic {
TileEntityChest chest = (TileEntityChest) dungeonRoom.getContext().getWorld().getTileEntity(pos);
if (chest.numPlayersUsing > 0) {
return SecretStatus.FOUND;
- } else{
+ } else {
return SecretStatus.CREATED;
}
}
} else if (secretType == SecretType.ESSENCE) {
BlockPos pos = secretPoint.getBlockPos(dungeonRoom);
- IBlockState blockState = dungeonRoom.getContext().getWorld().getBlockState(pos);
+ IBlockState blockState = DungeonsGuide.getDungeonsGuide().getBlockCache().getBlockState(pos);
if (blockState.getBlock() == Blocks.skull) {
- dungeonRoom.getRoomContext().put("e-"+pos.toString(), true);
+ dungeonRoom.getRoomContext().put("e-" + pos.toString(), true);
return SecretStatus.DEFINITELY_NOT;
} else {
- if (dungeonRoom.getRoomContext().containsKey("e-"+pos.toString()))
+ if (dungeonRoom.getRoomContext().containsKey("e-" + pos.toString()))
return SecretStatus.FOUND;
return SecretStatus.NOT_SURE;
}
} else if (secretType == SecretType.BAT) {
Vec3 spawn = new Vec3(secretPoint.getBlockPos(dungeonRoom));
- for (Integer killed : DungeonActionManager.getKilleds()) {
- if (DungeonActionManager.getSpawnLocation().get(killed) == null) continue;
- if (DungeonActionManager.getSpawnLocation().get(killed).squareDistanceTo(spawn) < 100) {
+ for (Integer killed : DungeonActionContext.getKilleds()) {
+ if (DungeonActionContext.getSpawnLocation().get(killed) == null) continue;
+ if (DungeonActionContext.getSpawnLocation().get(killed).squareDistanceTo(spawn) < 100) {
return SecretStatus.FOUND;
}
}
return SecretStatus.NOT_SURE;
} else {
Vec3 pos = new Vec3(secretPoint.getBlockPos(dungeonRoom));
- if (dungeonRoom.getRoomContext().containsKey("i-"+ pos))
+ if (dungeonRoom.getRoomContext().containsKey("i-" + pos))
return SecretStatus.FOUND;
Vec3 player = Minecraft.getMinecraft().thePlayer.getPositionVector();
if (player.squareDistanceTo(pos) < 16) {
@@ -132,7 +136,7 @@ public class DungeonSecret implements DungeonMechanic {
for (int i = 0; i < player.distanceTo(pos); i++) {
Vec3 vec = player.addVector(vec3.xCoord * i, vec3.yCoord * i, vec3.zCoord * i);
BlockPos bpos = new BlockPos(vec);
- IBlockState blockState = dungeonRoom.getContext().getWorld().getBlockState(bpos);
+ IBlockState blockState = DungeonsGuide.getDungeonsGuide().getBlockCache().getBlockState(bpos);
if (!NodeProcessorDungeonRoom.isValidBlock(blockState))
return SecretStatus.NOT_SURE;
}
@@ -143,10 +147,10 @@ public class DungeonSecret implements DungeonMechanic {
}
@Override
- public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
+ public Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom) {
if (state.equalsIgnoreCase("navigate")) {
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
ActionMoveNearestAir actionMove = new ActionMoveNearestAir(getRepresentingPoint(dungeonRoom));
preRequisites.add(actionMove);
preRequisites = actionMove.getPreRequisite();
@@ -157,43 +161,43 @@ public class DungeonSecret implements DungeonMechanic {
}
return base;
}
- if (!"found".equalsIgnoreCase(state)) throw new IllegalArgumentException(state+" is not valid state for secret");
+ if (!"found".equalsIgnoreCase(state))
+ throw new IllegalArgumentException(state + " is not valid state for secret");
if (state.equals("found") && getSecretStatus(dungeonRoom) == SecretStatus.FOUND) return new HashSet<>();
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<AbstractAction>();
if (secretType == SecretType.CHEST || secretType == SecretType.ESSENCE) {
ActionClick actionClick;
preRequisites.add(actionClick = new ActionClick(secretPoint));
preRequisites = actionClick.getPreRequisite();
} else if (secretType == SecretType.BAT) {
- ActionKill actionKill;
- preRequisites.add(actionKill = new ActionKill(secretPoint));
- actionKill.setPredicate(PredicateBat.INSTANCE);
+ ActionKill actionKill = new ActionKill(secretPoint);
+ preRequisites.add(actionKill);
+ actionKill.setPredicate(EntityBat.class::isInstance);
actionKill.setRadius(10);
preRequisites = actionKill.getPreRequisite();
}
- {
- ActionMove actionMove = new ActionMove(secretPoint);
- preRequisites.add(actionMove);
- preRequisites = actionMove.getPreRequisite();
- }
- {
- for (String str : preRequisite) {
- if (str.isEmpty()) continue;
- ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
- preRequisites.add(actionChangeState);
- }
+
+ ActionMove actionMove = new ActionMove(secretPoint);
+ preRequisites.add(actionMove);
+ preRequisites = actionMove.getPreRequisite();
+
+ for (String str : preRequisite) {
+ if (str.isEmpty()) continue;
+ ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
+ preRequisites.add(actionChangeState);
}
+
return base;
}
@Override
public void highlight(Color color, String name, DungeonRoom dungeonRoom, float partialTicks) {
BlockPos pos = getSecretPoint().getBlockPos(dungeonRoom);
- RenderUtils.highlightBlock(pos, color,partialTicks);
- RenderUtils.drawTextAtWorld(getSecretType().name(), pos.getX() +0.5f, pos.getY()+0.75f, pos.getZ()+0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
- RenderUtils.drawTextAtWorld(name, pos.getX() +0.5f, pos.getY()+0.375f, pos.getZ()+0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
- RenderUtils.drawTextAtWorld(getCurrentState(dungeonRoom), pos.getX() +0.5f, pos.getY()+0f, pos.getZ()+0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
+ RenderUtils.highlightBlock(pos, color, partialTicks);
+ RenderUtils.drawTextAtWorld(getSecretType().name(), pos.getX() + 0.5f, pos.getY() + 0.75f, pos.getZ() + 0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
+ RenderUtils.drawTextAtWorld(name, pos.getX() + 0.5f, pos.getY() + 0.375f, pos.getZ() + 0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
+ RenderUtils.drawTextAtWorld(getCurrentState(dungeonRoom), pos.getX() + 0.5f, pos.getY() + 0f, pos.getZ() + 0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
}
public enum SecretType {
@@ -228,10 +232,12 @@ public class DungeonSecret implements DungeonMechanic {
if (status == SecretStatus.FOUND) return Sets.newHashSet("navigate");
else return Sets.newHashSet("found", "navigate");
}
+
@Override
public Set<String> getTotalPossibleStates(DungeonRoom dungeonRoom) {
return Sets.newHashSet("found"/*, "definitely_not", "not_sure", "created", "error"*/);
}
+
@Override
public OffsetPoint getRepresentingPoint(DungeonRoom dungeonRoom) {
return secretPoint;
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 24bc0d84..b14ffaf3 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonTomb.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonTomb.java
@@ -19,11 +19,13 @@
package kr.syeyoung.dungeonsguide.dungeon.mechanics;
import com.google.common.collect.Sets;
-import kr.syeyoung.dungeonsguide.dungeon.actions.*;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.*;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPointSet;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
-import kr.syeyoung.dungeonsguide.utils.RenderUtils;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.RouteBlocker;
+import kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic.DungeonMechanic;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.utils.RenderUtils;
import lombok.Data;
import net.minecraft.block.Block;
import net.minecraft.init.Blocks;
@@ -37,14 +39,14 @@ import java.util.List;
public class DungeonTomb implements DungeonMechanic, RouteBlocker {
private static final long serialVersionUID = -7347076019472222115L;
private OffsetPointSet secretPoint = new OffsetPointSet();
- private List<String> preRequisite = new ArrayList<String>();
+ private List<String> preRequisite = new ArrayList<>();
@Override
- public Set<Action> getAction(String state, DungeonRoom dungeonRoom) {
+ public Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom) {
if (state.equalsIgnoreCase("navigate")) {
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<>();
ActionMoveNearestAir actionMove = new ActionMoveNearestAir(getRepresentingPoint(dungeonRoom));
preRequisites.add(actionMove);
preRequisites = actionMove.getPreRequisite();
@@ -55,29 +57,28 @@ public class DungeonTomb implements DungeonMechanic, RouteBlocker {
}
return base;
}
- if (!"open".equalsIgnoreCase(state)) throw new IllegalArgumentException(state+" is not valid state for tomb");
+ if (!"open".equalsIgnoreCase(state)) {
+ throw new IllegalArgumentException(state + " is not valid state for tomb");
+ }
if (!isBlocking(dungeonRoom)) {
return Collections.emptySet();
}
- Set<Action> base;
- Set<Action> preRequisites = base = new HashSet<Action>();
- {
- ActionBreakWithSuperBoom actionClick;
- preRequisites.add(actionClick = new ActionBreakWithSuperBoom(secretPoint.getOffsetPointList().get(0)));
- preRequisites = actionClick.getPreRequisite();
- }
- {
- ActionMoveNearestAir actionMove = new ActionMoveNearestAir(secretPoint.getOffsetPointList().get(0));
- preRequisites.add(actionMove);
- preRequisites = actionMove.getPreRequisite();
- }
- {
- for (String str : preRequisite) {
- if (str.isEmpty()) continue;
- ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
- preRequisites.add(actionChangeState);
- }
+ Set<AbstractAction> base;
+ Set<AbstractAction> preRequisites = base = new HashSet<>();
+
+ ActionBreakWithSuperBoom actionClick = new ActionBreakWithSuperBoom(secretPoint.getOffsetPointList().get(0));
+ preRequisites.add(actionClick);
+ preRequisites = actionClick.getPreRequisite();
+
+ ActionMoveNearestAir actionMove = new ActionMoveNearestAir(secretPoint.getOffsetPointList().get(0));
+ preRequisites.add(actionMove);
+ preRequisites = actionMove.getPreRequisite();
+ for (String str : preRequisite) {
+ if (str.isEmpty()) continue;
+ ActionChangeState actionChangeState = new ActionChangeState(str.split(":")[0], str.split(":")[1]);
+ preRequisites.add(actionChangeState);
}
+
return base;
}
@@ -86,11 +87,11 @@ public class DungeonTomb implements DungeonMechanic, RouteBlocker {
if (secretPoint.getOffsetPointList().isEmpty()) return;
OffsetPoint firstpt = secretPoint.getOffsetPointList().get(0);
BlockPos pos = firstpt.getBlockPos(dungeonRoom);
- RenderUtils.drawTextAtWorld(name, pos.getX() +0.5f, pos.getY()+0.75f, pos.getZ()+0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
- RenderUtils.drawTextAtWorld(getCurrentState(dungeonRoom), pos.getX() +0.5f, pos.getY()+0.25f, pos.getZ()+0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
+ RenderUtils.drawTextAtWorld(name, pos.getX() + 0.5f, pos.getY() + 0.75f, pos.getZ() + 0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
+ RenderUtils.drawTextAtWorld(getCurrentState(dungeonRoom), pos.getX() + 0.5f, pos.getY() + 0.25f, pos.getZ() + 0.5f, 0xFFFFFFFF, 0.03f, false, true, partialTicks);
for (OffsetPoint offsetPoint : secretPoint.getOffsetPointList()) {
- RenderUtils.highlightBlock(offsetPoint.getBlockPos(dungeonRoom), color,partialTicks);
+ RenderUtils.highlightBlock(offsetPoint.getBlockPos(dungeonRoom), color, partialTicks);
}
}
@@ -105,7 +106,7 @@ public class DungeonTomb implements DungeonMechanic, RouteBlocker {
public DungeonTomb clone() throws CloneNotSupportedException {
DungeonTomb dungeonSecret = new DungeonTomb();
dungeonSecret.secretPoint = (OffsetPointSet) secretPoint.clone();
- dungeonSecret.preRequisite = new ArrayList<String>(preRequisite);
+ dungeonSecret.preRequisite = new ArrayList<>(preRequisite);
return dungeonSecret;
}
@@ -114,13 +115,14 @@ public class DungeonTomb implements DungeonMechanic, RouteBlocker {
Block b = Blocks.air;
if (!secretPoint.getOffsetPointList().isEmpty())
b = secretPoint.getOffsetPointList().get(0).getBlock(dungeonRoom);
- return b == Blocks.air ?"open" :"closed";
+ return b == Blocks.air ? "open" : "closed";
}
@Override
public Set<String> getPossibleStates(DungeonRoom dungeonRoom) {
return isBlocking(dungeonRoom) ? Sets.newHashSet("open", "navigate") : Sets.newHashSet("navigate");
}
+
@Override
public Set<String> getTotalPossibleStates(DungeonRoom dungeonRoom) {
return Sets.newHashSet("open", "closed");
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonMechanic.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/dunegonmechanic/DungeonMechanic.java
index 54cac356..9aa18701 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/DungeonMechanic.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/dunegonmechanic/DungeonMechanic.java
@@ -16,18 +16,18 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-package kr.syeyoung.dungeonsguide.dungeon.mechanics;
+package kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic;
-import kr.syeyoung.dungeonsguide.dungeon.actions.Action;
+import kr.syeyoung.dungeonsguide.mod.dungeon.actions.AbstractAction;
import kr.syeyoung.dungeonsguide.dungeon.data.OffsetPoint;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
import java.awt.*;
import java.io.Serializable;
import java.util.Set;
public interface DungeonMechanic extends Serializable {
- Set<Action> getAction(String state, DungeonRoom dungeonRoom);
+ Set<AbstractAction> getAction(String state, DungeonRoom dungeonRoom);
void highlight(Color color, String name, DungeonRoom dungeonRoom, float partialTicks);
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/RouteBlocker.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/dunegonmechanic/RouteBlocker.java
index 391bda2e..faad723a 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/RouteBlocker.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/dunegonmechanic/RouteBlocker.java
@@ -16,9 +16,9 @@
* along with this program. If not, see <https://www.gnu.org/licenses/>.
*/
-package kr.syeyoung.dungeonsguide.dungeon.mechanics;
+package kr.syeyoung.dungeonsguide.dungeon.mechanics.dunegonmechanic;
-import kr.syeyoung.dungeonsguide.dungeon.roomfinder.DungeonRoom;
+import kr.syeyoung.dungeonsguide.mod.dungeon.roomfinder.DungeonRoom;
public interface RouteBlocker {
boolean isBlocking(DungeonRoom dungeonRoom);
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateArmorStand.java b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateArmorStand.java
index 79b20725..8da45b89 100755
--- a/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateArmorStand.java
+++ b/src/main/java/kr/syeyoung/dungeonsguide/dungeon/mechanics/predicates/PredicateArmorStand.java
@@ -21,7 +21,6 @@ package kr.syeyoung.dungeonsguide.dungeon.mechanics.predicates;
import com.google.common.base.Predicate;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EntityArmorStand;
-import net.minecraft.entity.passive.EntityBat;
import org.jetbrains.annotations.Nullable;