diff options
| author | syeyoung <cyong06@naver.com> | 2021-02-22 13:37:15 +0900 |
|---|---|---|
| committer | syeyoung <cyong06@naver.com> | 2021-02-22 13:37:15 +0900 |
| commit | 4d0beb048ef798656cf4db5b340daae4a3ddd8de (patch) | |
| tree | 7e42cc5e62ce8e7652412a8d903bf04ee185e37c /src/main/java/kr/syeyoung/dungeonsguide/roomprocessor | |
| parent | 4f289db303d4e68e68789767b91e3106ff1866d7 (diff) | |
| download | Skyblock-Dungeons-Guide-4d0beb048ef798656cf4db5b340daae4a3ddd8de.tar.gz Skyblock-Dungeons-Guide-4d0beb048ef798656cf4db5b340daae4a3ddd8de.tar.bz2 Skyblock-Dungeons-Guide-4d0beb048ef798656cf4db5b340daae4a3ddd8de.zip | |
a bit better pathfinding and a toggle
Diffstat (limited to 'src/main/java/kr/syeyoung/dungeonsguide/roomprocessor')
| -rwxr-xr-x | src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/GeneralRoomProcessor.java | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/GeneralRoomProcessor.java b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/GeneralRoomProcessor.java index 1386fb72..7b1e3433 100755 --- a/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/GeneralRoomProcessor.java +++ b/src/main/java/kr/syeyoung/dungeonsguide/roomprocessor/GeneralRoomProcessor.java @@ -35,9 +35,7 @@ import net.minecraftforge.event.entity.player.PlayerInteractEvent; import net.minecraftforge.fml.common.gameevent.InputEvent; import java.awt.*; -import java.util.Map; -import java.util.PriorityQueue; -import java.util.UUID; +import java.util.*; public class GeneralRoomProcessor implements RoomProcessor { @@ -64,6 +62,7 @@ public class GeneralRoomProcessor implements RoomProcessor { } } } + private Set<String> visited = new HashSet<String>(); public void searchForNextTarget() { BlockPos pos = Minecraft.getMinecraft().thePlayer.getPosition(); @@ -72,6 +71,7 @@ public class GeneralRoomProcessor implements RoomProcessor { Map.Entry<String, DungeonMechanic> lowestWeightMechanic = null; for (Map.Entry<String, DungeonMechanic> mech: dungeonRoom.getDungeonRoomInfo().getMechanics().entrySet()) { if (!(mech.getValue() instanceof DungeonSecret)) continue; + if (visited.contains(mech.getKey())) continue; if (((DungeonSecret) mech.getValue()).getSecretStatus(getDungeonRoom()) != DungeonSecret.SecretStatus.FOUND) { double cost = 0; if (((DungeonSecret) mech.getValue()).getSecretType() == DungeonSecret.SecretType.BAT && @@ -91,6 +91,7 @@ public class GeneralRoomProcessor implements RoomProcessor { } } if (lowestWeightMechanic != null) { + visited.add(lowestWeightMechanic.getKey()); pathfind(lowestWeightMechanic.getKey(), "found"); } } |
