1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
//! Events that are fired when data is loaded.
//!
//! For every type of data loaded, there is a separate event.
//!
//! Currently, the following events are available:
//!
//! * [`LoadedSpellData`] - Fired when spell data is loaded.

use bevy::ecs::event::Event;

use crate::{
    particle::Particle, realm_data::Realm, simple_object::SimpleObject, SpellData, Tileset,
};

use super::DataFile;

#[derive(Event)]
/// Event that is fired when a spell is loaded.
pub struct LoadedSpellData {
    /// The spell data that was loaded.
    pub spell_data: DataFile<SpellData>,
}

#[derive(Event)]
/// Event that is fired when a tileset is loaded.
pub struct LoadedTilesetData {
    /// The tileset data that was loaded.
    pub tileset_data: DataFile<Tileset>,
}

#[derive(Event)]
/// Event that is fired when a particle is loaded.
pub struct LoadedParticleData {
    /// The particle data that was loaded.
    pub particle_data: DataFile<Particle>,
}

#[derive(Event)]
/// Event that is fired when a realm is loaded.
pub struct LoadedRealmData {
    /// The realm data that was loaded.
    pub realm_data: DataFile<Realm>,
}

#[derive(Event)]
/// Event that is fired when a realm is loaded.
pub struct LoadedSimpleObjectData {
    /// The realm data that was loaded.
    pub object_data: DataFile<SimpleObject>,
}