Adding a map creation plugin #57

Merged
CoCo_Sol merged 39 commits from map-generation into main 2024-02-21 20:10:03 +00:00
Showing only changes of commit 1350b04e29 - Show all commits

View file

@ -11,10 +11,13 @@ pub struct MapGenerationPlugin;
impl Plugin for MapGenerationPlugin {
fn build(&self, app: &mut App) {
app.add_event::<MapGenerationEvent>().add_systems(
Update,
generate_map.run_if(in_state(crate::CurrentScene::Game)),
);
app.add_event::<MapGenerationEvent>()
.add_event::<EndMapGenerationEvent>()
.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<Entity, With<Tile>>,
mut event: EventReader<EndMapGenerationEvent>,
) {
for _ in event.read() {
for entity in query.iter() {
commands.entity(entity).despawn_recursive();
}
}
}