WangSet.parse constructor

WangSet.parse(
  1. Parser parser
)

Implementation

factory WangSet.parse(Parser parser) {
  final colors = parser.formatSpecificParsing(
    (json) => [
      json.getChildrenAs('cornercolors', WangColor.parse),
      json.getChildrenAs('edgecolors', WangColor.parse),
    ],
    (xml) {
      final isCorner = xml.getString('type') == 'corner';
      final colors = xml.getChildrenAs('wangcolor', WangColor.parse);
      return isCorner ? [colors, <WangColor>[]] : [<WangColor>[], colors];
    },
  );
  return WangSet(
    name: parser.getString('name'),
    tile: parser.getInt('tile'),
    cornerColors: colors[0],
    edgeColors: colors[1],
    wangTiles: parser.getChildrenAs('wangtiles', WangTile.parse),
    properties: parser.getProperties(),
  );
}