File tree Expand file tree Collapse file tree 2 files changed +74
-5
lines changed
Expand file tree Collapse file tree 2 files changed +74
-5
lines changed Original file line number Diff line number Diff line change @@ -205,17 +205,22 @@ class TiledMap {
205205 final imageSet = < TiledImage > {};
206206 for (var i = 0 ; i < tilesets.length; ++ i) {
207207 final image = tilesets[i].image;
208- if (image != null ) {
209- imageSet.add (image);
208+ if (image? .source != null ) {
209+ imageSet.add (image! );
210210 }
211211 for (var j = 0 ; j < tilesets[i].tiles.length; ++ j) {
212212 final image = tilesets[i].tiles[j].image;
213- if (image != null ) {
214- imageSet.add (image);
213+ if (image? .source != null ) {
214+ imageSet.add (image! );
215215 }
216216 }
217217 }
218- imageSet.addAll (layers.whereType <ImageLayer >().map ((e) => e.image));
218+ imageSet.addAll (
219+ layers
220+ .whereType <ImageLayer >()
221+ .map ((e) => e.image)
222+ .where ((e) => e.source != null ),
223+ );
219224 return imageSet.toList ();
220225 }
221226
Original file line number Diff line number Diff line change @@ -287,6 +287,70 @@ void main() {
287287 });
288288 });
289289
290+ group ('Map.tiledImages' , () {
291+ late TiledMap map;
292+ setUp (() {
293+ map = TiledMap (
294+ width: 10 ,
295+ height: 10 ,
296+ tileWidth: 16 ,
297+ tileHeight: 16 ,
298+ layers: [
299+ ImageLayer (
300+ name: 'image layer 1' ,
301+ image: const TiledImage (),
302+ repeatX: false ,
303+ repeatY: false ,
304+ ),
305+ ImageLayer (
306+ name: 'image layer 2' ,
307+ image: const TiledImage (source: 'image_layer_2.png' ),
308+ repeatX: false ,
309+ repeatY: false ,
310+ ),
311+ ],
312+ tilesets: [
313+ Tileset (
314+ name: 'tileset 1' ,
315+ image: const TiledImage (source: 'tileset_1.png' ),
316+ ),
317+ Tileset (
318+ name: 'tileset 2' ,
319+ image: const TiledImage (),
320+ ),
321+ Tileset (
322+ name: 'tileset 3' ,
323+ tiles: [
324+ Tile (
325+ localId: 0 ,
326+ image: const TiledImage (source: 'tile_0.png' ),
327+ ),
328+ Tile (
329+ localId: 1 ,
330+ image: const TiledImage (),
331+ ),
332+ ],
333+ )
334+ ],
335+ );
336+ });
337+ test ('returns images with source' , () {
338+ final imageSources = map.tiledImages ().map ((e) => e.source);
339+
340+ expect (imageSources, hasLength (3 ));
341+ expect (
342+ imageSources,
343+ containsAll (
344+ < String > [
345+ 'image_layer_2.png' ,
346+ 'tileset_1.png' ,
347+ 'tile_0.png' ,
348+ ],
349+ ),
350+ );
351+ });
352+ });
353+
290354 group ('Map.getTileSet' , () {
291355 late TiledMap map;
292356 final tileset = Tileset (
You can’t perform that action at this time.
0 commit comments