diff --git a/src/main/kotlin/funnymap/core/DungeonPlayer.kt b/src/main/kotlin/funnymap/core/DungeonPlayer.kt index 546a95f..293df89 100755 --- a/src/main/kotlin/funnymap/core/DungeonPlayer.kt +++ b/src/main/kotlin/funnymap/core/DungeonPlayer.kt @@ -59,8 +59,8 @@ data class DungeonPlayer(val skin: ResourceLocation) { fun getCurrentRoom(): String { if (dead) return "Dead" if (Location.inBoss) return "Boss" - val x = (mapX - MapUtils.startCorner.first) / (MapUtils.mapRoomSize + 4) - val z = (mapZ - MapUtils.startCorner.second) / (MapUtils.mapRoomSize + 4) + val x = (mapX - MapUtils.startCorner.first) / (MapUtils.roomSize + MapUtils.connectorSize) + val z = (mapZ - MapUtils.startCorner.second) / (MapUtils.roomSize + MapUtils.connectorSize) return (Dungeon.Info.dungeonList.getOrNull(x * 2 + z * 22) as? Room)?.data?.name ?: "Error" } } diff --git a/src/main/kotlin/funnymap/features/dungeon/DungeonMap.kt b/src/main/kotlin/funnymap/features/dungeon/DungeonMap.kt index 776b6fd..d4a166a 100644 --- a/src/main/kotlin/funnymap/features/dungeon/DungeonMap.kt +++ b/src/main/kotlin/funnymap/features/dungeon/DungeonMap.kt @@ -10,7 +10,7 @@ class DungeonMap(mapColors: ByteArray) { private val cacheTiles: Array = Array(121) { null } init { - val halfRoom = MapUtils.mapRoomSize / 2 + val halfRoom = MapUtils.roomSize / 2 val halfTile = halfRoom + 2 val startX = MapUtils.startCorner.first + halfRoom val startY = MapUtils.startCorner.second + halfRoom diff --git a/src/main/kotlin/funnymap/features/dungeon/MapRender.kt b/src/main/kotlin/funnymap/features/dungeon/MapRender.kt index bf97852..2cb86ed 100755 --- a/src/main/kotlin/funnymap/features/dungeon/MapRender.kt +++ b/src/main/kotlin/funnymap/features/dungeon/MapRender.kt @@ -7,7 +7,9 @@ import funnymap.core.map.* import funnymap.ui.ScoreElement import funnymap.utils.Location.inBoss import funnymap.utils.MapUtils -import funnymap.utils.MapUtils.mapRoomSize +import funnymap.utils.MapUtils.connectorSize +import funnymap.utils.MapUtils.halfRoomSize +import funnymap.utils.MapUtils.roomSize import funnymap.utils.RenderUtils import funnymap.utils.RenderUtils.darken import funnymap.utils.RenderUtils.grayScale @@ -104,16 +106,14 @@ object MapRender { GlStateManager.pushMatrix() GlStateManager.translate(MapUtils.startCorner.first.toFloat(), MapUtils.startCorner.second.toFloat(), 0f) - val connectorSize = mapRoomSize shr 2 - for (y in 0..10) { for (x in 0..10) { val tile = Dungeon.Info.dungeonList[y * 11 + x] if (tile is Unknown) continue if (legitRender && tile.state == RoomState.UNDISCOVERED) continue - val xOffset = (x shr 1) * (mapRoomSize + connectorSize) - val yOffset = (y shr 1) * (mapRoomSize + connectorSize) + val xOffset = (x shr 1) * (roomSize + connectorSize) + val yOffset = (y shr 1) * (roomSize + connectorSize) val xEven = x and 1 == 0 val yEven = y and 1 == 0 @@ -138,8 +138,8 @@ object MapRender { RenderUtils.renderRect( xOffset, yOffset, - mapRoomSize, - mapRoomSize, + roomSize, + roomSize, color ) @@ -152,8 +152,8 @@ object MapRender { RenderUtils.renderRect( xOffset, yOffset, - (mapRoomSize + connectorSize), - (mapRoomSize + connectorSize), + (roomSize + connectorSize), + (roomSize + connectorSize), color ) } @@ -171,17 +171,15 @@ object MapRender { GlStateManager.pushMatrix() GlStateManager.translate(MapUtils.startCorner.first.toFloat(), MapUtils.startCorner.second.toFloat(), 0f) - val connectorSize = mapRoomSize shr 2 - Dungeon.Info.uniqueRooms.forEach { unique -> val room = unique.mainRoom if (legitRender && room.state.equalsOneOf(RoomState.UNDISCOVERED, RoomState.UNOPENED)) return@forEach val checkPos = unique.getCheckmarkPosition() val namePos = unique.getNamePosition() - val xOffsetCheck = (checkPos.first / 2f) * (mapRoomSize + connectorSize) - val yOffsetCheck = (checkPos.second / 2f) * (mapRoomSize + connectorSize) - val xOffsetName = (namePos.first / 2f) * (mapRoomSize + connectorSize) - val yOffsetName = (namePos.second / 2f) * (mapRoomSize + connectorSize) + val xOffsetCheck = (checkPos.first / 2f) * (roomSize + connectorSize) + val yOffsetCheck = (checkPos.second / 2f) * (roomSize + connectorSize) + val xOffsetName = (namePos.first / 2f) * (roomSize + connectorSize) + val yOffsetName = (namePos.second / 2f) * (roomSize + connectorSize) if (Config.mapCheckmark != 0 && Config.mapRoomSecrets != 2) { RenderUtils.drawCheckmark(xOffsetCheck, yOffsetCheck, room.state) @@ -196,7 +194,7 @@ object MapRender { if (Config.mapRoomSecrets == 2) { GlStateManager.pushMatrix() GlStateManager.translate( - xOffsetCheck + (mapRoomSize shr 1), yOffsetCheck + 2 + (mapRoomSize shr 1), 0f + xOffsetCheck + halfRoomSize, yOffsetCheck + 2 + halfRoomSize, 0f ) GlStateManager.scale(2f, 2f, 1f) RenderUtils.renderCenteredText(listOf(room.data.secrets.toString()), 0, 0, color) @@ -220,8 +218,8 @@ object MapRender { // Offset + half of roomsize RenderUtils.renderCenteredText( name, - xOffsetName.toInt() + (mapRoomSize shr 1), - yOffsetName.toInt() + (mapRoomSize shr 1), + xOffsetName.toInt() + halfRoomSize, + yOffsetName.toInt() + halfRoomSize, color ) } @@ -253,10 +251,10 @@ object MapRender { vertical: Boolean, color: Color, ) { - val doorwayOffset = if (mapRoomSize == 16) 5 else 6 - val width = if (doorway) 6 else mapRoomSize - var x1 = if (vertical) x + mapRoomSize else x - var y1 = if (vertical) y else y + mapRoomSize + val doorwayOffset = if (roomSize == 16) 5 else 6 + val width = if (doorway) 6 else roomSize + var x1 = if (vertical) x + roomSize else x + var y1 = if (vertical) y else y + roomSize if (doorway) { if (vertical) y1 += doorwayOffset else x1 += doorwayOffset } diff --git a/src/main/kotlin/funnymap/utils/MapUtils.kt b/src/main/kotlin/funnymap/utils/MapUtils.kt index 8884381..5f1a02a 100644 --- a/src/main/kotlin/funnymap/utils/MapUtils.kt +++ b/src/main/kotlin/funnymap/utils/MapUtils.kt @@ -22,8 +22,10 @@ object MapUtils { var mapData: MapData? = null var startCorner = Pair(5, 5) - var mapRoomSize = 16 var coordMultiplier = 0.625 + var roomSize = 16 + var halfRoomSize = roomSize / 2 + val connectorSize = 4 var calibrated = false private fun getMapItem(): ItemStack? { @@ -52,7 +54,8 @@ object MapUtils { fun calibrateMap(): Boolean { val (start, size) = findEntranceCorner() if (size.equalsOneOf(16, 18)) { - mapRoomSize = size + roomSize = size + halfRoomSize = roomSize / 2 startCorner = when (Location.dungeonFloor) { 0 -> Pair(22, 22) 1 -> Pair(22, 11) @@ -60,10 +63,10 @@ object MapUtils { else -> { val startX = start and 127 val startZ = start shr 7 - Pair(startX % (mapRoomSize + 4), startZ % (mapRoomSize + 4)) + Pair(startX % (roomSize + 4), startZ % (roomSize + 4)) } } - coordMultiplier = (mapRoomSize + 4.0) / DungeonScan.roomSize + coordMultiplier = (roomSize + connectorSize).toDouble() / DungeonScan.roomSize return true } return false diff --git a/src/main/kotlin/funnymap/utils/RenderUtils.kt b/src/main/kotlin/funnymap/utils/RenderUtils.kt index e89f0ef..1dee60e 100644 --- a/src/main/kotlin/funnymap/utils/RenderUtils.kt +++ b/src/main/kotlin/funnymap/utils/RenderUtils.kt @@ -150,8 +150,8 @@ object RenderUtils { mc.textureManager.bindTexture(checkmark) drawTexturedQuad( - x + (MapUtils.mapRoomSize - size) / 2, - y + (MapUtils.mapRoomSize - size) / 2, + x + (MapUtils.roomSize - size) / 2, + y + (MapUtils.roomSize - size) / 2, size, size )