use bevy::{app::MainScheduleOrder, prelude::*};
use bevy_ecs::schedule::ScheduleLabel;
pub fn plugin(app: &mut App) {
app.init_schedule(AddStatComponent)
.world_mut()
.resource_mut::<MainScheduleOrder>()
.insert_after(PreUpdate, AddStatComponent);
app.init_schedule(StatComponentUpdate)
.world_mut()
.resource_mut::<MainScheduleOrder>()
.insert_after(AddStatComponent, StatComponentUpdate);
app.init_schedule(StatComponentWrite)
.world_mut()
.resource_mut::<MainScheduleOrder>()
.insert_after(StatComponentUpdate, StatComponentWrite);
app.init_schedule(StatsUpdate)
.world_mut()
.resource_mut::<MainScheduleOrder>()
.insert_after(StatComponentWrite, StatsUpdate);
app.init_schedule(StatsWrite)
.world_mut()
.resource_mut::<MainScheduleOrder>()
.insert_after(StatsUpdate, StatsWrite);
app.init_schedule(StatsReady)
.world_mut()
.resource_mut::<MainScheduleOrder>()
.insert_after(StatsWrite, StatsReady);
}
#[derive(ScheduleLabel, Debug, Clone, PartialEq, Eq, Hash)]
pub struct AddStatComponent;
#[derive(ScheduleLabel, Debug, Clone, PartialEq, Eq, Hash)]
pub struct StatComponentUpdate;
#[derive(ScheduleLabel, Debug, Clone, PartialEq, Eq, Hash)]
pub(crate) struct StatComponentWrite;
#[derive(ScheduleLabel, Debug, Clone, PartialEq, Eq, Hash)]
pub struct StatsUpdate;
#[derive(ScheduleLabel, Debug, Clone, PartialEq, Eq, Hash)]
pub(crate) struct StatsWrite;
#[derive(ScheduleLabel, Debug, Clone, PartialEq, Eq, Hash)]
pub struct StatsReady;