hassium_core/assets/
mod.rs1pub 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}