UNPKG

nes-tetris-representation

Version:

A set of types and classes that represent the pieces, movement, and rng of NES Tetris

51 lines (50 loc) 1.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const piece_types_1 = require("./piece-types"); const numpadMap = { Numpad5: piece_types_1.Piece.I, Numpad4: piece_types_1.Piece.O, Numpad6: piece_types_1.Piece.T, Numpad7: piece_types_1.Piece.L, Numpad9: piece_types_1.Piece.J, Numpad1: piece_types_1.Piece.S, Numpad3: piece_types_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 piece_types_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 [ piece_types_1.Piece.L, piece_types_1.Piece.J, piece_types_1.Piece.Z, piece_types_1.Piece.S, piece_types_1.Piece.O, piece_types_1.Piece.T, piece_types_1.Piece.I ][index]; } } return null; } exports.default = inputHandler; ;