states kind of work...

main
Elijah Voigt 2 years ago
parent 6dbffa536c
commit 07f3b69412

@ -198,5 +198,5 @@ pub(crate) fn place_card(
);
// Set it to visible
*visibility = Visibility::Visible;
*visibility = Visibility::Inherited;
}

@ -84,6 +84,7 @@ pub(crate) fn setup_set_check_button(mut commands: Commands) {
align_items: AlignItems::Center,
..default()
},
Visibility::default(),
ViewState::Play,
BackgroundColor(Color::BLACK.with_alpha(0.8).into()),
))

@ -5,7 +5,8 @@ pub struct ViewPlugin;
impl Plugin for ViewPlugin {
fn build(&self, app: &mut App) {
app.add_observer(state_monitor).init_state::<ViewState>();
app.init_state::<ViewState>()
.add_systems(Update, state_monitor);
}
}
@ -31,22 +32,19 @@ pub(crate) fn button_set_state<S: FreelyMutableState + Clone>(
}
fn state_monitor(
trigger: Trigger<StateTransitionEvent<ViewState>>,
mut events: EventReader<StateTransitionEvent<ViewState>>,
mut entities: Query<(&ViewState, &mut Visibility)>,
) {
entities
.iter_mut()
.for_each(|(view_state, mut visibility)| {
info!(
"Transition from {:?} to {:?}",
trigger.event().exited,
trigger.event().entered
);
if Some(view_state) == trigger.event().exited.as_ref() {
*visibility = Visibility::Hidden;
}
if Some(view_state) == trigger.event().entered.as_ref() {
*visibility = Visibility::Inherited;
}
});
events.read().for_each(|event| {
entities
.iter_mut()
.for_each(|(view_state, mut visibility)| {
info!("Transition from {:?} to {:?}", event.exited, event.entered);
if Some(view_state) == event.entered.as_ref() {
*visibility = Visibility::Inherited;
} else {
*visibility = Visibility::Hidden;
}
});
});
}

Loading…
Cancel
Save