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