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 // 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, align_items: AlignItems::Center,
..default() ..default()
}, },
Visibility::default(),
ViewState::Play, ViewState::Play,
BackgroundColor(Color::BLACK.with_alpha(0.8).into()), BackgroundColor(Color::BLACK.with_alpha(0.8).into()),
)) ))

@ -5,7 +5,8 @@ pub struct ViewPlugin;
impl Plugin for ViewPlugin { impl Plugin for ViewPlugin {
fn build(&self, app: &mut App) { 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( fn state_monitor(
trigger: Trigger<StateTransitionEvent<ViewState>>, mut events: EventReader<StateTransitionEvent<ViewState>>,
mut entities: Query<(&ViewState, &mut Visibility)>, mut entities: Query<(&ViewState, &mut Visibility)>,
) { ) {
entities events.read().for_each(|event| {
.iter_mut() entities
.for_each(|(view_state, mut visibility)| { .iter_mut()
info!( .for_each(|(view_state, mut visibility)| {
"Transition from {:?} to {:?}", info!("Transition from {:?} to {:?}", event.exited, event.entered);
trigger.event().exited, if Some(view_state) == event.entered.as_ref() {
trigger.event().entered *visibility = Visibility::Inherited;
); } else {
if Some(view_state) == trigger.event().exited.as_ref() { *visibility = Visibility::Hidden;
*visibility = Visibility::Hidden; }
} });
if Some(view_state) == trigger.event().entered.as_ref() { });
*visibility = Visibility::Inherited;
}
});
} }

Loading…
Cancel
Save