Merge branch 'rf/caster' of github.com:Beefy-Swain/pytiled_parser into rf/caster

This commit is contained in:
Benjamin Kirkbride
2020-07-23 21:15:39 -04:00
6 changed files with 484 additions and 13 deletions

View File

@@ -39,7 +39,7 @@ class Terrain(NamedTuple):
name: str
tile: int
properties: properties_.Properties = {}
properties: Optional[properties_.Properties] = None
@attr.s(auto_attribs=True)
@@ -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"])

View File

@@ -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=[
@@ -79,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",
),
],

View File

@@ -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
}
}

View File

@@ -0,0 +1,271 @@
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,
properties={"terrain property": "test terrain property"},
),
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
),
),
],
)

View File

@@ -0,0 +1,206 @@
{ "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
}

View File

@@ -20,6 +20,8 @@ ALL_TILESET_DIRS = [
TILE_SETS / "image_properties",
TILE_SETS / "image_transparent_color",
TILE_SETS / "image_tile_offset",
TILE_SETS / "individual_images",
TILE_SETS / "terrain",
]