ticker awaits an empty particle queue

This commit is contained in:
Llywelwyn 2023-08-30 05:57:03 +01:00
parent 9427ebd7c1
commit b5c4cb1fb5
2 changed files with 9 additions and 1 deletions

View file

@ -269,7 +269,7 @@ impl GameState for State {
}
}
RunState::Ticking => {
while new_runstate == RunState::Ticking {
while new_runstate == RunState::Ticking && particle_system::check_queue(&self.ecs) {
self.run_systems();
self.ecs.maintain();
try_spawn_interval(&mut self.ecs);

View file

@ -31,6 +31,14 @@ fn cull_dead_particles(ecs: &mut World, ctx: &Rltk) {
}
}
pub fn check_queue(ecs: &World) -> bool {
let particle_builder = ecs.read_resource::<ParticleBuilder>();
if particle_builder.delayed_requests.is_empty() && particle_builder.requests.is_empty() {
return true;
}
return false;
}
fn create_delayed_particles(ecs: &mut World, ctx: &Rltk) {
let mut particle_builder = ecs.write_resource::<ParticleBuilder>();
let mut handled_particles: Vec<ParticleRequest> = Vec::new();