use crate::prelude::*;
use bevy::prelude::*;
#[derive(Resource, Default, Debug, Deref, DerefMut)]
pub(crate) struct SyscommandCounter(usize);
pub struct ReactPlugin;
impl Plugin for ReactPlugin
{
fn build(&self, app: &mut App)
{
if !app.world().contains_resource::<ReactCache>()
{
app.init_resource::<ReactCache>();
}
app.init_resource::<CobwebCommandQueue<BufferedSyscommand>>()
.init_resource::<SyscommandCounter>()
.init_resource::<SystemEventAccessTracker>()
.init_resource::<EntityReactionAccessTracker>()
.init_resource::<EventAccessTracker>()
.init_resource::<DespawnAccessTracker>()
.setup_auto_despawn()
.add_systems(Last, schedule_removal_and_despawn_reactors.after(AutoDespawnSet));
}
}