mirror of
https://github.com/tobspr/shapez.io.git
synced 2025-12-09 16:21:51 +00:00
Split KEYCODES from KeyActionMapper
Move KEYCODES and related functions to a separate file. No further refactoring is done yet.
This commit is contained in:
parent
bcda036c73
commit
6366aa61dd
194
src/js/core/keycodes.ts
Normal file
194
src/js/core/keycodes.ts
Normal file
@ -0,0 +1,194 @@
|
||||
import { T } from "@/translations";
|
||||
|
||||
export function keyToKeyCode(key: string) {
|
||||
return key.toUpperCase().charCodeAt(0);
|
||||
}
|
||||
|
||||
export const KEYCODES = {
|
||||
Tab: 9,
|
||||
Enter: 13,
|
||||
|
||||
Shift: 16,
|
||||
Ctrl: 17,
|
||||
Alt: 18,
|
||||
|
||||
Escape: 27,
|
||||
|
||||
Space: 32,
|
||||
|
||||
ArrowLeft: 37,
|
||||
ArrowUp: 38,
|
||||
ArrowRight: 39,
|
||||
ArrowDown: 40,
|
||||
|
||||
Delete: 46,
|
||||
|
||||
F1: 112,
|
||||
F2: 113,
|
||||
F3: 114,
|
||||
F4: 115,
|
||||
F5: 116,
|
||||
F6: 117,
|
||||
F7: 118,
|
||||
F8: 119,
|
||||
F9: 120,
|
||||
F10: 121,
|
||||
F11: 122,
|
||||
F12: 123,
|
||||
|
||||
Plus: 187,
|
||||
Minus: 189,
|
||||
};
|
||||
|
||||
export const KEYCODE_LMB = 1;
|
||||
export const KEYCODE_MMB = 2;
|
||||
export const KEYCODE_RMB = 3;
|
||||
|
||||
export function getStringForKeyCode(code: number): string {
|
||||
// @todo: Refactor into dictionary
|
||||
switch (code) {
|
||||
case KEYCODE_LMB:
|
||||
return "LMB";
|
||||
case KEYCODE_MMB:
|
||||
return "MMB";
|
||||
case KEYCODE_RMB:
|
||||
return "RMB";
|
||||
case 4:
|
||||
return "MB4";
|
||||
case 5:
|
||||
return "MB5";
|
||||
case 8:
|
||||
return "⌫";
|
||||
case KEYCODES.Tab:
|
||||
return T.global.keys.tab;
|
||||
case KEYCODES.Enter:
|
||||
return "⏎";
|
||||
case KEYCODES.Shift:
|
||||
return "⇪";
|
||||
case KEYCODES.Ctrl:
|
||||
return T.global.keys.control;
|
||||
case KEYCODES.Alt:
|
||||
return T.global.keys.alt;
|
||||
case 19:
|
||||
return "PAUSE";
|
||||
case 20:
|
||||
return "CAPS";
|
||||
case KEYCODES.Escape:
|
||||
return T.global.keys.escape;
|
||||
case KEYCODES.Space:
|
||||
return T.global.keys.space;
|
||||
case 33:
|
||||
return "PGUP";
|
||||
case 34:
|
||||
return "PGDOWN";
|
||||
case 35:
|
||||
return "END";
|
||||
case 36:
|
||||
return "HOME";
|
||||
case KEYCODES.ArrowLeft:
|
||||
return "⬅";
|
||||
case KEYCODES.ArrowUp:
|
||||
return "⬆";
|
||||
case KEYCODES.ArrowRight:
|
||||
return "➡";
|
||||
case KEYCODES.ArrowDown:
|
||||
return "⬇";
|
||||
case 44:
|
||||
return "PRNT";
|
||||
case 45:
|
||||
return "INS";
|
||||
case 46:
|
||||
return "DEL";
|
||||
case 93:
|
||||
return "SEL";
|
||||
case 96:
|
||||
return "NUM 0";
|
||||
case 97:
|
||||
return "NUM 1";
|
||||
case 98:
|
||||
return "NUM 2";
|
||||
case 99:
|
||||
return "NUM 3";
|
||||
case 100:
|
||||
return "NUM 4";
|
||||
case 101:
|
||||
return "NUM 5";
|
||||
case 102:
|
||||
return "NUM 6";
|
||||
case 103:
|
||||
return "NUM 7";
|
||||
case 104:
|
||||
return "NUM 8";
|
||||
case 105:
|
||||
return "NUM 9";
|
||||
case 106:
|
||||
return "*";
|
||||
case 107:
|
||||
return "+";
|
||||
case 109:
|
||||
return "-";
|
||||
case 110:
|
||||
return ".";
|
||||
case 111:
|
||||
return "/";
|
||||
case KEYCODES.F1:
|
||||
return "F1";
|
||||
case KEYCODES.F2:
|
||||
return "F2";
|
||||
case KEYCODES.F3:
|
||||
return "F3";
|
||||
case KEYCODES.F4:
|
||||
return "F4";
|
||||
case KEYCODES.F5:
|
||||
return "F5";
|
||||
case KEYCODES.F6:
|
||||
return "F6";
|
||||
case KEYCODES.F7:
|
||||
return "F7";
|
||||
case KEYCODES.F8:
|
||||
return "F8";
|
||||
case KEYCODES.F9:
|
||||
return "F9";
|
||||
case KEYCODES.F10:
|
||||
return "F10";
|
||||
case KEYCODES.F11:
|
||||
return "F11";
|
||||
case KEYCODES.F12:
|
||||
return "F12";
|
||||
|
||||
case 144:
|
||||
return "NUMLOCK";
|
||||
case 145:
|
||||
return "SCRLOCK";
|
||||
case 182:
|
||||
return "COMP";
|
||||
case 183:
|
||||
return "CALC";
|
||||
case 186:
|
||||
return ";";
|
||||
case 187:
|
||||
return "+";
|
||||
case 188:
|
||||
return ",";
|
||||
case 189:
|
||||
return "-";
|
||||
case 190:
|
||||
return ".";
|
||||
case 191:
|
||||
return "/";
|
||||
case 192:
|
||||
return "`";
|
||||
case 219:
|
||||
return "[";
|
||||
case 220:
|
||||
return "\\";
|
||||
case 221:
|
||||
return "]";
|
||||
case 222:
|
||||
return "'";
|
||||
}
|
||||
|
||||
return (48 <= code && code <= 57) || (65 <= code && code <= 90)
|
||||
? String.fromCharCode(code)
|
||||
: "[" + code + "]";
|
||||
}
|
||||
@ -1,11 +1,11 @@
|
||||
import type { Application } from "../application";
|
||||
|
||||
import { getStringForKeyCode } from "../game/key_action_mapper";
|
||||
import { SOUNDS } from "../platform/sound";
|
||||
import { T } from "../translations";
|
||||
import { ClickDetector, ClickDetectorConstructorArgs } from "./click_detector";
|
||||
import { globalConfig } from "./config";
|
||||
import { InputReceiver, KeydownEvent } from "./input_receiver";
|
||||
import { getStringForKeyCode } from "./keycodes";
|
||||
import { createLogger } from "./logging";
|
||||
import { FormElement } from "./modal_dialog_forms";
|
||||
import { Signal, STOP_PROPAGATION } from "./signal";
|
||||
|
||||
@ -1,12 +1,7 @@
|
||||
import { getStringForKeyCode, KEYCODE_LMB, KEYCODE_MMB, KEYCODE_RMB } from "@/core/keycodes";
|
||||
import { makeDiv } from "../../../core/utils";
|
||||
import { T } from "../../../translations";
|
||||
import {
|
||||
getStringForKeyCode,
|
||||
KEYCODE_LMB,
|
||||
KEYCODE_MMB,
|
||||
KEYCODE_RMB,
|
||||
KEYMAPPINGS,
|
||||
} from "../../key_action_mapper";
|
||||
import { KEYMAPPINGS } from "../../key_action_mapper";
|
||||
import { enumHubGoalRewards } from "../../tutorial_goals";
|
||||
import { BaseHUDPart } from "../base_hud_part";
|
||||
import { DynamicDomAttach } from "../dynamic_dom_attach";
|
||||
|
||||
@ -4,50 +4,11 @@ import { InputReceiver } from "../core/input_receiver";
|
||||
import { GameRoot } from "./root";
|
||||
/* typehints:end */
|
||||
|
||||
import { getStringForKeyCode, KEYCODES, keyToKeyCode } from "@/core/keycodes";
|
||||
import { IS_MOBILE } from "../core/config";
|
||||
import { Signal, STOP_PROPAGATION } from "../core/signal";
|
||||
import { T } from "../translations";
|
||||
|
||||
export function keyToKeyCode(str) {
|
||||
return str.toUpperCase().charCodeAt(0);
|
||||
}
|
||||
|
||||
export const KEYCODES = {
|
||||
Tab: 9,
|
||||
Enter: 13,
|
||||
|
||||
Shift: 16,
|
||||
Ctrl: 17,
|
||||
Alt: 18,
|
||||
|
||||
Escape: 27,
|
||||
|
||||
Space: 32,
|
||||
|
||||
ArrowLeft: 37,
|
||||
ArrowUp: 38,
|
||||
ArrowRight: 39,
|
||||
ArrowDown: 40,
|
||||
|
||||
Delete: 46,
|
||||
|
||||
F1: 112,
|
||||
F2: 113,
|
||||
F3: 114,
|
||||
F4: 115,
|
||||
F5: 116,
|
||||
F6: 117,
|
||||
F7: 118,
|
||||
F8: 119,
|
||||
F9: 120,
|
||||
F10: 121,
|
||||
F11: 122,
|
||||
F12: 123,
|
||||
|
||||
Plus: 187,
|
||||
Minus: 189,
|
||||
};
|
||||
|
||||
export const KEYMAPPINGS = {
|
||||
// Make sure mods come first so they can override everything
|
||||
mods: {},
|
||||
@ -163,164 +124,6 @@ for (const categoryId in KEYMAPPINGS) {
|
||||
}
|
||||
}
|
||||
|
||||
export const KEYCODE_LMB = 1;
|
||||
export const KEYCODE_MMB = 2;
|
||||
export const KEYCODE_RMB = 3;
|
||||
|
||||
/**
|
||||
* Returns a keycode -> string
|
||||
* @param {number} code
|
||||
* @returns {string}
|
||||
*/
|
||||
export function getStringForKeyCode(code) {
|
||||
// @todo: Refactor into dictionary
|
||||
switch (code) {
|
||||
case KEYCODE_LMB:
|
||||
return "LMB";
|
||||
case KEYCODE_MMB:
|
||||
return "MMB";
|
||||
case KEYCODE_RMB:
|
||||
return "RMB";
|
||||
case 4:
|
||||
return "MB4";
|
||||
case 5:
|
||||
return "MB5";
|
||||
case 8:
|
||||
return "⌫";
|
||||
case KEYCODES.Tab:
|
||||
return T.global.keys.tab;
|
||||
case KEYCODES.Enter:
|
||||
return "⏎";
|
||||
case KEYCODES.Shift:
|
||||
return "⇪";
|
||||
case KEYCODES.Ctrl:
|
||||
return T.global.keys.control;
|
||||
case KEYCODES.Alt:
|
||||
return T.global.keys.alt;
|
||||
case 19:
|
||||
return "PAUSE";
|
||||
case 20:
|
||||
return "CAPS";
|
||||
case KEYCODES.Escape:
|
||||
return T.global.keys.escape;
|
||||
case KEYCODES.Space:
|
||||
return T.global.keys.space;
|
||||
case 33:
|
||||
return "PGUP";
|
||||
case 34:
|
||||
return "PGDOWN";
|
||||
case 35:
|
||||
return "END";
|
||||
case 36:
|
||||
return "HOME";
|
||||
case KEYCODES.ArrowLeft:
|
||||
return "⬅";
|
||||
case KEYCODES.ArrowUp:
|
||||
return "⬆";
|
||||
case KEYCODES.ArrowRight:
|
||||
return "➡";
|
||||
case KEYCODES.ArrowDown:
|
||||
return "⬇";
|
||||
case 44:
|
||||
return "PRNT";
|
||||
case 45:
|
||||
return "INS";
|
||||
case 46:
|
||||
return "DEL";
|
||||
case 93:
|
||||
return "SEL";
|
||||
case 96:
|
||||
return "NUM 0";
|
||||
case 97:
|
||||
return "NUM 1";
|
||||
case 98:
|
||||
return "NUM 2";
|
||||
case 99:
|
||||
return "NUM 3";
|
||||
case 100:
|
||||
return "NUM 4";
|
||||
case 101:
|
||||
return "NUM 5";
|
||||
case 102:
|
||||
return "NUM 6";
|
||||
case 103:
|
||||
return "NUM 7";
|
||||
case 104:
|
||||
return "NUM 8";
|
||||
case 105:
|
||||
return "NUM 9";
|
||||
case 106:
|
||||
return "*";
|
||||
case 107:
|
||||
return "+";
|
||||
case 109:
|
||||
return "-";
|
||||
case 110:
|
||||
return ".";
|
||||
case 111:
|
||||
return "/";
|
||||
case KEYCODES.F1:
|
||||
return "F1";
|
||||
case KEYCODES.F2:
|
||||
return "F2";
|
||||
case KEYCODES.F3:
|
||||
return "F3";
|
||||
case KEYCODES.F4:
|
||||
return "F4";
|
||||
case KEYCODES.F5:
|
||||
return "F5";
|
||||
case KEYCODES.F6:
|
||||
return "F6";
|
||||
case KEYCODES.F7:
|
||||
return "F7";
|
||||
case KEYCODES.F8:
|
||||
return "F8";
|
||||
case KEYCODES.F9:
|
||||
return "F9";
|
||||
case KEYCODES.F10:
|
||||
return "F10";
|
||||
case KEYCODES.F11:
|
||||
return "F11";
|
||||
case KEYCODES.F12:
|
||||
return "F12";
|
||||
|
||||
case 144:
|
||||
return "NUMLOCK";
|
||||
case 145:
|
||||
return "SCRLOCK";
|
||||
case 182:
|
||||
return "COMP";
|
||||
case 183:
|
||||
return "CALC";
|
||||
case 186:
|
||||
return ";";
|
||||
case 187:
|
||||
return "+";
|
||||
case 188:
|
||||
return ",";
|
||||
case 189:
|
||||
return "-";
|
||||
case 190:
|
||||
return ".";
|
||||
case 191:
|
||||
return "/";
|
||||
case 192:
|
||||
return "`";
|
||||
case 219:
|
||||
return "[";
|
||||
case 220:
|
||||
return "\\";
|
||||
case 221:
|
||||
return "]";
|
||||
case 222:
|
||||
return "'";
|
||||
}
|
||||
|
||||
return (48 <= code && code <= 57) || (65 <= code && code <= 90)
|
||||
? String.fromCharCode(code)
|
||||
: "[" + code + "]";
|
||||
}
|
||||
|
||||
export class Keybinding {
|
||||
/**
|
||||
*
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
import { getStringForKeyCode } from "@/core/keycodes";
|
||||
import { Dialog } from "../core/modal_dialog_elements";
|
||||
import { TextualGameState } from "../core/textual_game_state";
|
||||
import { getStringForKeyCode, KEYMAPPINGS } from "../game/key_action_mapper";
|
||||
import { KEYMAPPINGS } from "../game/key_action_mapper";
|
||||
import { SOUNDS } from "../platform/sound";
|
||||
import { T } from "../translations";
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user