use std::{collections::{BTreeMap, HashMap}, path::PathBuf}; use bevy::{ecs::world::CommandQueue, prelude::*, tasks::Task}; use multi_key_map::MultiKeyMap; use occule::Codec; use crate::payload::DirworldEntityPayload; /// Root directory of the world #[derive(Resource, Deref, DerefMut, Default)] pub struct DirworldRootDir(pub Option); /// Current directory of the world #[derive(Resource, Deref, DerefMut, Default)] pub struct DirworldCurrentDir(pub Option); /// Running background tasks #[derive(Default, Resource, Deref, DerefMut)] pub struct DirworldTasks(pub BTreeMap>>); #[derive(Debug, Default, Resource, Deref, DerefMut)] pub(crate) struct DirworldObservers(pub MultiKeyMap); #[derive(Default, Resource, Deref, DerefMut)] pub(crate) struct DirworldCodecs(pub MultiKeyMap>); #[derive(Debug, PartialEq, Eq, Hash)] pub enum EntryType { File(Option), Folder, } /// Structure containing payload data for cached (non-current) rooms #[derive(Resource, Default, Debug, Deref, DerefMut)] pub struct DirworldCache(pub HashMap);