mirror of
https://codeberg.org/schrottkatze/mgd2-tram-championships.git
synced 2025-07-01 17:27:38 +00:00
fix menus not closing on exit of trigger state
This commit is contained in:
parent
4c24f67cd5
commit
3b0bd65078
1 changed files with 13 additions and 1 deletions
|
@ -5,6 +5,8 @@ use bevy::{
|
|||
state::state::FreelyMutableState,
|
||||
};
|
||||
|
||||
use crate::cleanup::despawn;
|
||||
|
||||
use super::{
|
||||
ItemPosition, MenuItemInternal, MenuItemType, OnPressAction,
|
||||
menus::{Menu, Menus},
|
||||
|
@ -30,7 +32,8 @@ where
|
|||
update_ui_trigger::<NavState>,
|
||||
handle_press_actions::<NavState>.run_if(in_state(self.trigger.clone())),
|
||||
),
|
||||
);
|
||||
)
|
||||
.add_systems(OnExit(self.trigger.clone()), close_menu::<NavState>);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -53,6 +56,15 @@ impl<T: States, S: States> Menus<T, S> {
|
|||
}
|
||||
}
|
||||
|
||||
fn close_menu<S: States + FreelyMutableState>(
|
||||
mut c: Commands,
|
||||
mut nav_state: ResMut<NextState<S>>,
|
||||
closed_when: Res<MenusClosedWhen<S>>,
|
||||
) {
|
||||
c.run_system_cached(despawn::<UiParent<S>>);
|
||||
nav_state.set(closed_when.0.clone());
|
||||
}
|
||||
|
||||
#[derive(Resource)]
|
||||
struct MenusStore<S: States>(HashMap<S, Menu<S>>);
|
||||
#[derive(Resource)]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue