Skip to content

Commit b3c2c00

Browse files
committed
recognise image layers
1 parent 5a44abd commit b3c2c00

File tree

2 files changed

+40
-0
lines changed

2 files changed

+40
-0
lines changed

pytiled_parser/objects.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -420,6 +420,21 @@ class LayerGroup(Layer):
420420
layers: Optional[List[Union["LayerGroup", Layer, ObjectLayer]]]
421421

422422

423+
@attr.s(auto_attribs=True, kw_only=True)
424+
class ImageLayer(Layer):
425+
"""Image Layer.
426+
427+
An image layer displays a single image.
428+
429+
See: https://doc.mapeditor.org/en/stable/reference/tmx-map-format/#imagelayer
430+
431+
Attributes:
432+
image: the image to display for this layer.
433+
"""
434+
435+
image: Image
436+
437+
423438
@attr.s(auto_attribs=True)
424439
class TileSet:
425440
"""Object for storing a TSX with all associated collision data.

pytiled_parser/xml_parser.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,29 @@ def _parse_object_layer(element: etree.Element,) -> objects.ObjectLayer:
403403
)
404404

405405

406+
def _parse_image_layer(element: etree.Element,) -> objects.ImageLayer:
407+
"""Parse the imagelayer element given.
408+
409+
Args:
410+
element: Element to be parsed.
411+
412+
Returns:
413+
ImageLayer: The image layer object.
414+
"""
415+
id_, name, offset, opacity, properties = _parse_layer(element)
416+
417+
image = _parse_image_element(element.find("./image"))
418+
419+
return objects.ImageLayer(
420+
id_=id_,
421+
name=name,
422+
offset=offset,
423+
opacity=opacity,
424+
properties=properties,
425+
image=image,
426+
)
427+
428+
406429
def _parse_layer_group(element: etree.Element,) -> objects.LayerGroup:
407430
"""Parse the objectgroup element given.
408431
@@ -447,6 +470,8 @@ def _get_layer_parser(
447470
return _parse_object_layer
448471
if layer_tag == "group":
449472
return _parse_layer_group
473+
if layer_tag == "imagelayer":
474+
return _parse_image_layer
450475
return None
451476

452477

0 commit comments

Comments
 (0)