File tree 2 files changed +74
-5
lines changed 2 files changed +74
-5
lines changed Original file line number Diff line number Diff line change @@ -205,17 +205,22 @@ class TiledMap {
205
205
final imageSet = < TiledImage > {};
206
206
for (var i = 0 ; i < tilesets.length; ++ i) {
207
207
final image = tilesets[i].image;
208
- if (image != null ) {
209
- imageSet.add (image);
208
+ if (image? .source != null ) {
209
+ imageSet.add (image! );
210
210
}
211
211
for (var j = 0 ; j < tilesets[i].tiles.length; ++ j) {
212
212
final image = tilesets[i].tiles[j].image;
213
- if (image != null ) {
214
- imageSet.add (image);
213
+ if (image? .source != null ) {
214
+ imageSet.add (image! );
215
215
}
216
216
}
217
217
}
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
+ );
219
224
return imageSet.toList ();
220
225
}
221
226
Original file line number Diff line number Diff line change @@ -287,6 +287,70 @@ void main() {
287
287
});
288
288
});
289
289
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
+
290
354
group ('Map.getTileSet' , () {
291
355
late TiledMap map;
292
356
final tileset = Tileset (
You can’t perform that action at this time.
0 commit comments