Skip to content

Commit f6e5d7f

Browse files
committed
Fix for object template loading inside tilesets (#82)
1 parent be48b85 commit f6e5d7f

File tree

6 files changed

+54
-7
lines changed

6 files changed

+54
-7
lines changed

pytiled_parser/parsers/json/tileset.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@ def _parse_tile(
182182
tile.animation.append(_parse_frame(frame))
183183

184184
if raw_tile.get("objectgroup") is not None:
185-
tile.objects = parse_layer(raw_tile["objectgroup"], encoding)
185+
tile.objects = parse_layer(raw_tile["objectgroup"], encoding, external_path)
186186

187187
if raw_tile.get("properties") is not None:
188188
tile.properties = parse_properties(raw_tile["properties"])

pytiled_parser/parsers/tmx/tileset.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ def _parse_tile(
9191

9292
object_element = raw_tile.find("./objectgroup")
9393
if object_element is not None:
94-
tile.objects = parse_layer(object_element, encoding)
94+
tile.objects = parse_layer(object_element, encoding, external_path)
9595

9696
properties_element = raw_tile.find("./properties")
9797
if properties_element is not None:

tests/test_data/map_tests/template/expected.py

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -110,6 +110,32 @@
110110
image_width=32,
111111
width=32,
112112
height=32,
113+
objects=layer.ObjectLayer(
114+
id=2,
115+
name="",
116+
draw_order="index",
117+
opacity=1,
118+
visible=True,
119+
parallax_factor=common_types.OrderedPair(1.0, 1.0),
120+
coordinates=common_types.OrderedPair(0, 0),
121+
tiled_objects=[
122+
tiled_object.Rectangle(
123+
id=1,
124+
name="test",
125+
rotation=0,
126+
size=common_types.Size(
127+
63.6585878103079, 38.2811778048473
128+
),
129+
coordinates=common_types.OrderedPair(9.5, 3.0),
130+
properties={
131+
"test": "world",
132+
"testtest": "fromtemplate",
133+
},
134+
visible=True,
135+
class_="",
136+
),
137+
],
138+
),
113139
)
114140
},
115141
tile_count=1,

tests/test_data/map_tests/template/template-rectangle.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
{
33
"height":38.2811778048473,
44
"id":1,
5-
"name":"",
5+
"name":"test",
66
"rotation":0,
77
"class":"",
88
"visible":true,

tests/test_data/map_tests/template/tile_set_single_image.json

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -9,16 +9,34 @@
99
"name":"tile_set_single_image",
1010
"spacing":0,
1111
"tilecount":1,
12-
"tiledversion":"1.7.1",
12+
"tiledversion":"1.9.2",
1313
"tileheight":32,
1414
"tiles":[
1515
{
1616
"id":0,
1717
"image":"..\/..\/images\/tile_02.png",
1818
"imageheight":32,
19-
"imagewidth":32
19+
"imagewidth":32,
20+
"objectgroup":
21+
{
22+
"draworder":"index",
23+
"id":2,
24+
"name":"",
25+
"objects":[
26+
{
27+
"id":1,
28+
"template":"template-rectangle.json",
29+
"x":9.5,
30+
"y":3
31+
}],
32+
"opacity":1,
33+
"type":"objectgroup",
34+
"visible":true,
35+
"x":0,
36+
"y":0
37+
}
2038
}],
2139
"tilewidth":32,
2240
"type":"tileset",
23-
"version":"1.6"
41+
"version":"1.9"
2442
}
Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
<?xml version="1.0" encoding="UTF-8"?>
2-
<tileset version="1.5" tiledversion="1.7.0" name="tile_set_single_image" tilewidth="32" tileheight="32" tilecount="1" columns="0">
2+
<tileset version="1.9" tiledversion="1.9.2" name="tile_set_single_image" tilewidth="32" tileheight="32" tilecount="1" columns="0">
33
<grid orientation="orthogonal" width="1" height="1"/>
44
<tile id="0">
55
<image width="32" height="32" source="../../images/tile_02.png"/>
6+
<objectgroup draworder="index" id="2">
7+
<object id="1" template="template-rectangle.tx" x="9.5" y="3"/>
8+
</objectgroup>
69
</tile>
710
</tileset>

0 commit comments

Comments
 (0)