Tileset.parse constructor

Tileset.parse(
  1. Parser parser, {
  2. TsxProvider? tsx,
})

Implementation

factory Tileset.parse(Parser parser, {TsxProvider? tsx}) {
  final backgroundColor = parser.getStringOrNull('backgroundcolor');
  final columns = parser.getIntOrNull('columns');
  final firstGid = parser.getIntOrNull('firstgid');
  final margin = parser.getInt('margin', defaults: 0);
  final name = parser.getStringOrNull('name');
  final objectAlignment = ObjectAlignment.values.byName(
    parser.getString('objectalignment', defaults: 'unspecified'),
  );
  final source = parser.getStringOrNull('source');
  final spacing = parser.getInt('spacing', defaults: 0);
  final tileCount = parser.getIntOrNull('tilecount');
  final tileWidth = parser.getIntOrNull('tilewidth');
  final tileHeight = parser.getIntOrNull('tileheight');
  final tiledVersion = parser.getStringOrNull('tiledversion');
  final transparentColor = parser.getStringOrNull('transparentcolor');
  final type = parser.getTilesetType('type', defaults: TilesetType.tileset);
  final version = parser.getString('version', defaults: '1.0');

  final image = parser.getSingleChildOrNullAs('image', TiledImage.parse);
  final grid = parser.getSingleChildOrNullAs('grid', Grid.parse);
  final tileOffset =
      parser.getSingleChildOrNullAs('tileoffset', TileOffset.parse);
  final properties = parser.getProperties();
  final terrains = parser.getChildrenAs('terrains', Terrain.parse);
  final tiles = parser.formatSpecificParsing(
    (json) => json.getChildrenAs('tiles', Tile.parse),
    (xml) => xml.getChildrenAs('tile', Tile.parse),
  );
  final wangSets = parser.formatSpecificParsing(
    (json) => json.getChildrenAs('wangsets', WangSet.parse),
    (xml) =>
        xml
            .getSingleChildOrNull('wangsets')
            ?.getChildrenAs('wangset', WangSet.parse) ??
        [],
  );

  final result = Tileset(
    firstGid: firstGid,
    source: source,
    name: name,
    tileWidth: tileWidth,
    tileHeight: tileHeight,
    spacing: spacing,
    margin: margin,
    tileCount: tileCount,
    columns: columns,
    objectAlignment: objectAlignment,
    tiles: tiles,
    image: image,
    tileOffset: tileOffset,
    grid: grid,
    properties: properties,
    terrains: terrains,
    wangSets: wangSets,
    version: version,
    tiledVersion: tiledVersion,
    backgroundColor: backgroundColor,
    transparentColor: transparentColor,
    type: type,
  );
  result._checkIfExternalTsx(source, tsx);
  return result;
}