diff --git a/crates/bevy_ecs/src/schedule/state.rs b/crates/bevy_ecs/src/schedule/state.rs index 1c7c5f53e865c..a60bffdb82ee4 100644 --- a/crates/bevy_ecs/src/schedule/state.rs +++ b/crates/bevy_ecs/src/schedule/state.rs @@ -5,9 +5,13 @@ use std::ops::Deref; use crate as bevy_ecs; use crate::change_detection::DetectChangesMut; +#[cfg(feature = "bevy_reflect")] +use crate::reflect::ReflectResource; use crate::schedule::ScheduleLabel; use crate::system::Resource; use crate::world::World; +#[cfg(feature = "bevy_reflect")] +use bevy_reflect::std_traits::ReflectDefault; pub use bevy_ecs_macros::States; @@ -75,6 +79,11 @@ pub struct OnTransition { /// /// The starting state is defined via the [`Default`] implementation for `S`. #[derive(Resource, Default, Debug)] +#[cfg_attr( + feature = "bevy_reflect", + derive(bevy_reflect::Reflect), + reflect(Resource, Default) +)] pub struct State(S); impl State { @@ -111,6 +120,11 @@ impl Deref for State { /// Note that these transitions can be overridden by other systems: /// only the actual value of this resource at the time of [`apply_state_transition`] matters. #[derive(Resource, Default, Debug)] +#[cfg_attr( + feature = "bevy_reflect", + derive(bevy_reflect::Reflect), + reflect(Resource, Default) +)] pub struct NextState(pub Option); impl NextState {