From 452101521cfa8aa5ff3e4aa38527777034d23621 Mon Sep 17 00:00:00 2001 From: Darren Eberly Date: Tue, 9 Jun 2020 21:59:03 -0400 Subject: [PATCH 1/6] tests: Implemented more tileset testing. Only missing terrains and wang sets at this point. --- tests/test_data/tilesets/individual_images/expected.py | 1 + tests/test_tileset.py | 1 + 2 files changed, 2 insertions(+) diff --git a/tests/test_data/tilesets/individual_images/expected.py b/tests/test_data/tilesets/individual_images/expected.py index 48487cb..c64f252 100644 --- a/tests/test_data/tilesets/individual_images/expected.py +++ b/tests/test_data/tilesets/individual_images/expected.py @@ -13,6 +13,7 @@ EXPECTED = tileset.TileSet( tile_width=32, version=1.2, type="tileset", + grid=tileset.Grid(orientation="orthogonal", width=1, height=1), tiles=[ tileset.Tile( animation=[ diff --git a/tests/test_tileset.py b/tests/test_tileset.py index 2d72dc1..12f1656 100644 --- a/tests/test_tileset.py +++ b/tests/test_tileset.py @@ -20,6 +20,7 @@ ALL_TILESET_DIRS = [ TILE_SETS / "image_properties", TILE_SETS / "image_transparent_color", TILE_SETS / "image_tile_offset", + TILE_SETS / "individual_images", ] From 3112e562eb72b13c38c8c8ccd586196dff31e6c9 Mon Sep 17 00:00:00 2001 From: Darren Eberly Date: Sun, 14 Jun 2020 12:19:40 -0400 Subject: [PATCH 2/6] fix: changed properties list of Terrain object in tileset to be optional --- pytiled_parser/tileset.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pytiled_parser/tileset.py b/pytiled_parser/tileset.py index bce92a6..502aaa9 100644 --- a/pytiled_parser/tileset.py +++ b/pytiled_parser/tileset.py @@ -39,7 +39,7 @@ class Terrain(NamedTuple): name: str tile: int - properties: properties_.Properties = {} + properties: Optional[properties_.Properties] = None @attr.s(auto_attribs=True) From 87916d6332dbe71a25e8f8faa2923b6bd6b197bf Mon Sep 17 00:00:00 2001 From: Darren Eberly Date: Sun, 14 Jun 2020 12:21:18 -0400 Subject: [PATCH 3/6] tests: removed color property from individual_images test to increase branch coverage --- tests/test_data/tilesets/individual_images/expected.py | 1 - tests/test_data/tilesets/individual_images/tileset.json | 8 +------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/tests/test_data/tilesets/individual_images/expected.py b/tests/test_data/tilesets/individual_images/expected.py index c64f252..54625d2 100644 --- a/tests/test_data/tilesets/individual_images/expected.py +++ b/tests/test_data/tilesets/individual_images/expected.py @@ -80,7 +80,6 @@ EXPECTED = tileset.TileSet( image=Path("../../images/tile_04.png"), image_height=32, image_width=32, - properties={"color property": common_types.Color("#ff5500ff")}, type="tile", ), ], diff --git a/tests/test_data/tilesets/individual_images/tileset.json b/tests/test_data/tilesets/individual_images/tileset.json index 7e27721..a22186e 100644 --- a/tests/test_data/tilesets/individual_images/tileset.json +++ b/tests/test_data/tilesets/individual_images/tileset.json @@ -115,15 +115,9 @@ "image":"..\/..\/images\/tile_04.png", "imageheight":32, "imagewidth":32, - "properties":[ - { - "name":"color property", - "type":"color", - "value":"#ff5500ff" - }], "type":"tile" }], "tilewidth":32, "type":"tileset", "version":1.2 -} \ No newline at end of file +} From f54093a17135074dbc1310a072be2234d4471e65 Mon Sep 17 00:00:00 2001 From: Darren Eberly Date: Sun, 14 Jun 2020 12:22:13 -0400 Subject: [PATCH 4/6] tests: implemented terrain test for tilesets --- tests/test_data/tilesets/terrain/expected.py | 267 ++++++++++++ tests/test_data/tilesets/terrain/tileset.json | 395 ++++++++++++++++++ tests/test_tileset.py | 1 + 3 files changed, 663 insertions(+) create mode 100644 tests/test_data/tilesets/terrain/expected.py create mode 100644 tests/test_data/tilesets/terrain/tileset.json 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", ] From 1864162cfb293bc0abc2136e32ce08ed98729cb2 Mon Sep 17 00:00:00 2001 From: Darren Eberly Date: Sun, 14 Jun 2020 14:23:06 -0400 Subject: [PATCH 5/6] fix: changes type attribute of TileSet to not be optional. It is provided as 'tileset' by default from Tiled. --- pytiled_parser/tileset.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/pytiled_parser/tileset.py b/pytiled_parser/tileset.py index 502aaa9..d2bf9a4 100644 --- a/pytiled_parser/tileset.py +++ b/pytiled_parser/tileset.py @@ -139,6 +139,7 @@ class TileSet: """ name: str + type: str tile_width: int tile_height: int @@ -155,7 +156,6 @@ class TileSet: image_width: Optional[int] = None image_height: Optional[int] = None - type: Optional[str] = None firstgid: Optional[int] = None background_color: Optional[Color] = None tile_offset: Optional[OrderedPair] = None @@ -372,6 +372,7 @@ def cast(raw_tileset: RawTileSet) -> TileSet: margin=raw_tileset["margin"], version=raw_tileset["version"], tiled_version=raw_tileset["tiledversion"], + type=raw_tileset["type"], ) if raw_tileset.get("image") is not None: @@ -395,9 +396,6 @@ def cast(raw_tileset: RawTileSet) -> TileSet: if raw_tileset.get("transparentcolor") is not None: tileset.transparent_color = raw_tileset["transparentcolor"] - if raw_tileset.get("type") is not None: - tileset.type = raw_tileset["type"] - if raw_tileset.get("grid") is not None: tileset.grid = _cast_grid(raw_tileset["grid"]) From ab685c891720463439c04770c4adb8ade541f601 Mon Sep 17 00:00:00 2001 From: Darren Eberly Date: Sun, 14 Jun 2020 14:23:26 -0400 Subject: [PATCH 6/6] tests: added terrain with properties test --- tests/test_data/tilesets/terrain/expected.py | 6 +- tests/test_data/tilesets/terrain/tileset.json | 601 ++++++------------ 2 files changed, 211 insertions(+), 396 deletions(-) diff --git a/tests/test_data/tilesets/terrain/expected.py b/tests/test_data/tilesets/terrain/expected.py index c60195c..89051ae 100644 --- a/tests/test_data/tilesets/terrain/expected.py +++ b/tests/test_data/tilesets/terrain/expected.py @@ -17,7 +17,11 @@ EXPECTED = tileset.TileSet( version=1.2, type="tileset", terrain_types=[ - tileset.Terrain(name="Sand", tile=29), + tileset.Terrain( + name="Sand", + tile=29, + properties={"terrain property": "test terrain property"}, + ), tileset.Terrain(name="Cobblestone", tile=29), tileset.Terrain(name="Pavement", tile=29), tileset.Terrain(name="Dirt", tile=29), diff --git a/tests/test_data/tilesets/terrain/tileset.json b/tests/test_data/tilesets/terrain/tileset.json index a2b1667..4bd9d32 100644 --- a/tests/test_data/tilesets/terrain/tileset.json +++ b/tests/test_data/tilesets/terrain/tileset.json @@ -1,395 +1,206 @@ -{ - "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 -} +{ "columns":8, + "editorsettings": + { + "export": + { + "format":"", + "target":"." + } + }, + "image":"..\/..\/images\/tmw_desert_spacing.png", + "imageheight":199, + "imagewidth":265, + "margin":1, + "name":"tileset", + "spacing":1, + "terrains":[ + { + "name":"Sand", + "properties":[ + { + "name":"terrain property", + "type":"string", + "value":"test terrain property" + }], + "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 +} \ No newline at end of file