aboutsummaryrefslogtreecommitdiff
path: root/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java')
-rw-r--r--src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java21
1 files changed, 15 insertions, 6 deletions
diff --git a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java
index 88c89773..e15168f5 100644
--- a/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java
+++ b/src/main/java/io/github/moulberry/notenoughupdates/dungeons/DungeonMap.java
@@ -65,8 +65,13 @@ import java.awt.*;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.nio.charset.StandardCharsets;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
-import java.util.*;
+import java.util.Map;
+import java.util.Objects;
+import java.util.Set;
public class DungeonMap {
private static final ResourceLocation GREEN_CHECK = new ResourceLocation(
@@ -498,8 +503,8 @@ public class DungeonMap {
mapSizeX = borderSizeOption == 0 ? 90 : borderSizeOption == 1 ? 120 : borderSizeOption == 2 ? 160 : 240;
}
mapSizeY = mapSizeX;
- int roomsSizeX = (maxRoomX - minRoomX) * (renderRoomSize + renderConnSize) + renderRoomSize;
- int roomsSizeY = (maxRoomY - minRoomY) * (renderRoomSize + renderConnSize) + renderRoomSize;
+ int roomsSizeX = (maxRoomX - minRoomX) * (renderRoomSize + renderConnSize) + renderRoomSize + (isFloorOne ? getRenderRoomSize() : 0);
+ int roomsSizeY = (maxRoomY - minRoomY) * (renderRoomSize + renderConnSize) + renderRoomSize + (isEntrance ? getRenderRoomSize() : 0);
int mapCenterX = mapSizeX / 2;
int mapCenterY = mapSizeY / 2;
int scaleFactor = 8;
@@ -669,12 +674,12 @@ public class DungeonMap {
float angle = pos.rotation;
boolean doInterp = NotEnoughUpdates.INSTANCE.config.dungeonMap.dmPlayerInterp;
- if (!isFloorOne && playerEntityMapPositions.containsKey(name)) {
+ if (playerEntityMapPositions.containsKey(name)) {
MapPosition entityPos = playerEntityMapPositions.get(name);
angle = entityPos.rotation;
- float deltaX = entityPos.getRenderX() - pos.getRenderX();
- float deltaY = entityPos.getRenderY() - pos.getRenderY();
+ float deltaX = entityPos.getRenderX() - pos.getRenderX() + (isFloorOne ? getRenderRoomSize() : 0);
+ float deltaY = entityPos.getRenderY() - pos.getRenderY() + (isEntrance ? getRenderRoomSize() : 0);
x += deltaX;
y += deltaY;
@@ -1119,6 +1124,7 @@ public class DungeonMap {
}
private boolean isFloorOne = false;
+ private boolean isEntrance = false;
private boolean failMap = false;
private long lastClearCache = 0;
@@ -1160,6 +1166,9 @@ public class DungeonMap {
if (line.contains("(F1)") || line.contains("(E)") || line.contains("(M1)")) {
isFloorOne = true;
+ if (line.contains("(E)")) {
+ isEntrance = true;
+ }
break;
}
}