@@ -12,6 +12,7 @@ use bevy::{
12
12
Render , RenderApp , RenderSet ,
13
13
} ,
14
14
} ;
15
+ use bevy:: ecs:: entity:: Entities ;
15
16
16
17
#[ cfg( not( feature = "atlas" ) ) ]
17
18
use bevy:: render:: renderer:: RenderDevice ;
@@ -116,7 +117,7 @@ impl Plugin for TilemapRenderingPlugin {
116
117
app. add_systems ( Update , set_texture_to_copy_src) ;
117
118
118
119
app. add_systems ( First , clear_removed) ;
119
- app. add_systems ( PostUpdate , removal_helper) ;
120
+ app. add_systems ( PostUpdate , ( removal_helper, removal_helper_tilemap ) ) ;
120
121
121
122
app. add_plugins ( MaterialTilemapPlugin :: < StandardTilemapMaterial > :: default ( ) ) ;
122
123
@@ -306,18 +307,22 @@ pub struct RemovedTileEntity(pub Entity);
306
307
#[ derive( Component ) ]
307
308
pub struct RemovedMapEntity ( pub Entity ) ;
308
309
309
- fn removal_helper ( mut commands : Commands , mut set : ParamSet < ( & World , RemovedComponents < TilePos > , RemovedComponents < TileStorage > ) > ) {
310
- let tiles: Vec < Entity > = set. p1 ( ) . read ( ) . collect ( ) ;
311
- let maps: Vec < Entity > = set. p2 ( ) . read ( ) . collect ( ) ;
312
-
313
- let world = set. p0 ( ) ;
314
- let entities = world. entities ( ) ;
315
-
316
- for entity in tiles. into_iter ( ) . filter ( |entity| entities. contains ( * entity) ) {
310
+ fn removal_helper (
311
+ mut commands : Commands ,
312
+ entities : & Entities ,
313
+ mut removed_query : RemovedComponents < TilePos > ,
314
+ ) {
315
+ for entity in removed_query. read ( ) . filter ( |entity| entities. contains ( * entity) ) {
317
316
commands. spawn ( RemovedTileEntity ( entity) ) ;
318
317
}
318
+ }
319
319
320
- for entity in maps. into_iter ( ) . filter ( |entity| entities. contains ( * entity) ) {
320
+ fn removal_helper_tilemap (
321
+ mut commands : Commands ,
322
+ entities : & Entities ,
323
+ mut removed_query : RemovedComponents < TileStorage > ,
324
+ ) {
325
+ for entity in removed_query. read ( ) . filter ( |entity| entities. contains ( * entity) ) {
321
326
commands. spawn ( RemovedMapEntity ( entity) ) ;
322
327
}
323
328
}
0 commit comments