diff --git a/src/play.rs b/src/play.rs index d6d4a2e..ee60827 100644 --- a/src/play.rs +++ b/src/play.rs @@ -198,5 +198,5 @@ pub(crate) fn place_card( ); // Set it to visible - *visibility = Visibility::Visible; + *visibility = Visibility::Inherited; } diff --git a/src/setup.rs b/src/setup.rs index d85a39f..2ba4e81 100644 --- a/src/setup.rs +++ b/src/setup.rs @@ -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()), )) diff --git a/src/view.rs b/src/view.rs index 3cbc88d..a177528 100644 --- a/src/view.rs +++ b/src/view.rs @@ -5,7 +5,8 @@ pub struct ViewPlugin; impl Plugin for ViewPlugin { fn build(&self, app: &mut App) { - app.add_observer(state_monitor).init_state::(); + app.init_state::() + .add_systems(Update, state_monitor); } } @@ -31,22 +32,19 @@ pub(crate) fn button_set_state( } fn state_monitor( - trigger: Trigger>, + mut events: EventReader>, 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; + } + }); + }); }