Skip to content

Commit 5763e8e

Browse files
committed
Layer fix for TMX parser
1 parent 5ce8bba commit 5763e8e

File tree

1 file changed

+23
-13
lines changed

1 file changed

+23
-13
lines changed

pytiled_parser/parsers/tmx/layer.py

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ def _parse_chunk(
121121
)
122122
else:
123123
data = _convert_raw_tile_layer_data(
124-
[int(v.strip) for v in raw_chunk.text], # type: ignore
124+
[int(v.strip()) for v in raw_chunk.text.split(",")], # type: ignore
125125
int(raw_chunk.attrib["width"]),
126126
)
127127

@@ -277,23 +277,20 @@ def _parse_image_layer(raw_layer: etree.Element) -> ImageLayer:
277277
ImageLayer: The ImageLayer created from raw_layer
278278
"""
279279
image_element = raw_layer.find("./image")
280-
if image_element:
280+
if image_element is not None:
281281
source = Path(image_element.attrib["source"])
282-
width = int(image_element.attrib["width"])
283-
height = int(image_element.attrib["height"])
284282

285283
transparent_color = None
286284
if image_element.attrib.get("trans") is not None:
287285
transparent_color = parse_color(image_element.attrib["trans"])
288286

289-
common = _parse_common(raw_layer).__dict__
290-
del common["size"]
291-
return ImageLayer(
287+
image_layer = ImageLayer(
292288
image=source,
293-
size=Size(width, height),
294289
transparent_color=transparent_color,
295290
**_parse_common(raw_layer).__dict__,
296291
)
292+
print(image_layer.size)
293+
return image_layer
297294

298295
raise RuntimeError("Tried to parse an image layer that doesn't have an image!")
299296

@@ -309,11 +306,24 @@ def _parse_group_layer(
309306
Returns:
310307
LayerGroup: The LayerGroup created from raw_layer
311308
"""
312-
layers = []
313-
314-
for layer in raw_layer.iter():
315-
if layer.tag in ["layer", "objectgroup", "imagelayer", "group"]:
316-
layers.append(parse(layer, parent_dir=parent_dir))
309+
layers: List[Layer] = []
310+
for layer in raw_layer.findall("./layer"):
311+
layers.append(_parse_tile_layer(layer))
312+
313+
for layer in raw_layer.findall("./objectgroup"):
314+
layers.append(_parse_object_layer(layer, parent_dir))
315+
316+
for layer in raw_layer.findall("./imagelayer"):
317+
layers.append(_parse_image_layer(layer))
318+
319+
for layer in raw_layer.findall("./group"):
320+
layers.append(_parse_group_layer(layer, parent_dir))
321+
# layers = []
322+
# layers = [
323+
# parse(child_layer, parent_dir=parent_dir)
324+
# for child_layer in raw_layer.iter()
325+
# if child_layer.tag in ["layer", "objectgroup", "imagelayer", "group"]
326+
# ]
317327

318328
return LayerGroup(layers=layers, **_parse_common(raw_layer).__dict__)
319329

0 commit comments

Comments
 (0)