use bevy::{ prelude::*, tasks::{block_on, futures_lite::future}, }; use crate::resources::DirworldTasks; pub fn remove_completed_tasks(mut commands: Commands, mut tasks: ResMut) { 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() } None => true, }); } // pub fn sync_entity_transforms( // mut dirworld_entity_query: Query<(&mut DirworldEntity, Ref, &GlobalTransform)>, // ) { // for (mut dirworld_entity, transform, global_transform) in dirworld_entity_query.iter_mut() { // if transform.is_changed() && !transform.is_added() { // if let Some(payload) = &mut dirworld_entity.payload { // let transform = global_transform.compute_transform(); // *payload.transform = transform; // } // } // } // }