added alt keys for keyboard, need to find a way to differentiate main to alt

pull/685/head
Greenlamp 2024-05-13 03:12:58 +02:00
parent 665ecc0e4b
commit 6eab6f1920
6 changed files with 110 additions and 23 deletions

View File

@ -183,6 +183,24 @@ const cfg_keyboard_azerty = {
KEY_V: SettingKeyboard.Button_Cycle_Variant,
KEY_PLUS: SettingKeyboard.Button_Speed_Up,
KEY_MINUS: SettingKeyboard.Button_Slow_Down,
KEY_Z: SettingKeyboard.Alt_Button_Up,
KEY_S: SettingKeyboard.Alt_Button_Down,
KEY_Q: SettingKeyboard.Alt_Button_Left,
KEY_D: SettingKeyboard.Alt_Button_Right,
KEY_CTRL: SettingKeyboard.Alt_Button_Submit,
KEY_W: SettingKeyboard.Alt_Button_Action,
KEY_X: SettingKeyboard.Alt_Button_Cancel,
KEY_TAB: SettingKeyboard.Alt_Button_Menu,
KEY_SHIFT: SettingKeyboard.Alt_Button_Stats,
KEY_P: SettingKeyboard.Alt_Button_Cycle_Shiny,
KEY_M: SettingKeyboard.Alt_Button_Cycle_Form,
KEY_O: SettingKeyboard.Alt_Button_Cycle_Gender,
KEY_L: SettingKeyboard.Alt_Button_Cycle_Ability,
KEY_I: SettingKeyboard.Alt_Button_Cycle_Nature,
KEY_K: SettingKeyboard.Alt_Button_Cycle_Variant,
KEY_PAGE_UP: SettingKeyboard.Alt_Button_Speed_Up,
KEY_PAGE_DOWN: SettingKeyboard.Alt_Button_Slow_Down,
},
default: {
KEY_ARROW_UP: Button.UP,
@ -204,23 +222,23 @@ const cfg_keyboard_azerty = {
KEY_MINUS: Button.SLOW_DOWN,
KEY_A: -1,
KEY_B: -1,
KEY_D: -1,
KEY_D: Button.RIGHT,
KEY_H: -1,
KEY_I: -1,
KEY_I: Button.CYCLE_NATURE,
KEY_J: -1,
KEY_K: -1,
KEY_L: -1,
KEY_M: -1,
KEY_O: -1,
KEY_P: -1,
KEY_Q: -1,
KEY_S: -1,
KEY_K: Button.CYCLE_VARIANT,
KEY_L: Button.CYCLE_ABILITY,
KEY_M: Button.CYCLE_FORM,
KEY_O: Button.CYCLE_GENDER,
KEY_P: Button.CYCLE_SHINY,
KEY_Q: Button.LEFT,
KEY_S: Button.DOWN,
KEY_T: -1,
KEY_U: -1,
KEY_W: -1,
KEY_X: -1,
KEY_W: Button.ACTION,
KEY_X: Button.CANCEL,
KEY_Y: -1,
KEY_Z: -1,
KEY_Z: Button.UP,
KEY_0: -1,
KEY_1: -1,
KEY_2: -1,
@ -231,7 +249,7 @@ const cfg_keyboard_azerty = {
KEY_7: -1,
KEY_8: -1,
KEY_9: -1,
KEY_CTRL: -1,
KEY_CTRL: Button.SUBMIT,
KEY_DEL: -1,
KEY_END: -1,
KEY_F1: -1,
@ -248,11 +266,11 @@ const cfg_keyboard_azerty = {
KEY_F12: -1,
KEY_HOME: -1,
KEY_INSERT: -1,
KEY_PAGE_DOWN: -1,
KEY_PAGE_UP: -1,
KEY_PAGE_DOWN: Button.SLOW_DOWN,
KEY_PAGE_UP: Button.SPEED_UP,
KEY_QUOTATION: -1,
KEY_SHIFT: -1,
KEY_TAB: -1,
KEY_SHIFT: Button.STATS,
KEY_TAB: Button.MENU,
KEY_TILDE: -1,
KEY_LEFT_BRACKET: -1,
KEY_RIGHT_BRACKET: -1,

View File

@ -25,7 +25,8 @@ export function getKeyForSettingName(config: InterfaceConfig, settingName: strin
}
// Given a Button, return the custom key assigned to it from the config file
export function getCurrenlyAssignedKeyToAction(config: InterfaceConfig, action: Button): String | null {
export function getCurrenlyAssignedKeyToAction(config: InterfaceConfig, action: Button, alt: boolean = false): String | null {
// need to find a way to differentiate main/alt button
for (const key of Object.keys(config.custom)) {
if (config.custom[key] === action) return key;
}
@ -36,7 +37,7 @@ export function getCurrenlyAssignedKeyToAction(config: InterfaceConfig, action:
export function getCurrentlyAssignedToSettingName(config: InterfaceConfig, settingName: string): String {
const oldKey = getKeyForSettingName(config, settingName)
const action = config.default[oldKey];
const key = getCurrenlyAssignedKeyToAction(config, action);
const key = getCurrenlyAssignedKeyToAction(config, action, settingName.includes("ALT_BUTTON_"));
return key;
}

View File

@ -7,64 +7,115 @@ import SettingsKeyboardUiHandler from "#app/ui/settings/settings-keyboard-ui-han
export enum SettingKeyboard {
Default_Layout = "DEFAULT_LAYOUT",
Button_Up = "BUTTON_UP",
Alt_Button_Up = "ALT_BUTTON_UP",
Button_Down = "BUTTON_DOWN",
Alt_Button_Down = "ALT_BUTTON_DOWN",
Button_Left = "BUTTON_LEFT",
Alt_Button_Left = "ALT_BUTTON_LEFT",
Button_Right = "BUTTON_RIGHT",
Alt_Button_Right = "ALT_BUTTON_RIGHT",
Button_Action = "BUTTON_ACTION",
Alt_Button_Action = "ALT_BUTTON_ACTION",
Button_Cancel = "BUTTON_CANCEL",
Alt_Button_Cancel = "ALT_BUTTON_CANCEL",
Button_Menu = "BUTTON_MENU",
Alt_Button_Menu = "ALT_BUTTON_MENU",
Button_Stats = "BUTTON_STATS",
Alt_Button_Stats = "ALT_BUTTON_STATS",
Button_Cycle_Form = "BUTTON_CYCLE_FORM",
Alt_Button_Cycle_Form = "ALT_BUTTON_CYCLE_FORM",
Button_Cycle_Shiny = "BUTTON_CYCLE_SHINY",
Alt_Button_Cycle_Shiny = "ALT_BUTTON_CYCLE_SHINY",
Button_Cycle_Gender = "BUTTON_CYCLE_GENDER",
Alt_Button_Cycle_Gender = "ALT_BUTTON_CYCLE_GENDER",
Button_Cycle_Ability = "BUTTON_CYCLE_ABILITY",
Alt_Button_Cycle_Ability = "ALT_BUTTON_CYCLE_ABILITY",
Button_Cycle_Nature = "BUTTON_CYCLE_NATURE",
Alt_Button_Cycle_Nature = "ALT_BUTTON_CYCLE_NATURE",
Button_Cycle_Variant = "BUTTON_CYCLE_VARIANT",
Alt_Button_Cycle_Variant = "ALT_BUTTON_CYCLE_VARIANT",
Button_Speed_Up = "BUTTON_SPEED_UP",
Alt_Button_Speed_Up = "ALT_BUTTON_SPEED_UP",
Button_Slow_Down = "BUTTON_SLOW_DOWN",
Alt_Button_Slow_Down = "ALT_BUTTON_SLOW_DOWN",
Button_Submit = "BUTTON_SUBMIT",
Alt_Button_Submit = "ALT_BUTTON_SUBMIT",
}
export const settingKeyboardOptions: SettingOptions = {
[SettingKeyboard.Default_Layout]: ['Default', 'Change'],
[SettingKeyboard.Button_Up]: [`KEY ${Button.UP.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Up]: [`KEY ${Button.UP.toString()}`, 'Change'],
[SettingKeyboard.Button_Down]: [`KEY ${Button.DOWN.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Down]: [`KEY ${Button.DOWN.toString()}`, 'Change'],
[SettingKeyboard.Button_Left]: [`KEY ${Button.LEFT.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Left]: [`KEY ${Button.LEFT.toString()}`, 'Change'],
[SettingKeyboard.Button_Right]: [`KEY ${Button.RIGHT.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Right]: [`KEY ${Button.RIGHT.toString()}`, 'Change'],
[SettingKeyboard.Button_Action]: [`KEY ${Button.ACTION.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Action]: [`KEY ${Button.ACTION.toString()}`, 'Change'],
[SettingKeyboard.Button_Cancel]: [`KEY ${Button.CANCEL.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Cancel]: [`KEY ${Button.CANCEL.toString()}`, 'Change'],
[SettingKeyboard.Button_Menu]: [`KEY ${Button.MENU.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Menu]: [`KEY ${Button.MENU.toString()}`, 'Change'],
[SettingKeyboard.Button_Stats]: [`KEY ${Button.STATS.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Stats]: [`KEY ${Button.STATS.toString()}`, 'Change'],
[SettingKeyboard.Button_Cycle_Form]: [`KEY ${Button.CYCLE_FORM.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Cycle_Form]: [`KEY ${Button.CYCLE_FORM.toString()}`, 'Change'],
[SettingKeyboard.Button_Cycle_Shiny]: [`KEY ${Button.CYCLE_SHINY.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Cycle_Shiny]: [`KEY ${Button.CYCLE_SHINY.toString()}`, 'Change'],
[SettingKeyboard.Button_Cycle_Gender]: [`KEY ${Button.CYCLE_GENDER.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Cycle_Gender]: [`KEY ${Button.CYCLE_GENDER.toString()}`, 'Change'],
[SettingKeyboard.Button_Cycle_Ability]: [`KEY ${Button.CYCLE_ABILITY.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Cycle_Ability]: [`KEY ${Button.CYCLE_ABILITY.toString()}`, 'Change'],
[SettingKeyboard.Button_Cycle_Nature]: [`KEY ${Button.CYCLE_NATURE.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Cycle_Nature]: [`KEY ${Button.CYCLE_NATURE.toString()}`, 'Change'],
[SettingKeyboard.Button_Cycle_Variant]: [`KEY ${Button.CYCLE_VARIANT.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Cycle_Variant]: [`KEY ${Button.CYCLE_VARIANT.toString()}`, 'Change'],
[SettingKeyboard.Button_Speed_Up]: [`KEY ${Button.SPEED_UP.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Speed_Up]: [`KEY ${Button.SPEED_UP.toString()}`, 'Change'],
[SettingKeyboard.Button_Slow_Down]: [`KEY ${Button.SLOW_DOWN.toString()}`, 'Change'],
[SettingKeyboard.Button_Submit]: [`KEY ${Button.SUBMIT.toString()}`, 'Change']
[SettingKeyboard.Alt_Button_Slow_Down]: [`KEY ${Button.SLOW_DOWN.toString()}`, 'Change'],
[SettingKeyboard.Button_Submit]: [`KEY ${Button.SUBMIT.toString()}`, 'Change'],
[SettingKeyboard.Alt_Button_Submit]: [`KEY ${Button.SUBMIT.toString()}`, 'Change']
};
export const settingKeyboardDefaults: SettingDefaults = {
[SettingKeyboard.Default_Layout]: 0,
[SettingKeyboard.Button_Up]: 0,
[SettingKeyboard.Alt_Button_Up]: 0,
[SettingKeyboard.Button_Down]: 0,
[SettingKeyboard.Alt_Button_Down]: 0,
[SettingKeyboard.Button_Left]: 0,
[SettingKeyboard.Alt_Button_Left]: 0,
[SettingKeyboard.Button_Right]: 0,
[SettingKeyboard.Alt_Button_Right]: 0,
[SettingKeyboard.Button_Action]: 0,
[SettingKeyboard.Alt_Button_Action]: 0,
[SettingKeyboard.Button_Cancel]: 0,
[SettingKeyboard.Alt_Button_Cancel]: 0,
[SettingKeyboard.Button_Menu]: 0,
[SettingKeyboard.Alt_Button_Menu]: 0,
[SettingKeyboard.Button_Stats]: 0,
[SettingKeyboard.Alt_Button_Stats]: 0,
[SettingKeyboard.Button_Cycle_Form]: 0,
[SettingKeyboard.Alt_Button_Cycle_Form]: 0,
[SettingKeyboard.Button_Cycle_Shiny]: 0,
[SettingKeyboard.Alt_Button_Cycle_Shiny]: 0,
[SettingKeyboard.Button_Cycle_Gender]: 0,
[SettingKeyboard.Alt_Button_Cycle_Gender]: 0,
[SettingKeyboard.Button_Cycle_Ability]: 0,
[SettingKeyboard.Alt_Button_Cycle_Ability]: 0,
[SettingKeyboard.Button_Cycle_Nature]: 0,
[SettingKeyboard.Alt_Button_Cycle_Nature]: 0,
[SettingKeyboard.Button_Cycle_Variant]: 0,
[SettingKeyboard.Alt_Button_Cycle_Variant]: 0,
[SettingKeyboard.Button_Speed_Up]: 0,
[SettingKeyboard.Alt_Button_Speed_Up]: 0,
[SettingKeyboard.Button_Slow_Down]: 0,
[SettingKeyboard.Alt_Button_Slow_Down]: 0,
[SettingKeyboard.Button_Submit]: 0,
[SettingKeyboard.Alt_Button_Submit]: 0,
};
@ -86,6 +137,22 @@ export function setSettingKeyboard(scene: BattleScene, setting: SettingKeyboard,
case SettingKeyboard.Button_Cycle_Variant:
case SettingKeyboard.Button_Speed_Up:
case SettingKeyboard.Button_Slow_Down:
case SettingKeyboard.Alt_Button_Up:
case SettingKeyboard.Alt_Button_Down:
case SettingKeyboard.Alt_Button_Left:
case SettingKeyboard.Alt_Button_Right:
case SettingKeyboard.Alt_Button_Action:
case SettingKeyboard.Alt_Button_Cancel:
case SettingKeyboard.Alt_Button_Menu:
case SettingKeyboard.Alt_Button_Stats:
case SettingKeyboard.Alt_Button_Cycle_Shiny:
case SettingKeyboard.Alt_Button_Cycle_Form:
case SettingKeyboard.Alt_Button_Cycle_Gender:
case SettingKeyboard.Alt_Button_Cycle_Ability:
case SettingKeyboard.Alt_Button_Cycle_Nature:
case SettingKeyboard.Alt_Button_Cycle_Variant:
case SettingKeyboard.Alt_Button_Speed_Up:
case SettingKeyboard.Alt_Button_Slow_Down:
if (value) {
if (scene.ui) {
const cancelHandler = (success: boolean = false) : boolean => {

View File

@ -57,7 +57,7 @@ export default abstract class AbstractSettingsUiUiHandler extends UiHandler {
abstract navigateMenuLeft(): boolean;
abstract navigateMenuRight(): boolean;
abstract saveSettingToLocalStorage(setting, cursor): void;
abstract getActiveConfig(): void;
abstract getActiveConfig(): InterfaceConfig;
constructor(scene: BattleScene, mode?: Mode) {
super(scene, mode);

View File

@ -38,7 +38,7 @@ export default class SettingsGamepadUiHandler extends AbstractSettingsUiUiHandle
this.layout['noGamepads'].label = label;
}
getActiveConfig() {
getActiveConfig(): InterfaceConfig {
return this.scene.inputController.getActiveConfig();
}

View File

@ -4,6 +4,7 @@ import cfg_keyboard_azerty from "#app/configs/cfg_keyboard_azerty";
import {SettingKeyboard, settingKeyboardDefaults, settingKeyboardOptions} from "#app/system/settings-keyboard";
import {truncateString} from "#app/utils";
import AbstractSettingsUiUiHandler from "#app/ui/settings/abstract-settings-ui-handler";
import {InterfaceConfig} from "#app/inputs-controller";
export default class SettingsKeyboardUiHandler extends AbstractSettingsUiUiHandler {
@ -19,7 +20,7 @@ export default class SettingsKeyboardUiHandler extends AbstractSettingsUiUiHandl
this.localStoragePropertyName = 'settingsKeyboard';
}
getActiveConfig() {
getActiveConfig(): InterfaceConfig {
return this.scene.inputController.getActiveKeyboardConfig();
}