Tile.parse constructor

Tile.parse(
  1. Parser parser
)

Implementation

Tile.parse(Parser parser)
    : this(
        localId: parser.getInt('id'),

        /// Tiled 1.9 "type" has been moved to "class"
        type:
            parser.getStringOrNull('class') ?? parser.getStringOrNull('type'),

        probability: parser.getDouble('probability', defaults: 0),
        terrain: parser
                .getStringOrNull('terrain')
                ?.split(',')
                .map((str) => str.isEmpty ? null : int.parse(str))
                .toList() ??
            [],
        image: parser.getSingleChildOrNullAs('image', TiledImage.parse),
        imageRect: Rect.fromLTWH(
          parser.getDoubleOrNull('x') ?? 0,
          parser.getDoubleOrNull('y') ?? 0,
          parser.getDoubleOrNull('width') ?? 0,
          parser.getDoubleOrNull('height') ?? 0,
        ),
        objectGroup:
            parser.getSingleChildOrNullAs('objectgroup', Layer.parse),
        animation: parser.formatSpecificParsing(
          (json) => json.getChildrenAs('animation', Frame.parse),
          (xml) =>
              xml
                  .getSingleChildOrNull('animation')
                  ?.getChildrenAs('frame', Frame.parse) ??
              [],
        ),
        properties: parser.getProperties(),
      );