Subversion Repository Public Repository

Nextrek

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
{
    "uid": "73181918KC222A4A3BS9D6FE4D23C0106A49",
    "isLoaded": true,
    "lastModificationTime": 0,
    "items": {
        "name": "Component_TintAnimation",
        "type": "game_script",
        "order": 3,
        "content": "# ===================================================================\n#\n#   Script: Component_TintAnimation\n#\n#   $$COPYRIGHT$$\n#\n# ===================================================================\nclass Component_TintAnimation extends gs.Component_Animation\n    ###*\n    * Executes a tint-animation on a game-object. The tint is executed on\n    * the game object's tone-property.\n    *\n    * @module gs\n    * @class Component_TintAnimation\n    * @extends gs.Component_Animation\n    * @memberof gs\n    * @constructor\n    ###\n    constructor: (data) ->\n        super\n        \n        @sourceTone = data?.sourceTone\n        @targetTone = data?.targetTone\n        @easing = new gs.Easing(null, data?.easing)\n        @callback = null\n     \n    ###*\n    * Serializes the tint-animation into a data-bundle.\n    *\n    * @method toDataBundle\n    ###    \n    toDataBundle: ->\n        easing: @easing,\n        sourceTone: @sourceTone,\n        targetTone: @targetTone\n     \n    ###*\n    * Updates the tint-animation.\n    *\n    * @method update\n    ###      \n    update: ->\n        super \n        if not @easing.isRunning then return\n        \n        @easing.updateValue()\n        a = @easing.value\n        \n        @object.tone.red = Math.floor((@sourceTone.red * a + @targetTone.red * (255 - a)) / 255)\n        @object.tone.green = Math.floor((@sourceTone.green * a + @targetTone.green * (255 - a)) / 255)\n        @object.tone.blue = Math.floor((@sourceTone.blue * a + @targetTone.blue * (255 - a)) / 255)\n        @object.tone.grey = Math.floor((@sourceTone.grey * a + @targetTone.grey * (255 - a)) / 255)\n        \n        if not @easing.isRunning\n            @callback?(@object, this)\n        \n    \n    ###*\n    * Starts the tint-animation.\n    *\n    * @method start\n    * @param {gs.Tone} tone The target-tone.\n    * @param {number} duration The duration in frames.\n    * @param {Object} easingType The easing-type.\n    * @param {function} [callback] An optional callback called if the animation is finished. \n    ### \n    start: (tone, duration, easing, callback) ->\n\n        @callback = callback\n        if @object.tone.red == tone.red and @object.tone.green == tone.green and \n            @object.tone.blue == tone.blue and @object.tone.grey == tone.grey\n           @callback?(@object, this)\n           \n        if duration == 0 or @isInstantSkip()\n            @object.tone = tone\n            @callback?(@object, this)\n        else\n            @sourceTone = new Tone(@object.tone)\n            @targetTone = tone\n            @callback = callback\n            @easing.type = easing\n            @easing.startValue(255, -255, duration)\n        \ngs.Component_TintAnimation = Component_TintAnimation",
        "parentId": "A8E9945CKEE5CA4855SAC81E480CB8098E0E",
        "folder": false,
        "compiledContent": "var Component_TintAnimation,\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_TintAnimation = (function(superClass) {\n  extend(Component_TintAnimation, superClass);\n\n\n  /**\n  * Executes a tint-animation on a game-object. The tint is executed on\n  * the game object's tone-property.\n  *\n  * @module gs\n  * @class Component_TintAnimation\n  * @extends gs.Component_Animation\n  * @memberof gs\n  * @constructor\n   */\n\n  function Component_TintAnimation(data) {\n    Component_TintAnimation.__super__.constructor.apply(this, arguments);\n    this.sourceTone = data != null ? data.sourceTone : void 0;\n    this.targetTone = data != null ? data.targetTone : void 0;\n    this.easing = new gs.Easing(null, data != null ? data.easing : void 0);\n    this.callback = null;\n  }\n\n\n  /**\n  * Serializes the tint-animation into a data-bundle.\n  *\n  * @method toDataBundle\n   */\n\n  Component_TintAnimation.prototype.toDataBundle = function() {\n    return {\n      easing: this.easing,\n      sourceTone: this.sourceTone,\n      targetTone: this.targetTone\n    };\n  };\n\n\n  /**\n  * Updates the tint-animation.\n  *\n  * @method update\n   */\n\n  Component_TintAnimation.prototype.update = function() {\n    var a;\n    Component_TintAnimation.__super__.update.apply(this, arguments);\n    if (!this.easing.isRunning) {\n      return;\n    }\n    this.easing.updateValue();\n    a = this.easing.value;\n    this.object.tone.red = Math.floor((this.sourceTone.red * a + this.targetTone.red * (255 - a)) / 255);\n    this.object.tone.green = Math.floor((this.sourceTone.green * a + this.targetTone.green * (255 - a)) / 255);\n    this.object.tone.blue = Math.floor((this.sourceTone.blue * a + this.targetTone.blue * (255 - a)) / 255);\n    this.object.tone.grey = Math.floor((this.sourceTone.grey * a + this.targetTone.grey * (255 - a)) / 255);\n    if (!this.easing.isRunning) {\n      return typeof this.callback === \"function\" ? this.callback(this.object, this) : void 0;\n    }\n  };\n\n\n  /**\n  * Starts the tint-animation.\n  *\n  * @method start\n  * @param {gs.Tone} tone The target-tone.\n  * @param {number} duration The duration in frames.\n  * @param {Object} easingType The easing-type.\n  * @param {function} [callback] An optional callback called if the animation is finished.\n   */\n\n  Component_TintAnimation.prototype.start = function(tone, duration, easing, callback) {\n    this.callback = callback;\n    if (this.object.tone.red === tone.red && this.object.tone.green === tone.green && this.object.tone.blue === tone.blue && this.object.tone.grey === tone.grey) {\n      if (typeof this.callback === \"function\") {\n        this.callback(this.object, this);\n      }\n    }\n    if (duration === 0 || this.isInstantSkip()) {\n      this.object.tone = tone;\n      return typeof this.callback === \"function\" ? this.callback(this.object, this) : void 0;\n    } else {\n      this.sourceTone = new Tone(this.object.tone);\n      this.targetTone = tone;\n      this.callback = callback;\n      this.easing.type = easing;\n      return this.easing.startValue(255, -255, duration);\n    }\n  };\n\n  return Component_TintAnimation;\n\n})(gs.Component_Animation);\n\ngs.Component_TintAnimation = Component_TintAnimation;\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEsdUJBQUE7RUFBQTs7O0FBQU07Ozs7QUFDRjs7Ozs7Ozs7Ozs7RUFVYSxpQ0FBQyxJQUFEO0lBQ1QsMERBQUEsU0FBQTtJQUVBLElBQUMsQ0FBQSxVQUFELGtCQUFjLElBQUksQ0FBRTtJQUNwQixJQUFDLENBQUEsVUFBRCxrQkFBYyxJQUFJLENBQUU7SUFDcEIsSUFBQyxDQUFBLE1BQUQsR0FBYyxJQUFBLEVBQUUsQ0FBQyxNQUFILENBQVUsSUFBVixpQkFBZ0IsSUFBSSxDQUFFLGVBQXRCO0lBQ2QsSUFBQyxDQUFBLFFBQUQsR0FBWTtFQU5IOzs7QUFRYjs7Ozs7O29DQUtBLFlBQUEsR0FBYyxTQUFBO1dBQ1Y7TUFBQSxNQUFBLEVBQVEsSUFBQyxDQUFBLE1BQVQ7TUFDQSxVQUFBLEVBQVksSUFBQyxDQUFBLFVBRGI7TUFFQSxVQUFBLEVBQVksSUFBQyxDQUFBLFVBRmI7O0VBRFU7OztBQUtkOzs7Ozs7b0NBS0EsTUFBQSxHQUFRLFNBQUE7QUFDSixRQUFBO0lBQUEscURBQUEsU0FBQTtJQUNBLElBQUcsQ0FBSSxJQUFDLENBQUEsTUFBTSxDQUFDLFNBQWY7QUFBOEIsYUFBOUI7O0lBRUEsSUFBQyxDQUFBLE1BQU0sQ0FBQyxXQUFSLENBQUE7SUFDQSxDQUFBLEdBQUksSUFBQyxDQUFBLE1BQU0sQ0FBQztJQUVaLElBQUMsQ0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQWIsR0FBbUIsSUFBSSxDQUFDLEtBQUwsQ0FBVyxDQUFDLElBQUMsQ0FBQSxVQUFVLENBQUMsR0FBWixHQUFrQixDQUFsQixHQUFzQixJQUFDLENBQUEsVUFBVSxDQUFDLEdBQVosR0FBa0IsQ0FBQyxHQUFBLEdBQU0sQ0FBUCxDQUF6QyxDQUFBLEdBQXNELEdBQWpFO0lBQ25CLElBQUMsQ0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQWIsR0FBcUIsSUFBSSxDQUFDLEtBQUwsQ0FBVyxDQUFDLElBQUMsQ0FBQSxVQUFVLENBQUMsS0FBWixHQUFvQixDQUFwQixHQUF3QixJQUFDLENBQUEsVUFBVSxDQUFDLEtBQVosR0FBb0IsQ0FBQyxHQUFBLEdBQU0sQ0FBUCxDQUE3QyxDQUFBLEdBQTBELEdBQXJFO0lBQ3JCLElBQUMsQ0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQWIsR0FBb0IsSUFBSSxDQUFDLEtBQUwsQ0FBVyxDQUFDLElBQUMsQ0FBQSxVQUFVLENBQUMsSUFBWixHQUFtQixDQUFuQixHQUF1QixJQUFDLENBQUEsVUFBVSxDQUFDLElBQVosR0FBbUIsQ0FBQyxHQUFBLEdBQU0sQ0FBUCxDQUEzQyxDQUFBLEdBQXdELEdBQW5FO0lBQ3BCLElBQUMsQ0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQWIsR0FBb0IsSUFBSSxDQUFDLEtBQUwsQ0FBVyxDQUFDLElBQUMsQ0FBQSxVQUFVLENBQUMsSUFBWixHQUFtQixDQUFuQixHQUF1QixJQUFDLENBQUEsVUFBVSxDQUFDLElBQVosR0FBbUIsQ0FBQyxHQUFBLEdBQU0sQ0FBUCxDQUEzQyxDQUFBLEdBQXdELEdBQW5FO0lBRXBCLElBQUcsQ0FBSSxJQUFDLENBQUEsTUFBTSxDQUFDLFNBQWY7bURBQ0ksSUFBQyxDQUFBLFNBQVUsSUFBQyxDQUFBLFFBQVEsZUFEeEI7O0VBWkk7OztBQWdCUjs7Ozs7Ozs7OztvQ0FTQSxLQUFBLEdBQU8sU0FBQyxJQUFELEVBQU8sUUFBUCxFQUFpQixNQUFqQixFQUF5QixRQUF6QjtJQUVILElBQUMsQ0FBQSxRQUFELEdBQVk7SUFDWixJQUFHLElBQUMsQ0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQWIsS0FBb0IsSUFBSSxDQUFDLEdBQXpCLElBQWlDLElBQUMsQ0FBQSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQWIsS0FBc0IsSUFBSSxDQUFDLEtBQTVELElBQ0MsSUFBQyxDQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBYixLQUFxQixJQUFJLENBQUMsSUFEM0IsSUFDb0MsSUFBQyxDQUFBLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBYixLQUFxQixJQUFJLENBQUMsSUFEakU7O1FBRUcsSUFBQyxDQUFBLFNBQVUsSUFBQyxDQUFBLFFBQVE7T0FGdkI7O0lBSUEsSUFBRyxRQUFBLEtBQVksQ0FBWixJQUFpQixJQUFDLENBQUEsYUFBRCxDQUFBLENBQXBCO01BQ0ksSUFBQyxDQUFBLE1BQU0sQ0FBQyxJQUFSLEdBQWU7bURBQ2YsSUFBQyxDQUFBLFNBQVUsSUFBQyxDQUFBLFFBQVEsZUFGeEI7S0FBQSxNQUFBO01BSUksSUFBQyxDQUFBLFVBQUQsR0FBa0IsSUFBQSxJQUFBLENBQUssSUFBQyxDQUFBLE1BQU0sQ0FBQyxJQUFiO01BQ2xCLElBQUMsQ0FBQSxVQUFELEdBQWM7TUFDZCxJQUFDLENBQUEsUUFBRCxHQUFZO01BQ1osSUFBQyxDQUFBLE1BQU0sQ0FBQyxJQUFSLEdBQWU7YUFDZixJQUFDLENBQUEsTUFBTSxDQUFDLFVBQVIsQ0FBbUIsR0FBbkIsRUFBd0IsQ0FBQyxHQUF6QixFQUE4QixRQUE5QixFQVJKOztFQVBHOzs7O0dBM0QyQixFQUFFLENBQUM7O0FBNEV6QyxFQUFFLENBQUMsdUJBQUgsR0FBNkIiLCJzb3VyY2VzQ29udGVudCI6WyIjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiNcbiMgICBTY3JpcHQ6IENvbXBvbmVudF9UaW50QW5pbWF0aW9uXG4jXG4jICAgJCRDT1BZUklHSFQkJFxuI1xuIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5jbGFzcyBDb21wb25lbnRfVGludEFuaW1hdGlvbiBleHRlbmRzIGdzLkNvbXBvbmVudF9BbmltYXRpb25cbiAgICAjIyMqXG4gICAgKiBFeGVjdXRlcyBhIHRpbnQtYW5pbWF0aW9uIG9uIGEgZ2FtZS1vYmplY3QuIFRoZSB0aW50IGlzIGV4ZWN1dGVkIG9uXG4gICAgKiB0aGUgZ2FtZSBvYmplY3QncyB0b25lLXByb3BlcnR5LlxuICAgICpcbiAgICAqIEBtb2R1bGUgZ3NcbiAgICAqIEBjbGFzcyBDb21wb25lbnRfVGludEFuaW1hdGlvblxuICAgICogQGV4dGVuZHMgZ3MuQ29tcG9uZW50X0FuaW1hdGlvblxuICAgICogQG1lbWJlcm9mIGdzXG4gICAgKiBAY29uc3RydWN0b3JcbiAgICAjIyNcbiAgICBjb25zdHJ1Y3RvcjogKGRhdGEpIC0+XG4gICAgICAgIHN1cGVyXG4gICAgICAgIFxuICAgICAgICBAc291cmNlVG9uZSA9IGRhdGE/LnNvdXJjZVRvbmVcbiAgICAgICAgQHRhcmdldFRvbmUgPSBkYXRhPy50YXJnZXRUb25lXG4gICAgICAgIEBlYXNpbmcgPSBuZXcgZ3MuRWFzaW5nKG51bGwsIGRhdGE/LmVhc2luZylcbiAgICAgICAgQGNhbGxiYWNrID0gbnVsbFxuICAgICBcbiAgICAjIyMqXG4gICAgKiBTZXJpYWxpemVzIHRoZSB0aW50LWFuaW1hdGlvbiBpbnRvIGEgZGF0YS1idW5kbGUuXG4gICAgKlxuICAgICogQG1ldGhvZCB0b0RhdGFCdW5kbGVcbiAgICAjIyMgICAgXG4gICAgdG9EYXRhQnVuZGxlOiAtPlxuICAgICAgICBlYXNpbmc6IEBlYXNpbmcsXG4gICAgICAgIHNvdXJjZVRvbmU6IEBzb3VyY2VUb25lLFxuICAgICAgICB0YXJnZXRUb25lOiBAdGFyZ2V0VG9uZVxuICAgICBcbiAgICAjIyMqXG4gICAgKiBVcGRhdGVzIHRoZSB0aW50LWFuaW1hdGlvbi5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHVwZGF0ZVxuICAgICMjIyAgICAgIFxuICAgIHVwZGF0ZTogLT5cbiAgICAgICAgc3VwZXIgXG4gICAgICAgIGlmIG5vdCBAZWFzaW5nLmlzUnVubmluZyB0aGVuIHJldHVyblxuICAgICAgICBcbiAgICAgICAgQGVhc2luZy51cGRhdGVWYWx1ZSgpXG4gICAgICAgIGEgPSBAZWFzaW5nLnZhbHVlXG4gICAgICAgIFxuICAgICAgICBAb2JqZWN0LnRvbmUucmVkID0gTWF0aC5mbG9vcigoQHNvdXJjZVRvbmUucmVkICogYSArIEB0YXJnZXRUb25lLnJlZCAqICgyNTUgLSBhKSkgLyAyNTUpXG4gICAgICAgIEBvYmplY3QudG9uZS5ncmVlbiA9IE1hdGguZmxvb3IoKEBzb3VyY2VUb25lLmdyZWVuICogYSArIEB0YXJnZXRUb25lLmdyZWVuICogKDI1NSAtIGEpKSAvIDI1NSlcbiAgICAgICAgQG9iamVjdC50b25lLmJsdWUgPSBNYXRoLmZsb29yKChAc291cmNlVG9uZS5ibHVlICogYSArIEB0YXJnZXRUb25lLmJsdWUgKiAoMjU1IC0gYSkpIC8gMjU1KVxuICAgICAgICBAb2JqZWN0LnRvbmUuZ3JleSA9IE1hdGguZmxvb3IoKEBzb3VyY2VUb25lLmdyZXkgKiBhICsgQHRhcmdldFRvbmUuZ3JleSAqICgyNTUgLSBhKSkgLyAyNTUpXG4gICAgICAgIFxuICAgICAgICBpZiBub3QgQGVhc2luZy5pc1J1bm5pbmdcbiAgICAgICAgICAgIEBjYWxsYmFjaz8oQG9iamVjdCwgdGhpcylcbiAgICAgICAgXG4gICAgXG4gICAgIyMjKlxuICAgICogU3RhcnRzIHRoZSB0aW50LWFuaW1hdGlvbi5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHN0YXJ0XG4gICAgKiBAcGFyYW0ge2dzLlRvbmV9IHRvbmUgVGhlIHRhcmdldC10b25lLlxuICAgICogQHBhcmFtIHtudW1iZXJ9IGR1cmF0aW9uIFRoZSBkdXJhdGlvbiBpbiBmcmFtZXMuXG4gICAgKiBAcGFyYW0ge09iamVjdH0gZWFzaW5nVHlwZSBUaGUgZWFzaW5nLXR5cGUuXG4gICAgKiBAcGFyYW0ge2Z1bmN0aW9ufSBbY2FsbGJhY2tdIEFuIG9wdGlvbmFsIGNhbGxiYWNrIGNhbGxlZCBpZiB0aGUgYW5pbWF0aW9uIGlzIGZpbmlzaGVkLiBcbiAgICAjIyMgXG4gICAgc3RhcnQ6ICh0b25lLCBkdXJhdGlvbiwgZWFzaW5nLCBjYWxsYmFjaykgLT5cblxuICAgICAgICBAY2FsbGJhY2sgPSBjYWxsYmFja1xuICAgICAgICBpZiBAb2JqZWN0LnRvbmUucmVkID09IHRvbmUucmVkIGFuZCBAb2JqZWN0LnRvbmUuZ3JlZW4gPT0gdG9uZS5ncmVlbiBhbmQgXG4gICAgICAgICAgICBAb2JqZWN0LnRvbmUuYmx1ZSA9PSB0b25lLmJsdWUgYW5kIEBvYmplY3QudG9uZS5ncmV5ID09IHRvbmUuZ3JleVxuICAgICAgICAgICBAY2FsbGJhY2s/KEBvYmplY3QsIHRoaXMpXG4gICAgICAgICAgIFxuICAgICAgICBpZiBkdXJhdGlvbiA9PSAwIG9yIEBpc0luc3RhbnRTa2lwKClcbiAgICAgICAgICAgIEBvYmplY3QudG9uZSA9IHRvbmVcbiAgICAgICAgICAgIEBjYWxsYmFjaz8oQG9iamVjdCwgdGhpcylcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgQHNvdXJjZVRvbmUgPSBuZXcgVG9uZShAb2JqZWN0LnRvbmUpXG4gICAgICAgICAgICBAdGFyZ2V0VG9uZSA9IHRvbmVcbiAgICAgICAgICAgIEBjYWxsYmFjayA9IGNhbGxiYWNrXG4gICAgICAgICAgICBAZWFzaW5nLnR5cGUgPSBlYXNpbmdcbiAgICAgICAgICAgIEBlYXNpbmcuc3RhcnRWYWx1ZSgyNTUsIC0yNTUsIGR1cmF0aW9uKVxuICAgICAgICBcbmdzLkNvbXBvbmVudF9UaW50QW5pbWF0aW9uID0gQ29tcG9uZW50X1RpbnRBbmltYXRpb24iXX0=\n//# sourceURL=Component_TintAnimation_53.js"
    },
    "summary": [
        "name",
        "type",
        "order"
    ]
}

Commits for Nextrek/s2s/data/73181918KC222A4A3BS9D6FE4D23C0106A49.json

Diff revisions: vs.
Revision Author Commited Message
1084 MOliva picture MOliva Fri 11 May, 2018 12:41:55 +0000