mirror of
https://github.com/OMGeeky/pytiled_parser.git
synced 2025-12-26 17:02:28 +01:00
Merge branch 'rf/caster' of github.com:Beefy-Swain/pytiled_parser into rf/caster
This commit is contained in:
@@ -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"])
|
||||
|
||||
|
||||
@@ -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",
|
||||
),
|
||||
],
|
||||
|
||||
@@ -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
|
||||
}
|
||||
}
|
||||
|
||||
271
tests/test_data/tilesets/terrain/expected.py
Normal file
271
tests/test_data/tilesets/terrain/expected.py
Normal 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
|
||||
),
|
||||
),
|
||||
],
|
||||
)
|
||||
206
tests/test_data/tilesets/terrain/tileset.json
Normal file
206
tests/test_data/tilesets/terrain/tileset.json
Normal 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
|
||||
}
|
||||
@@ -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",
|
||||
]
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user