aboutsummaryrefslogtreecommitdiff
path: root/src/systems.rs
blob: ac5f667842a75be91ddb5937b20135048b48333b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
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()
    });
}