diff options
author | Matthias Schiffer <mschiffer@universe-factory.net> | 2018-11-09 13:27:49 +0100 |
---|---|---|
committer | Matthias Schiffer <mschiffer@universe-factory.net> | 2018-11-09 13:27:49 +0100 |
commit | 453a9391ccf1ab0c7a6869c44664bfcdd1b68fa1 (patch) | |
tree | 1990de3e2da6c88cf48310a53937d0decac20329 /src/view/input/inputhandler.ts | |
parent | e0eddb8741b840df97380e557abd51b47a5e2eee (diff) | |
download | rpgedit-453a9391ccf1ab0c7a6869c44664bfcdd1b68fa1.tar rpgedit-453a9391ccf1ab0c7a6869c44664bfcdd1b68fa1.zip |
Allow interacting with entities
Diffstat (limited to 'src/view/input/inputhandler.ts')
-rw-r--r-- | src/view/input/inputhandler.ts | 24 |
1 files changed, 12 insertions, 12 deletions
diff --git a/src/view/input/inputhandler.ts b/src/view/input/inputhandler.ts index 96f15dd..22fdc28 100644 --- a/src/view/input/inputhandler.ts +++ b/src/view/input/inputhandler.ts @@ -1,39 +1,39 @@ import { Listenable } from '../../util'; -export class InputHandler extends Listenable<[]> { - private readonly keys: Set<number> = new Set(); +export class InputHandler extends Listenable<[string, boolean]> { + private readonly keys: Set<string> = new Set(); - constructor(relevantKeys: Set<number>) { + constructor(relevantKeys: Set<string>) { super(); window.addEventListener('keydown', (ev) => { - if (!relevantKeys.has(ev.keyCode)) + if (!relevantKeys.has(ev.code)) return; ev.preventDefault(); - if (this.keys.has(ev.keyCode)) + if (ev.repeat) return; - this.keys.add(ev.keyCode); - this.runListeners(); + this.keys.add(ev.code); + this.runListeners(ev.code, true); }); window.addEventListener('keyup', (ev) => { - if (!relevantKeys.has(ev.keyCode)) + if (!relevantKeys.has(ev.code)) return; ev.preventDefault(); - if (!this.keys.has(ev.keyCode)) + if (!this.keys.has(ev.code)) return; - this.keys.delete(ev.keyCode); - this.runListeners(); + this.keys.delete(ev.code); + this.runListeners(ev.code, false); }); } - public has(key: number): boolean { + public has(key: string): boolean { return this.keys.has(key); } } |