#![cfg(feature = "bevy_auto_plugin")]
use crate::{ResetComponentPlugin, ResetResourcePlugin, StatContainer};
use bevy_app::App;
use bevy_auto_plugin::prelude::AutoPluginBuildHook;
use bevy_ecs::component::Mutable;
use bevy_ecs::prelude::{Component, Resource};
pub struct ResetComponentHook;
impl<T> AutoPluginBuildHook<T> for ResetComponentHook
where
T: Component<Mutability = Mutable> + StatContainer,
{
fn on_build(&self, app: &mut App) {
app.add_plugins(ResetComponentPlugin::<T>::new());
}
}
pub struct ResetResourceHook;
impl<T> AutoPluginBuildHook<T> for ResetResourceHook
where
T: Resource<Mutability = Mutable> + StatContainer,
{
fn on_build(&self, app: &mut App) {
app.add_plugins(ResetResourcePlugin::<T>::new());
}
}