mirror of
https://github.com/OMGeeky/pytiled_parser.git
synced 2026-02-23 15:49:52 +01:00
Test case and fix for object template overrides
This commit is contained in:
3
.gitignore
vendored
3
.gitignore
vendored
@@ -107,5 +107,8 @@ venv.bak/
|
|||||||
.mypy_cache/
|
.mypy_cache/
|
||||||
.idea/
|
.idea/
|
||||||
|
|
||||||
|
# ruff
|
||||||
|
.ruff_cache
|
||||||
|
|
||||||
# VS Code Directory
|
# VS Code Directory
|
||||||
.vscode
|
.vscode
|
||||||
@@ -272,14 +272,14 @@ def parse(raw_object: etree.Element, parent_dir: Optional[Path] = None) -> Tiled
|
|||||||
if isinstance(template, etree.Element):
|
if isinstance(template, etree.Element):
|
||||||
new_object = template.find("./object")
|
new_object = template.find("./object")
|
||||||
if new_object is not None:
|
if new_object is not None:
|
||||||
if raw_object.attrib.get("id") is not None:
|
for key, val in raw_object.attrib.items():
|
||||||
new_object.attrib["id"] = raw_object.attrib["id"]
|
if key == "template":
|
||||||
|
continue
|
||||||
|
new_object.attrib[key] = val
|
||||||
|
|
||||||
if raw_object.attrib.get("x") is not None:
|
properties_element = raw_object.find("./properties")
|
||||||
new_object.attrib["x"] = raw_object.attrib["x"]
|
if properties_element is not None:
|
||||||
|
new_object.append(properties_element)
|
||||||
if raw_object.attrib.get("y") is not None:
|
|
||||||
new_object.attrib["y"] = raw_object.attrib["y"]
|
|
||||||
|
|
||||||
raw_object = new_object
|
raw_object = new_object
|
||||||
elif isinstance(template, dict):
|
elif isinstance(template, dict):
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ EXPECTED = tiled_map.TiledMap(
|
|||||||
coordinates=common_types.OrderedPair(
|
coordinates=common_types.OrderedPair(
|
||||||
98.4987608686521, 46.2385012811358
|
98.4987608686521, 46.2385012811358
|
||||||
),
|
),
|
||||||
|
properties={"test": "hello"},
|
||||||
visible=True,
|
visible=True,
|
||||||
class_="",
|
class_="",
|
||||||
),
|
),
|
||||||
@@ -51,9 +52,9 @@ EXPECTED = tiled_map.TiledMap(
|
|||||||
next_object_id=8,
|
next_object_id=8,
|
||||||
orientation="orthogonal",
|
orientation="orthogonal",
|
||||||
render_order="right-down",
|
render_order="right-down",
|
||||||
tiled_version="1.7.1",
|
tiled_version="1.9.2",
|
||||||
tile_size=common_types.Size(32, 32),
|
tile_size=common_types.Size(32, 32),
|
||||||
version="1.6",
|
version="1.9",
|
||||||
background_color=common_types.Color(255, 0, 4, 255),
|
background_color=common_types.Color(255, 0, 4, 255),
|
||||||
tilesets={
|
tilesets={
|
||||||
1: tileset.Tileset(
|
1: tileset.Tileset(
|
||||||
@@ -107,7 +108,7 @@ EXPECTED = tiled_map.TiledMap(
|
|||||||
image_height=32,
|
image_height=32,
|
||||||
image_width=32,
|
image_width=32,
|
||||||
width=32,
|
width=32,
|
||||||
height=32
|
height=32,
|
||||||
)
|
)
|
||||||
},
|
},
|
||||||
tile_count=1,
|
tile_count=1,
|
||||||
|
|||||||
@@ -10,6 +10,12 @@
|
|||||||
"objects":[
|
"objects":[
|
||||||
{
|
{
|
||||||
"id":2,
|
"id":2,
|
||||||
|
"properties":[
|
||||||
|
{
|
||||||
|
"name":"test",
|
||||||
|
"type":"string",
|
||||||
|
"value":"hello"
|
||||||
|
}],
|
||||||
"template":"template-rectangle.json",
|
"template":"template-rectangle.json",
|
||||||
"x":98.4987608686521,
|
"x":98.4987608686521,
|
||||||
"y":46.2385012811358
|
"y":46.2385012811358
|
||||||
@@ -67,7 +73,7 @@
|
|||||||
"value":"Hello, World!!"
|
"value":"Hello, World!!"
|
||||||
}],
|
}],
|
||||||
"renderorder":"right-down",
|
"renderorder":"right-down",
|
||||||
"tiledversion":"1.9.0",
|
"tiledversion":"1.9.2",
|
||||||
"tileheight":32,
|
"tileheight":32,
|
||||||
"tilesets":[
|
"tilesets":[
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<map version="1.9" tiledversion="1.9.0" orientation="orthogonal" renderorder="right-down" compressionlevel="0" width="8" height="6" tilewidth="32" tileheight="32" infinite="0" backgroundcolor="#ff0004" nextlayerid="3" nextobjectid="8">
|
<map version="1.9" tiledversion="1.9.2" orientation="orthogonal" renderorder="right-down" compressionlevel="0" width="8" height="6" tilewidth="32" tileheight="32" infinite="0" backgroundcolor="#ff0004" nextlayerid="3" nextobjectid="8">
|
||||||
<properties>
|
<properties>
|
||||||
<property name="bool property - true" type="bool" value="true"/>
|
<property name="bool property - true" type="bool" value="true"/>
|
||||||
<property name="color property" type="color" value="#ff49fcff"/>
|
<property name="color property" type="color" value="#ff49fcff"/>
|
||||||
@@ -11,7 +11,11 @@
|
|||||||
<tileset firstgid="1" source="tileset.tsx"/>
|
<tileset firstgid="1" source="tileset.tsx"/>
|
||||||
<tileset firstgid="49" source="tile_set_image_for_template.tsx"/>
|
<tileset firstgid="49" source="tile_set_image_for_template.tsx"/>
|
||||||
<objectgroup id="2" name="Object Layer 1">
|
<objectgroup id="2" name="Object Layer 1">
|
||||||
<object id="2" template="template-rectangle.tx" x="98.4988" y="46.2385"/>
|
<object id="2" template="template-rectangle.tx" x="98.4988" y="46.2385">
|
||||||
|
<properties>
|
||||||
|
<property name="test" value="hello"/>
|
||||||
|
</properties>
|
||||||
|
</object>
|
||||||
<object id="6" template="template-tile-spritesheet.tx" x="46" y="136.667"/>
|
<object id="6" template="template-tile-spritesheet.tx" x="46" y="136.667"/>
|
||||||
<object id="7" template="template-tile-image.tx" x="141.333" y="148"/>
|
<object id="7" template="template-tile-image.tx" x="141.333" y="148"/>
|
||||||
</objectgroup>
|
</objectgroup>
|
||||||
|
|||||||
Reference in New Issue
Block a user