diff --git a/crates/border-wars/src/map/generation.rs b/crates/border-wars/src/map/generation.rs index dcd92b8..fa6a8a6 100644 --- a/crates/border-wars/src/map/generation.rs +++ b/crates/border-wars/src/map/generation.rs @@ -11,10 +11,13 @@ pub struct MapGenerationPlugin; impl Plugin for MapGenerationPlugin { fn build(&self, app: &mut App) { - app.add_event::().add_systems( - Update, - generate_map.run_if(in_state(crate::CurrentScene::Game)), - ); + app.add_event::() + .add_event::() + .add_systems( + Update, + (generate_map.after(delete_map), delete_map) + .run_if(in_state(crate::CurrentScene::Game)), + ); } } @@ -68,3 +71,15 @@ fn get_type_tile(position: (f32, f32), noise: &Perlin) -> Tile { _ => Tile::Grass, } } + +fn delete_map( + mut commands: Commands, + query: Query>, + mut event: EventReader, +) { + for _ in event.read() { + for entity in query.iter() { + commands.entity(entity).despawn_recursive(); + } + } +}