From 4526683c5ae640f1f170e79ba8ecf7e855cf8047 Mon Sep 17 00:00:00 2001 From: Greenlamp Date: Sat, 4 May 2024 23:13:59 +0200 Subject: [PATCH] added return type for inputs-controller --- src/inputs-controller.ts | 41 +++++++++++++++++++++++++--------------- 1 file changed, 26 insertions(+), 15 deletions(-) diff --git a/src/inputs-controller.ts b/src/inputs-controller.ts index 59a906b8d21..bc981deb16d 100644 --- a/src/inputs-controller.ts +++ b/src/inputs-controller.ts @@ -7,6 +7,19 @@ import pad_xbox360 from "./configs/pad_xbox360"; import pad_dualshock from "./configs/pad_dualshock"; import {Button} from "./enums/buttons"; +export interface GamepadMapping { + [key: string]: number; +} + +export interface GamepadConfig { + padID: string; + padType: string; + gamepadMapping: GamepadMapping; +} + +export interface ActionGamepadMapping { + [key: string]: Button; +} const repeatInputDelayMillis = 250; @@ -20,6 +33,7 @@ export class InputsController { private buttonLock: Button; private interactions: Map> = new Map(); private time: Time; + private player: Map = new Map(); constructor(scene: Phaser.Scene) { this.scene = scene; @@ -38,7 +52,7 @@ export class InputsController { this.init(); } - init() { + init(): void { this.events = new Phaser.Events.EventEmitter(); if (typeof this.scene.input.gamepad !== 'undefined') { @@ -64,7 +78,7 @@ export class InputsController { this.setupKeyboardControls(); } - update() { + update(): void { for (const b of Utils.getEnumValues(Button)) { if (!this.interactions.hasOwnProperty(b)) continue; if (this.repeatInputDurationJustPassed(b)) { @@ -77,12 +91,10 @@ export class InputsController { } } - setupGamepad(thisGamepad): void { + setupGamepad(thisGamepad: Phaser.Input.Gamepad.Gamepad): void { let gamepadID = thisGamepad.id.toLowerCase(); const mappedPad = this.mapGamepad(gamepadID); - this.player = { - 'mapping': mappedPad.gamepadMapping, - } + this.player['mapping'] = mappedPad.gamepadMapping; } refreshGamepads(): void { @@ -96,7 +108,7 @@ export class InputsController { } } - getActionGamepadMapping() { + getActionGamepadMapping(): ActionGamepadMapping { const gamepadMapping = {}; gamepadMapping[this.player.mapping.LC_N] = Button.UP; gamepadMapping[this.player.mapping.LC_S] = Button.DOWN; @@ -119,7 +131,7 @@ export class InputsController { return gamepadMapping; } - gamepadButtonDown(pad, button, value): void { + gamepadButtonDown(pad: Phaser.Input.Gamepad.Gamepad, button: Phaser.Input.Gamepad.Button, value: number): void { const actionMapping = this.getActionGamepadMapping(); const buttonDown = actionMapping.hasOwnProperty(button.index) && actionMapping[button.index]; if (buttonDown !== undefined) { @@ -131,7 +143,7 @@ export class InputsController { } } - gamepadButtonUp(pad, button, value): void { + gamepadButtonUp(pad: Phaser.Input.Gamepad.Gamepad, button: Phaser.Input.Gamepad.Button, value: number): void { const actionMapping = this.getActionGamepadMapping(); const buttonUp = actionMapping.hasOwnProperty(button.index) && actionMapping[button.index]; if (buttonUp !== undefined) { @@ -200,19 +212,18 @@ export class InputsController { }); } - mapGamepad(id) { + mapGamepad(id: string): GamepadConfig { id = id.toLowerCase(); - let padConfig = pad_generic; if (id.includes('081f') && id.includes('e401')) { - padConfig = pad_unlicensedSNES; + return pad_unlicensedSNES; } else if (id.includes('xbox') && id.includes('360')) { - padConfig = pad_xbox360; + return pad_xbox360; } else if (id.includes('054c')) { - padConfig = pad_dualshock; + return pad_dualshock; } - return padConfig; + return pad_generic; } /**