Skip to content
Snippets Groups Projects
mod.rs 1.19 KiB
Newer Older
Louis's avatar
Louis committed
mod apack_handler;
mod asset_types;
Louis's avatar
Louis committed
mod loader;
mod resources;
mod startup;

pub use asset_types::ldtk_project::{LdtkLoader, LdtkProject, LevelIndex};
Louis's avatar
Louis committed
use bevy::app::{App, Plugin};
use bevy::prelude::AddAsset;
Louis's avatar
Louis committed
use iyes_loopless::condition::ConditionSet;
use iyes_loopless::prelude::AppLooplessStateExt;
pub use loader::AssetTypeLoader;
pub use resources::{AssetHandles, AssetNameMapping, FixedAssetNameMapping, SpriteSheetConfig};

Louis's avatar
Louis committed
use crate::assets::apack_handler::handle_apack_process_events;
use crate::assets::asset_types::ldtk_project::handle_ldtk_project_events;
Louis's avatar
Louis committed
use crate::system::flow::AppState;

pub struct AssetsPlugin;
impl Plugin for AssetsPlugin {
	fn build(&self, app: &mut App) {
		app.init_resource::<AssetHandles>()
			.init_resource::<LevelIndex>()
			.add_asset::<LdtkProject>()
			.add_asset_loader(LdtkLoader)
Louis's avatar
Louis committed
			.add_enter_system(AppState::Preload, startup::start_preload_resources)
			.add_enter_system(AppState::Preload, startup::start_load_resources)
Louis's avatar
Louis committed
			.add_system(handle_apack_process_events)
			.add_system(handle_ldtk_project_events)
Louis's avatar
Louis committed
			.add_system_set(
				ConditionSet::new()
					.run_in_state(AppState::Setup)
					.with_system(startup::check_load_resources)
					.into(),
			);
	}
}