Nextrek
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
{
"uid": "ADF3B7B7K9DD6A4303S98F5E69C4B1C57BA6",
"isLoaded": true,
"lastModificationTime": 1428415344559,
"items": {
"name": "Component_Timer",
"type": "game_script",
"order": 20,
"content": "# ===================================================================\n#\n# Script: Component_Timer\n#\n# $$COPYRIGHT$$\n#\n# ===================================================================\nclass Component_Timer extends gs.Component\n ###*\n * A component which adds timing-features to a game object. A timer-component\n * can be used as a regular timer or as a stop-watch.\n *\n * @module gs\n * @class Component_Timer\n * @extends gs.Component\n * @memberof gs\n ###\n constructor: ->\n super()\n \n ###*\n * Indicates if the timer is running. \n *\n * @property isRunning\n * @type boolean\n * @readOnly\n ###\n @isRunning = no\n \n ###*\n * @property frameCount\n * @type number\n * @private\n ###\n @frameCount = 0\n \n ###*\n * Starts the timer. \n *\n * @method start\n ###\n start: -> \n @isRunning = yes\n \n if @object.stopWatch\n @frameCount = 0\n else\n @frameCount = @minutes * 60 * 60 + @seconds * 60\n \n ###*\n * Stops the timer. \n *\n * @method stop\n ### \n stop: -> @isRunning = no\n \n ###*\n * Resumes the timer. \n *\n * @method resume\n ###\n resume: -> @isRunning = yes\n \n ###*\n * Pauses the timer. \n *\n * @method pause\n ###\n pause: -> @isRunning = no\n \n ###*\n * Updates the timer.\n *\n * @method update\n ###\n update: ->\n if @object.stopWatch\n @updateStopWatch()\n else\n @updateTimer()\n \n ###*\n * Updates the regular timer behavior\n *\n * @method updateTimer\n ###\n updateTimer: ->\n if @isRunning and @frameCount == 0\n @isRunning = no\n @object.events?.emit(\"finish\", this)\n if not @isRunning then return\n \n seconds = Math.round(@frameCount / 60)\n \n @seconds = seconds % 60\n @minutes = Math.floor(seconds / 60)\n \n @frameCount--\n \n ###*\n * Updates the stop-watch behavior\n *\n * @method updateStopWatch\n ###\n updateStopWatch: ->\n if not @isRunning then return\n \n seconds = Math.round(@frameCount / 60)\n \n @seconds = seconds % 60\n @minutes = Math.floor(seconds / 60)\n \n @frameCount++\n \n \n\n \n \ngs.Component_Timer = Component_Timer",
"compiledContent": "var Component_Timer,\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_Timer = (function(superClass) {\n extend(Component_Timer, superClass);\n\n\n /**\n * A component which adds timing-features to a game object. A timer-component\n * can be used as a regular timer or as a stop-watch.\n *\n * @module gs\n * @class Component_Timer\n * @extends gs.Component\n * @memberof gs\n */\n\n function Component_Timer() {\n Component_Timer.__super__.constructor.call(this);\n\n /**\n * Indicates if the timer is running. \n *\n * @property isRunning\n * @type boolean\n * @readOnly\n */\n this.isRunning = false;\n\n /**\n * @property frameCount\n * @type number\n * @private\n */\n this.frameCount = 0;\n }\n\n\n /**\n * Starts the timer. \n *\n * @method start\n */\n\n Component_Timer.prototype.start = function() {\n this.isRunning = true;\n if (this.object.stopWatch) {\n return this.frameCount = 0;\n } else {\n return this.frameCount = this.minutes * 60 * 60 + this.seconds * 60;\n }\n };\n\n\n /**\n * Stops the timer. \n *\n * @method stop\n */\n\n Component_Timer.prototype.stop = function() {\n return this.isRunning = false;\n };\n\n\n /**\n * Resumes the timer. \n *\n * @method resume\n */\n\n Component_Timer.prototype.resume = function() {\n return this.isRunning = true;\n };\n\n\n /**\n * Pauses the timer. \n *\n * @method pause\n */\n\n Component_Timer.prototype.pause = function() {\n return this.isRunning = false;\n };\n\n\n /**\n * Updates the timer.\n *\n * @method update\n */\n\n Component_Timer.prototype.update = function() {\n if (this.object.stopWatch) {\n return this.updateStopWatch();\n } else {\n return this.updateTimer();\n }\n };\n\n\n /**\n * Updates the regular timer behavior\n *\n * @method updateTimer\n */\n\n Component_Timer.prototype.updateTimer = function() {\n var ref, seconds;\n if (this.isRunning && this.frameCount === 0) {\n this.isRunning = false;\n if ((ref = this.object.events) != null) {\n ref.emit(\"finish\", this);\n }\n }\n if (!this.isRunning) {\n return;\n }\n seconds = Math.round(this.frameCount / 60);\n this.seconds = seconds % 60;\n this.minutes = Math.floor(seconds / 60);\n return this.frameCount--;\n };\n\n\n /**\n * Updates the stop-watch behavior\n *\n * @method updateStopWatch\n */\n\n Component_Timer.prototype.updateStopWatch = function() {\n var seconds;\n if (!this.isRunning) {\n return;\n }\n seconds = Math.round(this.frameCount / 60);\n this.seconds = seconds % 60;\n this.minutes = Math.floor(seconds / 60);\n return this.frameCount++;\n };\n\n return Component_Timer;\n\n})(gs.Component);\n\ngs.Component_Timer = Component_Timer;\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEsZUFBQTtFQUFBOzs7QUFBTTs7OztBQUNGOzs7Ozs7Ozs7O0VBU2EseUJBQUE7SUFDVCwrQ0FBQTs7QUFFQTs7Ozs7OztJQU9BLElBQUMsQ0FBQSxTQUFELEdBQWE7O0FBRWI7Ozs7O0lBS0EsSUFBQyxDQUFBLFVBQUQsR0FBYztFQWpCTDs7O0FBbUJiOzs7Ozs7NEJBS0EsS0FBQSxHQUFPLFNBQUE7SUFDSCxJQUFDLENBQUEsU0FBRCxHQUFhO0lBRWIsSUFBRyxJQUFDLENBQUEsTUFBTSxDQUFDLFNBQVg7YUFDSSxJQUFDLENBQUEsVUFBRCxHQUFjLEVBRGxCO0tBQUEsTUFBQTthQUdJLElBQUMsQ0FBQSxVQUFELEdBQWMsSUFBQyxDQUFBLE9BQUQsR0FBVyxFQUFYLEdBQWdCLEVBQWhCLEdBQXFCLElBQUMsQ0FBQSxPQUFELEdBQVcsR0FIbEQ7O0VBSEc7OztBQVFQOzs7Ozs7NEJBS0EsSUFBQSxHQUFNLFNBQUE7V0FBRyxJQUFDLENBQUEsU0FBRCxHQUFhO0VBQWhCOzs7QUFFTjs7Ozs7OzRCQUtBLE1BQUEsR0FBUSxTQUFBO1dBQUcsSUFBQyxDQUFBLFNBQUQsR0FBYTtFQUFoQjs7O0FBRVI7Ozs7Ozs0QkFLQSxLQUFBLEdBQU8sU0FBQTtXQUFHLElBQUMsQ0FBQSxTQUFELEdBQWE7RUFBaEI7OztBQUVQOzs7Ozs7NEJBS0EsTUFBQSxHQUFRLFNBQUE7SUFDSixJQUFHLElBQUMsQ0FBQSxNQUFNLENBQUMsU0FBWDthQUNJLElBQUMsQ0FBQSxlQUFELENBQUEsRUFESjtLQUFBLE1BQUE7YUFHSSxJQUFDLENBQUEsV0FBRCxDQUFBLEVBSEo7O0VBREk7OztBQU1SOzs7Ozs7NEJBS0EsV0FBQSxHQUFhLFNBQUE7QUFDVCxRQUFBO0lBQUEsSUFBRyxJQUFDLENBQUEsU0FBRCxJQUFlLElBQUMsQ0FBQSxVQUFELEtBQWUsQ0FBakM7TUFDSSxJQUFDLENBQUEsU0FBRCxHQUFhOztXQUNDLENBQUUsSUFBaEIsQ0FBcUIsUUFBckIsRUFBK0IsSUFBL0I7T0FGSjs7SUFHQSxJQUFHLENBQUksSUFBQyxDQUFBLFNBQVI7QUFBdUIsYUFBdkI7O0lBRUEsT0FBQSxHQUFVLElBQUksQ0FBQyxLQUFMLENBQVcsSUFBQyxDQUFBLFVBQUQsR0FBYyxFQUF6QjtJQUVWLElBQUMsQ0FBQSxPQUFELEdBQVcsT0FBQSxHQUFVO0lBQ3JCLElBQUMsQ0FBQSxPQUFELEdBQVcsSUFBSSxDQUFDLEtBQUwsQ0FBVyxPQUFBLEdBQVUsRUFBckI7V0FFWCxJQUFDLENBQUEsVUFBRDtFQVhTOzs7QUFhYjs7Ozs7OzRCQUtBLGVBQUEsR0FBaUIsU0FBQTtBQUNiLFFBQUE7SUFBQSxJQUFHLENBQUksSUFBQyxDQUFBLFNBQVI7QUFBdUIsYUFBdkI7O0lBRUEsT0FBQSxHQUFVLElBQUksQ0FBQyxLQUFMLENBQVcsSUFBQyxDQUFBLFVBQUQsR0FBYyxFQUF6QjtJQUVWLElBQUMsQ0FBQSxPQUFELEdBQVcsT0FBQSxHQUFVO0lBQ3JCLElBQUMsQ0FBQSxPQUFELEdBQVcsSUFBSSxDQUFDLEtBQUwsQ0FBVyxPQUFBLEdBQVUsRUFBckI7V0FFWCxJQUFDLENBQUEsVUFBRDtFQVJhOzs7O0dBakdTLEVBQUUsQ0FBQzs7QUErR2pDLEVBQUUsQ0FBQyxlQUFILEdBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG4jXG4jICAgU2NyaXB0OiBDb21wb25lbnRfVGltZXJcbiNcbiMgICAkJENPUFlSSUdIVCQkXG4jXG4jID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbmNsYXNzIENvbXBvbmVudF9UaW1lciBleHRlbmRzIGdzLkNvbXBvbmVudFxuICAgICMjIypcbiAgICAqIEEgY29tcG9uZW50IHdoaWNoIGFkZHMgdGltaW5nLWZlYXR1cmVzIHRvIGEgZ2FtZSBvYmplY3QuIEEgdGltZXItY29tcG9uZW50XG4gICAgKiBjYW4gYmUgdXNlZCBhcyBhIHJlZ3VsYXIgdGltZXIgb3IgYXMgYSBzdG9wLXdhdGNoLlxuICAgICpcbiAgICAqIEBtb2R1bGUgZ3NcbiAgICAqIEBjbGFzcyBDb21wb25lbnRfVGltZXJcbiAgICAqIEBleHRlbmRzIGdzLkNvbXBvbmVudFxuICAgICogQG1lbWJlcm9mIGdzXG4gICAgIyMjXG4gICAgY29uc3RydWN0b3I6IC0+XG4gICAgICAgIHN1cGVyKClcbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBJbmRpY2F0ZXMgaWYgdGhlIHRpbWVyIGlzIHJ1bm5pbmcuIFxuICAgICAgICAqXG4gICAgICAgICogQHByb3BlcnR5IGlzUnVubmluZ1xuICAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAgKiBAcmVhZE9ubHlcbiAgICAgICAgIyMjXG4gICAgICAgIEBpc1J1bm5pbmcgPSBub1xuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEBwcm9wZXJ0eSBmcmFtZUNvdW50XG4gICAgICAgICogQHR5cGUgbnVtYmVyXG4gICAgICAgICogQHByaXZhdGVcbiAgICAgICAgIyMjXG4gICAgICAgIEBmcmFtZUNvdW50ID0gMFxuICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBTdGFydHMgdGhlIHRpbWVyLiBcbiAgICAqXG4gICAgKiBAbWV0aG9kIHN0YXJ0XG4gICAgIyMjXG4gICAgc3RhcnQ6IC0+IFxuICAgICAgICBAaXNSdW5uaW5nID0geWVzXG4gICAgICAgIFxuICAgICAgICBpZiBAb2JqZWN0LnN0b3BXYXRjaFxuICAgICAgICAgICAgQGZyYW1lQ291bnQgPSAwXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIEBmcmFtZUNvdW50ID0gQG1pbnV0ZXMgKiA2MCAqIDYwICsgQHNlY29uZHMgKiA2MFxuICAgICBcbiAgICAjIyMqXG4gICAgKiBTdG9wcyB0aGUgdGltZXIuIFxuICAgICpcbiAgICAqIEBtZXRob2Qgc3RvcFxuICAgICMjIyAgIFxuICAgIHN0b3A6IC0+IEBpc1J1bm5pbmcgPSBub1xuICAgIFxuICAgICMjIypcbiAgICAqIFJlc3VtZXMgdGhlIHRpbWVyLiBcbiAgICAqXG4gICAgKiBAbWV0aG9kIHJlc3VtZVxuICAgICMjI1xuICAgIHJlc3VtZTogLT4gQGlzUnVubmluZyA9IHllc1xuICAgIFxuICAgICMjIypcbiAgICAqIFBhdXNlcyB0aGUgdGltZXIuIFxuICAgICpcbiAgICAqIEBtZXRob2QgcGF1c2VcbiAgICAjIyNcbiAgICBwYXVzZTogLT4gQGlzUnVubmluZyA9IG5vXG4gICAgICAgIFxuICAgICMjIypcbiAgICAqIFVwZGF0ZXMgdGhlIHRpbWVyLlxuICAgICpcbiAgICAqIEBtZXRob2QgdXBkYXRlXG4gICAgIyMjXG4gICAgdXBkYXRlOiAtPlxuICAgICAgICBpZiBAb2JqZWN0LnN0b3BXYXRjaFxuICAgICAgICAgICAgQHVwZGF0ZVN0b3BXYXRjaCgpXG4gICAgICAgIGVsc2VcbiAgICAgICAgICAgIEB1cGRhdGVUaW1lcigpXG4gICAgICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBVcGRhdGVzIHRoZSByZWd1bGFyIHRpbWVyIGJlaGF2aW9yXG4gICAgKlxuICAgICogQG1ldGhvZCB1cGRhdGVUaW1lclxuICAgICMjI1xuICAgIHVwZGF0ZVRpbWVyOiAtPlxuICAgICAgICBpZiBAaXNSdW5uaW5nIGFuZCBAZnJhbWVDb3VudCA9PSAwXG4gICAgICAgICAgICBAaXNSdW5uaW5nID0gbm9cbiAgICAgICAgICAgIEBvYmplY3QuZXZlbnRzPy5lbWl0KFwiZmluaXNoXCIsIHRoaXMpXG4gICAgICAgIGlmIG5vdCBAaXNSdW5uaW5nIHRoZW4gcmV0dXJuXG4gICAgICAgIFxuICAgICAgICBzZWNvbmRzID0gTWF0aC5yb3VuZChAZnJhbWVDb3VudCAvIDYwKVxuICAgICAgICBcbiAgICAgICAgQHNlY29uZHMgPSBzZWNvbmRzICUgNjBcbiAgICAgICAgQG1pbnV0ZXMgPSBNYXRoLmZsb29yKHNlY29uZHMgLyA2MClcbiAgICAgICAgXG4gICAgICAgIEBmcmFtZUNvdW50LS1cbiAgICAgICAgXG4gICAgIyMjKlxuICAgICogVXBkYXRlcyB0aGUgc3RvcC13YXRjaCBiZWhhdmlvclxuICAgICpcbiAgICAqIEBtZXRob2QgdXBkYXRlU3RvcFdhdGNoXG4gICAgIyMjXG4gICAgdXBkYXRlU3RvcFdhdGNoOiAtPlxuICAgICAgICBpZiBub3QgQGlzUnVubmluZyB0aGVuIHJldHVyblxuICAgICAgICBcbiAgICAgICAgc2Vjb25kcyA9IE1hdGgucm91bmQoQGZyYW1lQ291bnQgLyA2MClcbiAgICAgICAgXG4gICAgICAgIEBzZWNvbmRzID0gc2Vjb25kcyAlIDYwXG4gICAgICAgIEBtaW51dGVzID0gTWF0aC5mbG9vcihzZWNvbmRzIC8gNjApXG4gICAgICAgIFxuICAgICAgICBAZnJhbWVDb3VudCsrXG4gICAgICAgIFxuICAgICAgICAgICAgXG5cbiAgICAgICAgXG4gXG5ncy5Db21wb25lbnRfVGltZXIgPSBDb21wb25lbnRfVGltZXIiXX0=\n//# sourceURL=Component_Timer_173.js",
"parentId": "D3325122KACDEA4515SB731E37A42B9D779F"
},
"summary": [
"name",
"type",
"order"
]
}
|
Revision |
Author |
Commited |
Message |
1084
|
MOliva
|
Fri 11 May, 2018 12:41:55 +0000 |
|