1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
{
"uid": "5D77390EKDA50A4FB7SBF0CE5BFDF3D799F1",
"isLoaded": true,
"lastModificationTime": 0,
"items": {
"name": "Component_InputHandler",
"type": "game_script",
"order": 22,
"content": "# ===================================================================\n#\n# Script: Component_InputHandler\n#\n# $$COPYRIGHT$$\n#\n# ===================================================================\nclass Component_InputHandler extends gs.Component\n ###*\n * The input-handler component is an interface between the input-system\n * of the basic-engine and the game's event-system. In regular this\n * component is used only by game scene to allow its game objects to\n * receive input-events.\n *\n * Those input-events are necessary to solve the problem which game-object\n * responds to a user-action first by building a responder-chain.\n *\n * @module gs\n * @class Component_InputHandler\n * @extends gs.Component\n * @memberof gs\n ###\n constructor: ->\n ###*\n * Indicates if all input events, such as mouse and keyboard event, should be blocked.\n *\n * @property blockInput\n * @type boolean\n * @default false\n ###\n @blockInput = no\n \n ###*\n * Sets up event handlers.\n *\n * @method setup\n ### \n setup: ->\n super\n \n gs.GlobalEventManager.on \"uiAnimationStart\", ((e) =>\n @blockInput = yes\n ), null, @object\n gs.GlobalEventManager.on \"uiAnimationFinish\", ((e) =>\n @blockInput = no\n ), null, @object\n \n ###*\n * Disposes the component and removes event handlers.\n *\n * @method dispose\n ### \n dispose: ->\n super\n gs.GlobalEventManager.offByOwner(\"uiAnimationStart\", @object)\n gs.GlobalEventManager.offByOwner(\"uiAnimationFinish\", @object)\n \n ###*\n * Updates the component by checking the input-system and firing\n * an input-event if necessary.\n *\n * @method update\n ###\n update: ->\n return if @blockInput\n \n if Input.Mouse.moved\n gs.GlobalEventManager.emit(\"mouseMoved\")\n if Input.Mouse.buttonDown\n gs.GlobalEventManager.emit(\"mouseDown\")\n if Input.Mouse.buttonUp\n gs.GlobalEventManager.emit(\"mouseUp\")\n if Input.keyDown\n gs.GlobalEventManager.emit(\"keyDown\")\n if Input.keyUp\n gs.GlobalEventManager.emit(\"keyUp\")\n if Input.Mouse.wheelChanged\n gs.GlobalEventManager.emit(\"mouseWheel\")\n \ngs.Component_InputHandler = Component_InputHandler",
"parentId": "D3325122KACDEA4515SB731E37A42B9D779F",
"folder": false,
"compiledContent": "var Component_InputHandler,\n extend = function(child, parent) { for (var key in parent) { if (hasProp.call(parent, key)) child[key] = parent[key]; } function ctor() { this.constructor = child; } ctor.prototype = parent.prototype; child.prototype = new ctor(); child.__super__ = parent.prototype; return child; },\n hasProp = {}.hasOwnProperty;\n\nComponent_InputHandler = (function(superClass) {\n extend(Component_InputHandler, superClass);\n\n\n /**\n * The input-handler component is an interface between the input-system\n * of the basic-engine and the game's event-system. In regular this\n * component is used only by game scene to allow its game objects to\n * receive input-events.\n *\n * Those input-events are necessary to solve the problem which game-object\n * responds to a user-action first by building a responder-chain.\n *\n * @module gs\n * @class Component_InputHandler\n * @extends gs.Component\n * @memberof gs\n */\n\n function Component_InputHandler() {\n\n /**\n * Indicates if all input events, such as mouse and keyboard event, should be blocked.\n *\n * @property blockInput\n * @type boolean\n * @default false\n */\n this.blockInput = false;\n }\n\n\n /**\n * Sets up event handlers.\n *\n * @method setup\n */\n\n Component_InputHandler.prototype.setup = function() {\n Component_InputHandler.__super__.setup.apply(this, arguments);\n gs.GlobalEventManager.on(\"uiAnimationStart\", ((function(_this) {\n return function(e) {\n return _this.blockInput = true;\n };\n })(this)), null, this.object);\n return gs.GlobalEventManager.on(\"uiAnimationFinish\", ((function(_this) {\n return function(e) {\n return _this.blockInput = false;\n };\n })(this)), null, this.object);\n };\n\n\n /**\n * Disposes the component and removes event handlers.\n *\n * @method dispose\n */\n\n Component_InputHandler.prototype.dispose = function() {\n Component_InputHandler.__super__.dispose.apply(this, arguments);\n gs.GlobalEventManager.offByOwner(\"uiAnimationStart\", this.object);\n return gs.GlobalEventManager.offByOwner(\"uiAnimationFinish\", this.object);\n };\n\n\n /**\n * Updates the component by checking the input-system and firing\n * an input-event if necessary.\n *\n * @method update\n */\n\n Component_InputHandler.prototype.update = function() {\n if (this.blockInput) {\n return;\n }\n if (Input.Mouse.moved) {\n gs.GlobalEventManager.emit(\"mouseMoved\");\n }\n if (Input.Mouse.buttonDown) {\n gs.GlobalEventManager.emit(\"mouseDown\");\n }\n if (Input.Mouse.buttonUp) {\n gs.GlobalEventManager.emit(\"mouseUp\");\n }\n if (Input.keyDown) {\n gs.GlobalEventManager.emit(\"keyDown\");\n }\n if (Input.keyUp) {\n gs.GlobalEventManager.emit(\"keyUp\");\n }\n if (Input.Mouse.wheelChanged) {\n return gs.GlobalEventManager.emit(\"mouseWheel\");\n }\n };\n\n return Component_InputHandler;\n\n})(gs.Component);\n\ngs.Component_InputHandler = Component_InputHandler;\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEsc0JBQUE7RUFBQTs7O0FBQU07Ozs7QUFDRjs7Ozs7Ozs7Ozs7Ozs7O0VBY2EsZ0NBQUE7O0FBQ1Q7Ozs7Ozs7SUFPQSxJQUFDLENBQUEsVUFBRCxHQUFjO0VBUkw7OztBQVViOzs7Ozs7bUNBS0EsS0FBQSxHQUFPLFNBQUE7SUFDSCxtREFBQSxTQUFBO0lBRUEsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQXRCLENBQXlCLGtCQUF6QixFQUE2QyxDQUFDLENBQUEsU0FBQSxLQUFBO2FBQUEsU0FBQyxDQUFEO2VBQzFDLEtBQUMsQ0FBQSxVQUFELEdBQWM7TUFENEI7SUFBQSxDQUFBLENBQUEsQ0FBQSxJQUFBLENBQUQsQ0FBN0MsRUFFRyxJQUZILEVBRVMsSUFBQyxDQUFBLE1BRlY7V0FHQSxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBdEIsQ0FBeUIsbUJBQXpCLEVBQThDLENBQUMsQ0FBQSxTQUFBLEtBQUE7YUFBQSxTQUFDLENBQUQ7ZUFDM0MsS0FBQyxDQUFBLFVBQUQsR0FBYztNQUQ2QjtJQUFBLENBQUEsQ0FBQSxDQUFBLElBQUEsQ0FBRCxDQUE5QyxFQUVHLElBRkgsRUFFUyxJQUFDLENBQUEsTUFGVjtFQU5HOzs7QUFVUDs7Ozs7O21DQUtBLE9BQUEsR0FBUyxTQUFBO0lBQ0wscURBQUEsU0FBQTtJQUNBLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxVQUF0QixDQUFpQyxrQkFBakMsRUFBcUQsSUFBQyxDQUFBLE1BQXREO1dBQ0EsRUFBRSxDQUFDLGtCQUFrQixDQUFDLFVBQXRCLENBQWlDLG1CQUFqQyxFQUFzRCxJQUFDLENBQUEsTUFBdkQ7RUFISzs7O0FBS1Q7Ozs7Ozs7bUNBTUEsTUFBQSxHQUFRLFNBQUE7SUFDSixJQUFVLElBQUMsQ0FBQSxVQUFYO0FBQUEsYUFBQTs7SUFFQSxJQUFHLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBZjtNQUNJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUF0QixDQUEyQixZQUEzQixFQURKOztJQUVBLElBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxVQUFmO01BQ0ksRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQXRCLENBQTJCLFdBQTNCLEVBREo7O0lBRUEsSUFBRyxLQUFLLENBQUMsS0FBSyxDQUFDLFFBQWY7TUFDSSxFQUFFLENBQUMsa0JBQWtCLENBQUMsSUFBdEIsQ0FBMkIsU0FBM0IsRUFESjs7SUFFQSxJQUFHLEtBQUssQ0FBQyxPQUFUO01BQ0ksRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQXRCLENBQTJCLFNBQTNCLEVBREo7O0lBRUEsSUFBRyxLQUFLLENBQUMsS0FBVDtNQUNJLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUF0QixDQUEyQixPQUEzQixFQURKOztJQUVBLElBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQyxZQUFmO2FBQ0ksRUFBRSxDQUFDLGtCQUFrQixDQUFDLElBQXRCLENBQTJCLFlBQTNCLEVBREo7O0VBYkk7Ozs7R0F4RHlCLEVBQUUsQ0FBQzs7QUF3RXhDLEVBQUUsQ0FBQyxzQkFBSCxHQUE0QiIsInNvdXJjZXNDb250ZW50IjpbIiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuI1xuIyAgIFNjcmlwdDogQ29tcG9uZW50X0lucHV0SGFuZGxlclxuI1xuIyAgICQkQ09QWVJJR0hUJCRcbiNcbiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuY2xhc3MgQ29tcG9uZW50X0lucHV0SGFuZGxlciBleHRlbmRzIGdzLkNvbXBvbmVudFxuICAgICMjIypcbiAgICAqIFRoZSBpbnB1dC1oYW5kbGVyIGNvbXBvbmVudCBpcyBhbiBpbnRlcmZhY2UgYmV0d2VlbiB0aGUgaW5wdXQtc3lzdGVtXG4gICAgKiBvZiB0aGUgYmFzaWMtZW5naW5lIGFuZCB0aGUgZ2FtZSdzIGV2ZW50LXN5c3RlbS4gSW4gcmVndWxhciB0aGlzXG4gICAgKiBjb21wb25lbnQgaXMgdXNlZCBvbmx5IGJ5IGdhbWUgc2NlbmUgdG8gYWxsb3cgaXRzIGdhbWUgb2JqZWN0cyB0b1xuICAgICogcmVjZWl2ZSBpbnB1dC1ldmVudHMuXG4gICAgKlxuICAgICogVGhvc2UgaW5wdXQtZXZlbnRzIGFyZSBuZWNlc3NhcnkgdG8gc29sdmUgdGhlIHByb2JsZW0gd2hpY2ggZ2FtZS1vYmplY3RcbiAgICAqIHJlc3BvbmRzIHRvIGEgdXNlci1hY3Rpb24gZmlyc3QgYnkgYnVpbGRpbmcgYSByZXNwb25kZXItY2hhaW4uXG4gICAgKlxuICAgICogQG1vZHVsZSBnc1xuICAgICogQGNsYXNzIENvbXBvbmVudF9JbnB1dEhhbmRsZXJcbiAgICAqIEBleHRlbmRzIGdzLkNvbXBvbmVudFxuICAgICogQG1lbWJlcm9mIGdzXG4gICAgIyMjXG4gICAgY29uc3RydWN0b3I6IC0+XG4gICAgICAgICMjIypcbiAgICAgICAgKiBJbmRpY2F0ZXMgaWYgYWxsIGlucHV0IGV2ZW50cywgc3VjaCBhcyBtb3VzZSBhbmQga2V5Ym9hcmQgZXZlbnQsIHNob3VsZCBiZSBibG9ja2VkLlxuICAgICAgICAqXG4gICAgICAgICogQHByb3BlcnR5IGJsb2NrSW5wdXRcbiAgICAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgICAgIyMjXG4gICAgICAgIEBibG9ja0lucHV0ID0gbm9cbiAgICAgXG4gICAgIyMjKlxuICAgICogU2V0cyB1cCBldmVudCBoYW5kbGVycy5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHNldHVwXG4gICAgIyMjICAgXG4gICAgc2V0dXA6IC0+XG4gICAgICAgIHN1cGVyXG4gICAgICAgIFxuICAgICAgICBncy5HbG9iYWxFdmVudE1hbmFnZXIub24gXCJ1aUFuaW1hdGlvblN0YXJ0XCIsICgoZSkgPT5cbiAgICAgICAgICAgIEBibG9ja0lucHV0ID0geWVzXG4gICAgICAgICksIG51bGwsIEBvYmplY3RcbiAgICAgICAgZ3MuR2xvYmFsRXZlbnRNYW5hZ2VyLm9uIFwidWlBbmltYXRpb25GaW5pc2hcIiwgKChlKSA9PlxuICAgICAgICAgICAgQGJsb2NrSW5wdXQgPSBub1xuICAgICAgICApLCBudWxsLCBAb2JqZWN0XG4gICAgXG4gICAgIyMjKlxuICAgICogRGlzcG9zZXMgdGhlIGNvbXBvbmVudCBhbmQgcmVtb3ZlcyBldmVudCBoYW5kbGVycy5cbiAgICAqXG4gICAgKiBAbWV0aG9kIGRpc3Bvc2VcbiAgICAjIyMgICAgXG4gICAgZGlzcG9zZTogLT5cbiAgICAgICAgc3VwZXJcbiAgICAgICAgZ3MuR2xvYmFsRXZlbnRNYW5hZ2VyLm9mZkJ5T3duZXIoXCJ1aUFuaW1hdGlvblN0YXJ0XCIsIEBvYmplY3QpXG4gICAgICAgIGdzLkdsb2JhbEV2ZW50TWFuYWdlci5vZmZCeU93bmVyKFwidWlBbmltYXRpb25GaW5pc2hcIiwgQG9iamVjdClcbiAgICAgICAgXG4gICAgIyMjKlxuICAgICogVXBkYXRlcyB0aGUgY29tcG9uZW50IGJ5IGNoZWNraW5nIHRoZSBpbnB1dC1zeXN0ZW0gYW5kIGZpcmluZ1xuICAgICogYW4gaW5wdXQtZXZlbnQgaWYgbmVjZXNzYXJ5LlxuICAgICpcbiAgICAqIEBtZXRob2QgdXBkYXRlXG4gICAgIyMjXG4gICAgdXBkYXRlOiAtPlxuICAgICAgICByZXR1cm4gaWYgQGJsb2NrSW5wdXRcbiAgICAgICAgXG4gICAgICAgIGlmIElucHV0Lk1vdXNlLm1vdmVkXG4gICAgICAgICAgICBncy5HbG9iYWxFdmVudE1hbmFnZXIuZW1pdChcIm1vdXNlTW92ZWRcIilcbiAgICAgICAgaWYgSW5wdXQuTW91c2UuYnV0dG9uRG93blxuICAgICAgICAgICAgZ3MuR2xvYmFsRXZlbnRNYW5hZ2VyLmVtaXQoXCJtb3VzZURvd25cIilcbiAgICAgICAgaWYgSW5wdXQuTW91c2UuYnV0dG9uVXBcbiAgICAgICAgICAgIGdzLkdsb2JhbEV2ZW50TWFuYWdlci5lbWl0KFwibW91c2VVcFwiKVxuICAgICAgICBpZiBJbnB1dC5rZXlEb3duXG4gICAgICAgICAgICBncy5HbG9iYWxFdmVudE1hbmFnZXIuZW1pdChcImtleURvd25cIilcbiAgICAgICAgaWYgSW5wdXQua2V5VXBcbiAgICAgICAgICAgIGdzLkdsb2JhbEV2ZW50TWFuYWdlci5lbWl0KFwia2V5VXBcIilcbiAgICAgICAgaWYgSW5wdXQuTW91c2Uud2hlZWxDaGFuZ2VkXG4gICAgICAgICAgICBncy5HbG9iYWxFdmVudE1hbmFnZXIuZW1pdChcIm1vdXNlV2hlZWxcIilcbiAgICAgICAgICAgIFxuZ3MuQ29tcG9uZW50X0lucHV0SGFuZGxlciA9IENvbXBvbmVudF9JbnB1dEhhbmRsZXIiXX0=\n//# sourceURL=Component_InputHandler_180.js"
},
"summary": [
"name",
"type",
"order"
]
}
|