diff options
author | 2024-10-11 16:02:07 -0400 | |
---|---|---|
committer | 2024-10-11 16:02:07 -0400 | |
commit | 16c1574e400d73198713336e18975ff37ab78290 (patch) | |
tree | db370db8e0caea99a9e6e3c501c7ea7e3b6dd708 /src/systems.rs | |
parent | 462d6c5aaa2281bf875e04d5e2c3241a13256836 (diff) |
Way too many changes (0.2)
Diffstat (limited to 'src/systems.rs')
-rw-r--r-- | src/systems.rs | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/systems.rs b/src/systems.rs new file mode 100644 index 0000000..ac5f667 --- /dev/null +++ b/src/systems.rs @@ -0,0 +1,14 @@ +use bevy::{prelude::{Commands, ResMut}, tasks::{block_on, futures_lite::future}}; + +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); + } + } + !task.is_finished() + }); +} |