From f02e44126613251d576cb726a750e9ffb4a27e8d Mon Sep 17 00:00:00 2001 From: Greenlamp Date: Fri, 17 May 2024 14:36:34 +0200 Subject: [PATCH] block deletion on binding --- src/ui/settings/gamepad-binding-ui-handler.ts | 3 ++- src/ui/settings/keyboard-binding-ui-handler.ts | 12 +++++++++++- src/ui/settings/settings-keyboard-ui-handler.ts | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/ui/settings/gamepad-binding-ui-handler.ts b/src/ui/settings/gamepad-binding-ui-handler.ts index e2b56e85c5c..78b75836b8c 100644 --- a/src/ui/settings/gamepad-binding-ui-handler.ts +++ b/src/ui/settings/gamepad-binding-ui-handler.ts @@ -18,8 +18,9 @@ export default class GamepadBindingUiHandler extends AbstractBindingUiHandler { } gamepadButtonDown(pad: Phaser.Input.Gamepad.Gamepad, button: Phaser.Input.Gamepad.Button, value: number): void { + const blacklist = [12, 13, 14, 15]; // d-pad buttons are blacklisted. // Check conditions before processing the button press. - if (!this.listening || pad.id.toLowerCase() !== this.getSelectedDevice() || this.buttonPressed !== null) return; + if (!this.listening || pad.id.toLowerCase() !== this.getSelectedDevice() || blacklist.includes(button.index) || this.buttonPressed !== null) return; const activeConfig = this.scene.inputController.getActiveConfig(Device.GAMEPAD); const type = activeConfig.padType const key = getKeyWithKeycode(activeConfig, button.index); diff --git a/src/ui/settings/keyboard-binding-ui-handler.ts b/src/ui/settings/keyboard-binding-ui-handler.ts index ac9a2d0ed1c..3151bb62aea 100644 --- a/src/ui/settings/keyboard-binding-ui-handler.ts +++ b/src/ui/settings/keyboard-binding-ui-handler.ts @@ -19,9 +19,19 @@ export default class KeyboardBindingUiHandler extends AbstractBindingUiHandler { } onKeyDown(event): void { + const blacklist = [ + Phaser.Input.Keyboard.KeyCodes.UP, + Phaser.Input.Keyboard.KeyCodes.DOWN, + Phaser.Input.Keyboard.KeyCodes.LEFT, + Phaser.Input.Keyboard.KeyCodes.RIGHT, + Phaser.Input.Keyboard.KeyCodes.HOME, + Phaser.Input.Keyboard.KeyCodes.ENTER, + Phaser.Input.Keyboard.KeyCodes.ESC, + Phaser.Input.Keyboard.KeyCodes.DELETE, + ]; const key = event.keyCode; // // Check conditions before processing the button press. - if (!this.listening || this.buttonPressed !== null) return; + if (!this.listening || this.buttonPressed !== null || blacklist.includes(key)) return; const activeConfig = this.scene.inputController.getActiveConfig(Device.KEYBOARD); const _key = getKeyWithKeycode(activeConfig, key); const buttonIcon = activeConfig.icons[_key]; diff --git a/src/ui/settings/settings-keyboard-ui-handler.ts b/src/ui/settings/settings-keyboard-ui-handler.ts index 38305d4633a..301be63faf8 100644 --- a/src/ui/settings/settings-keyboard-ui-handler.ts +++ b/src/ui/settings/settings-keyboard-ui-handler.ts @@ -70,6 +70,7 @@ export default class SettingsKeyboardUiHandler extends AbstractSettingsUiUiHandl * Handle the delete key press event. */ onDeleteDown(): void { + if (this.scene.ui.getMode() !== Mode.SETTINGS_KEYBOARD) return; const cursor = this.cursor + this.scrollCursor; // Calculate the absolute cursor position. const selection = this.settingLabels[cursor].text; const key = reverseValueToKeySetting(selection);