use bevy_ecs::message::MessageReader;
use bevy_state::state::{StateTransitionEvent, States};
use tracing::info;
pub fn log_transitions<S: States>(mut transitions: MessageReader<StateTransitionEvent<S>>) {
let Some(transition) = transitions.read().last() else {
return;
};
let name = core::any::type_name::<S>();
let StateTransitionEvent {
exited,
entered,
allow_same_state_transitions,
} = transition;
let skip_text = if exited == entered && !*allow_same_state_transitions {
" (disallowing same-state transitions)"
} else {
""
};
info!("{name} transition: {exited:?} => {entered:?}{skip_text}");
}