hassium_core/assets/
mod.rs

1pub mod asset;
2pub mod database;
3pub mod protocol;
4pub mod protocols;
5pub mod system;
6
7pub mod prelude {
8    pub use super::{
9        asset::*, database::*, protocol::*, protocols::prelude::*, protocols::*, system::*,
10    };
11}
12
13use crate::{
14    app::AppBuilder,
15    assets::{
16        database::AssetsDatabase,
17        protocols::{binary::BinaryAssetProtocol, set::SetAssetProtocol, text::TextAssetProtocol},
18        system::AssetsSystem,
19    },
20    fetch::FetchEngine,
21};
22
23pub fn bundle_installer<'a, 'b, FE: 'static, ADS>(
24    builder: &mut AppBuilder<'a, 'b>,
25    (fetch_engine, mut assets_database_setup): (FE, ADS),
26) where
27    FE: FetchEngine,
28    ADS: FnMut(&mut AssetsDatabase),
29{
30    let mut database = AssetsDatabase::new(fetch_engine);
31    database.register(BinaryAssetProtocol);
32    database.register(TextAssetProtocol);
33    database.register(SetAssetProtocol);
34    assets_database_setup(&mut database);
35    builder.install_resource(database);
36    builder.install_thread_local_system(AssetsSystem);
37}