

Nextrek
@ 1348
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
{ "uid": "37BD01A5KBA1BA4238S876AE816A837C1419", "isLoaded": true, "lastModificationTime": 0, "items": { "name": "Object_Scene", "type": "game_script", "order": 16, "content": "# ===================================================================\n#\n# Script: Object_Scene\n#\n# $$COPYRIGHT$$\n#\n# ===================================================================\nclass Object_Scene extends gs.Object_Base\n # @objectCodecBlackList = [\"parent\", \"subObjects\", \"preparing\", \"behavior\", \"interpreter\", \"events\", \"sceneData\",\n # \"characterContainer\", \"pictureContainer\", \"textContainer\", \"videoContainer\", \"messageAreas\", \"hotspotContainer\", \"commonEventContainer\",\n # \"pictures\", \"texts\", \"videos\", \"messageAreas\", \"hotspots\", \"commonEvents\", \"layout\", \"layoutNVL\"]\n \n @accessors \"visible\", \n set: (v) -> \n if v != @visible_\n @visible_ = v\n @needsUpdate = yes\n @fullRefresh()\n \n get: -> @visible_ and (!@parent or @parent.visible)\n \n ###*\n * A scene object manages a whole visual novel scene with backgrounds, characters,\n * messages, etc.\n *\n * @module vn\n * @class Object_Scene\n * @extends gs.Object_Base\n * @memberof vn\n * @constructor\n ### \n constructor: ->\n super()\n \n ###*\n * Indicates that the scene is still in prepare-state and not ready yet.\n * @property preparing\n * @type boolean\n ###\n @preparing = yes\n \n ###*\n * The behavior-component for the VN scene specific behavior.\n * @property behavior\n * @type gs.Component_GameSceneBehavior\n ###\n @behavior = new vn.Component_GameSceneBehavior()\n \n ###*\n * An interpreter to execute the commands of scene.\n * @property interpreter\n * @type gs.Component_CommandInterpreter\n ###\n @interpreter = new gs.Component_CommandInterpreter()\n \n ###*\n * An event-emitter to emit events.\n * @property events\n * @type gs.Component_EventEmitter\n ###\n @events = new gs.Component_EventEmitter()\n \n ###*\n * Contains all background objects of the scene.\n * @property backgroundContainer\n * @type gs.Object_Container\n ###\n @backgroundContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL)\n \n ###*\n * Contains all character objects of the scene.\n * @property characterContainer\n * @type gs.Object_Container\n ###\n @characterContainer = new gs.Object_Container(gs.ContainerDisposeBehavior.REMOVE)\n \n ###*\n * Contains all picture objects of the scene.\n * @property pictureContainer\n * @type gs.Object_Container\n ###\n @pictureContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL)\n \n ###*\n * Contains all video objects of the scene.\n * @property videoContainer\n * @type gs.Object_Container\n ###\n @videoContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL)\n \n ###*\n * Contains all text objects of the scene.\n * @property textContainer\n * @type gs.Object_Container\n ###\n @textContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL)\n \n ###*\n * Contains all hotspot objects of the scene.\n * @property hotspotContainer\n * @type gs.Object_Container\n ###\n @hotspotContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL)\n \n ###*\n * Contains all common events which are running parallel/auto to the scene.\n * @property commonEventContainer\n * @type gs.Object_Container\n ###\n @commonEventContainer = new gs.Object_Container(gs.ContainerDisposeBehavior.NULL)\n \n ###*\n * Contains all viewports which are used to create multi-layered screen effects.\n * @property viewportContainer\n * @type gs.Object_Container\n ###\n @viewportContainer = new gs.Object_Container(gs.ContainerDisposeBehavior.REMOVE)\n \n ###*\n * Contains all interval timers.\n * @property timerContainer\n * @type gs.Object_Container\n ###\n @timerContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL)\n \n ###*\n * Contains all message areas of the scene.\n * @property messageAreaContainer\n * @type gs.Object_Container\n ###\n @messageAreaContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL)\n \n @characterContainer.visible = yes\n \n ###*\n * All picture objects as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property pictures\n * @type gs.Object_Picture[]\n * @readOnly\n ###\n @pictures = @pictureContainer.subObjects\n \n ###*\n * All video objects as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property videos\n * @type gs.Object_Video[]\n * @readOnly\n ###\n @videos = @videoContainer.subObjects\n \n ###*\n * All text objects as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property texts\n * @type gs.Object_Text[]\n * @readOnly\n ###\n @texts = @textContainer.subObjects\n \n ###*\n * All character objects as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property characters\n * @type gs.Object_Character[]\n * @readOnly\n ###\n @characters = @characterContainer.subObjects\n \n ###*\n * All backgrounds as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property backgrounds\n * @type gs.Object_Background[]\n * @readOnly\n ###\n @backgrounds = @backgroundContainer.subObjects\n \n ###*\n * All hotspot objects as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property hotspots\n * @type gs.Object_Hotspot[]\n * @readOnly\n ###\n @hotspots = @hotspotContainer.subObjects\n \n ###*\n * All interval timer objects as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property timers\n * @type gs.Object_IntervalTimer[]\n * @readOnly\n ###\n @timers = @timerContainer.subObjects\n \n ###*\n * All message areas as array.\n * @property messageAreas\n * @type vn.MessageArea[]\n * @readOnly\n ###\n @messageAreas = @messageAreaContainer.subObjects\n \n ###*\n * The current list of choices which should be displayed\n * on the screen. New choices are usually added using\n * Add Choice command in Scene Editor before all choices are\n * displayed via Show Choices command.\n * @property choices\n * @type vn.Choice[]\n ###\n @choices = []\n \n ###*\n * A timer object used for choices with time-limit.\n * @property choiceTimer\n * @type gs.Object_Timer\n ###\n @choiceTimer = new gs.Object_Timer()\n \n ###*\n * Indicates if the UI layout is visible.\n * @property visible\n * @type boolean\n ###\n @visible = yes\n \n ###*\n * @property visible_\n * @type boolean\n * @protected\n ###\n @visible_ = yes\n \n ###*\n * The game settings.\n * @property settings\n * @type Object\n ###\n @settings = GameManager.settings\n \n ###*\n * Temporary settings like skip, etc.\n * @property tempSettings\n * @type Object\n ###\n @tempSettings = GameManager.tempSettings\n \n ###*\n * Contains all data necessary to construct the scene.\n * @property sceneData\n * @type Object\n ###\n @sceneData = GameManager.sceneData\n \n @addObject(@backgroundContainer)\n @addObject(@characterContainer)\n @addObject(@pictureContainer)\n @addObject(@textContainer)\n @addObject(@videoContainer)\n @addObject(@hotspotContainer)\n @addObject(@viewportContainer)\n @addObject(@commonEventContainer)\n @addObject(@timerContainer)\n @addObject(@choiceTimer)\n @addObject(@messageAreaContainer)\n \n \n @addComponent(new gs.Component_InputHandler())\n @addComponent(@behavior)\n @addComponent(@interpreter)\n \n \nvn.Object_Scene = Object_Scene", "parentId": "A05E7029K45DBA459BSADF4EEC07A526241A", "folder": false, "compiledContent": "var Object_Scene,\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\nObject_Scene = (function(superClass) {\n extend(Object_Scene, superClass);\n\n Object_Scene.accessors(\"visible\", {\n set: function(v) {\n if (v !== this.visible_) {\n this.visible_ = v;\n this.needsUpdate = true;\n return this.fullRefresh();\n }\n },\n get: function() {\n return this.visible_ && (!this.parent || this.parent.visible);\n }\n });\n\n\n /**\n * A scene object manages a whole visual novel scene with backgrounds, characters,\n * messages, etc.\n *\n * @module vn\n * @class Object_Scene\n * @extends gs.Object_Base\n * @memberof vn\n * @constructor\n */\n\n function Object_Scene() {\n Object_Scene.__super__.constructor.call(this);\n\n /**\n * Indicates that the scene is still in prepare-state and not ready yet.\n * @property preparing\n * @type boolean\n */\n this.preparing = true;\n\n /**\n * The behavior-component for the VN scene specific behavior.\n * @property behavior\n * @type gs.Component_GameSceneBehavior\n */\n this.behavior = new vn.Component_GameSceneBehavior();\n\n /**\n * An interpreter to execute the commands of scene.\n * @property interpreter\n * @type gs.Component_CommandInterpreter\n */\n this.interpreter = new gs.Component_CommandInterpreter();\n\n /**\n * An event-emitter to emit events.\n * @property events\n * @type gs.Component_EventEmitter\n */\n this.events = new gs.Component_EventEmitter();\n\n /**\n * Contains all background objects of the scene.\n * @property backgroundContainer\n * @type gs.Object_Container\n */\n this.backgroundContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL);\n\n /**\n * Contains all character objects of the scene.\n * @property characterContainer\n * @type gs.Object_Container\n */\n this.characterContainer = new gs.Object_Container(gs.ContainerDisposeBehavior.REMOVE);\n\n /**\n * Contains all picture objects of the scene.\n * @property pictureContainer\n * @type gs.Object_Container\n */\n this.pictureContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL);\n\n /**\n * Contains all video objects of the scene.\n * @property videoContainer\n * @type gs.Object_Container\n */\n this.videoContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL);\n\n /**\n * Contains all text objects of the scene.\n * @property textContainer\n * @type gs.Object_Container\n */\n this.textContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL);\n\n /**\n * Contains all hotspot objects of the scene.\n * @property hotspotContainer\n * @type gs.Object_Container\n */\n this.hotspotContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL);\n\n /**\n * Contains all common events which are running parallel/auto to the scene.\n * @property commonEventContainer\n * @type gs.Object_Container\n */\n this.commonEventContainer = new gs.Object_Container(gs.ContainerDisposeBehavior.NULL);\n\n /**\n * Contains all viewports which are used to create multi-layered screen effects.\n * @property viewportContainer\n * @type gs.Object_Container\n */\n this.viewportContainer = new gs.Object_Container(gs.ContainerDisposeBehavior.REMOVE);\n\n /**\n * Contains all interval timers.\n * @property timerContainer\n * @type gs.Object_Container\n */\n this.timerContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL);\n\n /**\n * Contains all message areas of the scene.\n * @property messageAreaContainer\n * @type gs.Object_Container\n */\n this.messageAreaContainer = new gs.Object_DomainContainer(gs.ContainerDisposeBehavior.NULL);\n this.characterContainer.visible = true;\n\n /**\n * All picture objects as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property pictures\n * @type gs.Object_Picture[]\n * @readOnly\n */\n this.pictures = this.pictureContainer.subObjects;\n\n /**\n * All video objects as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property videos\n * @type gs.Object_Video[]\n * @readOnly\n */\n this.videos = this.videoContainer.subObjects;\n\n /**\n * All text objects as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property texts\n * @type gs.Object_Text[]\n * @readOnly\n */\n this.texts = this.textContainer.subObjects;\n\n /**\n * All character objects as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property characters\n * @type gs.Object_Character[]\n * @readOnly\n */\n this.characters = this.characterContainer.subObjects;\n\n /**\n * All backgrounds as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property backgrounds\n * @type gs.Object_Background[]\n * @readOnly\n */\n this.backgrounds = this.backgroundContainer.subObjects;\n\n /**\n * All hotspot objects as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property hotspots\n * @type gs.Object_Hotspot[]\n * @readOnly\n */\n this.hotspots = this.hotspotContainer.subObjects;\n\n /**\n * All interval timer objects as array. That is the same like accessing the <b>subObjects</b> of the\n * container object.\n * @property timers\n * @type gs.Object_IntervalTimer[]\n * @readOnly\n */\n this.timers = this.timerContainer.subObjects;\n\n /**\n * All message areas as array.\n * @property messageAreas\n * @type vn.MessageArea[]\n * @readOnly\n */\n this.messageAreas = this.messageAreaContainer.subObjects;\n\n /**\n * The current list of choices which should be displayed\n * on the screen. New choices are usually added using\n * Add Choice command in Scene Editor before all choices are\n * displayed via Show Choices command.\n * @property choices\n * @type vn.Choice[]\n */\n this.choices = [];\n\n /**\n * A timer object used for choices with time-limit.\n * @property choiceTimer\n * @type gs.Object_Timer\n */\n this.choiceTimer = new gs.Object_Timer();\n\n /**\n * Indicates if the UI layout is visible.\n * @property visible\n * @type boolean\n */\n this.visible = true;\n\n /**\n * @property visible_\n * @type boolean\n * @protected\n */\n this.visible_ = true;\n\n /**\n * The game settings.\n * @property settings\n * @type Object\n */\n this.settings = GameManager.settings;\n\n /**\n * Temporary settings like skip, etc.\n * @property tempSettings\n * @type Object\n */\n this.tempSettings = GameManager.tempSettings;\n\n /**\n * Contains all data necessary to construct the scene.\n * @property sceneData\n * @type Object\n */\n this.sceneData = GameManager.sceneData;\n this.addObject(this.backgroundContainer);\n this.addObject(this.characterContainer);\n this.addObject(this.pictureContainer);\n this.addObject(this.textContainer);\n this.addObject(this.videoContainer);\n this.addObject(this.hotspotContainer);\n this.addObject(this.viewportContainer);\n this.addObject(this.commonEventContainer);\n this.addObject(this.timerContainer);\n this.addObject(this.choiceTimer);\n this.addObject(this.messageAreaContainer);\n this.addComponent(new gs.Component_InputHandler());\n this.addComponent(this.behavior);\n this.addComponent(this.interpreter);\n }\n\n return Object_Scene;\n\n})(gs.Object_Base);\n\nvn.Object_Scene = Object_Scene;\n\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU9BLElBQUEsWUFBQTtFQUFBOzs7QUFBTTs7O0VBS0YsWUFBQyxDQUFBLFNBQUQsQ0FBVyxTQUFYLEVBQ0k7SUFBQSxHQUFBLEVBQUssU0FBQyxDQUFEO01BQ0QsSUFBRyxDQUFBLEtBQUssSUFBQyxDQUFBLFFBQVQ7UUFDSSxJQUFDLENBQUEsUUFBRCxHQUFZO1FBQ1osSUFBQyxDQUFBLFdBQUQsR0FBZTtlQUNmLElBQUMsQ0FBQSxXQUFELENBQUEsRUFISjs7SUFEQyxDQUFMO0lBTUEsR0FBQSxFQUFLLFNBQUE7YUFBRyxJQUFDLENBQUEsUUFBRCxJQUFjLENBQUMsQ0FBQyxJQUFDLENBQUEsTUFBRixJQUFZLElBQUMsQ0FBQSxNQUFNLENBQUMsT0FBckI7SUFBakIsQ0FOTDtHQURKOzs7QUFTQTs7Ozs7Ozs7Ozs7RUFVYSxzQkFBQTtJQUNULDRDQUFBOztBQUVBOzs7OztJQUtBLElBQUMsQ0FBQSxTQUFELEdBQWE7O0FBRWI7Ozs7O0lBS0EsSUFBQyxDQUFBLFFBQUQsR0FBZ0IsSUFBQSxFQUFFLENBQUMsMkJBQUgsQ0FBQTs7QUFFaEI7Ozs7O0lBS0EsSUFBQyxDQUFBLFdBQUQsR0FBbUIsSUFBQSxFQUFFLENBQUMsNEJBQUgsQ0FBQTs7QUFFbkI7Ozs7O0lBS0EsSUFBQyxDQUFBLE1BQUQsR0FBYyxJQUFBLEVBQUUsQ0FBQyxzQkFBSCxDQUFBOztBQUVkOzs7OztJQUtBLElBQUMsQ0FBQSxtQkFBRCxHQUEyQixJQUFBLEVBQUUsQ0FBQyxzQkFBSCxDQUEwQixFQUFFLENBQUMsd0JBQXdCLENBQUMsSUFBdEQ7O0FBRTNCOzs7OztJQUtBLElBQUMsQ0FBQSxrQkFBRCxHQUEwQixJQUFBLEVBQUUsQ0FBQyxnQkFBSCxDQUFvQixFQUFFLENBQUMsd0JBQXdCLENBQUMsTUFBaEQ7O0FBRTFCOzs7OztJQUtBLElBQUMsQ0FBQSxnQkFBRCxHQUF3QixJQUFBLEVB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QkFBWjtJQUNBLElBQUMsQ0FBQSxTQUFELENBQVcsSUFBQyxDQUFBLG9CQUFaO0lBQ0EsSUFBQyxDQUFBLFNBQUQsQ0FBVyxJQUFDLENBQUEsY0FBWjtJQUNBLElBQUMsQ0FBQSxTQUFELENBQVcsSUFBQyxDQUFBLFdBQVo7SUFDQSxJQUFDLENBQUEsU0FBRCxDQUFXLElBQUMsQ0FBQSxvQkFBWjtJQUdBLElBQUMsQ0FBQSxZQUFELENBQWtCLElBQUEsRUFBRSxDQUFDLHNCQUFILENBQUEsQ0FBbEI7SUFDQSxJQUFDLENBQUEsWUFBRCxDQUFjLElBQUMsQ0FBQSxRQUFmO0lBQ0EsSUFBQyxDQUFBLFlBQUQsQ0FBYyxJQUFDLENBQUEsV0FBZjtFQWpQUzs7OztHQXhCVSxFQUFFLENBQUM7O0FBNFE5QixFQUFFLENBQUMsWUFBSCxHQUFrQiIsInNvdXJjZXNDb250ZW50IjpbIiMgPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PVxuI1xuIyAgIFNjcmlwdDogT2JqZWN0X1NjZW5lXG4jXG4jICAgJCRDT1BZUklHSFQkJFxuI1xuIyA9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09XG5jbGFzcyBPYmplY3RfU2NlbmUgZXh0ZW5kcyBncy5PYmplY3RfQmFzZVxuICAjICBAb2JqZWN0Q29kZWNCbGFja0xpc3QgPSBbXCJwYXJlbnRcIiwgXCJzdWJPYmplY3RzXCIsIFwicHJlcGFyaW5nXCIsIFwiYmVoYXZpb3JcIiwgXCJpbnRlcnByZXRlclwiLCBcImV2ZW50c1wiLCBcInNjZW5lRGF0YVwiLFxuICAjICBcImNoYXJhY3RlckNvbnRhaW5lclwiLCBcInBpY3R1cmVDb250YWluZXJcIiwgXCJ0ZXh0Q29udGFpbmVyXCIsIFwidmlkZW9Db250YWluZXJcIiwgXCJtZXNzYWdlQXJlYXNcIiwgXCJob3RzcG90Q29udGFpbmVyXCIsIFwiY29tbW9uRXZlbnRDb250YWluZXJcIixcbiAgIyAgXCJwaWN0dXJlc1wiLCBcInRleHRzXCIsIFwidmlkZW9zXCIsIFwibWVzc2FnZUFyZWFzXCIsIFwiaG90c3BvdHNcIiwgXCJjb21tb25FdmVudHNcIiwgXCJsYXlvdXRcIiwgXCJsYXlvdXROVkxcIl1cbiAgICBcbiAgICBAYWNjZXNzb3JzIFwidmlzaWJsZVwiLCBcbiAgICAgICAgc2V0OiAodikgLT4gXG4gICAgICAgICAgICBpZiB2ICE9IEB2aXNpYmxlX1xuICAgICAgICAgICAgICAgIEB2aXNpYmxlXyA9IHZcbiAgICAgICAgICAgICAgICBAbmVlZHNVcGRhdGUgPSB5ZXNcbiAgICAgICAgICAgICAgICBAZnVsbFJlZnJlc2goKVxuICAgICAgICAgICAgXG4gICAgICAgIGdldDogLT4gQHZpc2libGVfIGFuZCAoIUBwYXJlbnQgb3IgQHBhcmVudC52aXNpYmxlKVxuICAgIFxuICAgICMjIypcbiAgICAqIEEgc2NlbmUgb2JqZWN0IG1hbmFnZXMgYSB3aG9sZSB2aXN1YWwgbm92ZWwgc2NlbmUgd2l0aCBiYWNrZ3JvdW5kcywgY2hhcmFjdGVycyxcbiAgICAqIG1lc3NhZ2VzLCBldGMuXG4gICAgKlxuICAgICogQG1vZHVsZSB2blxuICAgICogQGNsYXNzIE9iamVjdF9TY2VuZVxuICAgICogQGV4dGVuZHMgZ3MuT2JqZWN0X0Jhc2VcbiAgICAqIEBtZW1iZXJvZiB2blxuICAgICogQGNvbnN0cnVjdG9yXG4gICAgIyMjICAgIFxuICAgIGNvbnN0cnVjdG9yOiAtPlxuICAgICAgICBzdXBlcigpXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogSW5kaWNhdGVzIHRoYXQgdGhlIHNjZW5lIGlzIHN0aWxsIGluIHByZXBhcmUtc3RhdGUgYW5kIG5vdCByZWFkeSB5ZXQuXG4gICAgICAgICogQHByb3BlcnR5IHByZXBhcmluZ1xuICAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAgIyMjXG4gICAgICAgIEBwcmVwYXJpbmcgPSB5ZXNcbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBUaGUgYmVoYXZpb3ItY29tcG9uZW50IGZvciB0aGUgVk4gc2NlbmUgc3BlY2lmaWMgYmVoYXZpb3IuXG4gICAgICAgICogQHByb3BlcnR5IGJlaGF2aW9yXG4gICAgICAgICogQHR5cGUgZ3MuQ29tcG9uZW50X0dhbWVTY2VuZUJlaGF2aW9yXG4gICAgICAgICMjI1xuICAgICAgICBAYmVoYXZpb3IgPSBuZXcgdm4uQ29tcG9uZW50X0dhbWVTY2VuZUJlaGF2aW9yKClcbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBBbiBpbnRlcnByZXRlciB0byBleGVjdXRlIHRoZSBjb21tYW5kcyBvZiBzY2VuZS5cbiAgICAgICAgKiBAcHJvcGVydHkgaW50ZXJwcmV0ZXJcbiAgICAgICAgKiBAdHlwZSBncy5Db21wb25lbnRfQ29tbWFuZEludGVycHJldGVyXG4gICAgICAgICMjI1xuICAgICAgICBAaW50ZXJwcmV0ZXIgPSBuZXcgZ3MuQ29tcG9uZW50X0NvbW1hbmRJbnRlcnByZXRlcigpXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQW4gZXZlbnQtZW1pdHRlciB0byBlbWl0IGV2ZW50cy5cbiAgICAgICAgKiBAcHJvcGVydHkgZXZlbnRzXG4gICAgICAgICogQHR5cGUgZ3MuQ29tcG9uZW50X0V2ZW50RW1pdHRlclxuICAgICAgICAjIyNcbiAgICAgICAgQGV2ZW50cyA9IG5ldyBncy5Db21wb25lbnRfRXZlbnRFbWl0dGVyKClcbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBDb250YWlucyBhbGwgYmFja2dyb3VuZCBvYmplY3RzIG9mIHRoZSBzY2VuZS5cbiAgICAgICAgKiBAcHJvcGVydHkgYmFja2dyb3VuZENvbnRhaW5lclxuICAgICAgICAqIEB0eXBlIGdzLk9iamVjdF9Db250YWluZXJcbiAgICAgICAgIyMjXG4gICAgICAgIEBiYWNrZ3JvdW5kQ29udGFpbmVyID0gbmV3IGdzLk9iamVjdF9Eb21haW5Db250YWluZXIoZ3MuQ29udGFpbmVyRGlzcG9zZUJlaGF2aW9yLk5VTEwpXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQ29udGFpbnMgYWxsIGNoYXJhY3RlciBvYmplY3RzIG9mIHRoZSBzY2VuZS5cbiAgICAgICAgKiBAcHJvcGVydHkgY2hhcmFjdGVyQ29udGFpbmVyXG4gICAgICAgICogQHR5cGUgZ3MuT2JqZWN0X0NvbnRhaW5lclxuICAgICAgICAjIyNcbiAgICAgICAgQGNoYXJhY3RlckNvbnRhaW5lciA9IG5ldyBncy5PYmplY3RfQ29udGFpbmVyKGdzLkNvbnRhaW5lckRpc3Bvc2VCZWhhdmlvci5SRU1PVkUpXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQ29udGFpbnMgYWxsIHBpY3R1cmUgb2JqZWN0cyBvZiB0aGUgc2NlbmUuXG4gICAgICAgICogQHByb3BlcnR5IHBpY3R1cmVDb250YWluZXJcbiAgICAgICAgKiBAdHlwZSBncy5PYmplY3RfQ29udGFpbmVyXG4gICAgICAgICMjI1xuICAgICAgICBAcGljdHVyZUNvbnRhaW5lciA9IG5ldyBncy5PYmplY3RfRG9tYWluQ29udGFpbmVyKGdzLkNvbnRhaW5lckRpc3Bvc2VCZWhhdmlvci5OVUxMKVxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIENvbnRhaW5zIGFsbCB2aWRlbyBvYmplY3RzIG9mIHRoZSBzY2VuZS5cbiAgICAgICAgKiBAcHJvcGVydHkgdmlkZW9Db250YWluZXJcbiAgICAgICAgKiBAdHlwZSBncy5PYmplY3RfQ29udGFpbmVyXG4gICAgICAgICMjI1xuICAgICAgICBAdmlkZW9Db250YWluZXIgPSBuZXcgZ3MuT2JqZWN0X0RvbWFpbkNvbnRhaW5lcihncy5Db250YWluZXJEaXNwb3NlQmVoYXZpb3IuTlVMTClcbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBDb250YWlucyBhbGwgdGV4dCBvYmplY3RzIG9mIHRoZSBzY2VuZS5cbiAgICAgICAgKiBAcHJvcGVydHkgdGV4dENvbnRhaW5lclxuICAgICAgICAqIEB0eXBlIGdzLk9iamVjdF9Db250YWluZXJcbiAgICAgICAgIyMjXG4gICAgICAgIEB0ZXh0Q29udGFpbmVyID0gbmV3IGdzLk9iamVjdF9Eb21haW5Db250YWluZXIoZ3MuQ29udGFpbmVyRGlzcG9zZUJlaGF2aW9yLk5VTEwpXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQ29udGFpbnMgYWxsIGhvdHNwb3Qgb2JqZWN0cyBvZiB0aGUgc2NlbmUuXG4gICAgICAgICogQHByb3BlcnR5IGhvdHNwb3RDb250YWluZXJcbiAgICAgICAgKiBAdHlwZSBncy5PYmplY3RfQ29udGFpbmVyXG4gICAgICAgICMjI1xuICAgICAgICBAaG90c3BvdENvbnRhaW5lciA9IG5ldyBncy5PYmplY3RfRG9tYWluQ29udGFpbmVyKGdzLkNvbnRhaW5lckRpc3Bvc2VCZWhhdmlvci5OVUxMKVxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIENvbnRhaW5zIGFsbCBjb21tb24gZXZlbnRzIHdoaWNoIGFyZSBydW5uaW5nIHBhcmFsbGVsL2F1dG8gdG8gdGhlIHNjZW5lLlxuICAgICAgICAqIEBwcm9wZXJ0eSBjb21tb25FdmVudENvbnRhaW5lclxuICAgICAgICAqIEB0eXBlIGdzLk9iamVjdF9Db250YWluZXJcbiAgICAgICAgIyMjXG4gICAgICAgIEBjb21tb25FdmVudENvbnRhaW5lciA9IG5ldyBncy5PYmplY3RfQ29udGFpbmVyKGdzLkNvbnRhaW5lckRpc3Bvc2VCZWhhdmlvci5OVUxMKVxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIENvbnRhaW5zIGFsbCB2aWV3cG9ydHMgd2hpY2ggYXJlIHVzZWQgdG8gY3JlYXRlIG11bHRpLWxheWVyZWQgc2NyZWVuIGVmZmVjdHMuXG4gICAgICAgICogQHByb3BlcnR5IHZpZXdwb3J0Q29udGFpbmVyXG4gICAgICAgICogQHR5cGUgZ3MuT2JqZWN0X0NvbnRhaW5lclxuICAgICAgICAjIyNcbiAgICAgICAgQHZpZXdwb3J0Q29udGFpbmVyID0gbmV3IGdzLk9iamVjdF9Db250YWluZXIoZ3MuQ29udGFpbmVyRGlzcG9zZUJlaGF2aW9yLlJFTU9WRSlcbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBDb250YWlucyBhbGwgaW50ZXJ2YWwgdGltZXJzLlxuICAgICAgICAqIEBwcm9wZXJ0eSB0aW1lckNvbnRhaW5lclxuICAgICAgICAqIEB0eXBlIGdzLk9iamVjdF9Db250YWluZXJcbiAgICAgICAgIyMjXG4gICAgICAgIEB0aW1lckNvbnRhaW5lciA9IG5ldyBncy5PYmplY3RfRG9tYWluQ29udGFpbmVyKGdzLkNvbnRhaW5lckRpc3Bvc2VCZWhhdmlvci5OVUxMKVxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIENvbnRhaW5zIGFsbCBtZXNzYWdlIGFyZWFzIG9mIHRoZSBzY2VuZS5cbiAgICAgICAgKiBAcHJvcGVydHkgbWVzc2FnZUFyZWFDb250YWluZXJcbiAgICAgICAgKiBAdHlwZSBncy5PYmplY3RfQ29udGFpbmVyXG4gICAgICAgICMjI1xuICAgICAgICBAbWVzc2FnZUFyZWFDb250YWluZXIgPSBuZXcgZ3MuT2JqZWN0X0RvbWFpbkNvbnRhaW5lcihncy5Db250YWluZXJEaXNwb3NlQmVoYXZpb3IuTlVMTClcbiAgICAgICAgXG4gICAgICAgIEBjaGFyYWN0ZXJDb250YWluZXIudmlzaWJsZSA9IHllc1xuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEFsbCBwaWN0dXJlIG9iamVjdHMgYXMgYXJyYXkuIFRoYXQgaXMgdGhlIHNhbWUgbGlrZSBhY2Nlc3NpbmcgdGhlIDxiPnN1Yk9iamVjdHM8L2I+IG9mIHRoZVxuICAgICAgICAqIGNvbnRhaW5lciBvYmplY3QuXG4gICAgICAgICogQHByb3BlcnR5IHBpY3R1cmVzXG4gICAgICAgICogQHR5cGUgZ3MuT2JqZWN0X1BpY3R1cmVbXVxuICAgICAgICAqIEByZWFkT25seVxuICAgICAgICAjIyNcbiAgICAgICAgQHBpY3R1cmVzID0gQHBpY3R1cmVDb250YWluZXIuc3ViT2JqZWN0c1xuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEFsbCB2aWRlbyBvYmplY3RzIGFzIGFycmF5LiBUaGF0IGlzIHRoZSBzYW1lIGxpa2UgYWNjZXNzaW5nIHRoZSA8Yj5zdWJPYmplY3RzPC9iPiBvZiB0aGVcbiAgICAgICAgKiBjb250YWluZXIgb2JqZWN0LlxuICAgICAgICAqIEBwcm9wZXJ0eSB2aWRlb3NcbiAgICAgICAgKiBAdHlwZSBncy5PYmplY3RfVmlkZW9bXVxuICAgICAgICAqIEByZWFkT25seVxuICAgICAgICAjIyNcbiAgICAgICAgQHZpZGVvcyA9IEB2aWRlb0NvbnRhaW5lci5zdWJPYmplY3RzXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQWxsIHRleHQgb2JqZWN0cyBhcyBhcnJheS4gVGhhdCBpcyB0aGUgc2FtZSBsaWtlIGFjY2Vzc2luZyB0aGUgPGI+c3ViT2JqZWN0czwvYj4gb2YgdGhlXG4gICAgICAgICogY29udGFpbmVyIG9iamVjdC5cbiAgICAgICAgKiBAcHJvcGVydHkgdGV4dHNcbiAgICAgICAgKiBAdHlwZSBncy5PYmplY3RfVGV4dFtdXG4gICAgICAgICogQHJlYWRPbmx5XG4gICAgICAgICMjI1xuICAgICAgICBAdGV4dHMgPSBAdGV4dENvbnRhaW5lci5zdWJPYmplY3RzXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQWxsIGNoYXJhY3RlciBvYmplY3RzIGFzIGFycmF5LiBUaGF0IGlzIHRoZSBzYW1lIGxpa2UgYWNjZXNzaW5nIHRoZSA8Yj5zdWJPYmplY3RzPC9iPiBvZiB0aGVcbiAgICAgICAgKiBjb250YWluZXIgb2JqZWN0LlxuICAgICAgICAqIEBwcm9wZXJ0eSBjaGFyYWN0ZXJzXG4gICAgICAgICogQHR5cGUgZ3MuT2JqZWN0X0NoYXJhY3RlcltdXG4gICAgICAgICogQHJlYWRPbmx5XG4gICAgICAgICMjI1xuICAgICAgICBAY2hhcmFjdGVycyA9IEBjaGFyYWN0ZXJDb250YWluZXIuc3ViT2JqZWN0c1xuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEFsbCBiYWNrZ3JvdW5kcyBhcyBhcnJheS4gVGhhdCBpcyB0aGUgc2FtZSBsaWtlIGFjY2Vzc2luZyB0aGUgPGI+c3ViT2JqZWN0czwvYj4gb2YgdGhlXG4gICAgICAgICogY29udGFpbmVyIG9iamVjdC5cbiAgICAgICAgKiBAcHJvcGVydHkgYmFja2dyb3VuZHNcbiAgICAgICAgKiBAdHlwZSBncy5PYmplY3RfQmFja2dyb3VuZFtdXG4gICAgICAgICogQHJlYWRPbmx5XG4gICAgICAgICMjI1xuICAgICAgICBAYmFja2dyb3VuZHMgPSBAYmFja2dyb3VuZENvbnRhaW5lci5zdWJPYmplY3RzXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQWxsIGhvdHNwb3Qgb2JqZWN0cyBhcyBhcnJheS4gVGhhdCBpcyB0aGUgc2FtZSBsaWtlIGFjY2Vzc2luZyB0aGUgPGI+c3ViT2JqZWN0czwvYj4gb2YgdGhlXG4gICAgICAgICogY29udGFpbmVyIG9iamVjdC5cbiAgICAgICAgKiBAcHJvcGVydHkgaG90c3BvdHNcbiAgICAgICAgKiBAdHlwZSBncy5PYmplY3RfSG90c3BvdFtdXG4gICAgICAgICogQHJlYWRPbmx5XG4gICAgICAgICMjI1xuICAgICAgICBAaG90c3BvdHMgPSBAaG90c3BvdENvbnRhaW5lci5zdWJPYmplY3RzXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogQWxsIGludGVydmFsIHRpbWVyIG9iamVjdHMgYXMgYXJyYXkuIFRoYXQgaXMgdGhlIHNhbWUgbGlrZSBhY2Nlc3NpbmcgdGhlIDxiPnN1Yk9iamVjdHM8L2I+IG9mIHRoZVxuICAgICAgICAqIGNvbnRhaW5lciBvYmplY3QuXG4gICAgICAgICogQHByb3BlcnR5IHRpbWVyc1xuICAgICAgICAqIEB0eXBlIGdzLk9iamVjdF9JbnRlcnZhbFRpbWVyW11cbiAgICAgICAgKiBAcmVhZE9ubHlcbiAgICAgICAgIyMjXG4gICAgICAgIEB0aW1lcnMgPSBAdGltZXJDb250YWluZXIuc3ViT2JqZWN0c1xuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEFsbCBtZXNzYWdlIGFyZWFzIGFzIGFycmF5LlxuICAgICAgICAqIEBwcm9wZXJ0eSBtZXNzYWdlQXJlYXNcbiAgICAgICAgKiBAdHlwZSB2bi5NZXNzYWdlQXJlYVtdXG4gICAgICAgICogQHJlYWRPbmx5XG4gICAgICAgICMjI1xuICAgICAgICBAbWVzc2FnZUFyZWFzID0gQG1lc3NhZ2VBcmVhQ29udGFpbmVyLnN1Yk9iamVjdHNcbiAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIFRoZSBjdXJyZW50IGxpc3Qgb2YgY2hvaWNlcyB3aGljaCBzaG91bGQgYmUgZGlzcGxheWVkXG4gICAgICAgICogb24gdGhlIHNjcmVlbi4gTmV3IGNob2ljZXMgYXJlIHVzdWFsbHkgYWRkZWQgdXNpbmdcbiAgICAgICAgKiBBZGQgQ2hvaWNlIGNvbW1hbmQgaW4gU2NlbmUgRWRpdG9yIGJlZm9yZSBhbGwgY2hvaWNlcyBhcmVcbiAgICAgICAgKiBkaXNwbGF5ZWQgdmlhIFNob3cgQ2hvaWNlcyBjb21tYW5kLlxuICAgICAgICAqIEBwcm9wZXJ0eSBjaG9pY2VzXG4gICAgICAgICogQHR5cGUgdm4uQ2hvaWNlW11cbiAgICAgICAgIyMjXG4gICAgICAgIEBjaG9pY2VzID0gW11cbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBBIHRpbWVyIG9iamVjdCB1c2VkIGZvciBjaG9pY2VzIHdpdGggdGltZS1saW1pdC5cbiAgICAgICAgKiBAcHJvcGVydHkgY2hvaWNlVGltZXJcbiAgICAgICAgKiBAdHlwZSBncy5PYmplY3RfVGltZXJcbiAgICAgICAgIyMjXG4gICAgICAgIEBjaG9pY2VUaW1lciA9IG5ldyBncy5PYmplY3RfVGltZXIoKVxuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEluZGljYXRlcyBpZiB0aGUgVUkgbGF5b3V0IGlzIHZpc2libGUuXG4gICAgICAgICogQHByb3BlcnR5IHZpc2libGVcbiAgICAgICAgKiBAdHlwZSBib29sZWFuXG4gICAgICAgICMjI1xuICAgICAgICBAdmlzaWJsZSA9IHllc1xuICAgICAgICBcbiAgICAgICAgIyMjKlxuICAgICAgICAqIEBwcm9wZXJ0eSB2aXNpYmxlX1xuICAgICAgICAqIEB0eXBlIGJvb2xlYW5cbiAgICAgICAgKiBAcHJvdGVjdGVkXG4gICAgICAgICMjI1xuICAgICAgICBAdmlzaWJsZV8gPSB5ZXNcbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBUaGUgZ2FtZSBzZXR0aW5ncy5cbiAgICAgICAgKiBAcHJvcGVydHkgc2V0dGluZ3NcbiAgICAgICAgKiBAdHlwZSBPYmplY3RcbiAgICAgICAgIyMjXG4gICAgICAgIEBzZXR0aW5ncyA9IEdhbWVNYW5hZ2VyLnNldHRpbmdzXG4gICAgICAgIFxuICAgICAgICAjIyMqXG4gICAgICAgICogVGVtcG9yYXJ5IHNldHRpbmdzIGxpa2Ugc2tpcCwgZXRjLlxuICAgICAgICAqIEBwcm9wZXJ0eSB0ZW1wU2V0dGluZ3NcbiAgICAgICAgKiBAdHlwZSBPYmplY3RcbiAgICAgICAgIyMjXG4gICAgICAgIEB0ZW1wU2V0dGluZ3MgPSBHYW1lTWFuYWdlci50ZW1wU2V0dGluZ3NcbiAgICAgICAgXG4gICAgICAgICMjIypcbiAgICAgICAgKiBDb250YWlucyBhbGwgZGF0YSBuZWNlc3NhcnkgdG8gY29uc3RydWN0IHRoZSBzY2VuZS5cbiAgICAgICAgKiBAcHJvcGVydHkgc2NlbmVEYXRhXG4gICAgICAgICogQHR5cGUgT2JqZWN0XG4gICAgICAgICMjI1xuICAgICAgICBAc2NlbmVEYXRhID0gR2FtZU1hbmFnZXIuc2NlbmVEYXRhXG4gICAgICAgIFxuICAgICAgICBAYWRkT2JqZWN0KEBiYWNrZ3JvdW5kQ29udGFpbmVyKVxuICAgICAgICBAYWRkT2JqZWN0KEBjaGFyYWN0ZXJDb250YWluZXIpXG4gICAgICAgIEBhZGRPYmplY3QoQHBpY3R1cmVDb250YWluZXIpXG4gICAgICAgIEBhZGRPYmplY3QoQHRleHRDb250YWluZXIpXG4gICAgICAgIEBhZGRPYmplY3QoQHZpZGVvQ29udGFpbmVyKVxuICAgICAgICBAYWRkT2JqZWN0KEBob3RzcG90Q29udGFpbmVyKVxuICAgICAgICBAYWRkT2JqZWN0KEB2aWV3cG9ydENvbnRhaW5lcilcbiAgICAgICAgQGFkZE9iamVjdChAY29tbW9uRXZlbnRDb250YWluZXIpXG4gICAgICAgIEBhZGRPYmplY3QoQHRpbWVyQ29udGFpbmVyKVxuICAgICAgICBAYWRkT2JqZWN0KEBjaG9pY2VUaW1lcilcbiAgICAgICAgQGFkZE9iamVjdChAbWVzc2FnZUFyZWFDb250YWluZXIpXG4gICAgICAgIFxuICAgICAgICBcbiAgICAgICAgQGFkZENvbXBvbmVudChuZXcgZ3MuQ29tcG9uZW50X0lucHV0SGFuZGxlcigpKVxuICAgICAgICBAYWRkQ29tcG9uZW50KEBiZWhhdmlvcilcbiAgICAgICAgQGFkZENvbXBvbmVudChAaW50ZXJwcmV0ZXIpXG4gICAgICAgIFxuICAgICAgICBcbnZuLk9iamVjdF9TY2VuZSA9IE9iamVjdF9TY2VuZSJdfQ==\n//# sourceURL=Object_Scene_161.js" }, "summary": [ "name", "type", "order" ] } |