@@ -249,7 +249,7 @@ def parse(
249249 tile_count = raw_tileset ["tilecount" ],
250250 tile_width = raw_tileset ["tilewidth" ],
251251 tile_height = raw_tileset ["tileheight" ],
252- columns = raw_tileset [ "columns" ] ,
252+ columns = raw_tileset . get ( "columns" , 1 ) ,
253253 spacing = raw_tileset ["spacing" ],
254254 margin = raw_tileset ["margin" ],
255255 firstgid = firstgid ,
@@ -304,8 +304,18 @@ def parse(
304304
305305 if raw_tileset .get ("tiles" ) is not None :
306306 tiles = {}
307- for raw_tile in raw_tileset ["tiles" ]:
308- tiles [raw_tile ["id" ]] = _parse_tile (raw_tile , external_path = external_path )
307+ if isinstance (raw_tileset ["tiles" ], dict ):
308+ for raw_tile_id , raw_tile in raw_tileset ["tiles" ].items ():
309+ assert raw_tile .get ("id" ) is None
310+ raw_tile ["id" ] = int (raw_tile_id )
311+ tiles [raw_tile ["id" ]] = _parse_tile (
312+ raw_tile , external_path = external_path
313+ )
314+ else :
315+ for raw_tile in raw_tileset ["tiles" ]:
316+ tiles [raw_tile ["id" ]] = _parse_tile (
317+ raw_tile , external_path = external_path
318+ )
309319 tileset .tiles = tiles
310320
311321 if raw_tileset .get ("wangsets" ) is not None :
0 commit comments