diff --git a/tests/test_data/tilesets/terrain/expected.py b/tests/test_data/tilesets/terrain/expected.py new file mode 100644 index 0000000..c60195c --- /dev/null +++ b/tests/test_data/tilesets/terrain/expected.py @@ -0,0 +1,267 @@ +from pathlib import Path + +from pytiled_parser import common_types, layer, tileset + +EXPECTED = tileset.TileSet( + columns=8, + margin=1, + spacing=1, + name="tileset", + image=Path("../../images/tmw_desert_spacing.png"), + image_height=199, + image_width=265, + tile_count=48, + tiled_version="1.3.5", + tile_height=32, + tile_width=32, + version=1.2, + type="tileset", + terrain_types=[ + tileset.Terrain(name="Sand", tile=29), + tileset.Terrain(name="Cobblestone", tile=29), + tileset.Terrain(name="Pavement", tile=29), + tileset.Terrain(name="Dirt", tile=29), + ], + tiles=[ + tileset.Tile( + id=0, + terrain=tileset.TileTerrain( + top_left=0, top_right=0, bottom_left=0, bottom_right=1 + ), + ), + tileset.Tile( + id=1, + terrain=tileset.TileTerrain( + top_left=0, top_right=0, bottom_left=1, bottom_right=1 + ), + ), + tileset.Tile( + id=2, + terrain=tileset.TileTerrain( + top_left=0, top_right=0, bottom_left=1, bottom_right=0 + ), + ), + tileset.Tile( + id=3, + terrain=tileset.TileTerrain( + top_left=3, top_right=3, bottom_left=3, bottom_right=0 + ), + ), + tileset.Tile( + id=4, + terrain=tileset.TileTerrain( + top_left=3, top_right=3, bottom_left=0, bottom_right=3 + ), + ), + tileset.Tile( + id=5, + terrain=tileset.TileTerrain( + top_left=0, top_right=0, bottom_left=0, bottom_right=3 + ), + ), + tileset.Tile( + id=6, + terrain=tileset.TileTerrain( + top_left=0, top_right=0, bottom_left=3, bottom_right=3 + ), + ), + tileset.Tile( + id=7, + terrain=tileset.TileTerrain( + top_left=0, top_right=0, bottom_left=3, bottom_right=0 + ), + ), + tileset.Tile( + id=8, + terrain=tileset.TileTerrain( + top_left=0, top_right=1, bottom_left=0, bottom_right=1 + ), + ), + tileset.Tile( + id=9, + terrain=tileset.TileTerrain( + top_left=1, top_right=1, bottom_left=1, bottom_right=1 + ), + ), + tileset.Tile( + id=10, + terrain=tileset.TileTerrain( + top_left=1, top_right=0, bottom_left=1, bottom_right=0 + ), + ), + tileset.Tile( + id=11, + terrain=tileset.TileTerrain( + top_left=3, top_right=0, bottom_left=3, bottom_right=3 + ), + ), + tileset.Tile( + id=12, + terrain=tileset.TileTerrain( + top_left=0, top_right=3, bottom_left=3, bottom_right=3 + ), + ), + tileset.Tile( + id=13, + terrain=tileset.TileTerrain( + top_left=0, top_right=3, bottom_left=0, bottom_right=3 + ), + ), + tileset.Tile( + id=14, + terrain=tileset.TileTerrain( + top_left=3, top_right=3, bottom_left=3, bottom_right=3 + ), + ), + tileset.Tile( + id=15, + terrain=tileset.TileTerrain( + top_left=3, top_right=0, bottom_left=3, bottom_right=0 + ), + ), + tileset.Tile( + id=16, + terrain=tileset.TileTerrain( + top_left=0, top_right=1, bottom_left=0, bottom_right=0 + ), + ), + tileset.Tile( + id=17, + terrain=tileset.TileTerrain( + top_left=1, top_right=1, bottom_left=0, bottom_right=0 + ), + ), + tileset.Tile( + id=18, + terrain=tileset.TileTerrain( + top_left=1, top_right=0, bottom_left=0, bottom_right=0 + ), + ), + tileset.Tile( + id=19, + terrain=tileset.TileTerrain( + top_left=1, top_right=1, bottom_left=1, bottom_right=0 + ), + ), + tileset.Tile( + id=20, + terrain=tileset.TileTerrain( + top_left=1, top_right=1, bottom_left=0, bottom_right=1 + ), + ), + tileset.Tile( + id=21, + terrain=tileset.TileTerrain( + top_left=0, top_right=3, bottom_left=0, bottom_right=0 + ), + ), + tileset.Tile( + id=22, + terrain=tileset.TileTerrain( + top_left=3, top_right=3, bottom_left=0, bottom_right=0 + ), + ), + tileset.Tile( + id=23, + terrain=tileset.TileTerrain( + top_left=3, top_right=0, bottom_left=0, bottom_right=0 + ), + ), + tileset.Tile( + id=24, + terrain=tileset.TileTerrain( + top_left=0, top_right=0, bottom_left=0, bottom_right=2 + ), + ), + tileset.Tile( + id=25, + terrain=tileset.TileTerrain( + top_left=0, top_right=0, bottom_left=2, bottom_right=2 + ), + ), + tileset.Tile( + id=26, + terrain=tileset.TileTerrain( + top_left=0, top_right=0, bottom_left=2, bottom_right=0 + ), + ), + tileset.Tile( + id=27, + terrain=tileset.TileTerrain( + top_left=1, top_right=0, bottom_left=1, bottom_right=1 + ), + ), + tileset.Tile( + id=28, + terrain=tileset.TileTerrain( + top_left=0, top_right=1, bottom_left=1, bottom_right=1 + ), + ), + tileset.Tile( + id=29, + terrain=tileset.TileTerrain( + top_left=0, top_right=0, bottom_left=0, bottom_right=0 + ), + ), + tileset.Tile( + id=32, + terrain=tileset.TileTerrain( + top_left=0, top_right=2, bottom_left=0, bottom_right=2 + ), + ), + tileset.Tile( + id=33, + terrain=tileset.TileTerrain( + top_left=2, top_right=2, bottom_left=2, bottom_right=2 + ), + ), + tileset.Tile( + id=34, + terrain=tileset.TileTerrain( + top_left=2, top_right=0, bottom_left=2, bottom_right=0 + ), + ), + tileset.Tile( + id=35, + terrain=tileset.TileTerrain( + top_left=2, top_right=2, bottom_left=2, bottom_right=0 + ), + ), + tileset.Tile( + id=36, + terrain=tileset.TileTerrain( + top_left=2, top_right=2, bottom_left=0, bottom_right=2 + ), + ), + tileset.Tile( + id=40, + terrain=tileset.TileTerrain( + top_left=0, top_right=2, bottom_left=0, bottom_right=0 + ), + ), + tileset.Tile( + id=41, + terrain=tileset.TileTerrain( + top_left=2, top_right=2, bottom_left=0, bottom_right=0 + ), + ), + tileset.Tile( + id=42, + terrain=tileset.TileTerrain( + top_left=2, top_right=0, bottom_left=0, bottom_right=0 + ), + ), + tileset.Tile( + id=43, + terrain=tileset.TileTerrain( + top_left=2, top_right=0, bottom_left=2, bottom_right=2 + ), + ), + tileset.Tile( + id=44, + terrain=tileset.TileTerrain( + top_left=0, top_right=2, bottom_left=2, bottom_right=2 + ), + ), + ], +) diff --git a/tests/test_data/tilesets/terrain/tileset.json b/tests/test_data/tilesets/terrain/tileset.json new file mode 100644 index 0000000..a2b1667 --- /dev/null +++ b/tests/test_data/tilesets/terrain/tileset.json @@ -0,0 +1,395 @@ +{ + "columns": 8, + "image": "..\/..\/images\/tmw_desert_spacing.png", + "imageheight": 199, + "imagewidth": 265, + "margin": 1, + "name": "tileset", + "spacing": 1, + "terrains": [ + { + "name": "Sand", + "tile": 29 + }, + { + "name": "Cobblestone", + "tile": 29 + }, + { + "name": "Pavement", + "tile": 29 + }, + { + "name": "Dirt", + "tile": 29 + } + ], + "tilecount": 48, + "tiledversion": "1.3.5", + "tileheight": 32, + "tiles": [ + { + "id": 0, + "terrain": [ + 0, + 0, + 0, + 1 + ] + }, + { + "id": 1, + "terrain": [ + 0, + 0, + 1, + 1 + ] + }, + { + "id": 2, + "terrain": [ + 0, + 0, + 1, + 0 + ] + }, + { + "id": 3, + "terrain": [ + 3, + 3, + 3, + 0 + ] + }, + { + "id": 4, + "terrain": [ + 3, + 3, + 0, + 3 + ] + }, + { + "id": 5, + "terrain": [ + 0, + 0, + 0, + 3 + ] + }, + { + "id": 6, + "terrain": [ + 0, + 0, + 3, + 3 + ] + }, + { + "id": 7, + "terrain": [ + 0, + 0, + 3, + 0 + ] + }, + { + "id": 8, + "terrain": [ + 0, + 1, + 0, + 1 + ] + }, + { + "id": 9, + "terrain": [ + 1, + 1, + 1, + 1 + ] + }, + { + "id": 10, + "terrain": [ + 1, + 0, + 1, + 0 + ] + }, + { + "id": 11, + "terrain": [ + 3, + 0, + 3, + 3 + ] + }, + { + "id": 12, + "terrain": [ + 0, + 3, + 3, + 3 + ] + }, + { + "id": 13, + "terrain": [ + 0, + 3, + 0, + 3 + ] + }, + { + "id": 14, + "terrain": [ + 3, + 3, + 3, + 3 + ] + }, + { + "id": 15, + "terrain": [ + 3, + 0, + 3, + 0 + ] + }, + { + "id": 16, + "terrain": [ + 0, + 1, + 0, + 0 + ] + }, + { + "id": 17, + "terrain": [ + 1, + 1, + 0, + 0 + ] + }, + { + "id": 18, + "terrain": [ + 1, + 0, + 0, + 0 + ] + }, + { + "id": 19, + "terrain": [ + 1, + 1, + 1, + 0 + ] + }, + { + "id": 20, + "terrain": [ + 1, + 1, + 0, + 1 + ] + }, + { + "id": 21, + "terrain": [ + 0, + 3, + 0, + 0 + ] + }, + { + "id": 22, + "terrain": [ + 3, + 3, + 0, + 0 + ] + }, + { + "id": 23, + "terrain": [ + 3, + 0, + 0, + 0 + ] + }, + { + "id": 24, + "terrain": [ + 0, + 0, + 0, + 2 + ] + }, + { + "id": 25, + "terrain": [ + 0, + 0, + 2, + 2 + ] + }, + { + "id": 26, + "terrain": [ + 0, + 0, + 2, + 0 + ] + }, + { + "id": 27, + "terrain": [ + 1, + 0, + 1, + 1 + ] + }, + { + "id": 28, + "terrain": [ + 0, + 1, + 1, + 1 + ] + }, + { + "id": 29, + "terrain": [ + 0, + 0, + 0, + 0 + ] + }, + { + "id": 32, + "terrain": [ + 0, + 2, + 0, + 2 + ] + }, + { + "id": 33, + "terrain": [ + 2, + 2, + 2, + 2 + ] + }, + { + "id": 34, + "terrain": [ + 2, + 0, + 2, + 0 + ] + }, + { + "id": 35, + "terrain": [ + 2, + 2, + 2, + 0 + ] + }, + { + "id": 36, + "terrain": [ + 2, + 2, + 0, + 2 + ] + }, + { + "id": 40, + "terrain": [ + 0, + 2, + 0, + 0 + ] + }, + { + "id": 41, + "terrain": [ + 2, + 2, + 0, + 0 + ] + }, + { + "id": 42, + "terrain": [ + 2, + 0, + 0, + 0 + ] + }, + { + "id": 43, + "terrain": [ + 2, + 0, + 2, + 2 + ] + }, + { + "id": 44, + "terrain": [ + 0, + 2, + 2, + 2 + ] + } + ], + "tilewidth": 32, + "type": "tileset", + "version": 1.2 +} diff --git a/tests/test_tileset.py b/tests/test_tileset.py index 12f1656..f8a83a1 100644 --- a/tests/test_tileset.py +++ b/tests/test_tileset.py @@ -21,6 +21,7 @@ ALL_TILESET_DIRS = [ TILE_SETS / "image_transparent_color", TILE_SETS / "image_tile_offset", TILE_SETS / "individual_images", + TILE_SETS / "terrain", ]