use bevy::prelude::*;
use super::{
events::{
LoadedParticleData, LoadedRealmData, LoadedSimpleObjectData, LoadedSpellData,
LoadedTilesetData,
},
load_data_file_dir,
particles::load_particle_effects,
realms::load_realms,
simple_objects::load_simple_objects,
spells::load_spells,
storage::GameData,
tilesets::load_tilesets,
};
#[allow(clippy::module_name_repetitions)]
pub struct DataLoaderPlugin;
impl Plugin for DataLoaderPlugin {
fn build(&self, app: &mut App) {
app.add_event::<LoadedSpellData>()
.add_event::<LoadedTilesetData>()
.add_event::<LoadedParticleData>()
.add_event::<LoadedRealmData>()
.add_event::<LoadedSimpleObjectData>();
app.init_resource::<GameData>().add_systems(
Update,
(
load_tilesets,
load_simple_objects,
load_particle_effects,
load_realms,
load_spells,
),
);
app.add_systems(Startup, load_data_file_dir);
}
}