UNPKG

phaser3-merged-input

Version:

A Phaser 3 plugin to handle input from keyboard, gamepad & mouse, allowing for easy key definition and multiplayer input

1 lines 106 kB
{"version":3,"sources":["webpack://MergedInput/webpack/universalModuleDefinition","webpack://MergedInput/./main.js","webpack://MergedInput/./configs/bearings.js","webpack://MergedInput/./controlManager.js","webpack://MergedInput/./configs/pad_generic.js","webpack://MergedInput/./configs/pad_unlicensedSNES.js","webpack://MergedInput/./configs/pad_xbox360.js","webpack://MergedInput/./configs/pad_dualshock.js","webpack://MergedInput/./ButtonCombo.js","webpack://MergedInput/../node_modules/phaser/src/input/keyboard/combo/AdvanceKeyCombo.js","webpack://MergedInput/../node_modules/phaser/src/input/keyboard/combo/ResetKeyCombo.js","webpack://MergedInput/webpack/bootstrap"],"names":["root","factory","exports","module","define","amd","window","MergedInput","scene","pluginManager","players","gamepads","keys","bearings","dpadMappings","axisThreshold","controlManager","this","eventEmitter","systems","events","Phaser","Events","EventEmitter","game","on","Core","PRE_STEP","preupdate","POST_STEP","postupdate","BLUR","loseFocus","input","gamepad","thisGamepad","refreshGamepads","setupGamepad","refreshPads","total","emit","gamepadButtonDown","gamepadButtonUp","keyboard","keyboardKeyDown","keyboardKeyUp","mouse","disableContextMenu","thisPlayer","pointer","BEARING","BEARING_DEGREES","ANGLE","direction","mapDirectionsToBearing","BEARING_LAST","DEGREES","parseFloat","mapBearingToDegrees","DEGREES_LAST","direction_secondary","checkKeyboardInput","checkGamepadInput","checkPointerInput","clearBuffer","interaction","pressed","length","internal","fakedpadPressed","buffer","interaction_mapped","fakedpadReleased","released","thisKey","reset","device","id","player","index","action","addPlayer","thisButton","gamepadID","toLowerCase","mappedPad","mapGamepad","gamepadMapping","gamepadType","padType","buttons_mapped","value","filter","el","entries","fakedpad","buttons","numberOfButtons","Number","isInteger","newPlayer","setupControls","addPlayerHelperFunctions","push","pointerMove","pointerDown","pointerUp","isPressed","button","matchedButtons","Array","x","includes","isDown","matchedDirections","matchedPointer","matchedAll","isReleased","checkDown","duration","includeFirst","undefined","downButtons","t","timers","_tick","Math","Snap","Floor","sys","time","now","once","unmappedButtons","unmappedButton","getUnmappedButton","map","getMappedButton","setDevice","key","actions","Object","buttonID","toString","replace","find","mappedButton","buttonNo","dpadMapping","append","getPlayerActions","addKey","Input","Keyboard","KeyCodes","thisValue","TIMESTAMP","event","keyCode","playerIndex","getPlayerIndexFromKey","playerAction","getPlayerButtonFromKey","getPlayer","state","last","lastPressed","lastReleased","pad","fakedpadBuffer","Gamepad","Button","leftStick","y","UP","abs","gamepadFakeDPadPress","DOWN","up","down","LEFT","RIGHT","left","right","gamepadFakeDPadRelease","rightStick","b","threshold","angleToPointer","distance","pointerDirection","getBearingFromAngle","angle","position","Angle","Between","worldX","worldY","pointerAngle","leftButtonDown","rightButtonDown","middleButtonDown","backButtonDown","forwardButtonDown","moveTime","leftButtonReleased","rightButtonReleased","middleButtonReleased","backButtonReleased","forwardButtonReleased","config","ButtonCombo","numDirections","snap_interval","PI2","angleSnap","To","angleSnapDeg","RadToDeg","bearing","thisDirection","toUpperCase","directions","shutdown","debug","i","axes","a","axis","getValue","Plugins","ScenePlugin","padConfig","pad_generic","pad_unlicensedSNES","pad_xbox360","pad_dualshock","RC_S","RC_E","RC_W","RC_N","START","SELECT","LB","RB","LT","RT","LS","RS","LC_N","LC_S","LC_W","LC_E","MENU","controls","getBaseControls","thisPointer","setPosition","padID","TOUCH","mergedInput","keyCodes","onButtonDown","current","matched","enabled","ProcessButtonCombo","combo","resetOnMatch","deleteOnMatch","destroy","timeStamp","buttonMatch","comboMatched","keyMatched","maxKeyDelay","timeLimit","timeLastMatched","resetOnWrongKey","timeMatched","off","KeyCombo","size","installedModules","__webpack_require__","m","modules","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","mode","__esModule","ns","create","bind","n","object","property","prototype","hasOwnProperty","call","p","s","moduleId","l"],"mappings":"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","file":"MergedInput.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"MergedInput\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"MergedInput\"] = factory();\n\telse\n\t\troot[\"MergedInput\"] = factory();\n})(window, function() {\nreturn ","import bearings from './configs/bearings'\nimport controlManager from './controlManager'\nimport ButtonCombo from './ButtonCombo'\n\nexport default class MergedInput extends Phaser.Plugins.ScenePlugin {\n\n\t/**\n\t * The Merged Input plugin is designed to run in the background and handle input.\n\t * Upon detecting a keypress or gamepad interaction, the plugin will update a player object and emit global events.\n\t *\n\t * @extends Phaser.Plugins.ScenePlugin\n\t * @param {*} scene\n\t * @param {*} pluginManager\n\t */\n\tconstructor(scene, pluginManager) {\n\t\tsuper(scene, pluginManager);\n\t\tthis.scene = scene;\n\n\t\t// Players\n\t\tthis.players = [];\n\t\t// Gamepads\n\t\tthis.gamepads = [];\n\t\t// Keys object to store Phaser key objects. We'll check these during update\n\t\tthis.keys = {};\n\n\t\tthis.bearings = bearings;\n\n\t\tthis.dpadMappings = {\n\t\t\t'UP': 12,\n\t\t\t'DOWN': 13,\n\t\t\t'LEFT': 14,\n\t\t\t'RIGHT': 15\n\t\t}\n\n\t\tthis.axisThreshold = this.axisThreshold;\n\n\t\tthis.controlManager = new controlManager()\n\t}\n\n\tboot() {\n\t\t// Scene event emitter\n\t\tthis.eventEmitter = this.systems.events;\n\t\t// Plugin event emitter\n\t\tthis.events = new Phaser.Events.EventEmitter();\n\n\t\tthis.game.events.on(Phaser.Core.Events.PRE_STEP, this.preupdate, this);\n\t\tthis.game.events.on(Phaser.Core.Events.POST_STEP, this.postupdate, this);\n\t\t// Handle the game losing focus\n\t\tthis.game.events.on(Phaser.Core.Events.BLUR, () => {\n\t\t\tthis.loseFocus()\n\t\t})\n\n\t\t// Gamepad\n\t\tif (typeof this.systems.input.gamepad !== 'undefined') {\n\t\t\tthis.systems.input.gamepad.on('connected', function (thisGamepad) {\n\t\t\t\tthis.refreshGamepads();\n\t\t\t\tthis.setupGamepad(thisGamepad)\n\t\t\t}, this);\n\n\t\t\t// Check to see if the gamepad has already been setup by the browser\n\t\t\tthis.systems.input.gamepad.refreshPads();\n\t\t\tif (this.systems.input.gamepad.total) {\n\t\t\t\tthis.refreshGamepads();\n\t\t\t\tfor (const thisGamepad of this.gamepads) {\n\t\t\t\t\tthis.systems.input.gamepad.emit('connected', thisGamepad);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.systems.input.gamepad.on('down', this.gamepadButtonDown, this);\n\t\t\tthis.systems.input.gamepad.on('up', this.gamepadButtonUp, this);\n\t\t}\n\n\t\t// Keyboard\n\t\tthis.systems.input.keyboard.on('keydown', this.keyboardKeyDown, this);\n\t\tthis.systems.input.keyboard.on('keyup', this.keyboardKeyUp, this);\n\n\n\t\t// Pointer\n\t\tthis.systems.input.mouse.disableContextMenu();\n\t}\n\n\tpreupdate() {\n\t\t// Loop through players and handle input\n\t\tfor (let thisPlayer of this.players) {\n\t\t\t// If the pointer hasn't moved, and the scene has changed, this can end up as undefined\n\t\t\tthisPlayer.pointer.BEARING = typeof thisPlayer.pointer.BEARING != 'undefined' ? thisPlayer.pointer.BEARING : '';\n\t\t\tthisPlayer.pointer.BEARING_DEGREES = typeof thisPlayer.pointer.BEARING_DEGREES != 'undefined' ? thisPlayer.pointer.BEARING_DEGREES : 0;\n\t\t\tthisPlayer.pointer.ANGLE = typeof thisPlayer.pointer.ANGLE != 'undefined' ? thisPlayer.pointer.ANGLE : '';\n\n\n\t\t\tthisPlayer.direction.BEARING = this.mapDirectionsToBearing(thisPlayer.direction);\n\t\t\tthisPlayer.direction.BEARING_LAST = thisPlayer.direction.BEARING != '' ? thisPlayer.direction.BEARING : thisPlayer.direction.BEARING_LAST;\n\t\t\tthisPlayer.direction.DEGREES = thisPlayer.direction.BEARING != '' ? parseFloat(this.mapBearingToDegrees(thisPlayer.direction.BEARING)) : 0;\n\t\t\tthisPlayer.direction.DEGREES_LAST = thisPlayer.direction.BEARING_LAST != '' ? parseFloat(this.mapBearingToDegrees(thisPlayer.direction.BEARING_LAST)) : 0;\n\t\t\tthisPlayer.direction_secondary.BEARING = this.mapDirectionsToBearing(thisPlayer.direction_secondary);\n\t\t\tthisPlayer.direction_secondary.BEARING_LAST = thisPlayer.direction_secondary.BEARING != '' ? thisPlayer.direction_secondary.BEARING : thisPlayer.direction_secondary.BEARING_LAST;\n\t\t\tthisPlayer.direction_secondary.DEGREES = thisPlayer.direction_secondary.BEARING != '' ? parseFloat(this.mapBearingToDegrees(thisPlayer.direction_secondary.BEARING)) : 0;\n\t\t\tthisPlayer.direction_secondary.DEGREES_LAST = thisPlayer.direction_secondary.BEARING_LAST != '' ? parseFloat(this.mapBearingToDegrees(thisPlayer.direction_secondary.BEARING_LAST)) : 0;\n\t\t}\n\n\t\tthis.checkKeyboardInput();\n\t\tthis.checkGamepadInput();\n\t\tthis.checkPointerInput();\n\t}\n\n\tpostupdate() {\n\t\t// Loop through players and manage buffered input\n\t\tfor (let thisPlayer of this.players) {\n\t\t\t// Clear the interaction buffer\n\t\t\tthis.clearBuffer(thisPlayer);\n\t\t}\n\t}\n\n\t/**\n\t * Clear the interaction buffer for the given player\n\t * In the case of 'fake' DPad presses, we're using some convoluted buffers to keep the 'pressed' and 'released' values around for an extra tick\n\t * As they're created in this update loop, they're otherwise cleared before the consumer can use them.\n\t * @param {*} thisPlayer\n\t */\n\tclearBuffer(thisPlayer) {\n\t\tif (thisPlayer.interaction.pressed.length > 0 && thisPlayer.internal.fakedpadPressed.length == 0) {\n\t\t\tthisPlayer.interaction.buffer = [];\n\t\t}\n\t\tif (thisPlayer.interaction.buffer.length == 0) {\n\t\t\tthisPlayer.interaction.pressed = [];\n\t\t\tthisPlayer.interaction_mapped.pressed = [];\n\t\t\tif (thisPlayer.internal.fakedpadReleased.length == 0) {\n\t\t\t\tthisPlayer.interaction.released = [];\n\t\t\t\tthisPlayer.interaction_mapped.released = [];\n\t\t\t}\n\t\t}\n\n\t\tthisPlayer.internal.fakedpadPressed = [];\n\t\tthisPlayer.internal.fakedpadReleased = [];\n\t}\n\n\t/**\n\t * Function to run when the game loses focus\n\t * We want to fake releasing the buttons here, so that they're not stuck down without an off event when focus returns to the game\n\t */\n\tloseFocus() {\n\t\t// Loop through defined keys and reset them\n\t\tfor (let thisKey in this.keys) {\n\t\t\tthis.keys[thisKey].reset();\n\t\t}\n\t}\n\n\t/**\n\t * Set up the gamepad and associate with a player object\n\t */\n\tsetupGamepad(thisGamepad) {\n\t\tthis.eventEmitter.emit('mergedInput', { device: 'gamepad', id: thisGamepad.id, player: thisGamepad.index, action: 'Connected' });\n\t\tthis.events.emit('gamepad_connected', thisGamepad)\n\n\t\tif (typeof this.players[thisGamepad.index] === 'undefined') {\n\t\t\tthis.addPlayer();\n\t\t}\n\n\t\tlet gamepadID = thisGamepad.id.toLowerCase();\n\t\tthis.players[thisGamepad.index].gamepad = thisGamepad;\n\n\t\t// Map the gamepad buttons\n\t\tlet mappedPad = this.controlManager.mapGamepad(gamepadID);\n\t\tthis.players[thisGamepad.index].gamepadMapping = mappedPad.gamepadMapping;\n\t\tthis.players[thisGamepad.index].interaction_mapped.gamepadType = mappedPad.padType;\n\t\tfor (let thisButton in this.players[thisGamepad.index].gamepadMapping) {\n\t\t\tthis.players[thisGamepad.index].buttons_mapped[thisButton] = 0;\n\t\t}\n\t}\n\n\t/**\n\t * Set a threshold (between 0 and 1) below which analog stick input will be ignored\n\t * @param {*} value\n\t * @returns\n\t */\n\tsetAxisThreshold(value) {\n\t\tthis.axisThreshold = value;\n\t\treturn this;\n\t}\n\n\n\trefreshGamepads() {\n\t\t// Sometimes, gamepads are undefined. For some reason.\n\t\tthis.gamepads = this.systems.input.gamepad.gamepads.filter(function (el) {\n\t\t\treturn el != null;\n\t\t});\n\n\t\tfor (const [index, thisGamepad] of this.gamepads.entries()) {\n\t\t\tthisGamepad.index = index; // Overwrite the gamepad index, in case we had undefined gamepads earlier\n\n\t\t\t/**\n\t\t\t * Some cheap gamepads use the first axis as a dpad, in which case we won't have the dpad buttons 12-15\n\t\t\t */\n\t\t\tthisGamepad.fakedpad = thisGamepad.buttons.length < 15;\n\t\t}\n\t}\n\n\t/**\n\t * Add a new player object to the players array\n\t * @param {number} index Player index - if a player object at this index already exists, it will be returned instead of creating a new player object\n\t * @param {number} numberOfButtons The number of buttons to assign to the player object. Defaults to 16. Fewer than 16 is not recommended, as gamepad DPads typically map to buttons 12-15\n\t */\n\taddPlayer(index, numberOfButtons) {\n\t\tnumberOfButtons = numberOfButtons || 16;\n\t\tif (typeof Number.isInteger(index) && typeof this.players[index] !== 'undefined') {\n\t\t\treturn this.players[index];\n\t\t}\n\t\telse {\n\t\t\t// Set up player object\n\t\t\tlet newPlayer = this.controlManager.setupControls(numberOfButtons);\n\n\t\t\t// Add helper functions to the player object\n\t\t\tthis.addPlayerHelperFunctions(newPlayer);\n\n\t\t\t// Push new player to players array\n\t\t\tthis.players.push(newPlayer);\n\n\t\t\tthis.players[this.players.length - 1].index = this.players.length - 1;\n\n\t\t\t// If this is the first player, add the pointer events\n\t\t\tif (this.players.length == 1) {\n\t\t\t\tthis.systems.input.on('pointermove', function (pointer) {\n\t\t\t\t\tthis.pointerMove(pointer);\n\t\t\t\t}, this);\n\n\t\t\t\tthis.systems.input.on('pointerdown', function (pointer) {\n\t\t\t\t\tthis.pointerDown(pointer);\n\t\t\t\t}, this);\n\n\t\t\t\tthis.systems.input.on('pointerup', function (pointer) {\n\t\t\t\t\tthis.pointerUp(pointer);\n\t\t\t\t}, this);\n\t\t\t}\n\n\t\t\treturn this.players[this.players.length - 1];\n\t\t}\n\t}\n\n\t/**\n\t * Add helper functions to the player object\n\t * @param {*} player\n\t */\n\taddPlayerHelperFunctions(player) {\n\t\t/**\n\t\t * Pass a button name, or an array of button names to check if any were pressed in this update step.\n\t\t * This will only fire once per button press. If you need to check for a button being held down, use isDown instead.\n\t\t * Returns the name of the matched button(s), in case you need it.\n\t\t */\n\t\tplayer.interaction.isPressed = (button) => {\n\t\t\tbutton = (typeof button === 'string') ? Array(button) : button;\n\t\t\tlet matchedButtons = button.filter(x => player.interaction.pressed.includes(x))\n\t\t\treturn matchedButtons.length ? matchedButtons : false;\n\t\t},\n\n\t\t/**\n\t\t * Pass a button name, or an array of button names to check if any are currently pressed in this update step.\n\t\t * This differs from the isPressed function in that it will return true if the button is currently pressed, even if it was pressed in a previous update step.\n\t\t * Returns the name of the matched button(s), in case you need it.\n\t\t */\n\t\tplayer.interaction.isDown = (button) => {\n\t\t\tbutton = (typeof button === 'string') ? Array(button) : button;\n\t\t\tlet matchedButtons = button.filter(x => player.buttons[x])\n\t\t\tlet matchedDirections = button.filter(x => player.direction[x])\n\t\t\tlet matchedPointer = button.filter(x => player.pointer[x])\n\t\t\tlet matchedAll = [...matchedButtons, ...matchedDirections, ...matchedPointer];\n\n\t\t\treturn matchedAll.length ? matchedAll : false;\n\t\t},\n\n\t\t/**\n\t\t * Pass a button name, or an array of button names to check if any were released in this update step.\n\t\t * Returns the name of the matched button(s), in case you need it.\n\t\t */\n\t\tplayer.interaction.isReleased = (button) => {\n\t\t\tbutton = (typeof button === 'string') ? Array(button) : button;\n\t\t\tlet matchedButtons = button.filter(x => player.interaction.released.includes(x))\n\t\t\treturn matchedButtons.length ? matchedButtons : false;\n\t\t}\n\n\t\t/**\n\t\t * Pass a mapped button name, or an array of mapped button names to check if any were pressed in this update step.\n\t\t * This will only fire once per button press. If you need to check for a button being held down, use isDown instead.\n\t\t * Returns the name of the matched mapped button(s), in case you need it.\n\t\t */\n\t\tplayer.interaction_mapped.isPressed = (button) => {\n\t\t\tbutton = (typeof button === 'string') ? Array(button) : button;\n\t\t\tlet matchedButtons = button.filter(x => player.interaction_mapped.pressed.includes(x))\n\t\t\treturn matchedButtons.length ? matchedButtons : false;\n\t\t},\n\n\t\t/**\n\t\t * Pass a mapped button name, or an array of mapped button names to check if any are currently pressed in this update step.\n\t\t * This differs from the isPressed function in that it will return true if the button is currently pressed, even if it was pressed in a previous update step.\n\t\t * Returns the name of the matched button(s), in case you need it.\n\t\t */\n\t\tplayer.interaction_mapped.isDown = (button) => {\n\t\t\tbutton = (typeof button === 'string') ? Array(button) : button;\n\t\t\tlet matchedButtons = button.filter(x => player.buttons_mapped[x])\n\t\t\treturn matchedButtons.length ? matchedButtons : false;\n\t\t},\n\n\t\t/**\n\t\t * Pass a mapped button name, or an array of mapped button names to check if any were released in this update step.\n\t\t * Returns the name of the matched mapped button(s), in case you need it.\n\t\t */\n\t\tplayer.interaction_mapped.isReleased = (button) => {\n\t\t\tbutton = (typeof button === 'string') ? Array(button) : button;\n\t\t\tlet matchedButtons = button.filter(x => player.interaction_mapped.released.includes(x))\n\t\t\treturn matchedButtons.length ? matchedButtons : false;\n\t\t}\n\n\t\t/**\n\t\t * Pass a button name, or an array of button names to check i