From 5b6e4502d28cf89f2c97e25f4162411c0381d337 Mon Sep 17 00:00:00 2001 From: Dimava Date: Fri, 12 Jun 2020 17:40:01 +0300 Subject: [PATCH] add addKeybinding button --- src/js/game/key_action_mapper.js | 1 + src/js/states/keybindings.js | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/js/game/key_action_mapper.js b/src/js/game/key_action_mapper.js index 7e1fb9e8..b8510ff7 100644 --- a/src/js/game/key_action_mapper.js +++ b/src/js/game/key_action_mapper.js @@ -339,6 +339,7 @@ export class KeyActionMapper { for (const category in KEYMAPPINGS) { for (const key in KEYMAPPINGS[category]) { let payload = Object.assign({}, KEYMAPPINGS[category][key]); + payload.keyCodes = payload.keyCodes.slice(); if (overrides[key]) { payload.keyCodes[0] = overrides[key]; } diff --git a/src/js/states/keybindings.js b/src/js/states/keybindings.js index c1882320..621142ba 100644 --- a/src/js/states/keybindings.js +++ b/src/js/states/keybindings.js @@ -44,7 +44,7 @@ export class KeybindingsState extends TextualGameState { } else { this.trackClicks(editBtn, () => this.editKeybinding(keybindingId)); } - elem.querySelector(".resetKeybinding").before(mappingDiv, editBtn); + elem.querySelector(".resetKeybinding,.addKeybinding").before(mappingDiv, editBtn); } onEnter() { @@ -75,6 +75,16 @@ export class KeybindingsState extends TextualGameState { title.innerText = T.keybindings.mappings[keybindingId] || `unset(${keybindingId})`; elem.appendChild(title); + const addBtn = document.createElement("button"); + addBtn.classList.add("styledButton", "addKeybinding", /* REMOVE THIS */ "editKeybinding"); + this.trackClicks(addBtn, () => { + let index = mapped.keyCodes.length; + mapped.keyCodes.push(0); + this.addEditField(elem, keybindingId, index, mapped.builtin); + this.editKeybinding(keybindingId + "_" + index); + }); + elem.appendChild(addBtn); + const resetBtn = document.createElement("button"); resetBtn.classList.add("styledButton", "resetKeybinding"); if (mapped.builtin) {