Subversion Repository Public Repository

Nextrek

Diff Revisions 1085 vs 1086 for /s2s/data/4E6166C5K0D27A44E3SB533EBD2F28EAC813.json

Diff revisions: vs.
  @@ -6,8 +6,8 @@
6 6 "name": "SceneManager",
7 7 "type": "game_script",
8 8 "order": 2,
9 - "content": "# ===================================================================\n#\n# Script: SceneManager\n#\n# $$COPYRIGHT$$\n#\n# ===================================================================\nclass SceneManager extends gs.ObjectManager\n ###*\n * Manages the scenes of the game.\n *\n * @module gs\n * @class SceneManager\n * @memberof gs\n * @constructor\n ###\n constructor: ->\n super\n \n ###*\n * The current scene.\n * @property scene\n * @type gs.Object_Base\n ### \n @scene = null\n \n ###*\n * An array of previous scenes. Used to jump back to last scene from a menu for example.\n * @property previousScenes\n * @type gs.Object_Base\n ### \n @previousScenes = []\n \n ###*\n * The next scene. If set, this scene will become the current scene after next update.\n * @property nextScene\n * @type gs.Object_Base\n ### \n @nextScene = null\n \n ###*\n * The transition-data like the graphic, vague, etc. used for a transition from one scene to another.\n * @property transitionData\n * @type Object\n ### \n @transitionData = { graphic: null, duration: 20, vague: 30 }\n \n @input = yes\n ###*\n * Called if a scene-change has been done.\n * @property callback\n * @type Function\n ### \n @callback = null\n \n @paused = no\n \n \n initialize: ->\n \n ###*\n * Switches from the current scene to the specified one.\n *\n * @method switchTo\n * @param {gs.Object_Base} scene - The new scene.\n * @param {boolean} savePrevious - Indicates if the current scene should be pushed to previous-scene stack instead\n * of getting disposed. It is possible to switch back to that scene then using gs.SceneManager.returnToPrevious method.\n * @param {Function} callback - Called after the scene has been changed.\n ###\n switchTo: (scene, savePrevious, callback) ->\n @callback = callback\n if savePrevious\n @previousScenes.push(@scene)\n\n if @scene?\n @removeObject(@scene)\n \n @nextScene = scene\n \n Graphics.freeze()\n \n ###*\n * Clears the stack of previous-scenes and disposes all previous-scenes. After that it is not\n * possible to go back to a previous scene using gs.SceneManager.returnToPrevious().\n *\n * @method clear\n ### \n clear: ->\n for scene in @previousScenes\n scene.dispose()\n @previousScenes = []\n \n ###*\n * Returns to the previous scene if that scene was saved before.\n *\n * @method returnToPrevious\n * @param {Function} callback - Called after the scene has been changed.\n ### \n returnToPrevious: (callback) ->\n @callback = callback\n if @previousScenes.length > 0\n scene = @previousScenes.pop()\n \n if @scene?\n @removeObject(@scene)\n \n if scene?\n @nextScene = scene\n \n Graphics.freeze()\n \n ###*\n * Updates the current scene and the scene-handling. Needs to be called once\n * per frame.\n *\n * @method update\n ### \n update: ->\n if @nextScene != @scene\n Input.clear()\n \n if @scene?\n if @previousScenes.indexOf(@scene) == -1\n @scene.dispose()\n else\n @scene.behavior.show(no)\n #@scene.update()\n \n @scene = @nextScene\n @callback?()\n \n if @scene\n @addObject(@scene)\n @scene.loading = true\n @scene.loadingData = true\n @scene.loadingResources = true\n \n if @scene? and not @scene.initialized\n @scene.behavior.initialize()\n @isFadeOut = yes\n else if @scene?.initialized\n @scene.behavior.show(yes)\n @scene.update()\n Graphics.update()\n @scene.behavior.transition()\n else\n Graphics.freeze()\n Graphics.update()\n Graphics.transition(30)\n \n @isFadeOut = yes\n \n if @isFadeOut and Graphics.frozen\n Graphics.update()\n Input.update()\n else\n if @isFadeOut\n AudioManager.stopAllSounds()\n @isFadeOut = no\n if @scene\n Graphics.freeze()\n else\n gs.Application.exit()\n \n DataManager.update()\n ResourceManager.update()\n \n if RecordManager.initialized\n AudioManager.update()\n \n if Graphics.frozen\n Input.update()\n \n super()\n \n \n\nwindow.SceneManager = new SceneManager()\ngs.SceneManager = window.SceneManager",
10 - "compiledContent": "var SceneManager,\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\nSceneManager = (function(superClass) {\n extend(SceneManager, superClass);\n\n\n /**\n * Manages the scenes of the game.\n *\n * @module gs\n * @class SceneManager\n * @memberof gs\n * @constructor\n */\n\n function SceneManager() {\n SceneManager.__super__.constructor.apply(this, arguments);\n\n /**\n * The current scene.\n * @property scene\n * @type gs.Object_Base\n */\n this.scene = null;\n\n /**\n * An array of previous scenes. Used to jump back to last scene from a menu for example.\n * @property previousScenes\n * @type gs.Object_Base\n */\n this.previousScenes = [];\n\n /**\n * The next scene. If set, this scene will become the current scene after next update.\n * @property nextScene\n * @type gs.Object_Base\n */\n this.nextScene = null;\n\n /**\n * The transition-data like the graphic, vague, etc. used for a transition from one scene to another.\n * @property transitionData\n * @type Object\n */\n this.transitionData = {\n graphic: null,\n duration: 20,\n vague: 30\n };\n this.input = true;\n\n /**\n * Called if a scene-change has been done.\n * @property callback\n * @type Function\n */\n this.callback = null;\n this.paused = false;\n }\n\n SceneManager.prototype.initialize = function() {};\n\n\n /**\n * Switches from the current scene to the specified one.\n *\n * @method switchTo\n * @param {gs.Object_Base} scene - The new scene.\n * @param {boolean} savePrevious - Indicates if the current scene should be pushed to previous-scene stack instead\n * of getting disposed. It is possible to switch back to that scene then using gs.SceneManager.returnToPrevious method.\n * @param {Function} callback - Called after the scene has been changed.\n */\n\n SceneManager.prototype.switchTo = function(scene, savePrevious, callback) {\n this.callback = callback;\n if (savePrevious) {\n this.previousScenes.push(this.scene);\n }\n if (this.scene != null) {\n this.removeObject(this.scene);\n }\n this.nextScene = scene;\n return Graphics.freeze();\n };\n\n\n /**\n * Clears the stack of previous-scenes and disposes all previous-scenes. After that it is not\n * possible to go back to a previous scene using gs.SceneManager.returnToPrevious().\n *\n * @method clear\n */\n\n SceneManager.prototype.clear = function() {\n var i, len, ref, scene;\n ref = this.previousScenes;\n for (i = 0, len = ref.length; i < len; i++) {\n scene = ref[i];\n scene.dispose();\n }\n return this.previousScenes = [];\n };\n\n\n /**\n * Returns to the previous scene if that scene was saved before.\n *\n * @method returnToPrevious\n * @param {Function} callback - Called after the scene has been changed.\n */\n\n SceneManager.prototype.returnToPrevious = function(callback) {\n var scene;\n this.callback = callback;\n if (this.previousScenes.length > 0) {\n scene = this.previousScenes.pop();\n if (this.scene != null) {\n this.removeObject(this.scene);\n }\n if (scene != null) {\n this.nextScene = scene;\n return Graphics.freeze();\n }\n }\n };\n\n\n /**\n * Updates the current scene and the scene-handling. Needs to be called once\n * per frame.\n *\n * @method update\n */\n\n SceneManager.prototype.update = function() {\n var ref;\n if (this.nextScene !== this.scene) {\n Input.clear();\n if (this.scene != null) {\n if (this.previousScenes.indexOf(this.scene) === -1) {\n this.scene.dispose();\n } else {\n this.scene.behavior.show(false);\n }\n }\n this.scene = this.nextScene;\n if (typeof this.callback === \"function\") {\n this.callback();\n }\n if (this.scene) {\n this.addObject(this.scene);\n this.scene.loading = true;\n this.scene.loadingData = true;\n this.scene.loadingResources = true;\n if ((this.scene != null) && !this.scene.initialized) {\n this.scene.behavior.initialize();\n this.isFadeOut = true;\n } else if ((ref = this.scene) != null ? ref.initialized : void 0) {\n this.scene.behavior.show(true);\n this.scene.update();\n }\n Graphics.update();\n this.scene.behavior.transition();\n } else {\n Graphics.freeze();\n Graphics.update();\n Graphics.transition(30);\n this.isFadeOut = true;\n }\n }\n if (this.isFadeOut && Graphics.frozen) {\n Graphics.update();\n return Input.update();\n } else {\n if (this.isFadeOut) {\n AudioManager.stopAllSounds();\n this.isFadeOut = false;\n if (this.scene) {\n Graphics.freeze();\n } else {\n gs.Application.exit();\n }\n }\n DataManager.update();\n ResourceManager.update();\n if (RecordManager.initialized) {\n AudioManager.update();\n }\n if (Graphics.frozen) {\n Input.update();\n }\n return SceneManager.__super__.update.call(this);\n }\n };\n\n return SceneManager;\n\n})(gs.ObjectManager);\n\nwindow.SceneManager = new SceneManager();\n\ngs.SceneManager = window.SceneManager;\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEsWUFBQTtFQUFBOzs7QUFBTTs7OztBQUNGOzs7Ozs7Ozs7RUFRYSxzQkFBQTtJQUNULCtDQUFBLFNBQUE7O0FBRUE7Ozs7O0lBS0EsSUFBQyxDQUFBLEtBQUQsR0FBUzs7QUFFVDs7Ozs7SUFLQSxJQUFDLENBQUEsY0FBRCxHQUFrQjs7QUFFbEI7Ozs7O0lBS0EsSUFBQyxDQUFBLFNBQUQsR0FBYTs7QUFFYjs7Ozs7SUFLQSxJQUFDLENBQUEsY0FBRCxHQUFrQjtNQUFFLE9BQUEsRUFBUyxJQUFYO01BQWlCLFFBQUEsRUFBVSxFQUEzQjtNQUErQixLQUFBLEVBQU8sRUFBdEM7O0lBRWxCLElBQUMsQ0FBQSxLQUFELEdBQVM7O0FBQ1Q7Ozs7O0lBS0EsSUFBQyxDQUFBLFFBQUQsR0FBWTtJQUVaLElBQUMsQ0FBQSxNQUFELEdBQVU7RUF2Q0Q7O3lCQTBDYixVQUFBLEdBQVksU0FBQSxHQUFBOzs7QUFFWjs7Ozs7Ozs7Ozt5QkFTQSxRQUFBLEdBQVUsU0FBQyxLQUFELEVBQVEsWUFBUixFQUFzQixRQUF0QjtJQUNOLElBQUMsQ0FBQSxRQUFELEdBQVk7SUFDWixJQUFHLFlBQUg7TUFDSSxJQUFDLENBQUEsY0FBYyxDQUFDLElBQWhCLENBQXFCLElBQUMsQ0FBQSxLQUF0QixFQURKOztJQUdBLElBQUcsa0JBQUg7TUFDSSxJQUFDLENBQUEsWUFBRCxDQUFjLElBQUMsQ0FBQSxLQUFmLEVBREo7O0lBR0EsSUFBQyxDQUFBLFNBQUQsR0FBYTtXQUViLFFBQVEsQ0FBQyxNQUFULENBQUE7RUFWTTs7O0FBWVY7Ozs7Ozs7eUJBTUEsS0FBQSxHQUFPLFNBQUE7QUFDSCxRQUFBO0FBQUE7QUFBQSxTQUFBLHFDQUFBOztNQUNFLEtBQUssQ0FBQyxPQUFOLENBQUE7QUFERjtXQUVBLElBQUMsQ0FBQSxjQUFELEdBQWtCO0VBSGY7OztBQUtQOzs7Ozs7O3lCQU1B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LEVBQUUsQ0FBQzs7QUEwSzlCLE1BQU0sQ0FBQyxZQUFQLEdBQTBCLElBQUEsWUFBQSxDQUFBOztBQUMxQixFQUFFLENBQUMsWUFBSCxHQUFrQixNQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiNcbiMgICBTY3JpcHQ6IFNjZW5lTWFuYWdlclxuI1xuIyAgICQkQ09QWVJJR0hUJCRcbiNcbiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuY2xhc3MgU2NlbmVNYW5hZ2VyIGV4dGVuZHMgZ3MuT2JqZWN0TWFuYWdlclxuICAgICMjIypcbiAgICAqIE1hbmFnZXMgdGhlIHNjZW5lcyBvZiB0aGUgZ2FtZS5cbiAgICAqXG4gICAgKiBAbW9kdWxlIGdzXG4gICAgKiBAY2xhc3MgU2NlbmVNYW5hZ2VyXG4gICAgKiBAbWVtYmVyb2YgZ3NcbiAgICAqIEBjb25zdHJ1Y3RvclxuICAgICMjI1xuICAgIGNvbnN0cnVjdG9yOiAtPlxuICAgICAgICBzdXBlclxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIFRoZSBjdXJyZW50IHNjZW5lLlxuICAgICAgICAqIEBwcm9wZXJ0eSBzY2VuZVxuICAgICAgICAqIEB0eXBlIGdzLk9iamVjdF9CYXNlXG4gICAgICAgICMjIyBcbiAgICAgICAgQHNjZW5lID0gbnVsbFxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEFuIGFycmF5IG9mIHByZXZpb3VzIHNjZW5lcy4gVXNlZCB0byBqdW1wIGJhY2sgdG8gbGFzdCBzY2VuZSBmcm9tIGEgbWVudSBmb3IgZXhhbXBsZS5cbiAgICAgICAgKiBAcHJvcGVydHkgcHJldmlvdXNTY2VuZXNcbiAgICAgICAgKiBAdHlwZSBncy5PYmplY3RfQmFzZVxuICAgICAgICAjIyMgXG4gICAgICAgIEBwcmV2aW91c1NjZW5lcyA9IFtdXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogVGhlIG5leHQgc2NlbmUuIElmIHNldCwgdGhpcyBzY2VuZSB3aWxsIGJlY29tZSB0aGUgY3VycmVudCBzY2VuZSBhZnRlciBuZXh0IHVwZGF0ZS5cbiAgICAgICAgKiBAcHJvcGVydHkgbmV4dFNjZW5lXG4gICAgICAgICogQHR5cGUgZ3MuT2JqZWN0X0Jhc2VcbiAgICAgICAgIyMjIFxuICAgICAgICBAbmV4dFNjZW5lID0gbnVsbFxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIFRoZSB0cmFuc2l0aW9uLWRhdGEgbGlrZSB0aGUgZ3JhcGhpYywgdmFndWUsIGV0Yy4gdXNlZCBmb3IgYSB0cmFuc2l0aW9uIGZyb20gb25lIHNjZW5lIHRvIGFub3RoZXIuXG4gICAgICAgICogQHByb3BlcnR5IHRyYW5zaXRpb25EYXRhXG4gICAgICAgICogQHR5cGUgT2JqZWN0XG4gICAgICAgICMjIyBcbiAgICAgICAgQHRyYW5zaXRpb25EYXRhID0geyBncmFwaGljOiBudWxsLCBkdXJhdGlvbjogMjAsIHZhZ3VlOiAzMCB9XG4gICAgICAgIFxuICAgICAgICBAaW5wdXQgPSB5ZXNcbiAgICAgICAgIyMjKlxuICAgICAgICAqIENhbGxlZCBpZiBhIHNjZW5lLWNoYW5nZSBoYXMgYmVlbiBkb25lLlxuICAgICAgICAqIEBwcm9wZXJ0eSBjYWxsYmFja1xuICAgICAgICAqIEB0eXBlIEZ1bmN0aW9uXG4gICAgICAgICMjIyBcbiAgICAgICAgQGNhbGxiYWNrID0gbnVsbFxuICAgICAgICBcbiAgICAgICAgQHBhdXNlZCA9IG5vXG4gICAgICAgIFxuICAgIFxuICAgIGluaXRpYWxpemU6IC0+XG4gICAgICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBTd2l0Y2hlcyBmcm9tIHRoZSBjdXJyZW50IHNjZW5lIHRvIHRoZSBzcGVjaWZpZWQgb25lLlxuICAgICpcbiAgICAqIEBtZXRob2Qgc3dpdGNoVG9cbiAgICAqIEBwYXJhbSB7Z3MuT2JqZWN0X0Jhc2V9IHNjZW5lIC0gVGhlIG5ldyBzY2VuZS5cbiAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2F2ZVByZXZpb3VzIC0gSW5kaWNhdGVzIGlmIHRoZSBjdXJyZW50IHNjZW5lIHNob3VsZCBiZSBwdXNoZWQgdG8gcHJldmlvdXMtc2NlbmUgc3RhY2sgaW5zdGVhZFxuICAgICogb2YgZ2V0dGluZyBkaXNwb3NlZC4gSXQgaXMgcG9zc2libGUgdG8gc3dpdGNoIGJhY2sgdG8gdGhhdCBzY2VuZSB0aGVuIHVzaW5nIGdzLlNjZW5lTWFuYWdlci5yZXR1cm5Ub1ByZXZpb3VzIG1ldGhvZC5cbiAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGVkIGFmdGVyIHRoZSBzY2VuZSBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICMjI1xuICAgIHN3aXRjaFRvOiAoc2NlbmUsIHNhdmVQcmV2aW91cywgY2FsbGJhY2spIC0+XG4gICAgICAgIEBjYWxsYmFjayA9IGNhbGxiYWNrXG4gICAgICAgIGlmIHNhdmVQcmV2aW91c1xuICAgICAgICAgICAgQHByZXZpb3VzU2NlbmVzLnB1c2goQHNjZW5lKVxuXG4gICAgICAgIGlmIEBzY2VuZT9cbiAgICAgICAgICAgIEByZW1vdmVPYmplY3QoQHNjZW5lKVxuICAgICAgICAgICAgXG4gICAgICAgIEBuZXh0U2NlbmUgPSBzY2VuZVxuICAgICAgICBcbiAgICAgICAgR3JhcGhpY3MuZnJlZXplKClcbiAgICBcbiAgICAjIyMqXG4gICAgKiBDbGVhcnMgdGhlIHN0YWNrIG9mIHByZXZpb3VzLXNjZW5lcyBhbmQgZGlzcG9zZXMgYWxsIHByZXZpb3VzLXNjZW5lcy4gQWZ0ZXIgdGhhdCBpdCBpcyBub3RcbiAgICAqIHBvc3NpYmxlIHRvIGdvIGJhY2sgdG8gYSBwcmV2aW91cyBzY2VuZSB1c2luZyBncy5TY2VuZU1hbmFnZXIucmV0dXJuVG9QcmV2aW91cygpLlxuICAgICpcbiAgICAqIEBtZXRob2QgY2xlYXJcbiAgICAjIyMgICAgXG4gICAgY2xlYXI6IC0+XG4gICAgICAgIGZvciBzY2VuZSBpbiBAcHJldmlvdXNTY2VuZXNcbiAgICAgICAgICBzY2VuZS5kaXNwb3NlKClcbiAgICAgICAgQHByZXZpb3VzU2NlbmVzID0gW11cbiAgICAgXG4gICAgIyMjKlxuICAgICogUmV0dXJucyB0byB0aGUgcHJldmlvdXMgc2NlbmUgaWYgdGhhdCBzY2VuZSB3YXMgc2F2ZWQgYmVmb3JlLlxuICAgICpcbiAgICAqIEBtZXRob2QgcmV0dXJuVG9QcmV2aW91c1xuICAgICogQHBhcmFtIHtGdW5jdGlvbn0gY2FsbGJhY2sgLSBDYWxsZWQgYWZ0ZXIgdGhlIHNjZW5lIGhhcyBiZWVuIGNoYW5nZWQuXG4gICAgIyMjICAgIFxuICAgIHJldHVyblRvUHJldmlvdXM6IChjYWxsYmFjaykgLT5cbiAgICAgICAgQGNhbGxiYWNrID0gY2FsbGJhY2tcbiAgICAgICAgaWYgQHByZXZpb3VzU2NlbmVzLmxlbmd0aCA+IDBcbiAgICAgICAgICAgIHNjZW5lID0gQHByZXZpb3VzU2NlbmVzLnBvcCgpXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIEBzY2VuZT9cbiAgICAgICAgICAgICAgICBAcmVtb3ZlT2JqZWN0KEBzY2VuZSlcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIHNjZW5lP1xuICAgICAgICAgICAgICAgIEBuZXh0U2NlbmUgPSBzY2VuZVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIEdyYXBoaWNzLmZyZWV6ZSgpXG4gICAgIFxuICAgICMjIypcbiAgICAqIFVwZGF0ZXMgdGhlIGN1cnJlbnQgc2NlbmUgYW5kIHRoZSBzY2VuZS1oYW5kbGluZy4gTmVlZHMgdG8gYmUgY2FsbGVkIG9uY2VcbiAgICAqIHBlciBmcmFtZS5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHVwZGF0ZVxuICAgICMjIyAgIFxuICAgIHVwZGF0ZTogLT5cbiAgICAgICAgaWYgQG5leHRTY2VuZSAhPSBAc2NlbmVcbiAgICAgICAgICAgIElucHV0LmNsZWFyKClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgQHNjZW5lP1xuICAgICAgICAgICAgICAgIGlmIEBwcmV2aW91c1NjZW5lcy5pbmRleE9mKEBzY2VuZSkgPT0gLTFcbiAgICAgICAgICAgICAgICAgICAgQHNjZW5lLmRpc3Bvc2UoKVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgQHNjZW5lLmJlaGF2aW9yLnNob3cobm8pXG4gICAgICAgICAgICAgICAgICAgICNAc2NlbmUudXBkYXRlKClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgQHNjZW5lID0gQG5leHRTY2VuZVxuICAgICAgICAgICAgQGNhbGxiYWNrPygpXG4gICBcbiAgICAgICAgICAgIGlmIEBzY2VuZVxuICAgICAgICAgICAgICAgIEBhZGRPYmplY3QoQHNjZW5lKVxuICAgICAgICAgICAgICAgIEBzY2VuZS5sb2FkaW5nID0gdHJ1ZVxuICAgICAgICAgICAgICAgIEBzY2VuZS5sb2FkaW5nRGF0YSA9IHRydWVcbiAgICAgICAgICAgICAgICBAc2NlbmUubG9hZGluZ1Jlc291cmNlcyA9IHRydWVcbiAgICAgICAgXG4gICAgICAgICAgICAgICAgaWYgQHNjZW5lPyBhbmQgbm90IEBzY2VuZS5pbml0aWFsaXplZFxuICAgICAgICAgICAgICAgICAgICBAc2NlbmUuYmVoYXZpb3IuaW5pdGlhbGl6ZSgpXG4gICAgICAgICAgICAgICAgICAgIEBpc0ZhZGVPdXQgPSB5ZXNcbiAgICAgICAgICAgICAgICBlbHNlIGlmIEBzY2VuZT8uaW5pdGlhbGl6ZWRcbiAgICAgICAgICAgICAgICAgICAgQHNjZW5lLmJlaGF2aW9yLnNob3coeWVzKVxuICAgICAgICAgICAgICAgICAgICBAc2NlbmUudXBkYXRlKClcbiAgICAgICAgICAgICAgICBHcmFwaGljcy51cGRhdGUoKVxuICAgICAgICAgICAgICAgIEBzY2VuZS5iZWhhdmlvci50cmFuc2l0aW9uKClcbiAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICBHcmFwaGljcy5mcmVlemUoKVxuICAgICAgICAgICAgICAgIEdyYXBoaWNzLnVwZGF0ZSgpXG4gICAgICAgICAgICAgICAgR3JhcGhpY3MudHJhbnNpdGlvbigzMClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIEBpc0ZhZGVPdXQgPSB5ZXNcbiAgICAgICAgICAgIFxuICAgICAgICBpZiBAaXNGYWRlT3V0IGFuZCBHcmFwaGljcy5mcm96ZW5cbiAgICAgICAgICAgIEdyYXBoaWNzLnVwZGF0ZSgpXG4gICAgICAgICAgICBJbnB1dC51cGRhdGUoKVxuICAgICAgICBlbHNlXG4gICAgICAgICAgICBpZiBAaXNGYWRlT3V0XG4gICAgICAgICAgICAgICAgQXVkaW9NYW5hZ2VyLnN0b3BBbGxTb3VuZHMoKVxuICAgICAgICAgICAgICAgIEBpc0ZhZGVPdXQgPSBub1xuICAgICAgICAgICAgICAgIGlmIEBzY2VuZVxuICAgICAgICAgICAgICAgICAgICBHcmFwaGljcy5mcmVlemUoKVxuICAgICAgICAgICAgICAgIGVsc2VcbiAgICAgICAgICAgICAgICAgICAgZ3MuQXBwbGljYXRpb24uZXhpdCgpXG4gICAgICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgRGF0YU1hbmFnZXIudXBkYXRlKClcbiAgICAgICAgICAgIFJlc291cmNlTWFuYWdlci51cGRhdGUoKVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiBSZWNvcmRNYW5hZ2VyLmluaXRpYWxpemVkXG4gICAgICAgICAgICAgICAgQXVkaW9NYW5hZ2VyLnVwZGF0ZSgpXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiBHcmFwaGljcy5mcm96ZW5cbiAgICAgICAgICAgICAgICBJbnB1dC51cGRhdGUoKVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgc3VwZXIoKVxuICAgICAgICAgXG4gICAgICAgICAgICBcblxud2luZG93LlNjZW5lTWFuYWdlciA9IG5ldyBTY2VuZU1hbmFnZXIoKVxuZ3MuU2NlbmVNYW5hZ2VyID0gd2luZG93LlNjZW5lTWFuYWdlciJdfQ==\n//# sourceURL=SceneManager_31.js",
9 + "content": "# ===================================================================\n#\n# Script: SceneManager\n#\n# $$COPYRIGHT$$\n#\n# ===================================================================\nclass SceneManager extends gs.ObjectManager\n ###*\n * Manages the scenes of the game.\n *\n * @module gs\n * @class SceneManager\n * @memberof gs\n * @constructor\n ###\n constructor: ->\n super\n \n ###*\n * The current scene.\n * @property scene\n * @type gs.Object_Base\n ### \n @scene = null\n \n ###*\n * An array of previous scenes. Used to jump back to last scene from a menu for example.\n * @property previousScenes\n * @type gs.Object_Base\n ### \n @previousScenes = []\n \n ###*\n * The next scene. If set, this scene will become the current scene after next update.\n * @property nextScene\n * @type gs.Object_Base\n ### \n @nextScene = null\n \n ###*\n * The transition-data like the graphic, vague, etc. used for a transition from one scene to another.\n * @property transitionData\n * @type Object\n ### \n @transitionData = { graphic: null, duration: 20, vague: 30 }\n \n @input = yes\n ###*\n * Called if a scene-change has been done.\n * @property callback\n * @type Function\n ### \n @callback = null\n \n @paused = no\n \n \n initialize: ->\n \n ###*\n * Switches from the current scene to the specified one.\n *\n * @method switchTo\n * @param {gs.Object_Base} scene - The new scene.\n * @param {boolean} savePrevious - Indicates if the current scene should be pushed to previous-scene stack instead\n * of getting disposed. It is possible to switch back to that scene then using gs.SceneManager.returnToPrevious method.\n * @param {Function} callback - Called after the scene has been changed.\n ###\n switchTo: (scene, savePrevious, callback) ->\n @callback = callback\n if savePrevious\n @previousScenes.push(@scene)\n else if @previousScenes.length == 0\n gs.Audio.reset()\n \n if @scene?\n @removeObject(@scene)\n \n @nextScene = scene\n \n Graphics.freeze()\n \n ###*\n * Clears the stack of previous-scenes and disposes all previous-scenes. After that it is not\n * possible to go back to a previous scene using gs.SceneManager.returnToPrevious().\n *\n * @method clear\n ### \n clear: ->\n for scene in @previousScenes\n scene.dispose()\n @previousScenes = []\n \n ###*\n * Returns to the previous scene if that scene was saved before.\n *\n * @method returnToPrevious\n * @param {Function} callback - Called after the scene has been changed.\n ### \n returnToPrevious: (callback) ->\n @callback = callback\n if @previousScenes.length > 0\n scene = @previousScenes.pop()\n \n if @scene?\n @removeObject(@scene)\n \n if scene?\n @nextScene = scene\n \n Graphics.freeze()\n \n ###*\n * Updates the current scene and the scene-handling. Needs to be called once\n * per frame.\n *\n * @method update\n ### \n update: ->\n if @nextScene != @scene\n Input.clear()\n \n if @scene?\n if @previousScenes.indexOf(@scene) == -1\n @scene.dispose()\n else\n @scene.behavior.show(no)\n #@scene.update()\n \n @scene = @nextScene\n @callback?()\n \n if @scene\n @addObject(@scene)\n @scene.loading = true\n @scene.loadingData = true\n @scene.loadingResources = true\n \n if @scene? and not @scene.initialized\n @scene.behavior.initialize()\n @scene.behavior.prepareLoadingScreen()\n @isFadeOut = yes\n else if @scene?.initialized\n @scene.behavior.show(yes)\n @scene.update()\n Graphics.update()\n @scene.behavior.transition()\n else\n Graphics.freeze()\n Graphics.update()\n Graphics.transition(30)\n \n @isFadeOut = yes\n \n if @isFadeOut and Graphics.frozen\n Graphics.update()\n Input.update()\n else\n if @isFadeOut\n AudioManager.stopAllSounds()\n @isFadeOut = no\n if @scene\n Graphics.freeze()\n else\n gs.Application.exit()\n \n DataManager.update()\n ResourceManager.update()\n \n if RecordManager.initialized\n AudioManager.update()\n \n if Graphics.frozen\n Input.update()\n \n super()\n \n \n\nwindow.SceneManager = new SceneManager()\ngs.SceneManager = window.SceneManager",
10 + "compiledContent": "var SceneManager,\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\nSceneManager = (function(superClass) {\n extend(SceneManager, superClass);\n\n\n /**\n * Manages the scenes of the game.\n *\n * @module gs\n * @class SceneManager\n * @memberof gs\n * @constructor\n */\n\n function SceneManager() {\n SceneManager.__super__.constructor.apply(this, arguments);\n\n /**\n * The current scene.\n * @property scene\n * @type gs.Object_Base\n */\n this.scene = null;\n\n /**\n * An array of previous scenes. Used to jump back to last scene from a menu for example.\n * @property previousScenes\n * @type gs.Object_Base\n */\n this.previousScenes = [];\n\n /**\n * The next scene. If set, this scene will become the current scene after next update.\n * @property nextScene\n * @type gs.Object_Base\n */\n this.nextScene = null;\n\n /**\n * The transition-data like the graphic, vague, etc. used for a transition from one scene to another.\n * @property transitionData\n * @type Object\n */\n this.transitionData = {\n graphic: null,\n duration: 20,\n vague: 30\n };\n this.input = true;\n\n /**\n * Called if a scene-change has been done.\n * @property callback\n * @type Function\n */\n this.callback = null;\n this.paused = false;\n }\n\n SceneManager.prototype.initialize = function() {};\n\n\n /**\n * Switches from the current scene to the specified one.\n *\n * @method switchTo\n * @param {gs.Object_Base} scene - The new scene.\n * @param {boolean} savePrevious - Indicates if the current scene should be pushed to previous-scene stack instead\n * of getting disposed. It is possible to switch back to that scene then using gs.SceneManager.returnToPrevious method.\n * @param {Function} callback - Called after the scene has been changed.\n */\n\n SceneManager.prototype.switchTo = function(scene, savePrevious, callback) {\n this.callback = callback;\n if (savePrevious) {\n this.previousScenes.push(this.scene);\n } else if (this.previousScenes.length === 0) {\n gs.Audio.reset();\n }\n if (this.scene != null) {\n this.removeObject(this.scene);\n }\n this.nextScene = scene;\n return Graphics.freeze();\n };\n\n\n /**\n * Clears the stack of previous-scenes and disposes all previous-scenes. After that it is not\n * possible to go back to a previous scene using gs.SceneManager.returnToPrevious().\n *\n * @method clear\n */\n\n SceneManager.prototype.clear = function() {\n var i, len, ref, scene;\n ref = this.previousScenes;\n for (i = 0, len = ref.length; i < len; i++) {\n scene = ref[i];\n scene.dispose();\n }\n return this.previousScenes = [];\n };\n\n\n /**\n * Returns to the previous scene if that scene was saved before.\n *\n * @method returnToPrevious\n * @param {Function} callback - Called after the scene has been changed.\n */\n\n SceneManager.prototype.returnToPrevious = function(callback) {\n var scene;\n this.callback = callback;\n if (this.previousScenes.length > 0) {\n scene = this.previousScenes.pop();\n if (this.scene != null) {\n this.removeObject(this.scene);\n }\n if (scene != null) {\n this.nextScene = scene;\n return Graphics.freeze();\n }\n }\n };\n\n\n /**\n * Updates the current scene and the scene-handling. Needs to be called once\n * per frame.\n *\n * @method update\n */\n\n SceneManager.prototype.update = function() {\n var ref;\n if (this.nextScene !== this.scene) {\n Input.clear();\n if (this.scene != null) {\n if (this.previousScenes.indexOf(this.scene) === -1) {\n this.scene.dispose();\n } else {\n this.scene.behavior.show(false);\n }\n }\n this.scene = this.nextScene;\n if (typeof this.callback === \"function\") {\n this.callback();\n }\n if (this.scene) {\n this.addObject(this.scene);\n this.scene.loading = true;\n this.scene.loadingData = true;\n this.scene.loadingResources = true;\n if ((this.scene != null) && !this.scene.initialized) {\n this.scene.behavior.initialize();\n this.scene.behavior.prepareLoadingScreen();\n this.isFadeOut = true;\n } else if ((ref = this.scene) != null ? ref.initialized : void 0) {\n this.scene.behavior.show(true);\n this.scene.update();\n }\n Graphics.update();\n this.scene.behavior.transition();\n } else {\n Graphics.freeze();\n Graphics.update();\n Graphics.transition(30);\n this.isFadeOut = true;\n }\n }\n if (this.isFadeOut && Graphics.frozen) {\n Graphics.update();\n return Input.update();\n } else {\n if (this.isFadeOut) {\n AudioManager.stopAllSounds();\n this.isFadeOut = false;\n if (this.scene) {\n Graphics.freeze();\n } else {\n gs.Application.exit();\n }\n }\n DataManager.update();\n ResourceManager.update();\n if (RecordManager.initialized) {\n AudioManager.update();\n }\n if (Graphics.frozen) {\n Input.update();\n }\n return SceneManager.__super__.update.call(this);\n }\n };\n\n return SceneManager;\n\n})(gs.ObjectManager);\n\nwindow.SceneManager = new SceneManager();\n\ngs.SceneManager = window.SceneManager;\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEsWUFBQTtFQUFBOzs7QUFBTTs7OztBQUNGOzs7Ozs7Ozs7RUFRYSxzQkFBQTtJQUNULCtDQUFBLFNBQUE7O0FBRUE7Ozs7O0lBS0EsSUFBQyxDQUFBLEtBQUQsR0FBUzs7QUFFVDs7Ozs7SUFLQSxJQUFDLENBQUEsY0FBRCxHQUFrQjs7QUFFbEI7Ozs7O0lBS0EsSUFBQyxDQUFBLFNBQUQsR0FBYTs7QUFFYjs7Ozs7SUFLQSxJQUFDLENBQUEsY0FBRCxHQUFrQjtNQUFFLE9BQUEsRUFBUyxJQUFYO01BQWlCLFFBQUEsRUFBVSxFQUEzQjtNQUErQixLQUFBLEVBQU8sRUFBdEM7O0lBRWxCLElBQUMsQ0FBQSxLQUFELEdBQVM7O0FBQ1Q7Ozs7O0lBS0EsSUFBQyxDQUFBLFFBQUQsR0FBWTtJQUVaLElBQUMsQ0FBQSxNQUFELEdBQVU7RUF2Q0Q7O3lCQTBDYixVQUFBLEdBQVksU0FBQSxHQUFBOzs7QUFFWjs7Ozs7Ozs7Ozt5QkFTQSxRQUFBLEdBQVUsU0FBQyxLQUFELEVBQVEsWUFBUixFQUFzQixRQUF0QjtJQUNOLElBQUMsQ0FBQSxRQUFELEdBQVk7SUFDWixJQUFHLFlBQUg7TUFDSSxJQUFDLENBQUEsY0FBYyxDQUFDLElBQWhCLENBQXFCLElBQUMsQ0FBQSxLQUF0QixFQURKO0tBQUEsTUFFSyxJQUFHLElBQUMsQ0FBQSxjQUFjLENBQUMsTUFBaEIsS0FBMEIsQ0FBN0I7TUFDRCxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQVQsQ0FBQSxFQURDOztJQUdMLElBQUcsa0JBQUg7TUFDSSxJQUFDLENBQUEsWUFBRCxDQUFjLElBQUMsQ0FBQSxLQUFmLEVBREo7O0lBR0EsSUFBQyxDQUFBLFNBQUQsR0FBYTtXQUViLFFBQVEsQ0FBQyxNQUFULENBQUE7RUFaTTs7O0FBY1Y7Ozs7Ozs7eUJBTUEsS0FBQSxHQUFPLFNBQUE7QUFDSCxRQUFBO0FBQUE7QUFB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LElBQUcsYUFBYSxDQUFDLFdBQWpCO1FBQ0ksWUFBWSxDQUFDLE1BQWIsQ0FBQSxFQURKOztNQUdBLElBQUcsUUFBUSxDQUFDLE1BQVo7UUFDSSxLQUFLLENBQUMsTUFBTixDQUFBLEVBREo7O2FBR0EsdUNBQUEsRUFyQko7O0VBcENJOzs7O0dBaEhlLEVBQUUsQ0FBQzs7QUE2SzlCLE1BQU0sQ0FBQyxZQUFQLEdBQTBCLElBQUEsWUFBQSxDQUFBOztBQUMxQixFQUFFLENBQUMsWUFBSCxHQUFrQixNQUFNLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIjID09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT1cbiNcbiMgICBTY3JpcHQ6IFNjZW5lTWFuYWdlclxuI1xuIyAgICQkQ09QWVJJR0hUJCRcbiNcbiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuY2xhc3MgU2NlbmVNYW5hZ2VyIGV4dGVuZHMgZ3MuT2JqZWN0TWFuYWdlclxuICAgICMjIypcbiAgICAqIE1hbmFnZXMgdGhlIHNjZW5lcyBvZiB0aGUgZ2FtZS5cbiAgICAqXG4gICAgKiBAbW9kdWxlIGdzXG4gICAgKiBAY2xhc3MgU2NlbmVNYW5hZ2VyXG4gICAgKiBAbWVtYmVyb2YgZ3NcbiAgICAqIEBjb25zdHJ1Y3RvclxuICAgICMjI1xuICAgIGNvbnN0cnVjdG9yOiAtPlxuICAgICAgICBzdXBlclxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIFRoZSBjdXJyZW50IHNjZW5lLlxuICAgICAgICAqIEBwcm9wZXJ0eSBzY2VuZVxuICAgICAgICAqIEB0eXBlIGdzLk9iamVjdF9CYXNlXG4gICAgICAgICMjIyBcbiAgICAgICAgQHNjZW5lID0gbnVsbFxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEFuIGFycmF5IG9mIHByZXZpb3VzIHNjZW5lcy4gVXNlZCB0byBqdW1wIGJhY2sgdG8gbGFzdCBzY2VuZSBmcm9tIGEgbWVudSBmb3IgZXhhbXBsZS5cbiAgICAgICAgKiBAcHJvcGVydHkgcHJldmlvdXNTY2VuZXNcbiAgICAgICAgKiBAdHlwZSBncy5PYmplY3RfQmFzZVxuICAgICAgICAjIyMgXG4gICAgICAgIEBwcmV2aW91c1NjZW5lcyA9IFtdXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogVGhlIG5leHQgc2NlbmUuIElmIHNldCwgdGhpcyBzY2VuZSB3aWxsIGJlY29tZSB0aGUgY3VycmVudCBzY2VuZSBhZnRlciBuZXh0IHVwZGF0ZS5cbiAgICAgICAgKiBAcHJvcGVydHkgbmV4dFNjZW5lXG4gICAgICAgICogQHR5cGUgZ3MuT2JqZWN0X0Jhc2VcbiAgICAgICAgIyMjIFxuICAgICAgICBAbmV4dFNjZW5lID0gbnVsbFxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIFRoZSB0cmFuc2l0aW9uLWRhdGEgbGlrZSB0aGUgZ3JhcGhpYywgdmFndWUsIGV0Yy4gdXNlZCBmb3IgYSB0cmFuc2l0aW9uIGZyb20gb25lIHNjZW5lIHRvIGFub3RoZXIuXG4gICAgICAgICogQHByb3BlcnR5IHRyYW5zaXRpb25EYXRhXG4gICAgICAgICogQHR5cGUgT2JqZWN0XG4gICAgICAgICMjIyBcbiAgICAgICAgQHRyYW5zaXRpb25EYXRhID0geyBncmFwaGljOiBudWxsLCBkdXJhdGlvbjogMjAsIHZhZ3VlOiAzMCB9XG4gICAgICAgIFxuICAgICAgICBAaW5wdXQgPSB5ZXNcbiAgICAgICAgIyMjKlxuICAgICAgICAqIENhbGxlZCBpZiBhIHNjZW5lLWNoYW5nZSBoYXMgYmVlbiBkb25lLlxuICAgICAgICAqIEBwcm9wZXJ0eSBjYWxsYmFja1xuICAgICAgICAqIEB0eXBlIEZ1bmN0aW9uXG4gICAgICAgICMjIyBcbiAgICAgICAgQGNhbGxiYWNrID0gbnVsbFxuICAgICAgICBcbiAgICAgICAgQHBhdXNlZCA9IG5vXG4gICAgICAgIFxuICAgIFxuICAgIGluaXRpYWxpemU6IC0+XG4gICAgICAgICAgICBcbiAgICAjIyMqXG4gICAgKiBTd2l0Y2hlcyBmcm9tIHRoZSBjdXJyZW50IHNjZW5lIHRvIHRoZSBzcGVjaWZpZWQgb25lLlxuICAgICpcbiAgICAqIEBtZXRob2Qgc3dpdGNoVG9cbiAgICAqIEBwYXJhbSB7Z3MuT2JqZWN0X0Jhc2V9IHNjZW5lIC0gVGhlIG5ldyBzY2VuZS5cbiAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gc2F2ZVByZXZpb3VzIC0gSW5kaWNhdGVzIGlmIHRoZSBjdXJyZW50IHNjZW5lIHNob3VsZCBiZSBwdXNoZWQgdG8gcHJldmlvdXMtc2NlbmUgc3RhY2sgaW5zdGVhZFxuICAgICogb2YgZ2V0dGluZyBkaXNwb3NlZC4gSXQgaXMgcG9zc2libGUgdG8gc3dpdGNoIGJhY2sgdG8gdGhhdCBzY2VuZSB0aGVuIHVzaW5nIGdzLlNjZW5lTWFuYWdlci5yZXR1cm5Ub1ByZXZpb3VzIG1ldGhvZC5cbiAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGVkIGFmdGVyIHRoZSBzY2VuZSBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICMjI1xuICAgIHN3aXRjaFRvOiAoc2NlbmUsIHNhdmVQcmV2aW91cywgY2FsbGJhY2spIC0+XG4gICAgICAgIEBjYWxsYmFjayA9IGNhbGxiYWNrXG4gICAgICAgIGlmIHNhdmVQcmV2aW91c1xuICAgICAgICAgICAgQHByZXZpb3VzU2NlbmVzLnB1c2goQHNjZW5lKVxuICAgICAgICBlbHNlIGlmIEBwcmV2aW91c1NjZW5lcy5sZW5ndGggPT0gMFxuICAgICAgICAgICAgZ3MuQXVkaW8ucmVzZXQoKVxuICAgIFxuICAgICAgICBpZiBAc2NlbmU/XG4gICAgICAgICAgICBAcmVtb3ZlT2JqZWN0KEBzY2VuZSlcbiAgICAgICAgICAgIFxuICAgICAgICBAbmV4dFNjZW5lID0gc2NlbmVcbiAgICAgICAgXG4gICAgICAgIEdyYXBoaWNzLmZyZWV6ZSgpXG4gICAgXG4gICAgIyMjKlxuICAgICogQ2xlYXJzIHRoZSBzdGFjayBvZiBwcmV2aW91cy1zY2VuZXMgYW5kIGRpc3Bvc2VzIGFsbCBwcmV2aW91cy1zY2VuZXMuIEFmdGVyIHRoYXQgaXQgaXMgbm90XG4gICAgKiBwb3NzaWJsZSB0byBnbyBiYWNrIHRvIGEgcHJldmlvdXMgc2NlbmUgdXNpbmcgZ3MuU2NlbmVNYW5hZ2VyLnJldHVyblRvUHJldmlvdXMoKS5cbiAgICAqXG4gICAgKiBAbWV0aG9kIGNsZWFyXG4gICAgIyMjICAgIFxuICAgIGNsZWFyOiAtPlxuICAgICAgICBmb3Igc2NlbmUgaW4gQHByZXZpb3VzU2NlbmVzXG4gICAgICAgICAgc2NlbmUuZGlzcG9zZSgpXG4gICAgICAgIEBwcmV2aW91c1NjZW5lcyA9IFtdXG4gICAgIFxuICAgICMjIypcbiAgICAqIFJldHVybnMgdG8gdGhlIHByZXZpb3VzIHNjZW5lIGlmIHRoYXQgc2NlbmUgd2FzIHNhdmVkIGJlZm9yZS5cbiAgICAqXG4gICAgKiBAbWV0aG9kIHJldHVyblRvUHJldmlvdXNcbiAgICAqIEBwYXJhbSB7RnVuY3Rpb259IGNhbGxiYWNrIC0gQ2FsbGVkIGFmdGVyIHRoZSBzY2VuZSBoYXMgYmVlbiBjaGFuZ2VkLlxuICAgICMjIyAgICBcbiAgICByZXR1cm5Ub1ByZXZpb3VzOiAoY2FsbGJhY2spIC0+XG4gICAgICAgIEBjYWxsYmFjayA9IGNhbGxiYWNrXG4gICAgICAgIGlmIEBwcmV2aW91c1NjZW5lcy5sZW5ndGggPiAwXG4gICAgICAgICAgICBzY2VuZSA9IEBwcmV2aW91c1NjZW5lcy5wb3AoKVxuICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiBAc2NlbmU/XG4gICAgICAgICAgICAgICAgQHJlbW92ZU9iamVjdChAc2NlbmUpXG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICBpZiBzY2VuZT9cbiAgICAgICAgICAgICAgICBAbmV4dFNjZW5lID0gc2NlbmVcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBHcmFwaGljcy5mcmVlemUoKVxuICAgICBcbiAgICAjIyMqXG4gICAgKiBVcGRhdGVzIHRoZSBjdXJyZW50IHNjZW5lIGFuZCB0aGUgc2NlbmUtaGFuZGxpbmcuIE5lZWRzIHRvIGJlIGNhbGxlZCBvbmNlXG4gICAgKiBwZXIgZnJhbWUuXG4gICAgKlxuICAgICogQG1ldGhvZCB1cGRhdGVcbiAgICAjIyMgICBcbiAgICB1cGRhdGU6IC0+XG4gICAgICAgIGlmIEBuZXh0U2NlbmUgIT0gQHNjZW5lXG4gICAgICAgICAgICBJbnB1dC5jbGVhcigpXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIGlmIEBzY2VuZT9cbiAgICAgICAgICAgICAgICBpZiBAcHJldmlvdXNTY2VuZXMuaW5kZXhPZihAc2NlbmUpID09IC0xXG4gICAgICAgICAgICAgICAgICAgIEBzY2VuZS5kaXNwb3NlKClcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIEBzY2VuZS5iZWhhdmlvci5zaG93KG5vKVxuICAgICAgICAgICAgICAgICAgICAjQHNjZW5lLnVwZGF0ZSgpXG4gICAgICAgICAgICBcbiAgICAgICAgICAgIEBzY2VuZSA9IEBuZXh0U2NlbmVcbiAgICAgICAgICAgIEBjYWxsYmFjaz8oKVxuICAgXG4gICAgICAgICAgICBpZiBAc2NlbmVcbiAgICAgICAgICAgICAgICBAYWRkT2JqZWN0KEBzY2VuZSlcbiAgICAgICAgICAgICAgICBAc2NlbmUubG9hZGluZyA9IHRydWVcbiAgICAgICAgICAgICAgICBAc2NlbmUubG9hZGluZ0RhdGEgPSB0cnVlXG4gICAgICAgICAgICAgICAgQHNjZW5lLmxvYWRpbmdSZXNvdXJjZXMgPSB0cnVlXG4gICAgICAgIFxuICAgICAgICAgICAgICAgIGlmIEBzY2VuZT8gYW5kIG5vdCBAc2NlbmUuaW5pdGlhbGl6ZWRcbiAgICAgICAgICAgICAgICAgICAgQHNjZW5lLmJlaGF2aW9yLmluaXRpYWxpemUoKVxuICAgICAgICAgICAgICAgICAgICBAc2NlbmUuYmVoYXZpb3IucHJlcGFyZUxvYWRpbmdTY3JlZW4oKVxuICAgICAgICAgICAgICAgICAgICBAaXNGYWRlT3V0ID0geWVzXG4gICAgICAgICAgICAgICAgZWxzZSBpZiBAc2NlbmU/LmluaXRpYWxpemVkXG4gICAgICAgICAgICAgICAgICAgIEBzY2VuZS5iZWhhdmlvci5zaG93KHllcylcbiAgICAgICAgICAgICAgICAgICAgQHNjZW5lLnVwZGF0ZSgpXG4gICAgICAgICAgICAgICAgR3JhcGhpY3MudXBkYXRlKClcbiAgICAgICAgICAgICAgICBAc2NlbmUuYmVoYXZpb3IudHJhbnNpdGlvbigpXG4gICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgR3JhcGhpY3MuZnJlZXplKClcbiAgICAgICAgICAgICAgICBHcmFwaGljcy51cGRhdGUoKVxuICAgICAgICAgICAgICAgIEdyYXBoaWNzLnRyYW5zaXRpb24oMzApXG4gICAgICAgICAgICBcbiAgICAgICAgICAgICAgICBAaXNGYWRlT3V0ID0geWVzXG4gICAgICAgICAgICBcbiAgICAgICAgaWYgQGlzRmFkZU91dCBhbmQgR3JhcGhpY3MuZnJvemVuXG4gICAgICAgICAgICBHcmFwaGljcy51cGRhdGUoKVxuICAgICAgICAgICAgSW5wdXQudXBkYXRlKClcbiAgICAgICAgZWxzZVxuICAgICAgICAgICAgaWYgQGlzRmFkZU91dFxuICAgICAgICAgICAgICAgIEF1ZGlvTWFuYWdlci5zdG9wQWxsU291bmRzKClcbiAgICAgICAgICAgICAgICBAaXNGYWRlT3V0ID0gbm9cbiAgICAgICAgICAgICAgICBpZiBAc2NlbmVcbiAgICAgICAgICAgICAgICAgICAgR3JhcGhpY3MuZnJlZXplKClcbiAgICAgICAgICAgICAgICBlbHNlXG4gICAgICAgICAgICAgICAgICAgIGdzLkFwcGxpY2F0aW9uLmV4aXQoKVxuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIERhdGFNYW5hZ2VyLnVwZGF0ZSgpXG4gICAgICAgICAgICBSZXNvdXJjZU1hbmFnZXIudXBkYXRlKClcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgUmVjb3JkTWFuYWdlci5pbml0aWFsaXplZFxuICAgICAgICAgICAgICAgIEF1ZGlvTWFuYWdlci51cGRhdGUoKVxuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgaWYgR3JhcGhpY3MuZnJvemVuXG4gICAgICAgICAgICAgICAgSW5wdXQudXBkYXRlKClcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgIHN1cGVyKClcbiAgICAgICAgIFxuICAgICAgICAgICAgXG5cbndpbmRvdy5TY2VuZU1hbmFnZXIgPSBuZXcgU2NlbmVNYW5hZ2VyKClcbmdzLlNjZW5lTWFuYWdlciA9IHdpbmRvdy5TY2VuZU1hbmFnZXIiXX0=\n//# sourceURL=SceneManager_31.js",
11 11 "parentId": "C0268943K60B3A42B7SA6F1EDDCF2F642FD7"
12 12 },
13 13 "summary": [