diff --git a/src/asset_preloader/checker.rs b/src/asset_preloader/checker.rs new file mode 100644 index 0000000..11df930 --- /dev/null +++ b/src/asset_preloader/checker.rs @@ -0,0 +1,50 @@ +use bevy::prelude::{Resource, Asset}; +use crate::asset_preloader::preloader::*; +use std::any::type_name; + + +#[derive(Resource)] +pub struct AssetPreloadChecker + where T : Asset +{ + pub data: Vec, + typename: String +} + +pub struct AssetPreloadCheckerBuilder + where T: Asset +{ + data : AssetPreloadChecker +} + +impl AssetPreloadChecker{ + pub(crate) fn build(asset_preload: &mut AssetPreload) -> AssetPreloadCheckerBuilder + { + let checker = AssetPreloadChecker::new(); + + asset_preload.0.insert(checker.typename.clone(), false); + + AssetPreloadCheckerBuilder{ + data: checker + } + } + + fn new() -> Self{ + AssetPreloadChecker + { + data: Vec::new(), + typename: type_name::().to_string() + } + } +} + +impl AssetPreloadCheckerBuilder{ + pub fn finish(self) -> AssetPreloadChecker { + self.data + } + + pub fn map_vec<'a, F>(&'a mut self, mut f: F) + where F: FnMut(&mut Vec) + 'a{ + f(&mut self.data.data); + } +} diff --git a/src/asset_preloader/mod.rs b/src/asset_preloader/mod.rs index 54fad11..29c8a8d 100644 --- a/src/asset_preloader/mod.rs +++ b/src/asset_preloader/mod.rs @@ -1,28 +1,9 @@ use bevy::prelude::*; -use std::collections::HashMap; -use std::any::type_name; +use preloader::*; +use checker::*; -pub enum AssetPreloadState{ - Loading, - Ready -} - -#[derive(Resource)] -pub struct AssetPreloadChecker - where T : Asset - { - pub data: Vec, - typename: String - } - -pub struct AssetPreloadCheckerBuilder - where T: Asset -{ - data : AssetPreloadChecker -} - -#[derive(Resource)] -pub(crate) struct AssetPreload(HashMap); +pub mod preloader; +pub mod checker; pub(crate) fn check_preload_status(gl_preloader: Res) { todo!(); @@ -32,42 +13,3 @@ pub(crate) fn check_loader_status(loader: Res>) where T: Asset{ todo!(); } - -impl AssetPreload{ - pub(crate) fn new() -> Self{ - AssetPreload(HashMap::new()) - } -} - -impl AssetPreloadChecker{ - pub(crate) fn build(asset_preload: &mut AssetPreload) -> AssetPreloadCheckerBuilder - { - let checker = AssetPreloadChecker::new(); - - asset_preload.0.insert(checker.typename.clone(), false); - - AssetPreloadCheckerBuilder{ - data: checker - } - } - - fn new() -> Self{ - AssetPreloadChecker - { - data: Vec::new(), - typename: type_name::().to_string() - } - } -} - -impl AssetPreloadCheckerBuilder{ - pub fn finish(self) -> AssetPreloadChecker { - self.data - } - - pub fn map_vec<'a, F>(&'a mut self, mut f: F) - where F: FnMut(&mut Vec) + 'a{ - f(&mut self.data.data); - } -} - diff --git a/src/asset_preloader/preloader.rs b/src/asset_preloader/preloader.rs new file mode 100644 index 0000000..d68d26a --- /dev/null +++ b/src/asset_preloader/preloader.rs @@ -0,0 +1,16 @@ +use std::collections::HashMap; +use bevy::prelude::Resource; + +pub enum AssetPreloadState{ + Loading, + Ready +} + +#[derive(Resource)] +pub(crate) struct AssetPreload(pub(crate) HashMap); + +impl AssetPreload{ + pub(crate) fn new() -> Self{ + AssetPreload(HashMap::new()) + } +} \ No newline at end of file diff --git a/src/plugins/asset_preloader.rs b/src/plugins/asset_preloader.rs index cb61555..c9f0252 100644 --- a/src/plugins/asset_preloader.rs +++ b/src/plugins/asset_preloader.rs @@ -1,5 +1,5 @@ use bevy::prelude::*; -use crate::asset_preloader::*; +use crate::asset_preloader::{preloader::AssetPreload,checker::AssetPreloadChecker}; pub struct AssetPreloadPlugin;