use bevy::{app::MainScheduleOrder, prelude::*};
use bevy::ecs::schedule::ScheduleLabel;
#[derive(ScheduleLabel, Debug, Clone, PartialEq, Eq, Hash)]
pub struct StatsMutation;
#[derive(ScheduleLabel, Debug, Clone, PartialEq, Eq, Hash)]
pub struct UpdateStatDerived;
#[derive(ScheduleLabel, Debug, Clone, PartialEq, Eq, Hash)]
pub struct UpdateWriteBack;
pub fn plugin(app: &mut App) {
app.init_schedule(StatsMutation)
.world_mut()
.resource_mut::<MainScheduleOrder>()
.insert_after(First, StatsMutation);
app.init_schedule(UpdateStatDerived)
.world_mut()
.resource_mut::<MainScheduleOrder>()
.insert_after(StatsMutation, UpdateStatDerived);
app.init_schedule(UpdateWriteBack)
.world_mut()
.resource_mut::<MainScheduleOrder>()
.insert_after(UpdateStatDerived, UpdateWriteBack);
}