aboutsummaryrefslogtreecommitdiff
path: root/src/systems.rs
diff options
context:
space:
mode:
authorLibravatar Silas Bartha <silas@exvacuum.dev>2024-10-11 16:02:07 -0400
committerLibravatar Silas Bartha <silas@exvacuum.dev>2024-10-11 16:02:07 -0400
commit16c1574e400d73198713336e18975ff37ab78290 (patch)
treedb370db8e0caea99a9e6e3c501c7ea7e3b6dd708 /src/systems.rs
parent462d6c5aaa2281bf875e04d5e2c3241a13256836 (diff)
Way too many changes (0.2)
Diffstat (limited to 'src/systems.rs')
-rw-r--r--src/systems.rs14
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()
+ });
+}