diff --git a/immediate_stats/src/bevy.rs b/immediate_stats/src/bevy.rs index b7cc868..40234c2 100644 --- a/immediate_stats/src/bevy.rs +++ b/immediate_stats/src/bevy.rs @@ -2,6 +2,8 @@ pub mod butler; use crate::StatContainer; +use crate::stat::Stat; +use crate::stat::modifier::Modifier; use bevy_app::{App, Plugin}; use bevy_ecs::component::Mutable; use bevy_ecs::prelude::ReflectComponent; @@ -13,14 +15,16 @@ pub struct ImmediateStatesPlugin; impl Plugin for ImmediateStatesPlugin { fn build(&self, app: &mut App) { - app.register_type::(); + app.register_type::() + .register_type::() + .register_type::(); } } /// Prevents a [`StatContainers`](StatContainer) from resetting. -#[derive(Component, Reflect, Default, Eq, PartialEq)] +#[derive(Component, Reflect, Eq, PartialEq, Debug, Default, Clone)] #[component(storage = "SparseSet")] -#[reflect(Component, Default)] +#[reflect(Component, PartialEq, Debug, Default, Clone)] pub struct PauseStatReset; pub fn reset_component_modifiers + StatContainer>( diff --git a/immediate_stats/src/lib.rs b/immediate_stats/src/lib.rs index cdd0d45..82fa45e 100644 --- a/immediate_stats/src/lib.rs +++ b/immediate_stats/src/lib.rs @@ -10,6 +10,7 @@ pub use immediate_stats_macros::StatContainer; /// It is recommended to use the [derive macro](macro) instead of implementing manually. /// /// [macro]: immediate_stats_macros::StatContainer +#[cfg_attr(feature = "bevy", bevy_reflect::reflect_trait)] pub trait StatContainer { /// Resets all stat bonuses to zero, and stat multipliers to one. fn reset_modifiers(&mut self); diff --git a/immediate_stats/src/stat.rs b/immediate_stats/src/stat.rs index 117fcba..ce8d289 100644 --- a/immediate_stats/src/stat.rs +++ b/immediate_stats/src/stat.rs @@ -18,6 +18,7 @@ use std::ops::{AddAssign, DivAssign, MulAssign, SubAssign}; /// [div]:Stat::div_assign #[derive(PartialEq, Debug, Copy, Clone)] #[cfg_attr(feature = "bevy", derive(bevy_reflect::Reflect))] +#[reflect(PartialEq, Debug, Clone)] pub struct Stat { /// The persistent value of the stat. pub base: i32, diff --git a/immediate_stats/src/stat/modifier.rs b/immediate_stats/src/stat/modifier.rs index 413949d..8f46ee3 100644 --- a/immediate_stats/src/stat/modifier.rs +++ b/immediate_stats/src/stat/modifier.rs @@ -3,6 +3,7 @@ use std::ops::{AddAssign, DivAssign, MulAssign, SubAssign}; /// Modifier values that can be applied to a [`super::Stat`]. #[derive(PartialEq, Debug, Copy, Clone)] #[cfg_attr(feature = "bevy", derive(bevy_reflect::Reflect))] +#[reflect(PartialEq, Debug, Clone)] pub struct Modifier { /// Added to `base` of a [`super::Stat`] during calculation. pub bonus: i32,