TiledMap.parse constructor

TiledMap.parse(
  1. Parser parser, {
  2. List<TsxProvider>? tsxList,
})

Implementation

factory TiledMap.parse(Parser parser, {List<TsxProvider>? tsxList}) {
  final backgroundColorHex = parser.getStringOrNull('backgroundcolor');
  final backgroundColor = parser.getColorOrNull('backgroundcolor');
  final compressionLevel = parser.getInt('compressionlevel', defaults: -1);
  final height = parser.getInt('height');
  final hexSideLength = parser.getIntOrNull('hexsidelength');
  final infinite = parser.getBool('infinite', defaults: false);
  final nextLayerId = parser.getIntOrNull('nextlayerid');
  final nextObjectId = parser.getIntOrNull('nextobjectid');
  final orientation = parser.getMapOrientationOrNull('orientation');
  final renderOrder = parser.getRenderOrder(
    'renderorder',
    defaults: RenderOrder.rightDown,
  );
  final staggerAxis = parser.getStaggerAxisOrNull('staggeraxis');
  final staggerIndex = parser.getStaggerIndexOrNull('staggerindex');
  final tiledVersion = parser.getStringOrNull('tiledversion');
  final tileHeight = parser.getInt('tileheight');
  final tileWidth = parser.getInt('tilewidth');
  final type = parser.getTileMapType('type', defaults: TileMapType.map);
  final version = parser.getString('version', defaults: '1.0');
  final width = parser.getInt('width');

  final tilesets = parser.getChildrenAs(
    'tileset',
    (tilesetData) {
      final tilesetSource = tilesetData.getStringOrNull('source');
      if (tilesetSource == null || tsxList == null) {
        return Tileset.parse(tilesetData);
      }
      final matchingTsx = tsxList.where(
        (tsx) => tsx.filename == tilesetSource,
      );

      return Tileset.parse(
        tilesetData,
        tsx: matchingTsx.isNotEmpty ? matchingTsx.first : null,
      );
    },
  );
  final layers = Layer.parseLayers(parser);
  final properties = parser.getProperties();
  final editorSettings = parser.getChildrenAs(
    'editorsettings',
    EditorSetting.parse,
  );

  return TiledMap(
    type: type,
    version: version,
    tiledVersion: tiledVersion,
    width: width,
    height: height,
    infinite: infinite,
    tileWidth: tileWidth,
    tileHeight: tileHeight,
    tilesets: tilesets,
    layers: layers,
    backgroundColorHex: backgroundColorHex,
    backgroundColor: backgroundColor,
    compressionLevel: compressionLevel,
    hexSideLength: hexSideLength,
    nextLayerId: nextLayerId,
    nextObjectId: nextObjectId,
    orientation: orientation,
    renderOrder: renderOrder,
    staggerAxis: staggerAxis,
    staggerIndex: staggerIndex,
    editorSettings: editorSettings,
    properties: properties,
  );
}