diff options
Diffstat (limited to 'src/systems.rs')
-rw-r--r-- | src/systems.rs | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/src/systems.rs b/src/systems.rs index d6840ee..b95b14f 100644 --- a/src/systems.rs +++ b/src/systems.rs @@ -6,13 +6,16 @@ use bevy::{ use crate::resources::DirworldTasks; pub fn remove_completed_tasks(mut commands: Commands, mut tasks: ResMut<DirworldTasks>) { - tasks.retain(|_, task| { - if task.is_finished() { - if let Some(Some(mut command_queue)) = block_on(future::poll_once(&mut *task)) { - commands.append(&mut command_queue); + tasks.retain(|_, task| match task { + Some(task) => { + if task.is_finished() { + if let Some(Some(mut command_queue)) = block_on(future::poll_once(&mut *task)) { + commands.append(&mut command_queue); + } } + !task.is_finished() } - !task.is_finished() + None => true, }); } |