2018-09-12 19:26:21 +02:00
|
|
|
require(["apphost"],function(appHost){"use strict";function throttle(key){var time=times[key]||0;return(new Date).getTime()-time>=200}function resetThrottle(key){times[key]=(new Date).getTime()}function allowInput(){return!(!isElectron&&document.hidden)&&"Minimized"!==appHost.getWindowState()}function raiseEvent(name,key,keyCode){if(allowInput()){var event=document.createEvent("Event");event.initEvent(name,!0,!0),event.key=key,event.keyCode=keyCode,(document.activeElement||document.body).dispatchEvent(event)}}function clickElement(elem){allowInput()&&elem.click()}function raiseKeyEvent(oldPressedState,newPressedState,key,keyCode,enableRepeatKeyDown,clickonKeyUp){if(!0===newPressedState){var fire=!1;!1===oldPressedState?(fire=!0,resetThrottle(key)):enableRepeatKeyDown&&(fire=throttle(key)),fire&&keyCode&&raiseEvent("keydown",key,keyCode)}else!1===newPressedState&&!0===oldPressedState&&(resetThrottle(key),keyCode&&raiseEvent("keyup",key,keyCode),clickonKeyUp&&clickElement(document.activeElement||window))}function runInputLoop(){var gamepads;navigator.getGamepads?gamepads=navigator.getGamepads():navigator.webkitGetGamepads&&(gamepads=navigator.webkitGetGamepads()),gamepads=gamepads||[];var i,j,len;for(i=0,len=gamepads.length;i<len;i++){var gamepad=gamepads[i];if(gamepad){var axes=gamepad.axes,leftStickX=axes[0],leftStickY=axes[1];leftStickX>_THUMB_STICK_THRESHOLD?_ButtonPressedState.setleftThumbstickRight(!0):leftStickX<-_THUMB_STICK_THRESHOLD?_ButtonPressedState.setleftThumbstickLeft(!0):leftStickY<-_THUMB_STICK_THRESHOLD?_ButtonPressedState.setleftThumbstickUp(!0):leftStickY>_THUMB_STICK_THRESHOLD?_ButtonPressedState.setleftThumbstickDown(!0):(_ButtonPressedState.setleftThumbstickLeft(!1),_ButtonPressedState.setleftThumbstickRight(!1),_ButtonPressedState.setleftThumbstickUp(!1),_ButtonPressedState.setleftThumbstickDown(!1));var buttons=gamepad.buttons;for(j=0,len=buttons.length;j<len;j++)if(-1!==ProcessedButtons.indexOf(j))if(buttons[j].pressed)switch(j){case _GAMEPAD_DPAD_UP_BUTTON_INDEX:_ButtonPressedState.setdPadUp(!0);break;case _GAMEPAD_DPAD_DOWN_BUTTON_INDEX:_ButtonPressedState.setdPadDown(!0);break;case _GAMEPAD_DPAD_LEFT_BUTTON_INDEX:_ButtonPressedState.setdPadLeft(!0);break;case _GAMEPAD_DPAD_RIGHT_BUTTON_INDEX:_ButtonPressedState.setdPadRight(!0);break;case _GAMEPAD_A_BUTTON_INDEX:_ButtonPressedState.setgamepadA(!0);break;case _GAMEPAD_B_BUTTON_INDEX:_ButtonPressedState.setgamepadB(!0)}else switch(j){case _GAMEPAD_DPAD_UP_BUTTON_INDEX:_ButtonPressedState.getdPadUp()&&_ButtonPressedState.setdPadUp(!1);break;case _GAMEPAD_DPAD_DOWN_BUTTON_INDEX:_ButtonPressedState.getdPadDown()&&_ButtonPressedState.setdPadDown(!1);break;case _GAMEPAD_DPAD_LEFT_BUTTON_INDEX:_ButtonPressedState.getdPadLeft()&&_ButtonPressedState.setdPadLeft(!1);break;case _GAMEPAD_DPAD_RIGHT_BUTTON_INDEX:_ButtonPressedState.getdPadRight()&&_ButtonPressedState.setdPadRight(!1);break;case _GAMEPAD_A_BUTTON_INDEX:_ButtonPressedState.getgamepadA()&&_ButtonPressedState.setgamepadA(!1);break;case _GAMEPAD_B_BUTTON_INDEX:_ButtonPressedState.getgamepadB()&&_ButtonPressedState.setgamepadB(!1)}}}requestAnimationFrame(runInputLoop)}var _GAMEPAD_A_BUTTON_INDEX=0,_GAMEPAD_B_BUTTON_INDEX=1,_GAMEPAD_DPAD_UP_BUTTON_INDEX=12,_GAMEPAD_DPAD_DOWN_BUTTON_INDEX=13,_GAMEPAD_DPAD_LEFT_BUTTON_INDEX=14,_GAMEPAD_DPAD_RIGHT_BUTTON_INDEX=15,_THUMB_STICK_THRESHOLD=.75,_leftThumbstickUpPressed=!1,_leftThumbstickDownPressed=!1,_leftThumbstickLeftPressed=!1,_leftThumbstickRightPressed=!1,_dPadUpPressed=!1,_dPadDownPressed=!1,_dPadLeftPressed=!1,_dPadRightPressed=!1,_gamepadAPressed=!1,_gamepadBPressed=!1,ProcessedButtons=[_GAMEPAD_DPAD_UP_BUTTON_INDEX,_GAMEPAD_DPAD_DOWN_BUTTON_INDEX,_GAMEPAD_DPAD_LEFT_BUTTON_INDEX,_GAMEPAD_DPAD_RIGHT_BUTTON_INDEX,_GAMEPAD_A_BUTTON_INDEX,_GAMEPAD_B_BUTTON_INDEX],_ButtonPressedState={};_ButtonPressedState.getgamepadA=function(){return _gamepadAPressed},_ButtonPressedState.setgamepadA=function(newPressedState){raiseKeyEvent(_gamepadAPressed,newPressedState,"GamepadA",0,!1,!0),_gamepadAPressed=newPressedState},_ButtonPressedState.getgamepadB=function(
|