From 4d9aa2135848b36dd9073f33994c6aa689dc9857 Mon Sep 17 00:00:00 2001 From: Hykilpikonna Date: Sat, 11 Dec 2021 21:16:59 -0500 Subject: [PATCH] [+] Enable modifier keys --- src/utils.ts | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/src/utils.ts b/src/utils.ts index 7f4c76f..b34fd97 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -1,5 +1,7 @@ import {Options, Vue} from "vue-class-component"; import {withKeys} from "vue"; +import {NodeLib} from "three/examples/jsm/nodes/core/NodeLib"; +import keywords = NodeLib.keywords; /** * Same as python's range @@ -47,10 +49,18 @@ export type Keybinds = {[id: string]: (e: KeyboardEvent) => unknown} export class KeyHandler extends Vue { keybinds: Keybinds = {} + _keybinds: Keybinds = {} + + initKeybinds(): void + { + return + } mounted(): void { document.addEventListener('keydown', this.keyListener) + this.initKeybinds() + Object.keys(this.keybinds).forEach(it => this._keybinds[it.toLowerCase()] = this.keybinds[it]) } unmounted(): void @@ -60,9 +70,16 @@ export class KeyHandler extends Vue keyListener(e: KeyboardEvent): void { - if (e.key in this.keybinds) + let key = e.key + if (e.shiftKey) key = 'Shift' + key + if (e.altKey) key = 'Alt' + key + if (e.ctrlKey) key = 'Ctrl' + key + if (e.metaKey) key = 'Cmd' + key + console.log(key) + + if (key in this._keybinds) { - if (this.keybinds[e.key](e) !== false) + if (this._keybinds[key](e) !== false) { e.preventDefault() }