allow gamepad to open/nav pause menu

This commit is contained in:
2025-12-19 14:49:40 -05:00
parent 14a307f29a
commit a4488cc072

View File

@@ -61,8 +61,14 @@ fn open_pause_menu(
mut next_state: ResMut<NextState<PauseMenuState>>,
mut char_controls: ResMut<CharacterInputEnabled>,
keyboard: Res<ButtonInput<KeyCode>>,
gamepads: Query<&Gamepad>,
) {
if keyboard.just_pressed(KeyCode::Escape) {
let should_toggle = keyboard.just_pressed(KeyCode::Escape)
|| gamepads
.iter()
.any(|gamepad| gamepad.just_pressed(GamepadButton::Start));
if should_toggle {
let menu_open = match state.get() {
PauseMenuState::Closed => {
next_state.set(PauseMenuState::Open);
@@ -191,8 +197,19 @@ fn spawn_progress(bar: ProgressBar, value: u8, font: Handle<Font>) -> impl Bundl
)
}
fn selection_input(mut state: ResMut<PauseMenuSelection>, keyboard: Res<ButtonInput<KeyCode>>) {
if keyboard.just_pressed(KeyCode::ArrowUp) || keyboard.just_pressed(KeyCode::ArrowDown) {
fn selection_input(
mut state: ResMut<PauseMenuSelection>,
keyboard: Res<ButtonInput<KeyCode>>,
gamepads: Query<&Gamepad>,
) {
let should_toggle = keyboard.just_pressed(KeyCode::ArrowUp)
|| keyboard.just_pressed(KeyCode::ArrowDown)
|| gamepads.iter().any(|gamepad| {
gamepad.just_pressed(GamepadButton::DPadUp)
|| gamepad.just_pressed(GamepadButton::DPadDown)
});
if should_toggle {
state.0 = match state.0 {
ProgressBar::Music => ProgressBar::Sound,
ProgressBar::Sound => ProgressBar::Music,