From 006e21f477183bd4016d469ad662b4840c3bdb43 Mon Sep 17 00:00:00 2001 From: redphx <96280+redphx@users.noreply.github.com> Date: Wed, 1 May 2024 21:36:17 +0700 Subject: [PATCH] Replace DualEnum with normal enum --- src/modules/mkb/definitions.ts | 63 ++++++++++++++++++---------------- src/modules/mkb/mkb-handler.ts | 16 ++++----- 2 files changed, 41 insertions(+), 38 deletions(-) diff --git a/src/modules/mkb/definitions.ts b/src/modules/mkb/definitions.ts index a36d5e1..c2a81f3 100644 --- a/src/modules/mkb/definitions.ts +++ b/src/modules/mkb/definitions.ts @@ -1,32 +1,34 @@ import type { GamepadKeyNameType } from "../../types/mkb"; -export const GamepadKey: DualEnum = {}; -GamepadKey[GamepadKey.A = 0] = 'A'; -GamepadKey[GamepadKey.B = 1] = 'B'; -GamepadKey[GamepadKey.X = 2] = 'X'; -GamepadKey[GamepadKey.Y = 3] = 'Y'; -GamepadKey[GamepadKey.LB = 4] = 'LB'; -GamepadKey[GamepadKey.RB = 5] = 'RB'; -GamepadKey[GamepadKey.LT = 6] = 'LT'; -GamepadKey[GamepadKey.RT = 7] = 'RT'; -GamepadKey[GamepadKey.SELECT = 8] = 'SELECT'; -GamepadKey[GamepadKey.START = 9] = 'START'; -GamepadKey[GamepadKey.L3 = 10] = 'L3'; -GamepadKey[GamepadKey.R3 = 11] = 'R3'; -GamepadKey[GamepadKey.UP = 12] = 'UP'; -GamepadKey[GamepadKey.DOWN = 13] = 'DOWN'; -GamepadKey[GamepadKey.LEFT = 14] = 'LEFT'; -GamepadKey[GamepadKey.RIGHT = 15] = 'RIGHT'; -GamepadKey[GamepadKey.HOME = 16] = 'HOME'; +export enum GamepadKey { + A = 0, + B = 1, + X = 2, + Y = 3, + LB = 4, + RB = 5, + LT = 6, + RT = 7, + SELECT = 8, + START = 9, + L3 = 10, + R3 = 11, + UP = 12, + DOWN = 13, + LEFT = 14, + RIGHT = 15, + HOME = 16, -GamepadKey[GamepadKey.LS_UP = 100] = 'LS_UP'; -GamepadKey[GamepadKey.LS_DOWN = 101] = 'LS_DOWN'; -GamepadKey[GamepadKey.LS_LEFT = 102] = 'LS_LEFT'; -GamepadKey[GamepadKey.LS_RIGHT = 103] = 'LS_RIGHT'; -GamepadKey[GamepadKey.RS_UP = 200] = 'RS_UP'; -GamepadKey[GamepadKey.RS_DOWN = 201] = 'RS_DOWN'; -GamepadKey[GamepadKey.RS_LEFT = 202] = 'RS_LEFT'; -GamepadKey[GamepadKey.RS_RIGHT = 203] = 'RS_RIGHT'; + LS_UP = 100, + LS_DOWN = 101, + LS_LEFT = 102, + LS_RIGHT = 103, + + RS_UP = 200, + RS_DOWN = 201, + RS_LEFT = 202, + RS_RIGHT = 203, +}; export const GamepadKeyName: GamepadKeyNameType = { @@ -74,10 +76,11 @@ export enum MouseButtonCode { MIDDLE_CLICK = 'Mouse1', }; -export const MouseMapTo: DualEnum = {}; -MouseMapTo[MouseMapTo.OFF = 0] = 'OFF'; -MouseMapTo[MouseMapTo.LS = 1] = 'LS'; -MouseMapTo[MouseMapTo.RS = 2] = 'RS'; +export enum MouseMapTo { + OFF = 0, + LS = 1, + RS = 2, +} export enum WheelCode { diff --git a/src/modules/mkb/mkb-handler.ts b/src/modules/mkb/mkb-handler.ts index f1a0508..4356ab4 100644 --- a/src/modules/mkb/mkb-handler.ts +++ b/src/modules/mkb/mkb-handler.ts @@ -64,11 +64,11 @@ export class MkbHandler { #$message?: HTMLElement; - #STICK_MAP: {[index: keyof typeof GamepadKey]: (number | number[])[]}; - #LEFT_STICK_X: number[] = []; - #LEFT_STICK_Y: number[] = []; - #RIGHT_STICK_X: number[] = []; - #RIGHT_STICK_Y: number[] = []; + #STICK_MAP: {[key in GamepadKey]?: [GamepadKey[], number, number]}; + #LEFT_STICK_X: GamepadKey[] = []; + #LEFT_STICK_Y: GamepadKey[] = []; + #RIGHT_STICK_X: GamepadKey[] = []; + #RIGHT_STICK_Y: GamepadKey[] = []; constructor() { this.#STICK_MAP = { @@ -128,11 +128,11 @@ export class MkbHandler { gamepad.timestamp = performance.now(); } - #pressButton = (buttonIndex: number, pressed: boolean) => { + #pressButton = (buttonIndex: GamepadKey, pressed: boolean) => { const virtualGamepad = this.#getVirtualGamepad(); if (buttonIndex >= 100) { - let [valueArr, axisIndex] = this.#STICK_MAP[buttonIndex]; + let [valueArr, axisIndex] = this.#STICK_MAP[buttonIndex]!; valueArr = valueArr as number[]; axisIndex = axisIndex as number; @@ -148,7 +148,7 @@ export class MkbHandler { let value; if (valueArr.length) { // Get value of the last key of the axis - value = this.#STICK_MAP[valueArr[valueArr.length - 1]][2] as number; + value = this.#STICK_MAP[valueArr[valueArr.length - 1]]![2] as number; } else { value = 0; }