diff --git a/src/main/java/bzh/risotto/GameMap.java b/src/main/java/bzh/risotto/GameMap.java index 404de45..952d3e5 100644 --- a/src/main/java/bzh/risotto/GameMap.java +++ b/src/main/java/bzh/risotto/GameMap.java @@ -4,31 +4,25 @@ import bzh.risotto.tilemap.Tile; import bzh.risotto.tilemap.TileMap; import bzh.risotto.tilemap.TileSet; import com.badlogic.gdx.graphics.g2d.SpriteBatch; -import com.badlogic.gdx.maps.tiled.TiledMap; -import com.badlogic.gdx.maps.tiled.TiledMapTileSet; import com.badlogic.gdx.math.Vector2; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; -import java.net.Inet4Address; import java.util.ArrayList; -import java.util.HashMap; import java.util.List; -import java.util.Map; public class GameMap { - private TileSet tileSet; - private TileMap tileMap; + private final TileSet tileSet; + private final TileMap tileMap; - private List DIRT_TILES; - private Map TILES_TYPE_TO_ID; + private List dirtTiles; - private Logger logger = LogManager.getLogger(); + private final Logger logger = LogManager.getLogger(); public GameMap() { - this.tileSet = new TileSet("tileset.png", new Vector2(16,16), new Vector2(6,6)); + this.tileSet = new TileSet("tileset.png", new Vector2(16,16), new Vector2(6,10)); List> map = loadMap(); this.tileMap = new TileMap(this.tileSet, map); this.tileMap.setTile(5,0,0); @@ -65,7 +59,7 @@ public class GameMap { for (int j = -1; j < 2; j ++) { Tile tile = tileMap.getTile((int) coord.x + j, (int) coord.y + i); - if (!DIRT_TILES.contains(tile.getId())) { + if (!dirtTiles.contains(tile.getId())) { tileType += (int) Math.pow(2, p); } @@ -88,76 +82,62 @@ public class GameMap { private int tileTypeToId(int tileType) { - switch (tileType) { - case 0: - return 5; - case 2, 3, 6, 7, 71, 323, 327, 66, 322, 67, 258, 259, 263, 262, 326, 70: // down - return 10; // down - case 128, 192, 448, 384, 385, 449, 453, 193, 132, 196, 452, 133, 197, 388, 389 : - return 22; // up - case 8, 73, 72, 9, 329, 333, 328, 332, 77, 264, 268, 269, 12, 13: - return 17; // right - case 32, 288, 292, 36, 356, 357, 33, 97, 353, 96, 100, 101, 37, 293, 352 : - return 15; // left - case 160, 161, 165, 229, 224, 228, 164: - return 21; // inner bot-left corner - case 10, 74, 330, 334, 266, 270, 78, 14: - return 11; // inner top-right corner - case 34, 35, 99, 355, 290, 354, 291, 98: - return 9; // inner top-left corner - case 136, 137, 393, 397, 140, 141, 392, 396: - return 23; // inner bot-right corner - case 168, 169, 173, 172: - return 34; // T up - case 42, 106, 362, 298: - return 29; // T down - case 138, 394, 398, 142: - return 35; // T right - case 227, 162, 226, 163: - return 28; // T left - case 38, 102, 358, 359, 294, 295, 430, 39: - return 6; // top-left corner - case 204, 205, 461, 456, 457, 200, 201, 460: - return 20; // bot-left corner - case 416, 417, 481, 485, 420, 484, 421, 480: - return 18; // bot-right corner - case 11, 75, 79, 335, 267, 271, 351, 15: - return 8; // top-right corner - case 47, 111, 367, 303: - return 7; // up-straight - case 488, 496, 493, 492: - return 19; // bot-straight - case 203, 459, 463, 207: - return 14; // left-stright - case 422, 486, 487, 423: - return 12; // left-stright - case 239: - return 32; // inner top-right - case 431: - return 33; // inner top-left - case 491: - return 26; // inner bot-left - case 494: - return 27; // inner bot-right - case 495: - return 13; // center full - - case 170: - return 16; // center cross - default: - return 5; - } + return switch (tileType) { + case 2, 3, 6, 7, 71, 323, 327, 66, 322, 67, 258, 259, 263, 262, 326, 70 -> 10; // down + case 128, 192, 448, 384, 385, 449, 453, 193, 132, 196, 452, 133, 197, 388, 389 -> 22; // up + case 8, 73, 72, 9, 329, 333, 328, 332, 77, 264, 268, 269, 12, 13 -> 17; // right + case 32, 288, 292, 36, 356, 357, 33, 97, 353, 96, 100, 101, 37, 293, 352 -> 15; // left + case 160, 161, 165, 229, 224, 228, 164 -> 21; // inner bot-left corner + case 10, 74, 330, 334, 266, 270, 78, 14 -> 11; // inner top-right corner + case 34, 35, 99, 355, 290, 354, 291, 98 -> 9; // inner top-left corner + case 136, 137, 393, 397, 140, 141, 392, 396 -> 23; // inner bot-right corner + case 40, 44, 45, 109, 365, 105, 361, 296, 360, 104, 364, 41, 297, 301, 108, 300 -> 45; // left-right corridor + case 130, 134, 135, 199, 455, 391, 194, 195, 451, 198, 131, 387, 450, 454, 386, 390 -> 39; // top-down corridor + case 168, 169, 173, 172 -> 34; // T up + case 42, 106, 362, 298 -> 29; // T down + case 138, 394, 398, 142 -> 35; // T right + case 227, 162, 226, 163 -> 28; // T left + case 38, 102, 358, 359, 294, 295, 39 -> 6; // top-left corner + case 204, 205, 461, 456, 457, 200, 201, 460 -> 20; // bot-left corner + case 416, 417, 481, 485, 420, 484, 421, 480 -> 18; // bot-right corner + case 11, 75, 79, 335, 267, 271, 351, 15 -> 8; // top-right corner + case 47, 111, 367, 303 -> 7; // up-straight + case 488, 496, 493, 492, 489 -> 19; // bot-straight + case 203, 459, 463, 207 -> 14; // left-straight + case 422, 486, 487, 423 -> 12; // right-straight + case 232, 233, 237, 236 -> 30; + case 418, 482, 483, 419 -> 24; + case 143, 399, 139, 395 -> 31; + case 46, 110, 366, 302 -> 25; + case 166, 167, 230, 231 -> 46; + case 43, 299, 363, 107 -> 40; + case 202, 206, 462, 458 -> 41; + case 424, 428, 429, 425 -> 47; + case 235 -> 37; // right gateway + case 430 -> 38; // left gateway + case 175 -> 42; // top gateway + case 490 -> 36; // bo gateway + case 239 -> 32; // inner top-right + case 431 -> 33; // inner top-left + case 491 -> 26; // inner bot-left + case 494 -> 27; // inner bot-right + case 427 -> 44; + case 238 -> 43; + case 171 -> 54; + case 174 -> 55; + case 234 -> 48; + case 426 -> 49; + case 495 -> 13; // center full + case 170 -> 16; // center cross + default -> 5; + }; } private void loadConstArrays() { - this.DIRT_TILES = new ArrayList<>(); - this.DIRT_TILES.add(0); - this.DIRT_TILES.add(1); - this.DIRT_TILES.add(2); - this.DIRT_TILES.add(4); - - this.TILES_TYPE_TO_ID = new HashMap<>(); - this.TILES_TYPE_TO_ID.put(1, 5); - this.TILES_TYPE_TO_ID.put(2, 22); + this.dirtTiles = new ArrayList<>(); + this.dirtTiles.add(0); + this.dirtTiles.add(1); + this.dirtTiles.add(2); + this.dirtTiles.add(4); } } diff --git a/src/main/resources/tileset.png b/src/main/resources/tileset.png index 7cb15a9..1c7579b 100644 Binary files a/src/main/resources/tileset.png and b/src/main/resources/tileset.png differ