UNPKG

nes-tetris-components

Version:

A set of components and front-end functionality of NES Tetris

51 lines (50 loc) 1.78 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const nes_tetris_representation_1 = require("nes-tetris-representation"); const numpadMap = { Numpad5: nes_tetris_representation_1.Piece.I, Numpad4: nes_tetris_representation_1.Piece.O, Numpad6: nes_tetris_representation_1.Piece.T, Numpad7: nes_tetris_representation_1.Piece.L, Numpad9: nes_tetris_representation_1.Piece.J, Numpad1: nes_tetris_representation_1.Piece.S, Numpad3: nes_tetris_representation_1.Piece.Z, }; function inputHandler(event, disabled) { if (disabled) { return null; } if (event.code.startsWith('Numpad')) { const piece = numpadMap[event.code]; if (piece !== undefined) { event.preventDefault(); return piece; } } if (event.code.startsWith('Key')) { const pieceKey = event.code.substring(3, 4); for (const { value, label } of nes_tetris_representation_1.PieceList) { if (label === pieceKey) { return value; } } } if (event.code.startsWith('Digit')) { const digit = event.code.substring(5, 6); const index = parseInt(digit, 10) - 1; if (index <= 7) { return [ nes_tetris_representation_1.Piece.L, nes_tetris_representation_1.Piece.J, nes_tetris_representation_1.Piece.Z, nes_tetris_representation_1.Piece.S, nes_tetris_representation_1.Piece.O, nes_tetris_representation_1.Piece.T, nes_tetris_representation_1.Piece.I ][index]; } } return null; } exports.default = inputHandler; ;