{"version":3,"file":"static/js/main.bd1eefde.js","mappings":"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ACA,gDACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,4CACA,2BACA,kCACA,kCACA,wBACA,4BACA,eACA,IACA,qDACA,yBACA,QACA,4BACA,kBACA,QACA,qBACA,QACA,wBACA,QACA,mBACA,0IACA,0IACA,+IACA,+IACA,iDACA,uBACA,0CACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,qCACA,2BACA,kCACA,6BACA,4BACA,eACA,IACA,yEACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,gCACA,2BACA,kCACA,wBACA,4BACA,uBACA,IACA,qCACA,gCACA,oCACA,iCACA,iCACA,8BACA,IACA,cACA,IACA,yCACA,mCACA,4BACA,QACA,kCACA,QACA,wDACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,+BACA,2BACA,kCACA,uBACA,0BACA,sBACA,4BACA,eACA,IACA,6EACA,uFACA,uFACA,uFACA,mHACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,mCACA,2BACA,kCACA,2BACA,uBACA,0BACA,sBACA,4BACA,eACA,IACA,6BACA,4BACA,+DACA,gEACA,+DACA,+DACA,qFACA,qFACA,sFACA,sFACA,uFACA,uFACA,6CACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,kCACA,2BACA,kCACA,2BACA,uBACA,0BACA,sBACA,4BACA,eACA,IACA,6BACA,4BACA,qDACA,gEACA,wFACA,wFACA,6CACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,kCACA,2BACA,kCACA,2BACA,uBACA,0BACA,sBACA,4BACA,eACA,IACA,6BACA,4BACA,0DACA,0DACA,yDACA,+EACA,+EACA,+EACA,+EACA,6CACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,+BACA,2BACA,2BACA,uCACA,sBACA,kCACA,kCACA,2BACA,wBACA,wBACA,0BACA,4BACA,0BACA,qBACA,4BACA,8CACA,IACA,oBACA,8DACA,IACA,oDACA,IACA,4BACA,4BACA,2EACA,qBACA,4EACA,QACA,oEACA,qEACA,kEACA,8BACA,wBACA,QACA,wBACA,IACA,eACA,IACA,yBACA,uBACA,QACA,iFACA,sCACA,iEACA,QACA,mGACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,gCACA,2BACA,kCACA,2BACA,sBACA,gCACA,2BACA,uBACA,yBACA,4BACA,eACA,IACA,2DACA,qEACA,uDACA,iCACA,qCACA,iCACA,8DACA,8BACA,QACA,yDACA,uBACA,wDACA,QACA,sBACA,sBACA,4DACA,sEACA,8EACA,6CACA,oEACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,sCACA,2BACA,kCACA,0CACA,uBACA,4BACA,eACA,IACA,gGACA,uEACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,8BACA,2BACA,kCACA,4BACA,+BACA,+BACA,2BACA,0BACA,yBACA,8CACA,+BACA,8CACA,4CACA,4DACA,eACA,IACA,8DACA,8BACA,sBACA,sBACA,kBACA,+DACA,QACA,yDACA,2EACA,YACA,yEACA,0DACA,4DACA,YACA,QACA,oDACA,mDACA,2EACA,0DACA,kEACA,2EACA,yEACA,gEACA,oBACA,QACA,+DACA,yEACA,QACA,WACA,QACA,sDACA,QACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,kCACA,gDACA,sDACA,mFACA,2BACA,kCACA,6BACA,2BACA,uBACA,uBACA,uBACA,oBACA,4BACA,kCACA,IACA,mEACA,wDACA,IACA,2DACA,IACA,kGACA,IACA,eACA,IACA,6BACA,2BACA,uBACA,wDACA,sDACA,oDACA,mGACA,qCACA,2EACA,2DACA,gFACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,kCACA,2BACA,kCACA,2BACA,wBACA,4BACA,eACA,IACA,6CACA,0GACA,4DACA,4DACA,4DACA,4DACA,uEACA,qEACA,qEACA,qEACA,qEACA,4BACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,gCACA,2BACA,kCACA,4BACA,8BACA,sBACA,uBACA,uBACA,2BACA,uBACA,sBACA,eACA,IACA,2DACA,2DACA,0BACA,qDACA,oCACA,QACA,4BACA,YACA,qBACA,YACA,oGACA,QACA,oCACA,yDACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,+BACA,2BACA,kCACA,2BACA,uBACA,uBACA,sBACA,2BACA,0BACA,4BACA,eACA,IACA,+CACA,uDACA,4CACA,+CACA,kDACA,iCACA,yFACA,wDACA,mBACA,QACA,+BACA,QACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,kCACA,2BACA,kCACA,wBACA,0BACA,yBACA,4BACA,eACA,IACA,4BACA,gDACA,uBACA,QACA,gCACA,wCACA,+BACA,QACA,2DACA,4CACA,KACFwjD,KAAK,KAGA,EAED,KACElnD,IAERA,EAAO0D,QAAU,CACb,8BACA,2BACA,kCACA,uBACA,uBACA,4BACA,eACA,IACA,6BACA,mBACA,mBACA,kBACA,QACA,4BACA,gDACA,QACA,WACA,QACA,gDACA,4BACA,QACA,iCACA,8BACA,kCACA,yBACA,2BACA,QACA,uBACA,QACA,mDACA,oGACA,iDACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,sCACA,2BACA,eACA,IACA,qBACA,kBACA,uBACA,oBACA,KACA,wCACA,mDACA,4BACA,kCACA,kCACA,mCACA,qCACA,uCACA,2BACA,4BACA,0BACA,+BACA,wBACA,eACA,IACA,6CACA,6DACA,2DACA,oCACA,gCACA,QACA,4EACA,QACA,qCACA,QACA,yBACA,QACA,iEACA,qFACA,sEACA,uDACA,QACA,mCACA,YACA,4CACA,8FACA,sDACA,+DACA,wEACA,6EACA,sGACA,0DACA,uEACA,YACA,QACA,qEACA,mFACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,6CACA,2BACA,mCACA,mCACA,2BACA,4BACA,eACA,IACA,2DACA,2DACA,2DACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,qCACA,2BACA,+BACA,8BACA,8BACA,+BACA,0BACA,0BACA,yBACA,iCACA,iCACA,kCACA,gCACA,gCACA,8BACA,8BACA,wBACA,0BACA,mBACA,IACA,uDACA,uDACA,sCACA,6DACA,kDACA,gEACA,6DACA,kDACA,4EACA,mEACA,gEACA,qDACA,8DACA,gEACA,gCACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,qCACA,2BACA,kCACA,gCACA,gCACA,sCACA,6BACA,8BACA,8BACA,wBACA,0BACA,eACA,IACA,qCACA,mEACA,gEACA,uFACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,uCACA,oCACA,yBACA,QACA,2BACA,SACA,kCACA,4BACA,+BACA,wBACA,eACA,IACA,6DACA,2DACA,oCACA,gCACA,QACA,4EACA,QACA,qCACA,QACA,yBACA,QACA,4BACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,uCACA,2BACA,kCACA,4BACA,6BACA,6BACA,2BACA,gCACA,yBACA,4BACA,+BACA,wBACA,eACA,IACA,oEACA,gCACA,wBACA,oCACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,sCACA,oCACA,yBACA,QACA,2BACA,SACA,2CACA,4BACA,0BACA,+BACA,wBACA,eACA,IACA,oBACA,gBACA,6DACA,oCACA,gCACA,QACA,4EACA,QACA,qCACA,QACA,yBACA,QACA,4BACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,sCACA,2BACA,kCACA,4BACA,6BACA,6BACA,2BACA,gCACA,yBACA,4BACA,0BACA,+BACA,wBACA,eACA,IACA,oEACA,gCACA,0BACA,wBACA,oCACA,KACFwjD,KAAK,KAGA,EAED,KACElnD,IAERA,EAAO0D,QAAU,CACb,2CACA,2BACA,4BACA,6BACA,8BACA,2BACA,6BACA,kCACA,eACA,IACA,uEACA,2DACA,qEACA,yEACA,4EACA,8DACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,2CACA,2BACA,kCACA,6BACA,kCACA,+BACA,iCACA,sCACA,8BACA,2BACA,6BACA,kCACA,eACA,IACA,iCACA,mCACA,6CACA,2EACA,oEACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,uCACA,2BACA,kCACA,4BACA,eACA,IACA,2DACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,qCACA,2BACA,6BACA,6BACA,6BACA,4BACA,eACA,IACA,gDACA,gCACA,4CACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,uCACA,oCACA,yBACA,QACA,2BACA,SACA,kCACA,4BACA,+BACA,wBACA,eACA,IACA,2DACA,6DACA,oCACA,gCACA,QACA,4EACA,QACA,qCACA,QACA,yBACA,QACA,4BACA,KACFwjD,KAAK,KAGA,EAED,MACElnD,IAERA,EAAO0D,QAAU,CACb,uCACA,2BACA,kCACA,4BACA,6BACA,6BACA,2BACA,gCACA,yBACA,4BACA,+BACA,wBACA,eACA,IACA,oEACA,gCACA,wBACA,oCACA,KACFwjD,KAAK,KAGA,EAED,MAAK,CACHlnD,EAAQ2D,EAA0BC,KAY1C5D,EAAO0D,QAAU,CAEbwrO,aAActrO,EAAoB,OACl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","sources":["../node_modules/phaser/dist/phaser.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react/cjs/react-jsx-runtime.production.min.js","../node_modules/react/cjs/react.production.min.js","../node_modules/react/index.js","../node_modules/react/jsx-runtime.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/publicPath","../webpack/runtime/jsonp chunk loading","scenes/BootScene.js","scenes/InfoScene1.js","scenes/InfoScene2.js","scenes/GameScene.js","scenes/GameScene2.js","scenes/GameScene3.js","scenes/GameScene4.js","scenes/GameScene5.js","scenes/GameScene6.js","scenes/GameOverScene.js","scenes/LevelCompletedScene.js","scenes/LevelCompletedScene2.js","scenes/LevelCompletedScene3.js","scenes/LevelCompletedScene4.js","scenes/LevelCompletedScene5.js","scenes/FinishScene.js","scenes/MobileGameScene.js","scenes/MobileGameScene2.js","scenes/MobileGameScene3.js","scenes/MobileGameScene4.js","scenes/MobileGameScene5.js","scenes/MobileGameScene6.js","components/PhaserGame.jsx","App.js","reportWebVitals.js","index.js"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"Phaser\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Phaser\"] = factory();\n\telse\n\t\troot[\"Phaser\"] = factory();\n})(this, () => {\nreturn /******/ (() => { // webpackBootstrap\n/******/ \tvar __webpack_modules__ = ({\n\n/***/ 50792:\n/***/ ((module) => {\n\n\"use strict\";\n\n\nvar has = Object.prototype.hasOwnProperty\n  , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n  Events.prototype = Object.create(null);\n\n  //\n  // This hack is needed because the `__proto__` property is still inherited in\n  // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n  //\n  if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n  this.fn = fn;\n  this.context = context;\n  this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n  if (typeof fn !== 'function') {\n    throw new TypeError('The listener must be a function');\n  }\n\n  var listener = new EE(fn, context || emitter, once)\n    , evt = prefix ? prefix + event : event;\n\n  if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n  else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n  else emitter._events[evt] = [emitter._events[evt], listener];\n\n  return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n  if (--emitter._eventsCount === 0) emitter._events = new Events();\n  else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n  this._events = new Events();\n  this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n  var names = []\n    , events\n    , name;\n\n  if (this._eventsCount === 0) return names;\n\n  for (name in (events = this._events)) {\n    if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n  }\n\n  if (Object.getOwnPropertySymbols) {\n    return names.concat(Object.getOwnPropertySymbols(events));\n  }\n\n  return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n  var evt = prefix ? prefix + event : event\n    , handlers = this._events[evt];\n\n  if (!handlers) return [];\n  if (handlers.fn) return [handlers.fn];\n\n  for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n    ee[i] = handlers[i].fn;\n  }\n\n  return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n  var evt = prefix ? prefix + event : event\n    , listeners = this._events[evt];\n\n  if (!listeners) return 0;\n  if (listeners.fn) return 1;\n  return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return false;\n\n  var listeners = this._events[evt]\n    , len = arguments.length\n    , args\n    , i;\n\n  if (listeners.fn) {\n    if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n    switch (len) {\n      case 1: return listeners.fn.call(listeners.context), true;\n      case 2: return listeners.fn.call(listeners.context, a1), true;\n      case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n      case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n      case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n      case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n    }\n\n    for (i = 1, args = new Array(len -1); i < len; i++) {\n      args[i - 1] = arguments[i];\n    }\n\n    listeners.fn.apply(listeners.context, args);\n  } else {\n    var length = listeners.length\n      , j;\n\n    for (i = 0; i < length; i++) {\n      if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n      switch (len) {\n        case 1: listeners[i].fn.call(listeners[i].context); break;\n        case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n        case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n        case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n        default:\n          if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n            args[j - 1] = arguments[j];\n          }\n\n          listeners[i].fn.apply(listeners[i].context, args);\n      }\n    }\n  }\n\n  return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n  return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n  return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n  var evt = prefix ? prefix + event : event;\n\n  if (!this._events[evt]) return this;\n  if (!fn) {\n    clearEvent(this, evt);\n    return this;\n  }\n\n  var listeners = this._events[evt];\n\n  if (listeners.fn) {\n    if (\n      listeners.fn === fn &&\n      (!once || listeners.once) &&\n      (!context || listeners.context === context)\n    ) {\n      clearEvent(this, evt);\n    }\n  } else {\n    for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n      if (\n        listeners[i].fn !== fn ||\n        (once && !listeners[i].once) ||\n        (context && listeners[i].context !== context)\n      ) {\n        events.push(listeners[i]);\n      }\n    }\n\n    //\n    // Reset the array, or remove it completely if we have no more listeners.\n    //\n    if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n    else clearEvent(this, evt);\n  }\n\n  return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n  var evt;\n\n  if (event) {\n    evt = prefix ? prefix + event : event;\n    if (this._events[evt]) clearEvent(this, evt);\n  } else {\n    this._events = new Events();\n    this._eventsCount = 0;\n  }\n\n  return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif (true) {\n  module.exports = EventEmitter;\n}\n\n\n/***/ }),\n\n/***/ 11517:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       samme\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar QuickSet = __webpack_require__(38829);\r\n\r\n/**\r\n * Takes an array of Game Objects and aligns them next to each other.\r\n *\r\n * The alignment position is controlled by the `position` parameter, which should be one\r\n * of the Phaser.Display.Align constants, such as `Phaser.Display.Align.TOP_LEFT`,\r\n * `Phaser.Display.Align.TOP_CENTER`, etc.\r\n *\r\n * The first item isn't moved. The second item is aligned next to the first,\r\n * then the third next to the second, and so on.\r\n *\r\n * @function Phaser.Actions.AlignTo\r\n * @since 3.22.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} position - The position to align the items with. This is an align constant, such as `Phaser.Display.Align.LEFT_CENTER`.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar AlignTo = function (items, position, offsetX, offsetY)\r\n{\r\n    var target = items[0];\r\n\r\n    for (var i = 1; i < items.length; i++)\r\n    {\r\n        var item = items[i];\r\n\r\n        QuickSet(item, target, position, offsetX, offsetY);\r\n\r\n        target = item;\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = AlignTo;\r\n\n\n/***/ }),\n\n/***/ 80318:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueInc = __webpack_require__(66979);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have a public `angle` property,\r\n * and then adds the given value to each of their `angle` properties.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `Angle(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.Angle\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to be added to the `angle` property.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar Angle = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueInc(items, 'angle', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = Angle;\r\n\n\n/***/ }),\n\n/***/ 60757:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Takes an array of objects and passes each of them to the given callback.\r\n *\r\n * @function Phaser.Actions.Call\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {Phaser.Types.Actions.CallCallback} callback - The callback to be invoked. It will be passed just one argument: the item from the array.\r\n * @param {*} context - The scope in which the callback will be invoked.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that was passed to this Action.\r\n */\r\nvar Call = function (items, callback, context)\r\n{\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        var item = items[i];\r\n\r\n        callback.call(context, item);\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = Call;\r\n\n\n/***/ }),\n\n/***/ 69927:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Takes an array of objects and returns the first element in the array that has properties which match\r\n * all of those specified in the `compare` object. For example, if the compare object was: `{ scaleX: 0.5, alpha: 1 }`\r\n * then it would return the first item which had the property `scaleX` set to 0.5 and `alpha` set to 1.\r\n *\r\n * To use this with a Group: `GetFirst(group.getChildren(), compare, index)`\r\n *\r\n * @function Phaser.Actions.GetFirst\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be searched by this action.\r\n * @param {object} compare - The comparison object. Each property in this object will be checked against the items of the array.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n *\r\n * @return {?(object|Phaser.GameObjects.GameObject)} The first object in the array that matches the comparison object, or `null` if no match was found.\r\n */\r\nvar GetFirst = function (items, compare, index)\r\n{\r\n    if (index === undefined) { index = 0; }\r\n\r\n    for (var i = index; i < items.length; i++)\r\n    {\r\n        var item = items[i];\r\n\r\n        var match = true;\r\n\r\n        for (var property in compare)\r\n        {\r\n            if (item[property] !== compare[property])\r\n            {\r\n                match = false;\r\n            }\r\n        }\r\n\r\n        if (match)\r\n        {\r\n            return item;\r\n        }\r\n    }\r\n\r\n    return null;\r\n};\r\n\r\nmodule.exports = GetFirst;\r\n\n\n/***/ }),\n\n/***/ 32265:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Takes an array of objects and returns the last element in the array that has properties which match\r\n * all of those specified in the `compare` object. For example, if the compare object was: `{ scaleX: 0.5, alpha: 1 }`\r\n * then it would return the last item which had the property `scaleX` set to 0.5 and `alpha` set to 1.\r\n *\r\n * To use this with a Group: `GetLast(group.getChildren(), compare, index)`\r\n *\r\n * @function Phaser.Actions.GetLast\r\n * @since 3.3.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be searched by this action.\r\n * @param {object} compare - The comparison object. Each property in this object will be checked against the items of the array.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n *\r\n * @return {?(object|Phaser.GameObjects.GameObject)} The last object in the array that matches the comparison object, or `null` if no match was found.\r\n */\r\nvar GetLast = function (items, compare, index)\r\n{\r\n    if (index === undefined) { index = 0; }\r\n\r\n    for (var i = items.length - 1; i >= index; i--)\r\n    {\r\n        var item = items[i];\r\n\r\n        var match = true;\r\n\r\n        for (var property in compare)\r\n        {\r\n            if (item[property] !== compare[property])\r\n            {\r\n                match = false;\r\n            }\r\n        }\r\n\r\n        if (match)\r\n        {\r\n            return item;\r\n        }\r\n    }\r\n\r\n    return null;\r\n};\r\n\r\nmodule.exports = GetLast;\r\n\n\n/***/ }),\n\n/***/ 94420:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar AlignIn = __webpack_require__(11879);\r\nvar CONST = __webpack_require__(60461);\r\nvar GetFastValue = __webpack_require__(95540);\r\nvar NOOP = __webpack_require__(29747);\r\nvar Zone = __webpack_require__(41481);\r\n\r\nvar tempZone = new Zone({ sys: { queueDepthSort: NOOP, events: { once: NOOP } } }, 0, 0, 1, 1).setOrigin(0, 0);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have public `x` and `y` properties,\r\n * and then aligns them based on the grid configuration given to this action.\r\n *\r\n * @function Phaser.Actions.GridAlign\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {Phaser.Types.Actions.GridAlignConfig} options - The GridAlign Configuration object.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar GridAlign = function (items, options)\r\n{\r\n    if (options === undefined) { options = {}; }\r\n\r\n    var widthSet = options.hasOwnProperty('width');\r\n    var heightSet = options.hasOwnProperty('height');\r\n\r\n    var width = GetFastValue(options, 'width', -1);\r\n    var height = GetFastValue(options, 'height', -1);\r\n\r\n    var cellWidth = GetFastValue(options, 'cellWidth', 1);\r\n    var cellHeight = GetFastValue(options, 'cellHeight', cellWidth);\r\n\r\n    var position = GetFastValue(options, 'position', CONST.TOP_LEFT);\r\n    var x = GetFastValue(options, 'x', 0);\r\n    var y = GetFastValue(options, 'y', 0);\r\n\r\n    var cx = 0;\r\n    var cy = 0;\r\n    var w = (width * cellWidth);\r\n    var h = (height * cellHeight);\r\n\r\n    tempZone.setPosition(x, y);\r\n    tempZone.setSize(cellWidth, cellHeight);\r\n\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        AlignIn(items[i], tempZone, position);\r\n\r\n        if (widthSet && width === -1)\r\n        {\r\n            //  We keep laying them out horizontally until we've done them all\r\n            tempZone.x += cellWidth;\r\n        }\r\n        else if (heightSet && height === -1)\r\n        {\r\n            //  We keep laying them out vertically until we've done them all\r\n            tempZone.y += cellHeight;\r\n        }\r\n        else if (heightSet && !widthSet)\r\n        {\r\n            //  We keep laying them out until we hit the column limit\r\n            cy += cellHeight;\r\n            tempZone.y += cellHeight;\r\n\r\n            if (cy === h)\r\n            {\r\n                cy = 0;\r\n                cx += cellWidth;\r\n                tempZone.y = y;\r\n                tempZone.x += cellWidth;\r\n\r\n                if (cx === w)\r\n                {\r\n                    //  We've hit the column limit, so return, even if there are items left\r\n                    break;\r\n                }\r\n            }\r\n        }\r\n        else\r\n        {\r\n            //  We keep laying them out until we hit the column limit\r\n            cx += cellWidth;\r\n            tempZone.x += cellWidth;\r\n\r\n            if (cx === w)\r\n            {\r\n                cx = 0;\r\n                cy += cellHeight;\r\n                tempZone.x = x;\r\n                tempZone.y += cellHeight;\r\n\r\n                if (cy === h)\r\n                {\r\n                    //  We've hit the column limit, so return, even if there are items left\r\n                    break;\r\n                }\r\n            }\r\n        }\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = GridAlign;\r\n\n\n/***/ }),\n\n/***/ 41721:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueInc = __webpack_require__(66979);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have a public `alpha` property,\r\n * and then adds the given value to each of their `alpha` properties.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `IncAlpha(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.IncAlpha\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to be added to the `alpha` property.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar IncAlpha = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueInc(items, 'alpha', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = IncAlpha;\r\n\n\n/***/ }),\n\n/***/ 67285:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueInc = __webpack_require__(66979);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have a public `x` property,\r\n * and then adds the given value to each of their `x` properties.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `IncX(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.IncX\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to be added to the `x` property.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar IncX = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueInc(items, 'x', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = IncX;\r\n\n\n/***/ }),\n\n/***/ 9074:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueInc = __webpack_require__(66979);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have public `x` and `y` properties,\r\n * and then adds the given value to each of them.\r\n *\r\n * The optional `stepX` and `stepY` properties are applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `IncXY(group.getChildren(), x, y, stepX, stepY)`\r\n *\r\n * @function Phaser.Actions.IncXY\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} x - The amount to be added to the `x` property.\r\n * @param {number} [y=x] - The amount to be added to the `y` property. If `undefined` or `null` it uses the `x` value.\r\n * @param {number} [stepX=0] - This is added to the `x` amount, multiplied by the iteration counter.\r\n * @param {number} [stepY=0] - This is added to the `y` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar IncXY = function (items, x, y, stepX, stepY, index, direction)\r\n{\r\n    if (y === undefined || y === null) { y = x; }\r\n\r\n    PropertyValueInc(items, 'x', x, stepX, index, direction);\r\n\r\n    return PropertyValueInc(items, 'y', y, stepY, index, direction);\r\n};\r\n\r\nmodule.exports = IncXY;\r\n\n\n/***/ }),\n\n/***/ 75222:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueInc = __webpack_require__(66979);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have a public `y` property,\r\n * and then adds the given value to each of their `y` properties.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `IncY(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.IncY\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to be added to the `y` property.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar IncY = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueInc(items, 'y', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = IncY;\r\n\n\n/***/ }),\n\n/***/ 22983:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Takes an array of Game Objects and positions them on evenly spaced points around the perimeter of a Circle.\r\n *\r\n * If you wish to pass a `Phaser.GameObjects.Circle` Shape to this function, you should pass its `geom` property.\r\n *\r\n * @function Phaser.Actions.PlaceOnCircle\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {Phaser.Geom.Circle} circle - The Circle to position the Game Objects on.\r\n * @param {number} [startAngle=0] - Optional angle to start position from, in radians.\r\n * @param {number} [endAngle=6.28] - Optional angle to stop position at, in radians.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar PlaceOnCircle = function (items, circle, startAngle, endAngle)\r\n{\r\n    if (startAngle === undefined) { startAngle = 0; }\r\n    if (endAngle === undefined) { endAngle = 6.28; }\r\n\r\n    var angle = startAngle;\r\n    var angleStep = (endAngle - startAngle) / items.length;\r\n\r\n    var cx = circle.x;\r\n    var cy = circle.y;\r\n    var radius = circle.radius;\r\n\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        items[i].x = cx + (radius * Math.cos(angle));\r\n        items[i].y = cy + (radius * Math.sin(angle));\r\n\r\n        angle += angleStep;\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = PlaceOnCircle;\r\n\n\n/***/ }),\n\n/***/ 95253:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Takes an array of Game Objects and positions them on evenly spaced points around the perimeter of an Ellipse.\r\n * \r\n * If you wish to pass a `Phaser.GameObjects.Ellipse` Shape to this function, you should pass its `geom` property.\r\n *\r\n * @function Phaser.Actions.PlaceOnEllipse\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to position the Game Objects on.\r\n * @param {number} [startAngle=0] - Optional angle to start position from, in radians.\r\n * @param {number} [endAngle=6.28] - Optional angle to stop position at, in radians.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar PlaceOnEllipse = function (items, ellipse, startAngle, endAngle)\r\n{\r\n    if (startAngle === undefined) { startAngle = 0; }\r\n    if (endAngle === undefined) { endAngle = 6.28; }\r\n\r\n    var angle = startAngle;\r\n    var angleStep = (endAngle - startAngle) / items.length;\r\n\r\n    var a = ellipse.width / 2;\r\n    var b = ellipse.height / 2;\r\n\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        items[i].x = ellipse.x + a * Math.cos(angle);\r\n        items[i].y = ellipse.y + b * Math.sin(angle);\r\n\r\n        angle += angleStep;\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = PlaceOnEllipse;\r\n\n\n/***/ }),\n\n/***/ 88505:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetPoints = __webpack_require__(15258);\r\nvar GetEasedPoints = __webpack_require__(26708);\r\n\r\n/**\r\n * Positions an array of Game Objects on evenly spaced points of a Line.\r\n * If the ease parameter is supplied, it will space the points based on that easing function along the line.\r\n *\r\n * @function Phaser.Actions.PlaceOnLine\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {Phaser.Geom.Line} line - The Line to position the Game Objects on.\r\n * @param {(string|function)} [ease] - An optional ease to use. This can be either a string from the EaseMap, or a custom function.\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar PlaceOnLine = function (items, line, ease)\r\n{\r\n    var points;\r\n\r\n    if (ease)\r\n    {\r\n        points = GetEasedPoints(line, ease, items.length);\r\n    }\r\n    else\r\n    {\r\n        points = GetPoints(line, items.length);\r\n    }\r\n\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        var item = items[i];\r\n        var point = points[i];\r\n\r\n        item.x = point.x;\r\n        item.y = point.y;\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = PlaceOnLine;\r\n\n\n/***/ }),\n\n/***/ 41346:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar MarchingAnts = __webpack_require__(14649);\r\nvar RotateLeft = __webpack_require__(86003);\r\nvar RotateRight = __webpack_require__(49498);\r\n\r\n/**\r\n * Takes an array of Game Objects and positions them on evenly spaced points around the perimeter of a Rectangle.\r\n * \r\n * Placement starts from the top-left of the rectangle, and proceeds in a clockwise direction.\r\n * If the `shift` parameter is given you can offset where placement begins.\r\n *\r\n * @function Phaser.Actions.PlaceOnRectangle\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {Phaser.Geom.Rectangle} rect - The Rectangle to position the Game Objects on.\r\n * @param {number} [shift=0] - An optional positional offset.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar PlaceOnRectangle = function (items, rect, shift)\r\n{\r\n    if (shift === undefined) { shift = 0; }\r\n\r\n    var points = MarchingAnts(rect, false, items.length);\r\n\r\n    if (shift > 0)\r\n    {\r\n        RotateLeft(points, shift);\r\n    }\r\n    else if (shift < 0)\r\n    {\r\n        RotateRight(points, Math.abs(shift));\r\n    }\r\n\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        items[i].x = points[i].x;\r\n        items[i].y = points[i].y;\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = PlaceOnRectangle;\r\n\n\n/***/ }),\n\n/***/ 11575:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BresenhamPoints = __webpack_require__(84993);\r\n\r\n/**\r\n * Takes an array of Game Objects and positions them on evenly spaced points around the edges of a Triangle.\r\n * \r\n * If you wish to pass a `Phaser.GameObjects.Triangle` Shape to this function, you should pass its `geom` property.\r\n *\r\n * @function Phaser.Actions.PlaceOnTriangle\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {Phaser.Geom.Triangle} triangle - The Triangle to position the Game Objects on.\r\n * @param {number} [stepRate=1] - An optional step rate, to increase or decrease the packing of the Game Objects on the lines.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar PlaceOnTriangle = function (items, triangle, stepRate)\r\n{\r\n    var p1 = BresenhamPoints({ x1: triangle.x1, y1: triangle.y1, x2: triangle.x2, y2: triangle.y2 }, stepRate);\r\n    var p2 = BresenhamPoints({ x1: triangle.x2, y1: triangle.y2, x2: triangle.x3, y2: triangle.y3 }, stepRate);\r\n    var p3 = BresenhamPoints({ x1: triangle.x3, y1: triangle.y3, x2: triangle.x1, y2: triangle.y1 }, stepRate);\r\n\r\n    //  Remove overlaps\r\n    p1.pop();\r\n    p2.pop();\r\n    p3.pop();\r\n\r\n    p1 = p1.concat(p2, p3);\r\n\r\n    var step = p1.length / items.length;\r\n    var p = 0;\r\n\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        var item = items[i];\r\n        var point = p1[Math.floor(p)];\r\n\r\n        item.x = point.x;\r\n        item.y = point.y;\r\n\r\n        p += step;\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = PlaceOnTriangle;\r\n\n\n/***/ }),\n\n/***/ 29953:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Play an animation on all Game Objects in the array that have an Animation component.\r\n *\r\n * You can pass either an animation key, or an animation configuration object for more control over the playback.\r\n *\r\n * @function Phaser.Actions.PlayAnimation\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n * @param {boolean} [ignoreIfPlaying=false] - If this animation is already playing then ignore this call.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar PlayAnimation = function (items, key, ignoreIfPlaying)\r\n{\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        var gameObject = items[i];\r\n\r\n        if (gameObject.anims)\r\n        {\r\n            gameObject.anims.play(key, ignoreIfPlaying);\r\n        }\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = PlayAnimation;\r\n\n\n/***/ }),\n\n/***/ 66979:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have a public property as defined in `key`,\r\n * and then adds the given value to it.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `PropertyValueInc(group.getChildren(), key, value, step)`\r\n *\r\n * @function Phaser.Actions.PropertyValueInc\r\n * @since 3.3.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {string} key - The property to be updated.\r\n * @param {number} value - The amount to be added to the property.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar PropertyValueInc = function (items, key, value, step, index, direction)\r\n{\r\n    if (step === undefined) { step = 0; }\r\n    if (index === undefined) { index = 0; }\r\n    if (direction === undefined) { direction = 1; }\r\n\r\n    var i;\r\n    var t = 0;\r\n    var end = items.length;\r\n\r\n    if (direction === 1)\r\n    {\r\n        //  Start to End\r\n        for (i = index; i < end; i++)\r\n        {\r\n            items[i][key] += value + (t * step);\r\n            t++;\r\n        }\r\n    }\r\n    else\r\n    {\r\n        //  End to Start\r\n        for (i = index; i >= 0; i--)\r\n        {\r\n            items[i][key] += value + (t * step);\r\n            t++;\r\n        }\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = PropertyValueInc;\r\n\n\n/***/ }),\n\n/***/ 43967:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have a public property as defined in `key`,\r\n * and then sets it to the given value.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `PropertyValueSet(group.getChildren(), key, value, step)`\r\n *\r\n * @function Phaser.Actions.PropertyValueSet\r\n * @since 3.3.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {string} key - The property to be updated.\r\n * @param {number} value - The amount to set the property to.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar PropertyValueSet = function (items, key, value, step, index, direction)\r\n{\r\n    if (step === undefined) { step = 0; }\r\n    if (index === undefined) { index = 0; }\r\n    if (direction === undefined) { direction = 1; }\r\n\r\n    var i;\r\n    var t = 0;\r\n    var end = items.length;\r\n\r\n    if (direction === 1)\r\n    {\r\n        //  Start to End\r\n        for (i = index; i < end; i++)\r\n        {\r\n            items[i][key] = value + (t * step);\r\n            t++;\r\n        }\r\n    }\r\n    else\r\n    {\r\n        //  End to Start\r\n        for (i = index; i >= 0; i--)\r\n        {\r\n            items[i][key] = value + (t * step);\r\n            t++;\r\n        }\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = PropertyValueSet;\r\n\n\n/***/ }),\n\n/***/ 88926:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Random = __webpack_require__(28176);\r\n\r\n/**\r\n * Takes an array of Game Objects and positions them at random locations within the Circle.\r\n * \r\n * If you wish to pass a `Phaser.GameObjects.Circle` Shape to this function, you should pass its `geom` property.\r\n *\r\n * @function Phaser.Actions.RandomCircle\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {Phaser.Geom.Circle} circle - The Circle to position the Game Objects within.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar RandomCircle = function (items, circle)\r\n{\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        Random(circle, items[i]);\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = RandomCircle;\r\n\n\n/***/ }),\n\n/***/ 33286:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Random = __webpack_require__(24820);\r\n\r\n/**\r\n * Takes an array of Game Objects and positions them at random locations within the Ellipse.\r\n * \r\n * If you wish to pass a `Phaser.GameObjects.Ellipse` Shape to this function, you should pass its `geom` property.\r\n *\r\n * @function Phaser.Actions.RandomEllipse\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to position the Game Objects within.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar RandomEllipse = function (items, ellipse)\r\n{\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        Random(ellipse, items[i]);\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = RandomEllipse;\r\n\n\n/***/ }),\n\n/***/ 96000:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Random = __webpack_require__(65822);\r\n\r\n/**\r\n * Takes an array of Game Objects and positions them at random locations on the Line.\r\n * \r\n * If you wish to pass a `Phaser.GameObjects.Line` Shape to this function, you should pass its `geom` property.\r\n *\r\n * @function Phaser.Actions.RandomLine\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {Phaser.Geom.Line} line - The Line to position the Game Objects randomly on.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar RandomLine = function (items, line)\r\n{\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        Random(line, items[i]);\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = RandomLine;\r\n\n\n/***/ }),\n\n/***/ 28789:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Random = __webpack_require__(26597);\r\n\r\n/**\r\n * Takes an array of Game Objects and positions them at random locations within the Rectangle.\r\n *\r\n * @function Phaser.Actions.RandomRectangle\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {Phaser.Geom.Rectangle} rect - The Rectangle to position the Game Objects within.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar RandomRectangle = function (items, rect)\r\n{\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        Random(rect, items[i]);\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = RandomRectangle;\r\n\n\n/***/ }),\n\n/***/ 97154:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Random = __webpack_require__(90260);\r\n\r\n/**\r\n * Takes an array of Game Objects and positions them at random locations within the Triangle.\r\n * \r\n * If you wish to pass a `Phaser.GameObjects.Triangle` Shape to this function, you should pass its `geom` property.\r\n *\r\n * @function Phaser.Actions.RandomTriangle\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {Phaser.Geom.Triangle} triangle - The Triangle to position the Game Objects within.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar RandomTriangle = function (items, triangle)\r\n{\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        Random(triangle, items[i]);\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = RandomTriangle;\r\n\n\n/***/ }),\n\n/***/ 20510:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueInc = __webpack_require__(66979);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have a public `rotation` property,\r\n * and then adds the given value to each of their `rotation` properties.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `Rotate(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.Rotate\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to be added to the `rotation` property (in radians).\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar Rotate = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueInc(items, 'rotation', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = Rotate;\r\n\n\n/***/ }),\n\n/***/ 91051:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar RotateAroundDistance = __webpack_require__(1163);\r\nvar DistanceBetween = __webpack_require__(20339);\r\n\r\n/**\r\n * Rotates each item around the given point by the given angle.\r\n *\r\n * @function Phaser.Actions.RotateAround\r\n * @since 3.0.0\r\n * @see Phaser.Math.RotateAroundDistance\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {object} point - Any object with public `x` and `y` properties.\r\n * @param {number} angle - The angle to rotate by, in radians.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar RotateAround = function (items, point, angle)\r\n{\r\n    var x = point.x;\r\n    var y = point.y;\r\n\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        var item = items[i];\r\n\r\n        RotateAroundDistance(item, x, y, angle, Math.max(1, DistanceBetween(item.x, item.y, x, y)));\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = RotateAround;\r\n\n\n/***/ }),\n\n/***/ 76332:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar MathRotateAroundDistance = __webpack_require__(1163);\r\n\r\n/**\r\n * Rotates an array of Game Objects around a point by the given angle and distance.\r\n *\r\n * @function Phaser.Actions.RotateAroundDistance\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {object} point - Any object with public `x` and `y` properties.\r\n * @param {number} angle - The angle to rotate by, in radians.\r\n * @param {number} distance - The distance from the point of rotation in pixels.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar RotateAroundDistance = function (items, point, angle, distance)\r\n{\r\n    var x = point.x;\r\n    var y = point.y;\r\n\r\n    //  There's nothing to do\r\n    if (distance === 0)\r\n    {\r\n        return items;\r\n    }\r\n\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        MathRotateAroundDistance(items[i], x, y, angle, distance);\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = RotateAroundDistance;\r\n\n\n/***/ }),\n\n/***/ 61619:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueInc = __webpack_require__(66979);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have a public `scaleX` property,\r\n * and then adds the given value to each of their `scaleX` properties.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `ScaleX(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.ScaleX\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to be added to the `scaleX` property.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar ScaleX = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueInc(items, 'scaleX', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = ScaleX;\r\n\n\n/***/ }),\n\n/***/ 94868:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueInc = __webpack_require__(66979);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have public `scaleX` and `scaleY` properties,\r\n * and then adds the given value to each of them.\r\n *\r\n * The optional `stepX` and `stepY` properties are applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `ScaleXY(group.getChildren(), scaleX, scaleY, stepX, stepY)`\r\n *\r\n * @function Phaser.Actions.ScaleXY\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} scaleX - The amount to be added to the `scaleX` property.\r\n * @param {number} [scaleY] - The amount to be added to the `scaleY` property. If `undefined` or `null` it uses the `scaleX` value.\r\n * @param {number} [stepX=0] - This is added to the `scaleX` amount, multiplied by the iteration counter.\r\n * @param {number} [stepY=0] - This is added to the `scaleY` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar ScaleXY = function (items, scaleX, scaleY, stepX, stepY, index, direction)\r\n{\r\n    if (scaleY === undefined || scaleY === null) { scaleY = scaleX; }\r\n\r\n    PropertyValueInc(items, 'scaleX', scaleX, stepX, index, direction);\r\n\r\n    return PropertyValueInc(items, 'scaleY', scaleY, stepY, index, direction);\r\n};\r\n\r\nmodule.exports = ScaleXY;\r\n\n\n/***/ }),\n\n/***/ 95532:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueInc = __webpack_require__(66979);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have a public `scaleY` property,\r\n * and then adds the given value to each of their `scaleY` properties.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `ScaleY(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.ScaleY\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to be added to the `scaleY` property.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar ScaleY = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueInc(items, 'scaleY', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = ScaleY;\r\n\n\n/***/ }),\n\n/***/ 8689:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public property `alpha`\r\n * and then sets it to the given value.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `SetAlpha(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.SetAlpha\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to set the property to.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetAlpha = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueSet(items, 'alpha', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = SetAlpha;\r\n\n\n/***/ }),\n\n/***/ 2645:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public property `blendMode`\r\n * and then sets it to the given value.\r\n *\r\n * To use this with a Group: `SetBlendMode(group.getChildren(), value)`\r\n *\r\n * @function Phaser.Actions.SetBlendMode\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {(Phaser.BlendModes|string|number)} value - The Blend Mode to be set.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetBlendMode = function (items, value, index, direction)\r\n{\r\n    return PropertyValueSet(items, 'blendMode', value, 0, index, direction);\r\n};\r\n\r\nmodule.exports = SetBlendMode;\r\n\n\n/***/ }),\n\n/***/ 32372:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public property `depth`\r\n * and then sets it to the given value.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `SetDepth(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.SetDepth\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to set the property to.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetDepth = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueSet(items, 'depth', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = SetDepth;\r\n\n\n/***/ }),\n\n/***/ 85373:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Passes all provided Game Objects to the Input Manager to enable them for input with identical areas and callbacks.\r\n *\r\n * @see {@link Phaser.GameObjects.GameObject#setInteractive}\r\n *\r\n * @function Phaser.Actions.SetHitArea\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {(Phaser.Types.Input.InputConfiguration|any)} [hitArea] - Either an input configuration object, or a geometric shape that defines the hit area for the Game Object. If not given it will try to create a Rectangle based on the texture frame.\r\n * @param {Phaser.Types.Input.HitAreaCallback} [callback] - The callback that determines if the pointer is within the Hit Area shape or not. If you provide a shape you must also provide a callback.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar SetHitArea = function (items, hitArea, hitAreaCallback)\r\n{\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        items[i].setInteractive(hitArea, hitAreaCallback);\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = SetHitArea;\r\n\n\n/***/ }),\n\n/***/ 81583:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public properties `originX` and `originY`\r\n * and then sets them to the given values.\r\n *\r\n * The optional `stepX` and `stepY` properties are applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `SetOrigin(group.getChildren(), originX, originY, stepX, stepY)`\r\n *\r\n * @function Phaser.Actions.SetOrigin\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} originX - The amount to set the `originX` property to.\r\n * @param {number} [originY] - The amount to set the `originY` property to. If `undefined` or `null` it uses the `originX` value.\r\n * @param {number} [stepX=0] - This is added to the `originX` amount, multiplied by the iteration counter.\r\n * @param {number} [stepY=0] - This is added to the `originY` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetOrigin = function (items, originX, originY, stepX, stepY, index, direction)\r\n{\r\n    if (originY === undefined || originY === null) { originY = originX; }\r\n\r\n    PropertyValueSet(items, 'originX', originX, stepX, index, direction);\r\n    PropertyValueSet(items, 'originY', originY, stepY, index, direction);\r\n\r\n    items.forEach(function (item)\r\n    {\r\n        item.updateDisplayOrigin();\r\n    });\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = SetOrigin;\r\n\n\n/***/ }),\n\n/***/ 79939:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public property `rotation`\r\n * and then sets it to the given value.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `SetRotation(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.SetRotation\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to set the property to.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetRotation = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueSet(items, 'rotation', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = SetRotation;\r\n\n\n/***/ }),\n\n/***/ 2699:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public properties `scaleX` and `scaleY`\r\n * and then sets them to the given values.\r\n *\r\n * The optional `stepX` and `stepY` properties are applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `SetScale(group.getChildren(), scaleX, scaleY, stepX, stepY)`\r\n *\r\n * @function Phaser.Actions.SetScale\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} scaleX - The amount to set the `scaleX` property to.\r\n * @param {number} [scaleY] - The amount to set the `scaleY` property to. If `undefined` or `null` it uses the `scaleX` value.\r\n * @param {number} [stepX=0] - This is added to the `scaleX` amount, multiplied by the iteration counter.\r\n * @param {number} [stepY=0] - This is added to the `scaleY` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetScale = function (items, scaleX, scaleY, stepX, stepY, index, direction)\r\n{\r\n    if (scaleY === undefined || scaleY === null) { scaleY = scaleX; }\r\n\r\n    PropertyValueSet(items, 'scaleX', scaleX, stepX, index, direction);\r\n\r\n    return PropertyValueSet(items, 'scaleY', scaleY, stepY, index, direction);\r\n};\r\n\r\nmodule.exports = SetScale;\r\n\n\n/***/ }),\n\n/***/ 98739:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public property `scaleX`\r\n * and then sets it to the given value.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `SetScaleX(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.SetScaleX\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to set the property to.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetScaleX = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueSet(items, 'scaleX', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = SetScaleX;\r\n\n\n/***/ }),\n\n/***/ 98476:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public property `scaleY`\r\n * and then sets it to the given value.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `SetScaleY(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.SetScaleY\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to set the property to.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetScaleY = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueSet(items, 'scaleY', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = SetScaleY;\r\n\n\n/***/ }),\n\n/***/ 6207:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public properties `scrollFactorX` and `scrollFactorY`\r\n * and then sets them to the given values.\r\n *\r\n * The optional `stepX` and `stepY` properties are applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `SetScrollFactor(group.getChildren(), scrollFactorX, scrollFactorY, stepX, stepY)`\r\n *\r\n * @function Phaser.Actions.SetScrollFactor\r\n * @since 3.21.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} scrollFactorX - The amount to set the `scrollFactorX` property to.\r\n * @param {number} [scrollFactorY] - The amount to set the `scrollFactorY` property to. If `undefined` or `null` it uses the `scrollFactorX` value.\r\n * @param {number} [stepX=0] - This is added to the `scrollFactorX` amount, multiplied by the iteration counter.\r\n * @param {number} [stepY=0] - This is added to the `scrollFactorY` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetScrollFactor = function (items, scrollFactorX, scrollFactorY, stepX, stepY, index, direction)\r\n{\r\n    if (scrollFactorY === undefined || scrollFactorY === null) { scrollFactorY = scrollFactorX; }\r\n\r\n    PropertyValueSet(items, 'scrollFactorX', scrollFactorX, stepX, index, direction);\r\n\r\n    return PropertyValueSet(items, 'scrollFactorY', scrollFactorY, stepY, index, direction);\r\n};\r\n\r\nmodule.exports = SetScrollFactor;\r\n\n\n/***/ }),\n\n/***/ 6607:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public property `scrollFactorX`\r\n * and then sets it to the given value.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `SetScrollFactorX(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.SetScrollFactorX\r\n * @since 3.21.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to set the property to.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetScrollFactorX = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueSet(items, 'scrollFactorX', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = SetScrollFactorX;\r\n\n\n/***/ }),\n\n/***/ 72248:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public property `scrollFactorY`\r\n * and then sets it to the given value.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `SetScrollFactorY(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.SetScrollFactorY\r\n * @since 3.21.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to set the property to.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetScrollFactorY = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueSet(items, 'scrollFactorY', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = SetScrollFactorY;\r\n\n\n/***/ }),\n\n/***/ 14036:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public method setTint() and then updates it to the given value(s). You can specify tint color per corner or provide only one color value for `topLeft` parameter, in which case whole item will be tinted with that color.\r\n *\r\n * @function Phaser.Actions.SetTint\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {number} topLeft - The tint being applied to top-left corner of item. If other parameters are given no value, this tint will be applied to whole item.\r\n * @param {number} [topRight] - The tint to be applied to top-right corner of item.\r\n * @param {number} [bottomLeft] - The tint to be applied to the bottom-left corner of item.\r\n * @param {number} [bottomRight] - The tint to be applied to the bottom-right corner of item.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar SetTint = function (items, topLeft, topRight, bottomLeft, bottomRight)\r\n{\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        items[i].setTint(topLeft, topRight, bottomLeft, bottomRight);\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = SetTint;\r\n\n\n/***/ }),\n\n/***/ 50159:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public property `visible`\r\n * and then sets it to the given value.\r\n *\r\n * To use this with a Group: `SetVisible(group.getChildren(), value)`\r\n *\r\n * @function Phaser.Actions.SetVisible\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {boolean} value - The value to set the property to.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetVisible = function (items, value, index, direction)\r\n{\r\n    return PropertyValueSet(items, 'visible', value, 0, index, direction);\r\n};\r\n\r\nmodule.exports = SetVisible;\r\n\n\n/***/ }),\n\n/***/ 77597:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public property `x`\r\n * and then sets it to the given value.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `SetX(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.SetX\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to set the property to.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetX = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueSet(items, 'x', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = SetX;\r\n\n\n/***/ }),\n\n/***/ 83194:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public properties `x` and `y`\r\n * and then sets them to the given values.\r\n *\r\n * The optional `stepX` and `stepY` properties are applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `SetXY(group.getChildren(), x, y, stepX, stepY)`\r\n *\r\n * @function Phaser.Actions.SetXY\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} x - The amount to set the `x` property to.\r\n * @param {number} [y=x] - The amount to set the `y` property to. If `undefined` or `null` it uses the `x` value.\r\n * @param {number} [stepX=0] - This is added to the `x` amount, multiplied by the iteration counter.\r\n * @param {number} [stepY=0] - This is added to the `y` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetXY = function (items, x, y, stepX, stepY, index, direction)\r\n{\r\n    if (y === undefined || y === null) { y = x; }\r\n\r\n    PropertyValueSet(items, 'x', x, stepX, index, direction);\r\n\r\n    return PropertyValueSet(items, 'y', y, stepY, index, direction);\r\n};\r\n\r\nmodule.exports = SetXY;\r\n\n\n/***/ }),\n\n/***/ 67678:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PropertyValueSet = __webpack_require__(43967);\r\n\r\n/**\r\n * Takes an array of Game Objects, or any objects that have the public property `y`\r\n * and then sets it to the given value.\r\n *\r\n * The optional `step` property is applied incrementally, multiplied by each item in the array.\r\n *\r\n * To use this with a Group: `SetY(group.getChildren(), value, step)`\r\n *\r\n * @function Phaser.Actions.SetY\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - The array of items to be updated by this action.\r\n * @param {number} value - The amount to set the property to.\r\n * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of objects that were passed to this Action.\r\n */\r\nvar SetY = function (items, value, step, index, direction)\r\n{\r\n    return PropertyValueSet(items, 'y', value, step, index, direction);\r\n};\r\n\r\nmodule.exports = SetY;\r\n\n\n/***/ }),\n\n/***/ 35850:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * Takes an array of items, such as Game Objects, or any objects with public `x` and\r\n * `y` properties and then iterates through them. As this function iterates, it moves\r\n * the position of the current element to be that of the previous entry in the array.\r\n * This repeats until all items have been moved.\r\n *\r\n * The direction controls the order of iteration. A value of 0 (the default) assumes\r\n * that the final item in the array is the 'head' item.\r\n *\r\n * A direction value of 1 assumes that the first item in the array is the 'head' item.\r\n *\r\n * The position of the 'head' item is set to the x/y values given to this function.\r\n * Every other item in the array is then updated, in sequence, to be that of the\r\n * previous (or next) entry in the array.\r\n *\r\n * The final x/y coords are returned, or set in the 'output' Vector2.\r\n *\r\n * Think of it as being like the game Snake, where the 'head' is moved and then\r\n * each body piece is moved into the space of the previous piece.\r\n *\r\n * @function Phaser.Actions.ShiftPosition\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items]\r\n * @generic {Phaser.Math.Vector2} O - [output,$return]\r\n *\r\n * @param {(Phaser.Types.Math.Vector2Like[]|Phaser.GameObjects.GameObject[])} items - An array of Game Objects, or objects with public x and y positions. The contents of this array are updated by this Action.\r\n * @param {number} x - The x coordinate to place the head item at.\r\n * @param {number} y - The y coordinate to place the head item at.\r\n * @param {number} [direction=0] - The iteration direction. 0 = first to last and 1 = last to first.\r\n * @param {Phaser.Types.Math.Vector2Like} [output] - An optional Vec2Like object to store the final position in.\r\n *\r\n * @return {Phaser.Types.Math.Vector2Like} The output vector.\r\n */\r\nvar ShiftPosition = function (items, x, y, direction, output)\r\n{\r\n    if (direction === undefined) { direction = 0; }\r\n    if (output === undefined) { output = new Vector2(); }\r\n\r\n    var px;\r\n    var py;\r\n    var len = items.length;\r\n\r\n    if (len === 1)\r\n    {\r\n        px = items[0].x;\r\n        py = items[0].y;\r\n\r\n        items[0].x = x;\r\n        items[0].y = y;\r\n    }\r\n    else\r\n    {\r\n        var i = 1;\r\n        var pos = 0;\r\n\r\n        if (direction === 0)\r\n        {\r\n            pos = len - 1;\r\n            i = len - 2;\r\n        }\r\n\r\n        px = items[pos].x;\r\n        py = items[pos].y;\r\n\r\n        //  Update the head item to the new x/y coordinates\r\n        items[pos].x = x;\r\n        items[pos].y = y;\r\n\r\n        for (var c = 0; c < len; c++)\r\n        {\r\n            if (i >= len || i === -1)\r\n            {\r\n                continue;\r\n            }\r\n\r\n            //  Current item\r\n            var cur = items[i];\r\n\r\n            //  Get current item x/y, to be passed to the next item in the list\r\n            var cx = cur.x;\r\n            var cy = cur.y;\r\n\r\n            //  Set current item to the previous items x/y\r\n            cur.x = px;\r\n            cur.y = py;\r\n\r\n            //  Set current as previous\r\n            px = cx;\r\n            py = cy;\r\n\r\n            if (direction === 0)\r\n            {\r\n                i--;\r\n            }\r\n            else\r\n            {\r\n                i++;\r\n            }\r\n        }\r\n    }\r\n\r\n    //  Return the final set of coordinates as they're effectively lost from the shift and may be needed\r\n\r\n    output.x = px;\r\n    output.y = py;\r\n\r\n    return output;\r\n};\r\n\r\nmodule.exports = ShiftPosition;\r\n\n\n/***/ }),\n\n/***/ 8628:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar ArrayShuffle = __webpack_require__(33680);\r\n\r\n/**\r\n * Shuffles the array in place. The shuffled array is both modified and returned.\r\n *\r\n * @function Phaser.Actions.Shuffle\r\n * @since 3.0.0\r\n * @see Phaser.Utils.Array.Shuffle\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar Shuffle = function (items)\r\n{\r\n    return ArrayShuffle(items);\r\n};\r\n\r\nmodule.exports = Shuffle;\r\n\n\n/***/ }),\n\n/***/ 21837:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar MathSmoothStep = __webpack_require__(7602);\r\n\r\n/**\r\n * Smoothstep is a sigmoid-like interpolation and clamping function.\r\n *\r\n * The function depends on three parameters, the input x, the \"left edge\"\r\n * and the \"right edge\", with the left edge being assumed smaller than the right edge.\r\n *\r\n * The function receives a real number x as an argument and returns 0 if x is less than\r\n * or equal to the left edge, 1 if x is greater than or equal to the right edge, and smoothly\r\n * interpolates, using a Hermite polynomial, between 0 and 1 otherwise. The slope of the\r\n * smoothstep function is zero at both edges.\r\n *\r\n * This is convenient for creating a sequence of transitions using smoothstep to interpolate\r\n * each segment as an alternative to using more sophisticated or expensive interpolation techniques.\r\n *\r\n * @function Phaser.Actions.SmoothStep\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {string} property - The property of the Game Object to interpolate.\r\n * @param {number} min - The minimum interpolation value.\r\n * @param {number} max - The maximum interpolation value.\r\n * @param {boolean} [inc=false] - Should the property value be incremented (`true`) or set (`false`)?\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar SmoothStep = function (items, property, min, max, inc)\r\n{\r\n    if (inc === undefined) { inc = false; }\r\n\r\n    var step = Math.abs(max - min) / items.length;\r\n    var i;\r\n\r\n    if (inc)\r\n    {\r\n        for (i = 0; i < items.length; i++)\r\n        {\r\n            items[i][property] += MathSmoothStep(i * step, min, max);\r\n        }\r\n    }\r\n    else\r\n    {\r\n        for (i = 0; i < items.length; i++)\r\n        {\r\n            items[i][property] = MathSmoothStep(i * step, min, max);\r\n        }\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = SmoothStep;\r\n\n\n/***/ }),\n\n/***/ 21910:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar MathSmootherStep = __webpack_require__(54261);\r\n\r\n/**\r\n * Smootherstep is a sigmoid-like interpolation and clamping function.\r\n * \r\n * The function depends on three parameters, the input x, the \"left edge\" and the \"right edge\", with the left edge being assumed smaller than the right edge. The function receives a real number x as an argument and returns 0 if x is less than or equal to the left edge, 1 if x is greater than or equal to the right edge, and smoothly interpolates, using a Hermite polynomial, between 0 and 1 otherwise. The slope of the smoothstep function is zero at both edges. This is convenient for creating a sequence of transitions using smoothstep to interpolate each segment as an alternative to using more sophisticated or expensive interpolation techniques.\r\n *\r\n * @function Phaser.Actions.SmootherStep\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {string} property - The property of the Game Object to interpolate.\r\n * @param {number} min - The minimum interpolation value.\r\n * @param {number} max - The maximum interpolation value.\r\n * @param {boolean} [inc=false] - Should the values be incremented? `true` or set (`false`)\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar SmootherStep = function (items, property, min, max, inc)\r\n{\r\n    if (inc === undefined) { inc = false; }\r\n\r\n    var step = Math.abs(max - min) / items.length;\r\n    var i;\r\n\r\n    if (inc)\r\n    {\r\n        for (i = 0; i < items.length; i++)\r\n        {\r\n            items[i][property] += MathSmootherStep(i * step, min, max);\r\n        }\r\n    }\r\n    else\r\n    {\r\n        for (i = 0; i < items.length; i++)\r\n        {\r\n            items[i][property] = MathSmootherStep(i * step, min, max);\r\n        }\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = SmootherStep;\r\n\n\n/***/ }),\n\n/***/ 62054:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Takes an array of Game Objects and then modifies their `property` so the value equals, or is incremented, by the\r\n * calculated spread value.\r\n * \r\n * The spread value is derived from the given `min` and `max` values and the total number of items in the array.\r\n * \r\n * For example, to cause an array of Sprites to change in alpha from 0 to 1 you could call:\r\n * \r\n * ```javascript\r\n * Phaser.Actions.Spread(itemsArray, 'alpha', 0, 1);\r\n * ```\r\n *\r\n * @function Phaser.Actions.Spread\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {string} property - The property of the Game Object to spread.\r\n * @param {number} min - The minimum value.\r\n * @param {number} max - The maximum value.\r\n * @param {boolean} [inc=false] - Should the values be incremented? `true` or set (`false`)\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that were passed to this Action.\r\n */\r\nvar Spread = function (items, property, min, max, inc)\r\n{\r\n    if (inc === undefined) { inc = false; }\r\n    if (items.length === 0) { return items; }\r\n    if (items.length === 1) // if only one item put it at the center\r\n    {\r\n        if (inc)\r\n        {\r\n            items[0][property] += (max + min) / 2;\r\n        }\r\n        else\r\n        {\r\n            items[0][property] = (max + min) / 2;\r\n        }\r\n\r\n        return items;\r\n    }\r\n\r\n    var step = Math.abs(max - min) / (items.length - 1);\r\n    var i;\r\n\r\n    if (inc)\r\n    {\r\n        for (i = 0; i < items.length; i++)\r\n        {\r\n            items[i][property] += i * step + min;\r\n        }\r\n    }\r\n    else\r\n    {\r\n        for (i = 0; i < items.length; i++)\r\n        {\r\n            items[i][property] = i * step + min;\r\n        }\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = Spread;\r\n\n\n/***/ }),\n\n/***/ 79815:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Takes an array of Game Objects and toggles the visibility of each one.\r\n * Those previously `visible = false` will become `visible = true`, and vice versa.\r\n *\r\n * @function Phaser.Actions.ToggleVisible\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar ToggleVisible = function (items)\r\n{\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        items[i].visible = !items[i].visible;\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = ToggleVisible;\r\n\n\n/***/ }),\n\n/***/ 39665:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @author       samme <samme.npm@gmail.com>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Wrap = __webpack_require__(15994);\r\n\r\n/**\r\n * Iterates through the given array and makes sure that each objects x and y\r\n * properties are wrapped to keep them contained within the given Rectangles\r\n * area.\r\n *\r\n * @function Phaser.Actions.WrapInRectangle\r\n * @since 3.0.0\r\n * @see Phaser.Math.Wrap\r\n *\r\n * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n *\r\n * @param {(array|Phaser.GameObjects.GameObject[])} items - An array of Game Objects. The contents of this array are updated by this Action.\r\n * @param {Phaser.Geom.Rectangle} rect - The rectangle which the objects will be wrapped to remain within.\r\n * @param {number} [padding=0] - An amount added to each side of the rectangle during the operation.\r\n *\r\n * @return {(array|Phaser.GameObjects.GameObject[])} The array of Game Objects that was passed to this Action.\r\n */\r\nvar WrapInRectangle = function (items, rect, padding)\r\n{\r\n    if (padding === undefined)\r\n    {\r\n        padding = 0;\r\n    }\r\n\r\n    for (var i = 0; i < items.length; i++)\r\n    {\r\n        var item = items[i];\r\n\r\n        item.x = Wrap(item.x, rect.left - padding, rect.right + padding);\r\n        item.y = Wrap(item.y, rect.top - padding, rect.bottom + padding);\r\n    }\r\n\r\n    return items;\r\n};\r\n\r\nmodule.exports = WrapInRectangle;\r\n\n\n/***/ }),\n\n/***/ 61061:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Actions\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    AlignTo: __webpack_require__(11517),\r\n    Angle: __webpack_require__(80318),\r\n    Call: __webpack_require__(60757),\r\n    GetFirst: __webpack_require__(69927),\r\n    GetLast: __webpack_require__(32265),\r\n    GridAlign: __webpack_require__(94420),\r\n    IncAlpha: __webpack_require__(41721),\r\n    IncX: __webpack_require__(67285),\r\n    IncXY: __webpack_require__(9074),\r\n    IncY: __webpack_require__(75222),\r\n    PlaceOnCircle: __webpack_require__(22983),\r\n    PlaceOnEllipse: __webpack_require__(95253),\r\n    PlaceOnLine: __webpack_require__(88505),\r\n    PlaceOnRectangle: __webpack_require__(41346),\r\n    PlaceOnTriangle: __webpack_require__(11575),\r\n    PlayAnimation: __webpack_require__(29953),\r\n    PropertyValueInc: __webpack_require__(66979),\r\n    PropertyValueSet: __webpack_require__(43967),\r\n    RandomCircle: __webpack_require__(88926),\r\n    RandomEllipse: __webpack_require__(33286),\r\n    RandomLine: __webpack_require__(96000),\r\n    RandomRectangle: __webpack_require__(28789),\r\n    RandomTriangle: __webpack_require__(97154),\r\n    Rotate: __webpack_require__(20510),\r\n    RotateAround: __webpack_require__(91051),\r\n    RotateAroundDistance: __webpack_require__(76332),\r\n    ScaleX: __webpack_require__(61619),\r\n    ScaleXY: __webpack_require__(94868),\r\n    ScaleY: __webpack_require__(95532),\r\n    SetAlpha: __webpack_require__(8689),\r\n    SetBlendMode: __webpack_require__(2645),\r\n    SetDepth: __webpack_require__(32372),\r\n    SetHitArea: __webpack_require__(85373),\r\n    SetOrigin: __webpack_require__(81583),\r\n    SetRotation: __webpack_require__(79939),\r\n    SetScale: __webpack_require__(2699),\r\n    SetScaleX: __webpack_require__(98739),\r\n    SetScaleY: __webpack_require__(98476),\r\n    SetScrollFactor: __webpack_require__(6207),\r\n    SetScrollFactorX: __webpack_require__(6607),\r\n    SetScrollFactorY: __webpack_require__(72248),\r\n    SetTint: __webpack_require__(14036),\r\n    SetVisible: __webpack_require__(50159),\r\n    SetX: __webpack_require__(77597),\r\n    SetXY: __webpack_require__(83194),\r\n    SetY: __webpack_require__(67678),\r\n    ShiftPosition: __webpack_require__(35850),\r\n    Shuffle: __webpack_require__(8628),\r\n    SmootherStep: __webpack_require__(21910),\r\n    SmoothStep: __webpack_require__(21837),\r\n    Spread: __webpack_require__(62054),\r\n    ToggleVisible: __webpack_require__(79815),\r\n    WrapInRectangle: __webpack_require__(39665)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 42099:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Clamp = __webpack_require__(45319);\r\nvar Class = __webpack_require__(83419);\r\nvar Events = __webpack_require__(74943);\r\nvar FindClosestInSorted = __webpack_require__(81957);\r\nvar Frame = __webpack_require__(41138);\r\nvar GetValue = __webpack_require__(35154);\r\nvar SortByDigits = __webpack_require__(90126);\r\n\r\n/**\r\n * @classdesc\r\n * A Frame based Animation.\r\n *\r\n * Animations in Phaser consist of a sequence of `AnimationFrame` objects, which are managed by\r\n * this class, along with properties that impact playback, such as the animations frame rate\r\n * or delay.\r\n *\r\n * This class contains all of the properties and methods needed to handle playback of the animation\r\n * directly to an `AnimationState` instance, which is owned by a Sprite, or similar Game Object.\r\n *\r\n * You don't typically create an instance of this class directly, but instead go via\r\n * either the `AnimationManager` or the `AnimationState` and use their `create` methods,\r\n * depending on if you need a global animation, or local to a specific Sprite.\r\n *\r\n * @class Animation\r\n * @memberof Phaser.Animations\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Animations.AnimationManager} manager - A reference to the global Animation Manager\r\n * @param {string} key - The unique identifying string for this animation.\r\n * @param {Phaser.Types.Animations.Animation} config - The Animation configuration.\r\n */\r\nvar Animation = new Class({\r\n\r\n    initialize:\r\n\r\n    function Animation (manager, key, config)\r\n    {\r\n        /**\r\n         * A reference to the global Animation Manager.\r\n         *\r\n         * @name Phaser.Animations.Animation#manager\r\n         * @type {Phaser.Animations.AnimationManager}\r\n         * @since 3.0.0\r\n         */\r\n        this.manager = manager;\r\n\r\n        /**\r\n         * The unique identifying string for this animation.\r\n         *\r\n         * @name Phaser.Animations.Animation#key\r\n         * @type {string}\r\n         * @since 3.0.0\r\n         */\r\n        this.key = key;\r\n\r\n        /**\r\n         * A frame based animation (as opposed to a bone based animation)\r\n         *\r\n         * @name Phaser.Animations.Animation#type\r\n         * @type {string}\r\n         * @default frame\r\n         * @since 3.0.0\r\n         */\r\n        this.type = 'frame';\r\n\r\n        /**\r\n         * Extract all the frame data into the frames array.\r\n         *\r\n         * @name Phaser.Animations.Animation#frames\r\n         * @type {Phaser.Animations.AnimationFrame[]}\r\n         * @since 3.0.0\r\n         */\r\n        this.frames = this.getFrames(\r\n            manager.textureManager,\r\n            GetValue(config, 'frames', []),\r\n            GetValue(config, 'defaultTextureKey', null),\r\n            GetValue(config, 'sortFrames', true)\r\n        );\r\n\r\n        /**\r\n         * The frame rate of playback in frames per second (default 24 if duration is null)\r\n         *\r\n         * @name Phaser.Animations.Animation#frameRate\r\n         * @type {number}\r\n         * @default 24\r\n         * @since 3.0.0\r\n         */\r\n        this.frameRate = GetValue(config, 'frameRate', null);\r\n\r\n        /**\r\n         * How long the animation should play for, in milliseconds.\r\n         * If the `frameRate` property has been set then it overrides this value,\r\n         * otherwise the `frameRate` is derived from `duration`.\r\n         *\r\n         * @name Phaser.Animations.Animation#duration\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         */\r\n        this.duration = GetValue(config, 'duration', null);\r\n\r\n        /**\r\n         * How many ms per frame, not including frame specific modifiers.\r\n         *\r\n         * @name Phaser.Animations.Animation#msPerFrame\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         */\r\n        this.msPerFrame;\r\n\r\n        /**\r\n         * Skip frames if the time lags, or always advanced anyway?\r\n         *\r\n         * @name Phaser.Animations.Animation#skipMissedFrames\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         */\r\n        this.skipMissedFrames = GetValue(config, 'skipMissedFrames', true);\r\n\r\n        /**\r\n         * The delay in ms before the playback will begin.\r\n         *\r\n         * @name Phaser.Animations.Animation#delay\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.delay = GetValue(config, 'delay', 0);\r\n\r\n        /**\r\n         * Number of times to repeat the animation. Set to -1 to repeat forever.\r\n         *\r\n         * @name Phaser.Animations.Animation#repeat\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.repeat = GetValue(config, 'repeat', 0);\r\n\r\n        /**\r\n         * The delay in ms before the a repeat play starts.\r\n         *\r\n         * @name Phaser.Animations.Animation#repeatDelay\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.repeatDelay = GetValue(config, 'repeatDelay', 0);\r\n\r\n        /**\r\n         * Should the animation yoyo (reverse back down to the start) before repeating?\r\n         *\r\n         * @name Phaser.Animations.Animation#yoyo\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.yoyo = GetValue(config, 'yoyo', false);\r\n\r\n        /**\r\n         * If the animation has a delay set, before playback will begin, this\r\n         * controls when the first frame is set on the Sprite. If this property\r\n         * is 'false' then the frame is set only after the delay has expired.\r\n         * This is the default behavior.\r\n         *\r\n         * @name Phaser.Animations.Animation#showBeforeDelay\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.60.0\r\n         */\r\n        this.showBeforeDelay = GetValue(config, 'showBeforeDelay', false);\r\n\r\n        /**\r\n         * Should the GameObject's `visible` property be set to `true` when the animation starts to play?\r\n         *\r\n         * @name Phaser.Animations.Animation#showOnStart\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.showOnStart = GetValue(config, 'showOnStart', false);\r\n\r\n        /**\r\n         * Should the GameObject's `visible` property be set to `false` when the animation finishes?\r\n         *\r\n         * @name Phaser.Animations.Animation#hideOnComplete\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.hideOnComplete = GetValue(config, 'hideOnComplete', false);\r\n\r\n        /**\r\n         * Start playback of this animation from a random frame?\r\n         *\r\n         * @name Phaser.Animations.Animation#randomFrame\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.60.0\r\n         */\r\n        this.randomFrame = GetValue(config, 'randomFrame', false);\r\n\r\n        /**\r\n         * Global pause. All Game Objects using this Animation instance are impacted by this property.\r\n         *\r\n         * @name Phaser.Animations.Animation#paused\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.paused = false;\r\n\r\n        this.calculateDuration(this, this.getTotalFrames(), this.duration, this.frameRate);\r\n\r\n        if (this.manager.on)\r\n        {\r\n            this.manager.on(Events.PAUSE_ALL, this.pause, this);\r\n            this.manager.on(Events.RESUME_ALL, this.resume, this);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Gets the total number of frames in this animation.\r\n     *\r\n     * @method Phaser.Animations.Animation#getTotalFrames\r\n     * @since 3.50.0\r\n     *\r\n     * @return {number} The total number of frames in this animation.\r\n     */\r\n    getTotalFrames: function ()\r\n    {\r\n        return this.frames.length;\r\n    },\r\n\r\n    /**\r\n     * Calculates the duration, frame rate and msPerFrame values.\r\n     *\r\n     * @method Phaser.Animations.Animation#calculateDuration\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.Animations.Animation} target - The target to set the values on.\r\n     * @param {number} totalFrames - The total number of frames in the animation.\r\n     * @param {?number} [duration] - The duration to calculate the frame rate from. Pass `null` if you wish to set the `frameRate` instead.\r\n     * @param {?number} [frameRate] - The frame rate to calculate the duration from.\r\n     */\r\n    calculateDuration: function (target, totalFrames, duration, frameRate)\r\n    {\r\n        if (duration === null && frameRate === null)\r\n        {\r\n            //  No duration or frameRate given, use default frameRate of 24fps\r\n            target.frameRate = 24;\r\n            target.duration = (24 / totalFrames) * 1000;\r\n        }\r\n        else if (duration && frameRate === null)\r\n        {\r\n            //  Duration given but no frameRate, so set the frameRate based on duration\r\n            //  I.e. 12 frames in the animation, duration = 4000 ms\r\n            //  So frameRate is 12 / (4000 / 1000) = 3 fps\r\n            target.duration = duration;\r\n            target.frameRate = totalFrames / (duration / 1000);\r\n        }\r\n        else\r\n        {\r\n            //  frameRate given, derive duration from it (even if duration also specified)\r\n            //  I.e. 15 frames in the animation, frameRate = 30 fps\r\n            //  So duration is 15 / 30 = 0.5 * 1000 (half a second, or 500ms)\r\n            target.frameRate = frameRate;\r\n            target.duration = (totalFrames / frameRate) * 1000;\r\n        }\r\n\r\n        target.msPerFrame = 1000 / target.frameRate;\r\n    },\r\n\r\n    /**\r\n     * Add frames to the end of the animation.\r\n     *\r\n     * @method Phaser.Animations.Animation#addFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|Phaser.Types.Animations.AnimationFrame[])} config - Either a string, in which case it will use all frames from a texture with the matching key, or an array of Animation Frame configuration objects.\r\n     *\r\n     * @return {this} This Animation object.\r\n     */\r\n    addFrame: function (config)\r\n    {\r\n        return this.addFrameAt(this.frames.length, config);\r\n    },\r\n\r\n    /**\r\n     * Add frame/s into the animation.\r\n     *\r\n     * @method Phaser.Animations.Animation#addFrameAt\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} index - The index to insert the frame at within the animation.\r\n     * @param {(string|Phaser.Types.Animations.AnimationFrame[])} config - Either a string, in which case it will use all frames from a texture with the matching key, or an array of Animation Frame configuration objects.\r\n     *\r\n     * @return {this} This Animation object.\r\n     */\r\n    addFrameAt: function (index, config)\r\n    {\r\n        var newFrames = this.getFrames(this.manager.textureManager, config);\r\n\r\n        if (newFrames.length > 0)\r\n        {\r\n            if (index === 0)\r\n            {\r\n                this.frames = newFrames.concat(this.frames);\r\n            }\r\n            else if (index === this.frames.length)\r\n            {\r\n                this.frames = this.frames.concat(newFrames);\r\n            }\r\n            else\r\n            {\r\n                var pre = this.frames.slice(0, index);\r\n                var post = this.frames.slice(index);\r\n\r\n                this.frames = pre.concat(newFrames, post);\r\n            }\r\n\r\n            this.updateFrameSequence();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Check if the given frame index is valid.\r\n     *\r\n     * @method Phaser.Animations.Animation#checkFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} index - The index to be checked.\r\n     *\r\n     * @return {boolean} `true` if the index is valid, otherwise `false`.\r\n     */\r\n    checkFrame: function (index)\r\n    {\r\n        return (index >= 0 && index < this.frames.length);\r\n    },\r\n\r\n    /**\r\n     * Called internally when this Animation first starts to play.\r\n     * Sets the accumulator and nextTick properties.\r\n     *\r\n     * @method Phaser.Animations.Animation#getFirstTick\r\n     * @protected\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationState} state - The Animation State belonging to the Game Object invoking this call.\r\n     */\r\n    getFirstTick: function (state)\r\n    {\r\n        //  When is the first update due?\r\n        state.accumulator = 0;\r\n\r\n        state.nextTick = (state.currentFrame.duration) ? state.currentFrame.duration : state.msPerFrame;\r\n    },\r\n\r\n    /**\r\n     * Returns the AnimationFrame at the provided index\r\n     *\r\n     * @method Phaser.Animations.Animation#getFrameAt\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} index - The index in the AnimationFrame array\r\n     *\r\n     * @return {Phaser.Animations.AnimationFrame} The frame at the index provided from the animation sequence\r\n     */\r\n    getFrameAt: function (index)\r\n    {\r\n        return this.frames[index];\r\n    },\r\n\r\n    /**\r\n     * Creates AnimationFrame instances based on the given frame data.\r\n     *\r\n     * @method Phaser.Animations.Animation#getFrames\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Textures.TextureManager} textureManager - A reference to the global Texture Manager.\r\n     * @param {(string|Phaser.Types.Animations.AnimationFrame[])} frames - Either a string, in which case it will use all frames from a texture with the matching key, or an array of Animation Frame configuration objects.\r\n     * @param {string} [defaultTextureKey] - The key to use if no key is set in the frame configuration object.\r\n     *\r\n     * @return {Phaser.Animations.AnimationFrame[]} An array of newly created AnimationFrame instances.\r\n     */\r\n    getFrames: function (textureManager, frames, defaultTextureKey, sortFrames)\r\n    {\r\n        if (sortFrames === undefined) { sortFrames = true; }\r\n\r\n        var out = [];\r\n        var prev;\r\n        var animationFrame;\r\n        var index = 1;\r\n        var i;\r\n        var textureKey;\r\n\r\n        //  if frames is a string, we'll get all the frames from the texture manager as if it's a sprite sheet\r\n        if (typeof frames === 'string')\r\n        {\r\n            textureKey = frames;\r\n\r\n            if (!textureManager.exists(textureKey))\r\n            {\r\n                console.warn('Texture \"%s\" not found', textureKey);\r\n\r\n                return out;\r\n            }\r\n\r\n            var texture = textureManager.get(textureKey);\r\n            var frameKeys = texture.getFrameNames();\r\n\r\n            if (sortFrames)\r\n            {\r\n                SortByDigits(frameKeys);\r\n            }\r\n\r\n            frames = [];\r\n\r\n            frameKeys.forEach(function (value)\r\n            {\r\n                frames.push({ key: textureKey, frame: value });\r\n            });\r\n        }\r\n\r\n        if (!Array.isArray(frames) || frames.length === 0)\r\n        {\r\n            return out;\r\n        }\r\n\r\n        for (i = 0; i < frames.length; i++)\r\n        {\r\n            var item = frames[i];\r\n\r\n            var key = GetValue(item, 'key', defaultTextureKey);\r\n\r\n            if (!key)\r\n            {\r\n                continue;\r\n            }\r\n\r\n            //  Could be an integer or a string\r\n            var frame = GetValue(item, 'frame', 0);\r\n\r\n            //  The actual texture frame\r\n            var textureFrame = textureManager.getFrame(key, frame);\r\n\r\n            if (!textureFrame)\r\n            {\r\n                console.warn('Texture \"%s\" not found', key);\r\n\r\n                continue;\r\n            }\r\n\r\n            animationFrame = new Frame(key, frame, index, textureFrame);\r\n\r\n            animationFrame.duration = GetValue(item, 'duration', 0);\r\n\r\n            animationFrame.isFirst = (!prev);\r\n\r\n            //  The previously created animationFrame\r\n            if (prev)\r\n            {\r\n                prev.nextFrame = animationFrame;\r\n\r\n                animationFrame.prevFrame = prev;\r\n            }\r\n\r\n            out.push(animationFrame);\r\n\r\n            prev = animationFrame;\r\n\r\n            index++;\r\n        }\r\n\r\n        if (out.length > 0)\r\n        {\r\n            animationFrame.isLast = true;\r\n\r\n            //  Link them end-to-end, so they loop\r\n            animationFrame.nextFrame = out[0];\r\n\r\n            out[0].prevFrame = animationFrame;\r\n\r\n            //  Generate the progress data\r\n\r\n            var slice = 1 / (out.length - 1);\r\n\r\n            for (i = 0; i < out.length; i++)\r\n            {\r\n                out[i].progress = i * slice;\r\n            }\r\n        }\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Called internally. Sets the accumulator and nextTick values of the current Animation.\r\n     *\r\n     * @method Phaser.Animations.Animation#getNextTick\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationState} state - The Animation State belonging to the Game Object invoking this call.\r\n     */\r\n    getNextTick: function (state)\r\n    {\r\n        state.accumulator -= state.nextTick;\r\n\r\n        state.nextTick = (state.currentFrame.duration) ? state.currentFrame.duration : state.msPerFrame;\r\n    },\r\n\r\n    /**\r\n     * Returns the frame closest to the given progress value between 0 and 1.\r\n     *\r\n     * @method Phaser.Animations.Animation#getFrameByProgress\r\n     * @since 3.4.0\r\n     *\r\n     * @param {number} value - A value between 0 and 1.\r\n     *\r\n     * @return {Phaser.Animations.AnimationFrame} The frame closest to the given progress value.\r\n     */\r\n    getFrameByProgress: function (value)\r\n    {\r\n        value = Clamp(value, 0, 1);\r\n\r\n        return FindClosestInSorted(value, this.frames, 'progress');\r\n    },\r\n\r\n    /**\r\n     * Advance the animation frame.\r\n     *\r\n     * @method Phaser.Animations.Animation#nextFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationState} state - The Animation State to advance.\r\n     */\r\n    nextFrame: function (state)\r\n    {\r\n        var frame = state.currentFrame;\r\n\r\n        if (frame.isLast)\r\n        {\r\n            //  We're at the end of the animation\r\n\r\n            //  Yoyo? (happens before repeat)\r\n            if (state.yoyo)\r\n            {\r\n                this.handleYoyoFrame(state, false);\r\n            }\r\n            else if (state.repeatCounter > 0)\r\n            {\r\n                //  Repeat (happens before complete)\r\n\r\n                if (state.inReverse && state.forward)\r\n                {\r\n                    state.forward = false;\r\n                }\r\n                else\r\n                {\r\n                    this.repeatAnimation(state);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                state.complete();\r\n            }\r\n        }\r\n        else\r\n        {\r\n            this.updateAndGetNextTick(state, frame.nextFrame);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Handle the yoyo functionality in nextFrame and previousFrame methods.\r\n     *\r\n     * @method Phaser.Animations.Animation#handleYoyoFrame\r\n     * @private\r\n     * @since 3.12.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationState} state - The Animation State to advance.\r\n     * @param {boolean} isReverse - Is animation in reverse mode? (Default: false)\r\n     */\r\n    handleYoyoFrame: function (state, isReverse)\r\n    {\r\n        if (!isReverse) { isReverse = false; }\r\n\r\n        if (state.inReverse === !isReverse && state.repeatCounter > 0)\r\n        {\r\n            if (state.repeatDelay === 0 || state.pendingRepeat)\r\n            {\r\n                state.forward = isReverse;\r\n            }\r\n\r\n            this.repeatAnimation(state);\r\n\r\n            return;\r\n        }\r\n\r\n        if (state.inReverse !== isReverse && state.repeatCounter === 0)\r\n        {\r\n            state.complete();\r\n\r\n            return;\r\n        }\r\n\r\n        state.forward = isReverse;\r\n\r\n        var frame = (isReverse) ? state.currentFrame.nextFrame : state.currentFrame.prevFrame;\r\n\r\n        this.updateAndGetNextTick(state, frame);\r\n    },\r\n\r\n    /**\r\n     * Returns the animation last frame.\r\n     *\r\n     * @method Phaser.Animations.Animation#getLastFrame\r\n     * @since 3.12.0\r\n     *\r\n     * @return {Phaser.Animations.AnimationFrame} The last Animation Frame.\r\n     */\r\n    getLastFrame: function ()\r\n    {\r\n        return this.frames[this.frames.length - 1];\r\n    },\r\n\r\n    /**\r\n     * Called internally when the Animation is playing backwards.\r\n     * Sets the previous frame, causing a yoyo, repeat, complete or update, accordingly.\r\n     *\r\n     * @method Phaser.Animations.Animation#previousFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationState} state - The Animation State belonging to the Game Object invoking this call.\r\n     */\r\n    previousFrame: function (state)\r\n    {\r\n        var frame = state.currentFrame;\r\n\r\n        if (frame.isFirst)\r\n        {\r\n            //  We're at the start of the animation\r\n            if (state.yoyo)\r\n            {\r\n                this.handleYoyoFrame(state, true);\r\n            }\r\n            else if (state.repeatCounter > 0)\r\n            {\r\n                if (state.inReverse && !state.forward)\r\n                {\r\n                    this.repeatAnimation(state);\r\n                }\r\n                else\r\n                {\r\n                    //  Repeat (happens before complete)\r\n                    state.forward = true;\r\n\r\n                    this.repeatAnimation(state);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                state.complete();\r\n            }\r\n        }\r\n        else\r\n        {\r\n            this.updateAndGetNextTick(state, frame.prevFrame);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Update Frame and Wait next tick.\r\n     *\r\n     * @method Phaser.Animations.Animation#updateAndGetNextTick\r\n     * @private\r\n     * @since 3.12.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationState} state - The Animation State.\r\n     * @param {Phaser.Animations.AnimationFrame} frame - An Animation frame.\r\n     */\r\n    updateAndGetNextTick: function (state, frame)\r\n    {\r\n        state.setCurrentFrame(frame);\r\n\r\n        this.getNextTick(state);\r\n    },\r\n\r\n    /**\r\n     * Removes the given AnimationFrame from this Animation instance.\r\n     * This is a global action. Any Game Object using this Animation will be impacted by this change.\r\n     *\r\n     * @method Phaser.Animations.Animation#removeFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationFrame} frame - The AnimationFrame to be removed.\r\n     *\r\n     * @return {this} This Animation object.\r\n     */\r\n    removeFrame: function (frame)\r\n    {\r\n        var index = this.frames.indexOf(frame);\r\n\r\n        if (index !== -1)\r\n        {\r\n            this.removeFrameAt(index);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes a frame from the AnimationFrame array at the provided index\r\n     * and updates the animation accordingly.\r\n     *\r\n     * @method Phaser.Animations.Animation#removeFrameAt\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} index - The index in the AnimationFrame array\r\n     *\r\n     * @return {this} This Animation object.\r\n     */\r\n    removeFrameAt: function (index)\r\n    {\r\n        this.frames.splice(index, 1);\r\n\r\n        this.updateFrameSequence();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Called internally during playback. Forces the animation to repeat, providing there are enough counts left\r\n     * in the repeat counter.\r\n     *\r\n     * @method Phaser.Animations.Animation#repeatAnimation\r\n     * @fires Phaser.Animations.Events#ANIMATION_REPEAT\r\n     * @fires Phaser.Animations.Events#SPRITE_ANIMATION_REPEAT\r\n     * @fires Phaser.Animations.Events#SPRITE_ANIMATION_KEY_REPEAT\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationState} state - The Animation State belonging to the Game Object invoking this call.\r\n     */\r\n    repeatAnimation: function (state)\r\n    {\r\n        if (state._pendingStop === 2)\r\n        {\r\n            if (state._pendingStopValue === 0)\r\n            {\r\n                return state.stop();\r\n            }\r\n            else\r\n            {\r\n                state._pendingStopValue--;\r\n            }\r\n        }\r\n\r\n        if (state.repeatDelay > 0 && !state.pendingRepeat)\r\n        {\r\n            state.pendingRepeat = true;\r\n            state.accumulator -= state.nextTick;\r\n            state.nextTick += state.repeatDelay;\r\n        }\r\n        else\r\n        {\r\n            state.repeatCounter--;\r\n\r\n            if (state.forward)\r\n            {\r\n                state.setCurrentFrame(state.currentFrame.nextFrame);\r\n            }\r\n            else\r\n            {\r\n                state.setCurrentFrame(state.currentFrame.prevFrame);\r\n            }\r\n\r\n            if (state.isPlaying)\r\n            {\r\n                this.getNextTick(state);\r\n\r\n                state.handleRepeat();\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Converts the animation data to JSON.\r\n     *\r\n     * @method Phaser.Animations.Animation#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.Animations.JSONAnimation} The resulting JSONAnimation formatted object.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        var output = {\r\n            key: this.key,\r\n            type: this.type,\r\n            frames: [],\r\n            frameRate: this.frameRate,\r\n            duration: this.duration,\r\n            skipMissedFrames: this.skipMissedFrames,\r\n            delay: this.delay,\r\n            repeat: this.repeat,\r\n            repeatDelay: this.repeatDelay,\r\n            yoyo: this.yoyo,\r\n            showBeforeDelay: this.showBeforeDelay,\r\n            showOnStart: this.showOnStart,\r\n            randomFrame: this.randomFrame,\r\n            hideOnComplete: this.hideOnComplete\r\n        };\r\n\r\n        this.frames.forEach(function (frame)\r\n        {\r\n            output.frames.push(frame.toJSON());\r\n        });\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Called internally whenever frames are added to, or removed from, this Animation.\r\n     *\r\n     * @method Phaser.Animations.Animation#updateFrameSequence\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Animation object.\r\n     */\r\n    updateFrameSequence: function ()\r\n    {\r\n        var len = this.frames.length;\r\n        var slice = 1 / (len - 1);\r\n\r\n        var frame;\r\n\r\n        for (var i = 0; i < len; i++)\r\n        {\r\n            frame = this.frames[i];\r\n\r\n            frame.index = i + 1;\r\n            frame.isFirst = false;\r\n            frame.isLast = false;\r\n            frame.progress = i * slice;\r\n\r\n            if (i === 0)\r\n            {\r\n                frame.isFirst = true;\r\n\r\n                if (len === 1)\r\n                {\r\n                    frame.isLast = true;\r\n                    frame.nextFrame = frame;\r\n                    frame.prevFrame = frame;\r\n                }\r\n                else\r\n                {\r\n                    frame.isLast = false;\r\n                    frame.prevFrame = this.frames[len - 1];\r\n                    frame.nextFrame = this.frames[i + 1];\r\n                }\r\n            }\r\n            else if (i === len - 1 && len > 1)\r\n            {\r\n                frame.isLast = true;\r\n                frame.prevFrame = this.frames[len - 2];\r\n                frame.nextFrame = this.frames[0];\r\n            }\r\n            else if (len > 1)\r\n            {\r\n                frame.prevFrame = this.frames[i - 1];\r\n                frame.nextFrame = this.frames[i + 1];\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Pauses playback of this Animation. The paused state is set immediately.\r\n     *\r\n     * @method Phaser.Animations.Animation#pause\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Animation object.\r\n     */\r\n    pause: function ()\r\n    {\r\n        this.paused = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Resumes playback of this Animation. The paused state is reset immediately.\r\n     *\r\n     * @method Phaser.Animations.Animation#resume\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Animation object.\r\n     */\r\n    resume: function ()\r\n    {\r\n        this.paused = false;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Destroys this Animation instance. It will remove all event listeners,\r\n     * remove this animation and its key from the global Animation Manager,\r\n     * and then destroy all Animation Frames in turn.\r\n     *\r\n     * @method Phaser.Animations.Animation#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        if (this.manager.off)\r\n        {\r\n            this.manager.off(Events.PAUSE_ALL, this.pause, this);\r\n            this.manager.off(Events.RESUME_ALL, this.resume, this);\r\n        }\r\n\r\n        this.manager.remove(this.key);\r\n\r\n        for (var i = 0; i < this.frames.length; i++)\r\n        {\r\n            this.frames[i].destroy();\r\n        }\r\n\r\n        this.frames = [];\r\n\r\n        this.manager = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Animation;\r\n\n\n/***/ }),\n\n/***/ 41138:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\n\r\n/**\r\n * @classdesc\r\n * A single frame in an Animation sequence.\r\n *\r\n * An AnimationFrame consists of a reference to the Texture it uses for rendering, references to other\r\n * frames in the animation, and index data. It also has the ability to modify the animation timing.\r\n *\r\n * AnimationFrames are generated automatically by the Animation class.\r\n *\r\n * @class AnimationFrame\r\n * @memberof Phaser.Animations\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {string} textureKey - The key of the Texture this AnimationFrame uses.\r\n * @param {(string|number)} textureFrame - The key of the Frame within the Texture that this AnimationFrame uses.\r\n * @param {number} index - The index of this AnimationFrame within the Animation sequence.\r\n * @param {Phaser.Textures.Frame} frame - A reference to the Texture Frame this AnimationFrame uses for rendering.\r\n * @param {boolean} [isKeyFrame=false] - Is this Frame a Keyframe within the Animation?\r\n */\r\nvar AnimationFrame = new Class({\r\n\r\n    initialize:\r\n\r\n    function AnimationFrame (textureKey, textureFrame, index, frame, isKeyFrame)\r\n    {\r\n        if (isKeyFrame === undefined) { isKeyFrame = false; }\r\n\r\n        /**\r\n         * The key of the Texture this AnimationFrame uses.\r\n         *\r\n         * @name Phaser.Animations.AnimationFrame#textureKey\r\n         * @type {string}\r\n         * @since 3.0.0\r\n         */\r\n        this.textureKey = textureKey;\r\n\r\n        /**\r\n         * The key of the Frame within the Texture that this AnimationFrame uses.\r\n         *\r\n         * @name Phaser.Animations.AnimationFrame#textureFrame\r\n         * @type {(string|number)}\r\n         * @since 3.0.0\r\n         */\r\n        this.textureFrame = textureFrame;\r\n\r\n        /**\r\n         * The index of this AnimationFrame within the Animation sequence.\r\n         *\r\n         * @name Phaser.Animations.AnimationFrame#index\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         */\r\n        this.index = index;\r\n\r\n        /**\r\n         * A reference to the Texture Frame this AnimationFrame uses for rendering.\r\n         *\r\n         * @name Phaser.Animations.AnimationFrame#frame\r\n         * @type {Phaser.Textures.Frame}\r\n         * @since 3.0.0\r\n         */\r\n        this.frame = frame;\r\n\r\n        /**\r\n         * Is this the first frame in an animation sequence?\r\n         *\r\n         * @name Phaser.Animations.AnimationFrame#isFirst\r\n         * @type {boolean}\r\n         * @default false\r\n         * @readonly\r\n         * @since 3.0.0\r\n         */\r\n        this.isFirst = false;\r\n\r\n        /**\r\n         * Is this the last frame in an animation sequence?\r\n         *\r\n         * @name Phaser.Animations.AnimationFrame#isLast\r\n         * @type {boolean}\r\n         * @default false\r\n         * @readonly\r\n         * @since 3.0.0\r\n         */\r\n        this.isLast = false;\r\n\r\n        /**\r\n         * A reference to the AnimationFrame that comes before this one in the animation, if any.\r\n         *\r\n         * @name Phaser.Animations.AnimationFrame#prevFrame\r\n         * @type {?Phaser.Animations.AnimationFrame}\r\n         * @default null\r\n         * @readonly\r\n         * @since 3.0.0\r\n         */\r\n        this.prevFrame = null;\r\n\r\n        /**\r\n         * A reference to the AnimationFrame that comes after this one in the animation, if any.\r\n         *\r\n         * @name Phaser.Animations.AnimationFrame#nextFrame\r\n         * @type {?Phaser.Animations.AnimationFrame}\r\n         * @default null\r\n         * @readonly\r\n         * @since 3.0.0\r\n         */\r\n        this.nextFrame = null;\r\n\r\n        /**\r\n         * The duration, in ms, of this frame of the animation.\r\n         *\r\n         * @name Phaser.Animations.AnimationFrame#duration\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.duration = 0;\r\n\r\n        /**\r\n         * What % through the animation does this frame come?\r\n         * This value is generated when the animation is created and cached here.\r\n         *\r\n         * @name Phaser.Animations.AnimationFrame#progress\r\n         * @type {number}\r\n         * @default 0\r\n         * @readonly\r\n         * @since 3.0.0\r\n         */\r\n        this.progress = 0;\r\n\r\n        /**\r\n         * Is this Frame a KeyFrame within the Animation?\r\n         *\r\n         * @name Phaser.Animations.AnimationFrame#isKeyFrame\r\n         * @type {boolean}\r\n         * @since 3.50.0\r\n         */\r\n        this.isKeyFrame = isKeyFrame;\r\n    },\r\n\r\n    /**\r\n     * Generates a JavaScript object suitable for converting to JSON.\r\n     *\r\n     * @method Phaser.Animations.AnimationFrame#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.Animations.JSONAnimationFrame} The AnimationFrame data.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        return {\r\n            key: this.textureKey,\r\n            frame: this.textureFrame,\r\n            duration: this.duration,\r\n            keyframe: this.isKeyFrame\r\n        };\r\n    },\r\n\r\n    /**\r\n     * Destroys this object by removing references to external resources and callbacks.\r\n     *\r\n     * @method Phaser.Animations.AnimationFrame#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.frame = undefined;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = AnimationFrame;\r\n\n\n/***/ }),\n\n/***/ 60848:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Animation = __webpack_require__(42099);\r\nvar Class = __webpack_require__(83419);\r\nvar CustomMap = __webpack_require__(90330);\r\nvar EventEmitter = __webpack_require__(50792);\r\nvar Events = __webpack_require__(74943);\r\nvar GameEvents = __webpack_require__(8443);\r\nvar GetFastValue = __webpack_require__(95540);\r\nvar GetValue = __webpack_require__(35154);\r\nvar MATH_CONST = __webpack_require__(36383);\r\nvar NumberArray = __webpack_require__(20283);\r\nvar Pad = __webpack_require__(41836);\r\n\r\n/**\r\n * @classdesc\r\n * The Animation Manager.\r\n *\r\n * Animations are managed by the global Animation Manager. This is a singleton class that is\r\n * responsible for creating and delivering animations and their corresponding data to all Game Objects.\r\n * Unlike plugins it is owned by the Game instance, not the Scene.\r\n *\r\n * Sprites and other Game Objects get the data they need from the AnimationManager.\r\n *\r\n * @class AnimationManager\r\n * @extends Phaser.Events.EventEmitter\r\n * @memberof Phaser.Animations\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Game} game - A reference to the Phaser.Game instance.\r\n */\r\nvar AnimationManager = new Class({\r\n\r\n    Extends: EventEmitter,\r\n\r\n    initialize:\r\n\r\n    function AnimationManager (game)\r\n    {\r\n        EventEmitter.call(this);\r\n\r\n        /**\r\n         * A reference to the Phaser.Game instance.\r\n         *\r\n         * @name Phaser.Animations.AnimationManager#game\r\n         * @type {Phaser.Game}\r\n         * @protected\r\n         * @since 3.0.0\r\n         */\r\n        this.game = game;\r\n\r\n        /**\r\n         * A reference to the Texture Manager.\r\n         *\r\n         * @name Phaser.Animations.AnimationManager#textureManager\r\n         * @type {Phaser.Textures.TextureManager}\r\n         * @protected\r\n         * @since 3.0.0\r\n         */\r\n        this.textureManager = null;\r\n\r\n        /**\r\n         * The global time scale of the Animation Manager.\r\n         *\r\n         * This scales the time delta between two frames, thus influencing the speed of time for the Animation Manager.\r\n         *\r\n         * @name Phaser.Animations.AnimationManager#globalTimeScale\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.0.0\r\n         */\r\n        this.globalTimeScale = 1;\r\n\r\n        /**\r\n         * The Animations registered in the Animation Manager.\r\n         *\r\n         * This map should be modified with the {@link #add} and {@link #create} methods of the Animation Manager.\r\n         *\r\n         * @name Phaser.Animations.AnimationManager#anims\r\n         * @type {Phaser.Structs.Map.<string, Phaser.Animations.Animation>}\r\n         * @protected\r\n         * @since 3.0.0\r\n         */\r\n        this.anims = new CustomMap();\r\n\r\n        /**\r\n         * A list of animation mix times.\r\n         *\r\n         * See the {@link #setMix} method for more details.\r\n         *\r\n         * @name Phaser.Animations.AnimationManager#mixes\r\n         * @type {Phaser.Structs.Map.<string, Phaser.Animations.Animation>}\r\n         * @since 3.50.0\r\n         */\r\n        this.mixes = new CustomMap();\r\n\r\n        /**\r\n         * Whether the Animation Manager is paused along with all of its Animations.\r\n         *\r\n         * @name Phaser.Animations.AnimationManager#paused\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.paused = false;\r\n\r\n        /**\r\n         * The name of this Animation Manager.\r\n         *\r\n         * @name Phaser.Animations.AnimationManager#name\r\n         * @type {string}\r\n         * @since 3.0.0\r\n         */\r\n        this.name = 'AnimationManager';\r\n\r\n        game.events.once(GameEvents.BOOT, this.boot, this);\r\n    },\r\n\r\n    /**\r\n     * Registers event listeners after the Game boots.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#boot\r\n     * @listens Phaser.Core.Events#DESTROY\r\n     * @since 3.0.0\r\n     */\r\n    boot: function ()\r\n    {\r\n        this.textureManager = this.game.textures;\r\n\r\n        this.game.events.once(GameEvents.DESTROY, this.destroy, this);\r\n    },\r\n\r\n    /**\r\n     * Adds a mix between two animations.\r\n     *\r\n     * Mixing allows you to specify a unique delay between a pairing of animations.\r\n     *\r\n     * When playing Animation A on a Game Object, if you then play Animation B, and a\r\n     * mix exists, it will wait for the specified delay to be over before playing Animation B.\r\n     *\r\n     * This allows you to customise smoothing between different types of animation, such\r\n     * as blending between an idle and a walk state, or a running and a firing state.\r\n     *\r\n     * Note that mixing is only applied if you use the `Sprite.play` method. If you opt to use\r\n     * `playAfterRepeat` or `playAfterDelay` instead, those will take priority and the mix\r\n     * delay will not be used.\r\n     *\r\n     * To update an existing mix, just call this method with the new delay.\r\n     *\r\n     * To remove a mix pairing, see the `removeMix` method.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#addMix\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation)} animA - The string-based key, or instance of, Animation A.\r\n     * @param {(string|Phaser.Animations.Animation)} animB - The string-based key, or instance of, Animation B.\r\n     * @param {number} delay - The delay, in milliseconds, to wait when transitioning from Animation A to B.\r\n     *\r\n     * @return {this} This Animation Manager.\r\n     */\r\n    addMix: function (animA, animB, delay)\r\n    {\r\n        var anims = this.anims;\r\n        var mixes = this.mixes;\r\n\r\n        var keyA = (typeof(animA) === 'string') ? animA : animA.key;\r\n        var keyB = (typeof(animB) === 'string') ? animB : animB.key;\r\n\r\n        if (anims.has(keyA) && anims.has(keyB))\r\n        {\r\n            var mixObj = mixes.get(keyA);\r\n\r\n            if (!mixObj)\r\n            {\r\n                mixObj = {};\r\n            }\r\n\r\n            mixObj[keyB] = delay;\r\n\r\n            mixes.set(keyA, mixObj);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes a mix between two animations.\r\n     *\r\n     * Mixing allows you to specify a unique delay between a pairing of animations.\r\n     *\r\n     * Calling this method lets you remove those pairings. You can either remove\r\n     * it between `animA` and `animB`, or if you do not provide the `animB` parameter,\r\n     * it will remove all `animA` mixes.\r\n     *\r\n     * If you wish to update an existing mix instead, call the `addMix` method with the\r\n     * new delay.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#removeMix\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation)} animA - The string-based key, or instance of, Animation A.\r\n     * @param {(string|Phaser.Animations.Animation)} [animB] - The string-based key, or instance of, Animation B. If not given, all mixes for Animation A will be removed.\r\n     *\r\n     * @return {this} This Animation Manager.\r\n     */\r\n    removeMix: function (animA, animB)\r\n    {\r\n        var mixes = this.mixes;\r\n\r\n        var keyA = (typeof(animA) === 'string') ? animA : animA.key;\r\n\r\n        var mixObj = mixes.get(keyA);\r\n\r\n        if (mixObj)\r\n        {\r\n            if (animB)\r\n            {\r\n                var keyB = (typeof(animB) === 'string') ? animB : animB.key;\r\n\r\n                if (mixObj.hasOwnProperty(keyB))\r\n                {\r\n                    //  Remove just this pairing\r\n                    delete mixObj[keyB];\r\n                }\r\n            }\r\n            else if (!animB)\r\n            {\r\n                //  Remove everything for animA\r\n                mixes.delete(keyA);\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns the mix delay between two animations.\r\n     *\r\n     * If no mix has been set-up, this method will return zero.\r\n     *\r\n     * If you wish to create, or update, a new mix, call the `addMix` method.\r\n     * If you wish to remove a mix, call the `removeMix` method.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#getMix\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation)} animA - The string-based key, or instance of, Animation A.\r\n     * @param {(string|Phaser.Animations.Animation)} animB - The string-based key, or instance of, Animation B.\r\n     *\r\n     * @return {number} The mix duration, or zero if no mix exists.\r\n     */\r\n    getMix: function (animA, animB)\r\n    {\r\n        var mixes = this.mixes;\r\n\r\n        var keyA = (typeof(animA) === 'string') ? animA : animA.key;\r\n        var keyB = (typeof(animB) === 'string') ? animB : animB.key;\r\n\r\n        var mixObj = mixes.get(keyA);\r\n\r\n        if (mixObj && mixObj.hasOwnProperty(keyB))\r\n        {\r\n            return mixObj[keyB];\r\n        }\r\n        else\r\n        {\r\n            return 0;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Adds an existing Animation to the Animation Manager.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#add\r\n     * @fires Phaser.Animations.Events#ADD_ANIMATION\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The key under which the Animation should be added. The Animation will be updated with it. Must be unique.\r\n     * @param {Phaser.Animations.Animation} animation - The Animation which should be added to the Animation Manager.\r\n     *\r\n     * @return {this} This Animation Manager.\r\n     */\r\n    add: function (key, animation)\r\n    {\r\n        if (this.anims.has(key))\r\n        {\r\n            console.warn('Animation key exists: ' + key);\r\n\r\n            return this;\r\n        }\r\n\r\n        animation.key = key;\r\n\r\n        this.anims.set(key, animation);\r\n\r\n        this.emit(Events.ADD_ANIMATION, key, animation);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Checks to see if the given key is already in use within the Animation Manager or not.\r\n     *\r\n     * Animations are global. Keys created in one scene can be used from any other Scene in your game. They are not Scene specific.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#exists\r\n     * @since 3.16.0\r\n     *\r\n     * @param {string} key - The key of the Animation to check.\r\n     *\r\n     * @return {boolean} `true` if the Animation already exists in the Animation Manager, or `false` if the key is available.\r\n     */\r\n    exists: function (key)\r\n    {\r\n        return this.anims.has(key);\r\n    },\r\n\r\n    /**\r\n     * Create one, or more animations from a loaded Aseprite JSON file.\r\n     *\r\n     * Aseprite is a powerful animated sprite editor and pixel art tool.\r\n     *\r\n     * You can find more details at https://www.aseprite.org/\r\n     *\r\n     * To export a compatible JSON file in Aseprite, please do the following:\r\n     *\r\n     * 1. Go to \"File - Export Sprite Sheet\"\r\n     *\r\n     * 2. On the **Layout** tab:\r\n     * 2a. Set the \"Sheet type\" to \"Packed\"\r\n     * 2b. Set the \"Constraints\" to \"None\"\r\n     * 2c. Check the \"Merge Duplicates\" checkbox\r\n     *\r\n     * 3. On the **Sprite** tab:\r\n     * 3a. Set \"Layers\" to \"Visible layers\"\r\n     * 3b. Set \"Frames\" to \"All frames\", unless you only wish to export a sub-set of tags\r\n     *\r\n     * 4. On the **Borders** tab:\r\n     * 4a. Check the \"Trim Sprite\" and \"Trim Cells\" options\r\n     * 4b. Ensure \"Border Padding\", \"Spacing\" and \"Inner Padding\" are all > 0 (1 is usually enough)\r\n     *\r\n     * 5. On the **Output** tab:\r\n     * 5a. Check \"Output File\", give your image a name and make sure you choose \"png files\" as the file type\r\n     * 5b. Check \"JSON Data\" and give your json file a name\r\n     * 5c. The JSON Data type can be either a Hash or Array, Phaser doesn't mind.\r\n     * 5d. Make sure \"Tags\" is checked in the Meta options\r\n     * 5e. In the \"Item Filename\" input box, make sure it says just \"{frame}\" and nothing more.\r\n     *\r\n     * 6. Click export\r\n     *\r\n     * This was tested with Aseprite 1.2.25.\r\n     *\r\n     * This will export a png and json file which you can load using the Aseprite Loader, i.e.:\r\n     *\r\n     * ```javascript\r\n     * function preload ()\r\n     * {\r\n     *     this.load.path = 'assets/animations/aseprite/';\r\n     *     this.load.aseprite('paladin', 'paladin.png', 'paladin.json');\r\n     * }\r\n     * ```\r\n     *\r\n     * Once loaded, you can call this method from within a Scene with the 'atlas' key:\r\n     *\r\n     * ```javascript\r\n     * this.anims.createFromAseprite('paladin');\r\n     * ```\r\n     *\r\n     * Any animations defined in the JSON will now be available to use in Phaser and you play them\r\n     * via their Tag name. For example, if you have an animation called 'War Cry' on your Aseprite timeline,\r\n     * you can play it in Phaser using that Tag name:\r\n     *\r\n     * ```javascript\r\n     * this.add.sprite(400, 300).play('War Cry');\r\n     * ```\r\n     *\r\n     * When calling this method you can optionally provide an array of tag names, and only those animations\r\n     * will be created. For example:\r\n     *\r\n     * ```javascript\r\n     * this.anims.createFromAseprite('paladin', [ 'step', 'War Cry', 'Magnum Break' ]);\r\n     * ```\r\n     *\r\n     * This will only create the 3 animations defined. Note that the tag names are case-sensitive.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#createFromAseprite\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} key - The key of the loaded Aseprite atlas. It must have been loaded prior to calling this method.\r\n     * @param {string[]} [tags] - An array of Tag names. If provided, only animations found in this array will be created.\r\n     * @param {(Phaser.Animations.AnimationManager|Phaser.GameObjects.GameObject)} [target] - Create the animations on this target Sprite. If not given, they will be created globally in this Animation Manager.\r\n     *\r\n     * @return {Phaser.Animations.Animation[]} An array of Animation instances that were successfully created.\r\n     */\r\n    createFromAseprite: function (key, tags, target)\r\n    {\r\n        var output = [];\r\n\r\n        var data = this.game.cache.json.get(key);\r\n\r\n        if (!data)\r\n        {\r\n            console.warn('No Aseprite data found for: ' + key);\r\n\r\n            return output;\r\n        }\r\n\r\n        var _this = this;\r\n\r\n        var meta = GetValue(data, 'meta', null);\r\n        var frames = GetValue(data, 'frames', null);\r\n\r\n        if (meta && frames)\r\n        {\r\n            var frameTags = GetValue(meta, 'frameTags', []);\r\n\r\n            frameTags.forEach(function (tag)\r\n            {\r\n                var animFrames = [];\r\n\r\n                var name = GetFastValue(tag, 'name', null);\r\n                var from = GetFastValue(tag, 'from', 0);\r\n                var to = GetFastValue(tag, 'to', 0);\r\n                var direction = GetFastValue(tag, 'direction', 'forward');\r\n\r\n                if (!name)\r\n                {\r\n                    //  Skip if no name\r\n                    return;\r\n                }\r\n\r\n                if (!tags || (tags && tags.indexOf(name) > -1))\r\n                {\r\n                    //  Get all the frames for this tag and calculate the total duration in milliseconds.\r\n                    var totalDuration = 0;\r\n                    for (var i = from; i <= to; i++)\r\n                    {\r\n                        var frameKey = i.toString();\r\n                        var frame = frames[frameKey];\r\n\r\n                        if (frame)\r\n                        {\r\n                            var frameDuration = GetFastValue(frame, 'duration', MATH_CONST.MAX_SAFE_INTEGER);\r\n                            animFrames.push({ key: key, frame: frameKey, duration: frameDuration });\r\n                            totalDuration += frameDuration;\r\n                        }\r\n                    }\r\n\r\n                    if (direction === 'reverse')\r\n                    {\r\n                        animFrames = animFrames.reverse();\r\n                    }\r\n\r\n                    //  Create the animation\r\n                    var createConfig = {\r\n                        key: name,\r\n                        frames: animFrames,\r\n                        duration: totalDuration,\r\n                        yoyo: (direction === 'pingpong')\r\n                    };\r\n\r\n                    var result;\r\n\r\n                    if (target)\r\n                    {\r\n                        if (target.anims)\r\n                        {\r\n                            result = target.anims.create(createConfig);\r\n                        }\r\n                    }\r\n                    else\r\n                    {\r\n                        result = _this.create(createConfig);\r\n                    }\r\n\r\n                    if (result)\r\n                    {\r\n                        output.push(result);\r\n                    }\r\n                }\r\n            });\r\n        }\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Creates a new Animation and adds it to the Animation Manager.\r\n     *\r\n     * Animations are global. Once created, you can use them in any Scene in your game. They are not Scene specific.\r\n     *\r\n     * If an invalid key is given this method will return `false`.\r\n     *\r\n     * If you pass the key of an animation that already exists in the Animation Manager, that animation will be returned.\r\n     *\r\n     * A brand new animation is only created if the key is valid and not already in use.\r\n     *\r\n     * If you wish to re-use an existing key, call `AnimationManager.remove` first, then this method.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#create\r\n     * @fires Phaser.Animations.Events#ADD_ANIMATION\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.Animations.Animation} config - The configuration settings for the Animation.\r\n     *\r\n     * @return {(Phaser.Animations.Animation|false)} The Animation that was created, or `false` if the key is already in use.\r\n     */\r\n    create: function (config)\r\n    {\r\n        var key = config.key;\r\n\r\n        var anim = false;\r\n\r\n        if (key)\r\n        {\r\n            anim = this.get(key);\r\n\r\n            if (!anim)\r\n            {\r\n                anim = new Animation(this, key, config);\r\n\r\n                this.anims.set(key, anim);\r\n\r\n                this.emit(Events.ADD_ANIMATION, key, anim);\r\n            }\r\n            else\r\n            {\r\n                console.warn('AnimationManager key already exists: ' + key);\r\n            }\r\n        }\r\n\r\n        return anim;\r\n    },\r\n\r\n    /**\r\n     * Loads this Animation Manager's Animations and settings from a JSON object.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#fromJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|Phaser.Types.Animations.JSONAnimations|Phaser.Types.Animations.JSONAnimation)} data - The JSON object to parse.\r\n     * @param {boolean} [clearCurrentAnimations=false] - If set to `true`, the current animations will be removed (`anims.clear()`). If set to `false` (default), the animations in `data` will be added.\r\n     *\r\n     * @return {Phaser.Animations.Animation[]} An array containing all of the Animation objects that were created as a result of this call.\r\n     */\r\n    fromJSON: function (data, clearCurrentAnimations)\r\n    {\r\n        if (clearCurrentAnimations === undefined) { clearCurrentAnimations = false; }\r\n\r\n        if (clearCurrentAnimations)\r\n        {\r\n            this.anims.clear();\r\n        }\r\n\r\n        //  Do we have a String (i.e. from JSON, or an Object?)\r\n        if (typeof data === 'string')\r\n        {\r\n            data = JSON.parse(data);\r\n        }\r\n\r\n        var output = [];\r\n\r\n        //  Array of animations, or a single animation?\r\n        if (data.hasOwnProperty('anims') && Array.isArray(data.anims))\r\n        {\r\n            for (var i = 0; i < data.anims.length; i++)\r\n            {\r\n                output.push(this.create(data.anims[i]));\r\n            }\r\n\r\n            if (data.hasOwnProperty('globalTimeScale'))\r\n            {\r\n                this.globalTimeScale = data.globalTimeScale;\r\n            }\r\n        }\r\n        else if (data.hasOwnProperty('key') && data.type === 'frame')\r\n        {\r\n            output.push(this.create(data));\r\n        }\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Generate an array of {@link Phaser.Types.Animations.AnimationFrame} objects from a texture key and configuration object.\r\n     *\r\n     * Generates objects with string based frame names, as configured by the given {@link Phaser.Types.Animations.GenerateFrameNames}.\r\n     *\r\n     * It's a helper method, designed to make it easier for you to extract all of the frame names from texture atlases.\r\n     *\r\n     * If you're working with a sprite sheet, see the `generateFrameNumbers` method instead.\r\n     *\r\n     * Example:\r\n     *\r\n     * If you have a texture atlases loaded called `gems` and it contains 6 frames called `ruby_0001`, `ruby_0002`, and so on,\r\n     * then you can call this method using: `this.anims.generateFrameNames('gems', { prefix: 'ruby_', start: 1, end: 6, zeroPad: 4 })`.\r\n     *\r\n     * The `end` value tells it to select frames 1 through 6, incrementally numbered, all starting with the prefix `ruby_`. The `zeroPad`\r\n     * value tells it how many zeroes pad out the numbers. To create an animation using this method, you can do:\r\n     *\r\n     * ```javascript\r\n     * this.anims.create({\r\n     *   key: 'ruby',\r\n     *   repeat: -1,\r\n     *   frames: this.anims.generateFrameNames('gems', {\r\n     *     prefix: 'ruby_',\r\n     *     end: 6,\r\n     *     zeroPad: 4\r\n     *   })\r\n     * });\r\n     * ```\r\n     *\r\n     * Please see the animation examples for further details.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#generateFrameNames\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The key for the texture containing the animation frames.\r\n     * @param {Phaser.Types.Animations.GenerateFrameNames} [config] - The configuration object for the animation frame names.\r\n     *\r\n     * @return {Phaser.Types.Animations.AnimationFrame[]} The array of {@link Phaser.Types.Animations.AnimationFrame} objects.\r\n     */\r\n    generateFrameNames: function (key, config)\r\n    {\r\n        var prefix = GetValue(config, 'prefix', '');\r\n        var start = GetValue(config, 'start', 0);\r\n        var end = GetValue(config, 'end', 0);\r\n        var suffix = GetValue(config, 'suffix', '');\r\n        var zeroPad = GetValue(config, 'zeroPad', 0);\r\n        var out = GetValue(config, 'outputArray', []);\r\n        var frames = GetValue(config, 'frames', false);\r\n\r\n        if (!this.textureManager.exists(key))\r\n        {\r\n            console.warn('Texture \"%s\" not found', key);\r\n\r\n            return out;\r\n        }\r\n\r\n        var texture = this.textureManager.get(key);\r\n\r\n        if (!texture)\r\n        {\r\n            return out;\r\n        }\r\n\r\n        var i;\r\n\r\n        if (!config)\r\n        {\r\n            //  Use every frame in the atlas\r\n            frames = texture.getFrameNames();\r\n\r\n            for (i = 0; i < frames.length; i++)\r\n            {\r\n                out.push({ key: key, frame: frames[i] });\r\n            }\r\n        }\r\n        else\r\n        {\r\n            if (!frames)\r\n            {\r\n                frames = NumberArray(start, end);\r\n            }\r\n\r\n            for (i = 0; i < frames.length; i++)\r\n            {\r\n                var frame = prefix + Pad(frames[i], zeroPad, '0', 1) + suffix;\r\n\r\n                if (texture.has(frame))\r\n                {\r\n                    out.push({ key: key, frame: frame });\r\n                }\r\n                else\r\n                {\r\n                    console.warn('Frame \"%s\" not found in texture \"%s\"', frame, key);\r\n                }\r\n            }\r\n        }\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Generate an array of {@link Phaser.Types.Animations.AnimationFrame} objects from a texture key and configuration object.\r\n     *\r\n     * Generates objects with numbered frame names, as configured by the given {@link Phaser.Types.Animations.GenerateFrameNumbers}.\r\n     *\r\n     * If you're working with a texture atlas, see the `generateFrameNames` method instead.\r\n     *\r\n     * It's a helper method, designed to make it easier for you to extract frames from sprite sheets.\r\n     *\r\n     * Example:\r\n     *\r\n     * If you have a sprite sheet loaded called `explosion` and it contains 12 frames, then you can call this method using:\r\n     *\r\n     * `this.anims.generateFrameNumbers('explosion', { start: 0, end: 11 })`.\r\n     *\r\n     * The `end` value of 11 tells it to stop after the 12th frame has been added, because it started at zero.\r\n     *\r\n     * To create an animation using this method, you can do:\r\n     *\r\n     * ```javascript\r\n     * this.anims.create({\r\n     *   key: 'boom',\r\n     *   frames: this.anims.generateFrameNumbers('explosion', {\r\n     *     start: 0,\r\n     *     end: 11\r\n     *   })\r\n     * });\r\n     * ```\r\n     *\r\n     * Note that `start` is optional and you don't need to include it if the animation starts from frame 0.\r\n     *\r\n     * To specify an animation in reverse, swap the `start` and `end` values.\r\n     *\r\n     * If the frames are not sequential, you may pass an array of frame numbers instead, for example:\r\n     *\r\n     * `this.anims.generateFrameNumbers('explosion', { frames: [ 0, 1, 2, 1, 2, 3, 4, 0, 1, 2 ] })`\r\n     *\r\n     * Please see the animation examples and `GenerateFrameNumbers` config docs for further details.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#generateFrameNumbers\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The key for the texture containing the animation frames.\r\n     * @param {Phaser.Types.Animations.GenerateFrameNumbers} [config] - The configuration object for the animation frames.\r\n     *\r\n     * @return {Phaser.Types.Animations.AnimationFrame[]} The array of {@link Phaser.Types.Animations.AnimationFrame} objects.\r\n     */\r\n    generateFrameNumbers: function (key, config)\r\n    {\r\n        var start = GetValue(config, 'start', 0);\r\n        var end = GetValue(config, 'end', -1);\r\n        var first = GetValue(config, 'first', false);\r\n        var out = GetValue(config, 'outputArray', []);\r\n        var frames = GetValue(config, 'frames', false);\r\n\r\n        if (!this.textureManager.exists(key))\r\n        {\r\n            console.warn('Texture \"%s\" not found', key);\r\n\r\n            return out;\r\n        }\r\n\r\n        var texture = this.textureManager.get(key);\r\n\r\n        if (!texture)\r\n        {\r\n            return out;\r\n        }\r\n\r\n        if (first && texture.has(first))\r\n        {\r\n            out.push({ key: key, frame: first });\r\n        }\r\n\r\n        //  No 'frames' array? Then generate one automatically\r\n        if (!frames)\r\n        {\r\n            if (end === -1)\r\n            {\r\n                //  -1 because of __BASE, which we don't want in our results\r\n                //  and -1 because frames are zero based\r\n                end = texture.frameTotal - 2;\r\n            }\r\n\r\n            frames = NumberArray(start, end);\r\n        }\r\n\r\n        for (var i = 0; i < frames.length; i++)\r\n        {\r\n            var frameName = frames[i];\r\n\r\n            if (texture.has(frameName))\r\n            {\r\n                out.push({ key: key, frame: frameName });\r\n            }\r\n            else\r\n            {\r\n                console.warn('Frame \"%s\" not found in texture \"%s\"', frameName, key);\r\n            }\r\n        }\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Get an Animation.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#get\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The key of the Animation to retrieve.\r\n     *\r\n     * @return {Phaser.Animations.Animation} The Animation.\r\n     */\r\n    get: function (key)\r\n    {\r\n        return this.anims.get(key);\r\n    },\r\n\r\n    /**\r\n     * Returns an array of all Animation keys that are using the given\r\n     * Texture. Only Animations that have at least one AnimationFrame\r\n     * entry using this texture will be included in the result.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#getAnimsFromTexture\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(string|Phaser.Textures.Texture|Phaser.Textures.Frame)} key - The unique string-based key of the Texture, or a Texture, or Frame instance.\r\n     *\r\n     * @return {string[]} An array of Animation keys that feature the given Texture.\r\n     */\r\n    getAnimsFromTexture: function (key)\r\n    {\r\n        var texture = this.textureManager.get(key);\r\n\r\n        var match = texture.key;\r\n        var anims = this.anims.getArray();\r\n\r\n        var out = [];\r\n\r\n        for (var i = 0; i < anims.length; i++)\r\n        {\r\n            var anim = anims[i];\r\n            var frames = anim.frames;\r\n\r\n            for (var c = 0; c < frames.length; c++)\r\n            {\r\n                if (frames[c].textureKey === match)\r\n                {\r\n                    out.push(anim.key);\r\n\r\n                    break;\r\n                }\r\n            }\r\n        }\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Pause all animations.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#pauseAll\r\n     * @fires Phaser.Animations.Events#PAUSE_ALL\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Animation Manager.\r\n     */\r\n    pauseAll: function ()\r\n    {\r\n        if (!this.paused)\r\n        {\r\n            this.paused = true;\r\n\r\n            this.emit(Events.PAUSE_ALL);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Play an animation on the given Game Objects that have an Animation Component.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#play\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {Phaser.GameObjects.GameObject|Phaser.GameObjects.GameObject[]} children - An array of Game Objects to play the animation on. They must have an Animation Component.\r\n     *\r\n     * @return {this} This Animation Manager.\r\n     */\r\n    play: function (key, children)\r\n    {\r\n        if (!Array.isArray(children))\r\n        {\r\n            children = [ children ];\r\n        }\r\n\r\n        for (var i = 0; i < children.length; i++)\r\n        {\r\n            children[i].anims.play(key);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Takes an array of Game Objects that have an Animation Component and then\r\n     * starts the given animation playing on them. The start time of each Game Object\r\n     * is offset, incrementally, by the `stagger` amount.\r\n     *\r\n     * For example, if you pass an array with 4 children and a stagger time of 1000,\r\n     * the delays will be:\r\n     *\r\n     * child 1: 1000ms delay\r\n     * child 2: 2000ms delay\r\n     * child 3: 3000ms delay\r\n     * child 4: 4000ms delay\r\n     *\r\n     * If you set the `staggerFirst` parameter to `false` they would be:\r\n     *\r\n     * child 1: 0ms delay\r\n     * child 2: 1000ms delay\r\n     * child 3: 2000ms delay\r\n     * child 4: 3000ms delay\r\n     *\r\n     * You can also set `stagger` to be a negative value. If it was -1000, the above would be:\r\n     *\r\n     * child 1: 3000ms delay\r\n     * child 2: 2000ms delay\r\n     * child 3: 1000ms delay\r\n     * child 4: 0ms delay\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#staggerPlay\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject[]} G - [items,$return]\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {Phaser.GameObjects.GameObject|Phaser.GameObjects.GameObject[]} children - An array of Game Objects to play the animation on. They must have an Animation Component.\r\n     * @param {number} stagger - The amount of time, in milliseconds, to offset each play time by. If a negative value is given, it's applied to the children in reverse order.\r\n     * @param {boolean} [staggerFirst=true] -Should the first child be staggered as well?\r\n     *\r\n     * @return {this} This Animation Manager.\r\n     */\r\n    staggerPlay: function (key, children, stagger, staggerFirst)\r\n    {\r\n        if (stagger === undefined) { stagger = 0; }\r\n        if (staggerFirst === undefined) { staggerFirst = true; }\r\n\r\n        if (!Array.isArray(children))\r\n        {\r\n            children = [ children ];\r\n        }\r\n\r\n        var len = children.length;\r\n\r\n        if (!staggerFirst)\r\n        {\r\n            len--;\r\n        }\r\n\r\n        for (var i = 0; i < children.length; i++)\r\n        {\r\n            var time = (stagger < 0) ? Math.abs(stagger) * (len - i) : stagger * i;\r\n\r\n            children[i].anims.playAfterDelay(key, time);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes an Animation from this Animation Manager, based on the given key.\r\n     *\r\n     * This is a global action. Once an Animation has been removed, no Game Objects\r\n     * can carry on using it.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#remove\r\n     * @fires Phaser.Animations.Events#REMOVE_ANIMATION\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The key of the animation to remove.\r\n     *\r\n     * @return {Phaser.Animations.Animation} The Animation instance that was removed from the Animation Manager.\r\n     */\r\n    remove: function (key)\r\n    {\r\n        var anim = this.get(key);\r\n\r\n        if (anim)\r\n        {\r\n            this.emit(Events.REMOVE_ANIMATION, key, anim);\r\n\r\n            this.anims.delete(key);\r\n\r\n            this.removeMix(key);\r\n        }\r\n\r\n        return anim;\r\n    },\r\n\r\n    /**\r\n     * Resume all paused animations.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#resumeAll\r\n     * @fires Phaser.Animations.Events#RESUME_ALL\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Animation Manager.\r\n     */\r\n    resumeAll: function ()\r\n    {\r\n        if (this.paused)\r\n        {\r\n            this.paused = false;\r\n\r\n            this.emit(Events.RESUME_ALL);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns the Animation data as JavaScript object based on the given key.\r\n     * Or, if not key is defined, it will return the data of all animations as array of objects.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} [key] - The animation to get the JSONAnimation data from. If not provided, all animations are returned as an array.\r\n     *\r\n     * @return {Phaser.Types.Animations.JSONAnimations} The resulting JSONAnimations formatted object.\r\n     */\r\n    toJSON: function (key)\r\n    {\r\n        var output = {\r\n            anims: [],\r\n            globalTimeScale: this.globalTimeScale\r\n        };\r\n\r\n        if (key !== undefined && key !== '')\r\n        {\r\n            output.anims.push(this.anims.get(key).toJSON());\r\n        }\r\n        else\r\n        {\r\n            this.anims.each(function (animationKey, animation)\r\n            {\r\n                output.anims.push(animation.toJSON());\r\n            });\r\n        }\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Destroy this Animation Manager and clean up animation definitions and references to other objects.\r\n     * This method should not be called directly. It will be called automatically as a response to a `destroy` event from the Phaser.Game instance.\r\n     *\r\n     * @method Phaser.Animations.AnimationManager#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.anims.clear();\r\n        this.mixes.clear();\r\n\r\n        this.textureManager = null;\r\n\r\n        this.game = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = AnimationManager;\r\n\n\n/***/ }),\n\n/***/ 9674:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Animation = __webpack_require__(42099);\r\nvar Between = __webpack_require__(30976);\r\nvar Class = __webpack_require__(83419);\r\nvar CustomMap = __webpack_require__(90330);\r\nvar Events = __webpack_require__(74943);\r\nvar GetFastValue = __webpack_require__(95540);\r\n\r\n/**\r\n * @classdesc\r\n * The Animation State Component.\r\n *\r\n * This component provides features to apply animations to Game Objects. It is responsible for\r\n * loading, queuing animations for later playback, mixing between animations and setting\r\n * the current animation frame to the Game Object that owns this component.\r\n *\r\n * This component lives as an instance within any Game Object that has it defined, such as Sprites.\r\n *\r\n * You can access its properties and methods via the `anims` property, i.e. `Sprite.anims`.\r\n *\r\n * As well as playing animations stored in the global Animation Manager, this component\r\n * can also create animations that are stored locally within it. See the `create` method\r\n * for more details.\r\n *\r\n * Prior to Phaser 3.50 this component was called just `Animation` and lived in the\r\n * `Phaser.GameObjects.Components` namespace. It was renamed to `AnimationState`\r\n * in 3.50 to help better identify its true purpose when browsing the documentation.\r\n *\r\n * @class AnimationState\r\n * @memberof Phaser.Animations\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} parent - The Game Object to which this animation component belongs.\r\n */\r\nvar AnimationState = new Class({\r\n\r\n    initialize:\r\n\r\n    function AnimationState (parent)\r\n    {\r\n        /**\r\n         * The Game Object to which this animation component belongs.\r\n         *\r\n         * You can typically access this component from the Game Object\r\n         * via the `this.anims` property.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#parent\r\n         * @type {Phaser.GameObjects.GameObject}\r\n         * @since 3.0.0\r\n         */\r\n        this.parent = parent;\r\n\r\n        /**\r\n         * A reference to the global Animation Manager.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#animationManager\r\n         * @type {Phaser.Animations.AnimationManager}\r\n         * @since 3.0.0\r\n         */\r\n        this.animationManager = parent.scene.sys.anims;\r\n\r\n        this.animationManager.on(Events.REMOVE_ANIMATION, this.globalRemove, this);\r\n\r\n        /**\r\n         * A reference to the Texture Manager.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#textureManager\r\n         * @type {Phaser.Textures.TextureManager}\r\n         * @protected\r\n         * @since 3.50.0\r\n         */\r\n        this.textureManager = this.animationManager.textureManager;\r\n\r\n        /**\r\n         * The Animations stored locally in this Animation component.\r\n         *\r\n         * Do not modify the contents of this Map directly, instead use the\r\n         * `add`, `create` and `remove` methods of this class instead.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#anims\r\n         * @type {Phaser.Structs.Map.<string, Phaser.Animations.Animation>}\r\n         * @protected\r\n         * @since 3.50.0\r\n         */\r\n        this.anims = null;\r\n\r\n        /**\r\n         * Is an animation currently playing or not?\r\n         *\r\n         * @name Phaser.Animations.AnimationState#isPlaying\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.isPlaying = false;\r\n\r\n        /**\r\n         * Has the current animation started playing, or is it waiting for a delay to expire?\r\n         *\r\n         * @name Phaser.Animations.AnimationState#hasStarted\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.50.0\r\n         */\r\n        this.hasStarted = false;\r\n\r\n        /**\r\n         * The current Animation loaded into this Animation component.\r\n         *\r\n         * Will by `null` if no animation is yet loaded.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#currentAnim\r\n         * @type {?Phaser.Animations.Animation}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.currentAnim = null;\r\n\r\n        /**\r\n         * The current AnimationFrame being displayed by this Animation component.\r\n         *\r\n         * Will by `null` if no animation is yet loaded.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#currentFrame\r\n         * @type {?Phaser.Animations.AnimationFrame}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.currentFrame = null;\r\n\r\n        /**\r\n         * The key, instance, or config of the next Animation to be loaded into this Animation component\r\n         * when the current animation completes.\r\n         *\r\n         * Will by `null` if no animation has been queued.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#nextAnim\r\n         * @type {?(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)}\r\n         * @default null\r\n         * @since 3.16.0\r\n         */\r\n        this.nextAnim = null;\r\n\r\n        /**\r\n         * A queue of Animations to be loaded into this Animation component when the current animation completes.\r\n         *\r\n         * Populate this queue via the `chain` method.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#nextAnimsQueue\r\n         * @type {array}\r\n         * @since 3.24.0\r\n         */\r\n        this.nextAnimsQueue = [];\r\n\r\n        /**\r\n         * The Time Scale factor.\r\n         *\r\n         * You can adjust this value to modify the passage of time for the animation that is currently\r\n         * playing. For example, setting it to 2 will make the animation play twice as fast. Or setting\r\n         * it to 0.5 will slow the animation down.\r\n         *\r\n         * You can change this value at run-time, or set it via the `PlayAnimationConfig`.\r\n         *\r\n         * Prior to Phaser 3.50 this property was private and called `_timeScale`.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#timeScale\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.50.0\r\n         */\r\n        this.timeScale = 1;\r\n\r\n        /**\r\n         * The frame rate of playback, of the current animation, in frames per second.\r\n         *\r\n         * This value is set when a new animation is loaded into this component and should\r\n         * be treated as read-only, as changing it once playback has started will not alter\r\n         * the animation. To change the frame rate, provide a new value in the `PlayAnimationConfig` object.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#frameRate\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.frameRate = 0;\r\n\r\n        /**\r\n         * The duration of the current animation, in milliseconds.\r\n         *\r\n         * This value is set when a new animation is loaded into this component and should\r\n         * be treated as read-only, as changing it once playback has started will not alter\r\n         * the animation. To change the duration, provide a new value in the `PlayAnimationConfig` object.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#duration\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.duration = 0;\r\n\r\n        /**\r\n         * The number of milliseconds per frame, not including frame specific modifiers that may be present in the\r\n         * Animation data.\r\n         *\r\n         * This value is calculated when a new animation is loaded into this component and should\r\n         * be treated as read-only. Changing it will not alter playback speed.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#msPerFrame\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.msPerFrame = 0;\r\n\r\n        /**\r\n         * Skip frames if the time lags, or always advanced anyway?\r\n         *\r\n         * @name Phaser.Animations.AnimationState#skipMissedFrames\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         */\r\n        this.skipMissedFrames = true;\r\n\r\n        /**\r\n         * Start playback of this animation from a random frame?\r\n         *\r\n         * @name Phaser.Animations.AnimationState#randomFrame\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.60.0\r\n         */\r\n        this.randomFrame = false;\r\n\r\n        /**\r\n         * The delay before starting playback of the current animation, in milliseconds.\r\n         *\r\n         * This value is set when a new animation is loaded into this component and should\r\n         * be treated as read-only, as changing it once playback has started will not alter\r\n         * the animation. To change the delay, provide a new value in the `PlayAnimationConfig` object.\r\n         *\r\n         * Prior to Phaser 3.50 this property was private and called `_delay`.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#delay\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.50.0\r\n         */\r\n        this.delay = 0;\r\n\r\n        /**\r\n         * The number of times to repeat playback of the current animation.\r\n         *\r\n         * If -1, it means the animation will repeat forever.\r\n         *\r\n         * This value is set when a new animation is loaded into this component and should\r\n         * be treated as read-only, as changing it once playback has started will not alter\r\n         * the animation. To change the number of repeats, provide a new value in the `PlayAnimationConfig` object.\r\n         *\r\n         * Prior to Phaser 3.50 this property was private and called `_repeat`.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#repeat\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.50.0\r\n         */\r\n        this.repeat = 0;\r\n\r\n        /**\r\n         * The number of milliseconds to wait before starting the repeat playback of the current animation.\r\n         *\r\n         * This value is set when a new animation is loaded into this component, but can also be modified\r\n         * at run-time.\r\n         *\r\n         * You can change the repeat delay by providing a new value in the `PlayAnimationConfig` object.\r\n         *\r\n         * Prior to Phaser 3.50 this property was private and called `_repeatDelay`.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#repeatDelay\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.repeatDelay = 0;\r\n\r\n        /**\r\n         * Should the current animation yoyo? An animation that yoyos will play in reverse, from the end\r\n         * to the start, before then repeating or completing. An animation that does not yoyo will just\r\n         * play from the start to the end.\r\n         *\r\n         * This value is set when a new animation is loaded into this component, but can also be modified\r\n         * at run-time.\r\n         *\r\n         * You can change the yoyo by providing a new value in the `PlayAnimationConfig` object.\r\n         *\r\n         * Prior to Phaser 3.50 this property was private and called `_yoyo`.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#yoyo\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.50.0\r\n         */\r\n        this.yoyo = false;\r\n\r\n        /**\r\n         * If the animation has a delay set, before playback will begin, this\r\n         * controls when the first frame is set on the Sprite. If this property\r\n         * is 'false' then the frame is set only after the delay has expired.\r\n         * This is the default behavior.\r\n         *\r\n         * If this property is 'true' then the first frame of this animation\r\n         * is set immediately, and then when the delay expires, playback starts.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#showBeforeDelay\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this.showBeforeDelay = false;\r\n\r\n        /**\r\n         * Should the GameObject's `visible` property be set to `true` when the animation starts to play?\r\n         *\r\n         * This will happen _after_ any delay that may have been set.\r\n         *\r\n         * This value is set when a new animation is loaded into this component, but can also be modified\r\n         * at run-time, assuming the animation is currently delayed.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#showOnStart\r\n         * @type {boolean}\r\n         * @since 3.50.0\r\n         */\r\n        this.showOnStart = false;\r\n\r\n        /**\r\n         * Should the GameObject's `visible` property be set to `false` when the animation completes?\r\n         *\r\n         * This value is set when a new animation is loaded into this component, but can also be modified\r\n         * at run-time, assuming the animation is still actively playing.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#hideOnComplete\r\n         * @type {boolean}\r\n         * @since 3.50.0\r\n         */\r\n        this.hideOnComplete = false;\r\n\r\n        /**\r\n         * Is the playhead moving forwards (`true`) or in reverse (`false`) ?\r\n         *\r\n         * @name Phaser.Animations.AnimationState#forward\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         */\r\n        this.forward = true;\r\n\r\n        /**\r\n         * An internal trigger that tells the component if it should plays the animation\r\n         * in reverse mode ('true') or not ('false'). This is used because `forward` can\r\n         * be changed by the `yoyo` feature.\r\n         *\r\n         * Prior to Phaser 3.50 this property was private and called `_reverse`.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#inReverse\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.50.0\r\n         */\r\n        this.inReverse = false;\r\n\r\n        /**\r\n         * Internal time overflow accumulator.\r\n         *\r\n         * This has the `delta` time added to it as part of the `update` step.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#accumulator\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.accumulator = 0;\r\n\r\n        /**\r\n         * The time point at which the next animation frame will change.\r\n         *\r\n         * This value is compared against the `accumulator` as part of the `update` step.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#nextTick\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.nextTick = 0;\r\n\r\n        /**\r\n         * A counter keeping track of how much delay time, in milliseconds, is left before playback begins.\r\n         *\r\n         * This is set via the `playAfterDelay` method, although it can be modified at run-time\r\n         * if required, as long as the animation has not already started playing.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#delayCounter\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.50.0\r\n         */\r\n        this.delayCounter = 0;\r\n\r\n        /**\r\n         * A counter that keeps track of how many repeats are left to run.\r\n         *\r\n         * This value is set when a new animation is loaded into this component, but can also be modified\r\n         * at run-time.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#repeatCounter\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.repeatCounter = 0;\r\n\r\n        /**\r\n         * An internal flag keeping track of pending repeats.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#pendingRepeat\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.pendingRepeat = false;\r\n\r\n        /**\r\n         * Is the Animation paused?\r\n         *\r\n         * @name Phaser.Animations.AnimationState#_paused\r\n         * @type {boolean}\r\n         * @private\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this._paused = false;\r\n\r\n        /**\r\n         * Was the animation previously playing before being paused?\r\n         *\r\n         * @name Phaser.Animations.AnimationState#_wasPlaying\r\n         * @type {boolean}\r\n         * @private\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this._wasPlaying = false;\r\n\r\n        /**\r\n         * Internal property tracking if this Animation is waiting to stop.\r\n         *\r\n         * 0 = No\r\n         * 1 = Waiting for ms to pass\r\n         * 2 = Waiting for repeat\r\n         * 3 = Waiting for specific frame\r\n         *\r\n         * @name Phaser.Animations.AnimationState#_pendingStop\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.4.0\r\n         */\r\n        this._pendingStop = 0;\r\n\r\n        /**\r\n         * Internal property used by _pendingStop.\r\n         *\r\n         * @name Phaser.Animations.AnimationState#_pendingStopValue\r\n         * @type {any}\r\n         * @private\r\n         * @since 3.4.0\r\n         */\r\n        this._pendingStopValue;\r\n    },\r\n\r\n    /**\r\n     * Sets an animation, or an array of animations, to be played in the future, after the current one completes or stops.\r\n     *\r\n     * The current animation must enter a 'completed' state for this to happen, i.e. finish all of its repeats, delays, etc,\r\n     * or have one of the `stop` methods called.\r\n     *\r\n     * An animation set to repeat forever will never enter a completed state unless stopped.\r\n     *\r\n     * You can chain a new animation at any point, including before the current one starts playing, during it, or when it ends (via its `animationcomplete` event).\r\n     *\r\n     * Chained animations are specific to a Game Object, meaning different Game Objects can have different chained animations without impacting the global animation they're playing.\r\n     *\r\n     * Call this method with no arguments to reset all currently chained animations.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#chain\r\n     * @since 3.16.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig|string[]|Phaser.Animations.Animation[]|Phaser.Types.Animations.PlayAnimationConfig[])} [key] - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object, or an array of them.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    chain: function (key)\r\n    {\r\n        var parent = this.parent;\r\n\r\n        if (key === undefined)\r\n        {\r\n            this.nextAnimsQueue.length = 0;\r\n            this.nextAnim = null;\r\n\r\n            return parent;\r\n        }\r\n\r\n        if (!Array.isArray(key))\r\n        {\r\n            key = [ key ];\r\n        }\r\n\r\n        for (var i = 0; i < key.length; i++)\r\n        {\r\n            var anim = key[i];\r\n\r\n            if (!this.nextAnim)\r\n            {\r\n                this.nextAnim = anim;\r\n            }\r\n            else\r\n            {\r\n                this.nextAnimsQueue.push(anim);\r\n            }\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Returns the key of the animation currently loaded into this component.\r\n     *\r\n     * Prior to Phaser 3.50 this method was called `getCurrentKey`.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#getName\r\n     * @since 3.50.0\r\n     *\r\n     * @return {string} The key of the Animation currently loaded into this component, or an empty string if none loaded.\r\n     */\r\n    getName: function ()\r\n    {\r\n        return (this.currentAnim) ? this.currentAnim.key : '';\r\n    },\r\n\r\n    /**\r\n     * Returns the key of the animation frame currently displayed by this component.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#getFrameName\r\n     * @since 3.50.0\r\n     *\r\n     * @return {string} The key of the Animation Frame currently displayed by this component, or an empty string if no animation has been loaded.\r\n     */\r\n    getFrameName: function ()\r\n    {\r\n        return (this.currentFrame) ? this.currentFrame.textureFrame : '';\r\n    },\r\n\r\n    /**\r\n     * Internal method used to load an animation into this component.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#load\r\n     * @protected\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or a `PlayAnimationConfig` object.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    load: function (key)\r\n    {\r\n        if (this.isPlaying)\r\n        {\r\n            this.stop();\r\n        }\r\n\r\n        var manager = this.animationManager;\r\n        var animKey = (typeof key === 'string') ? key : GetFastValue(key, 'key', null);\r\n\r\n        //  Get the animation, first from the local map and, if not found, from the Animation Manager\r\n        var anim = (this.exists(animKey)) ? this.get(animKey) : manager.get(animKey);\r\n\r\n        if (!anim)\r\n        {\r\n            console.warn('Missing animation: ' + animKey);\r\n        }\r\n        else\r\n        {\r\n            this.currentAnim = anim;\r\n\r\n            //  And now override the animation values, if set in the config.\r\n\r\n            var totalFrames = anim.getTotalFrames();\r\n            var frameRate = GetFastValue(key, 'frameRate', anim.frameRate);\r\n            var duration = GetFastValue(key, 'duration', anim.duration);\r\n\r\n            anim.calculateDuration(this, totalFrames, duration, frameRate);\r\n\r\n            this.delay = GetFastValue(key, 'delay', anim.delay);\r\n            this.repeat = GetFastValue(key, 'repeat', anim.repeat);\r\n            this.repeatDelay = GetFastValue(key, 'repeatDelay', anim.repeatDelay);\r\n            this.yoyo = GetFastValue(key, 'yoyo', anim.yoyo);\r\n            this.showBeforeDelay = GetFastValue(key, 'showBeforeDelay', anim.showBeforeDelay);\r\n            this.showOnStart = GetFastValue(key, 'showOnStart', anim.showOnStart);\r\n            this.hideOnComplete = GetFastValue(key, 'hideOnComplete', anim.hideOnComplete);\r\n            this.skipMissedFrames = GetFastValue(key, 'skipMissedFrames', anim.skipMissedFrames);\r\n            this.randomFrame = GetFastValue(key, 'randomFrame', anim.randomFrame);\r\n\r\n            this.timeScale = GetFastValue(key, 'timeScale', this.timeScale);\r\n\r\n            var startFrame = GetFastValue(key, 'startFrame', 0);\r\n\r\n            if (startFrame > totalFrames)\r\n            {\r\n                startFrame = 0;\r\n            }\r\n\r\n            if (this.randomFrame)\r\n            {\r\n                startFrame = Between(0, totalFrames - 1);\r\n            }\r\n\r\n            var frame = anim.frames[startFrame];\r\n\r\n            if (startFrame === 0 && !this.forward)\r\n            {\r\n                frame = anim.getLastFrame();\r\n            }\r\n\r\n            this.currentFrame = frame;\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Pause the current animation and set the `isPlaying` property to `false`.\r\n     * You can optionally pause it at a specific frame.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#pause\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationFrame} [atFrame] - An optional frame to set after pausing the animation.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    pause: function (atFrame)\r\n    {\r\n        if (!this._paused)\r\n        {\r\n            this._paused = true;\r\n            this._wasPlaying = this.isPlaying;\r\n            this.isPlaying = false;\r\n        }\r\n\r\n        if (atFrame !== undefined)\r\n        {\r\n            this.setCurrentFrame(atFrame);\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Resumes playback of a paused animation and sets the `isPlaying` property to `true`.\r\n     * You can optionally tell it to start playback from a specific frame.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#resume\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationFrame} [fromFrame] - An optional frame to set before restarting playback.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    resume: function (fromFrame)\r\n    {\r\n        if (this._paused)\r\n        {\r\n            this._paused = false;\r\n            this.isPlaying = this._wasPlaying;\r\n        }\r\n\r\n        if (fromFrame !== undefined)\r\n        {\r\n            this.setCurrentFrame(fromFrame);\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Waits for the specified delay, in milliseconds, then starts playback of the given animation.\r\n     *\r\n     * If the animation _also_ has a delay value set in its config, it will be **added** to the delay given here.\r\n     *\r\n     * If an animation is already running and a new animation is given to this method, it will wait for\r\n     * the given delay before starting the new animation.\r\n     *\r\n     * If no animation is currently running, the given one begins after the delay.\r\n     *\r\n     * Prior to Phaser 3.50 this method was called 'delayedPlay' and the parameters were in the reverse order.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#playAfterDelay\r\n     * @fires Phaser.Animations.Events#ANIMATION_START\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {number} delay - The delay, in milliseconds, to wait before starting the animation playing.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    playAfterDelay: function (key, delay)\r\n    {\r\n        if (!this.isPlaying)\r\n        {\r\n            this.delayCounter = delay;\r\n\r\n            this.play(key, true);\r\n        }\r\n        else\r\n        {\r\n            //  If we've got a nextAnim, move it to the queue\r\n            var nextAnim = this.nextAnim;\r\n            var queue = this.nextAnimsQueue;\r\n\r\n            if (nextAnim)\r\n            {\r\n                queue.unshift(nextAnim);\r\n            }\r\n\r\n            this.nextAnim = key;\r\n\r\n            this._pendingStop = 1;\r\n            this._pendingStopValue = delay;\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Waits for the current animation to complete the `repeatCount` number of repeat cycles, then starts playback\r\n     * of the given animation.\r\n     *\r\n     * You can use this to ensure there are no harsh jumps between two sets of animations, i.e. going from an\r\n     * idle animation to a walking animation, by making them blend smoothly into each other.\r\n     *\r\n     * If no animation is currently running, the given one will start immediately.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#playAfterRepeat\r\n     * @fires Phaser.Animations.Events#ANIMATION_START\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {number} [repeatCount=1] - How many times should the animation repeat before the next one starts?\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    playAfterRepeat: function (key, repeatCount)\r\n    {\r\n        if (repeatCount === undefined) { repeatCount = 1; }\r\n\r\n        if (!this.isPlaying)\r\n        {\r\n            this.play(key);\r\n        }\r\n        else\r\n        {\r\n            //  If we've got a nextAnim, move it to the queue\r\n            var nextAnim = this.nextAnim;\r\n            var queue = this.nextAnimsQueue;\r\n\r\n            if (nextAnim)\r\n            {\r\n                queue.unshift(nextAnim);\r\n            }\r\n\r\n            if (this.repeatCounter !== -1 && repeatCount > this.repeatCounter)\r\n            {\r\n                repeatCount = this.repeatCounter;\r\n            }\r\n\r\n            this.nextAnim = key;\r\n\r\n            this._pendingStop = 2;\r\n            this._pendingStopValue = repeatCount;\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Start playing the given animation on this Sprite.\r\n     *\r\n     * Animations in Phaser can either belong to the global Animation Manager, or specifically to this Sprite.\r\n     *\r\n     * The benefit of a global animation is that multiple Sprites can all play the same animation, without\r\n     * having to duplicate the data. You can just create it once and then play it on any Sprite.\r\n     *\r\n     * The following code shows how to create a global repeating animation. The animation will be created\r\n     * from all of the frames within the sprite sheet that was loaded with the key 'muybridge':\r\n     *\r\n     * ```javascript\r\n     * var config = {\r\n     *     key: 'run',\r\n     *     frames: 'muybridge',\r\n     *     frameRate: 15,\r\n     *     repeat: -1\r\n     * };\r\n     *\r\n     * //  This code should be run from within a Scene:\r\n     * this.anims.create(config);\r\n     * ```\r\n     *\r\n     * However, if you wish to create an animation that is unique to this Sprite, and this Sprite alone,\r\n     * you can call the `Animation.create` method instead. It accepts the exact same parameters as when\r\n     * creating a global animation, however the resulting data is kept locally in this Sprite.\r\n     *\r\n     * With the animation created, either globally or locally, you can now play it on this Sprite:\r\n     *\r\n     * ```javascript\r\n     * this.add.sprite(x, y).play('run');\r\n     * ```\r\n     *\r\n     * Alternatively, if you wish to run it at a different frame rate, for example, you can pass a config\r\n     * object instead:\r\n     *\r\n     * ```javascript\r\n     * this.add.sprite(x, y).play({ key: 'run', frameRate: 24 });\r\n     * ```\r\n     *\r\n     * When playing an animation on a Sprite it will first check to see if it can find a matching key\r\n     * locally within the Sprite. If it can, it will play the local animation. If not, it will then\r\n     * search the global Animation Manager and look for it there.\r\n     *\r\n     * If you need a Sprite to be able to play both local and global animations, make sure they don't\r\n     * have conflicting keys.\r\n     *\r\n     * See the documentation for the `PlayAnimationConfig` config object for more details about this.\r\n     *\r\n     * Also, see the documentation in the Animation Manager for further details on creating animations.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#play\r\n     * @fires Phaser.Animations.Events#ANIMATION_START\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {boolean} [ignoreIfPlaying=false] - If this animation is already playing then ignore this call.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    play: function (key, ignoreIfPlaying)\r\n    {\r\n        if (ignoreIfPlaying === undefined) { ignoreIfPlaying = false; }\r\n\r\n        var currentAnim = this.currentAnim;\r\n        var parent = this.parent;\r\n\r\n        //  Must be either an Animation instance, or a PlayAnimationConfig object\r\n        var animKey = (typeof key === 'string') ? key : key.key;\r\n\r\n        if (ignoreIfPlaying && this.isPlaying && currentAnim.key === animKey)\r\n        {\r\n            return parent;\r\n        }\r\n\r\n        //  Are we mixing?\r\n        if (currentAnim && this.isPlaying)\r\n        {\r\n            var mix = this.animationManager.getMix(currentAnim.key, key);\r\n\r\n            if (mix > 0)\r\n            {\r\n                return this.playAfterDelay(key, mix);\r\n            }\r\n        }\r\n\r\n        this.forward = true;\r\n        this.inReverse = false;\r\n\r\n        this._paused = false;\r\n        this._wasPlaying = true;\r\n\r\n        return this.startAnimation(key);\r\n    },\r\n\r\n    /**\r\n     * Start playing the given animation on this Sprite, in reverse.\r\n     *\r\n     * Animations in Phaser can either belong to the global Animation Manager, or specifically to this Sprite.\r\n     *\r\n     * The benefit of a global animation is that multiple Sprites can all play the same animation, without\r\n     * having to duplicate the data. You can just create it once and then play it on any Sprite.\r\n     *\r\n     * The following code shows how to create a global repeating animation. The animation will be created\r\n     * from all of the frames within the sprite sheet that was loaded with the key 'muybridge':\r\n     *\r\n     * ```javascript\r\n     * var config = {\r\n     *     key: 'run',\r\n     *     frames: 'muybridge',\r\n     *     frameRate: 15,\r\n     *     repeat: -1\r\n     * };\r\n     *\r\n     * //  This code should be run from within a Scene:\r\n     * this.anims.create(config);\r\n     * ```\r\n     *\r\n     * However, if you wish to create an animation that is unique to this Sprite, and this Sprite alone,\r\n     * you can call the `Animation.create` method instead. It accepts the exact same parameters as when\r\n     * creating a global animation, however the resulting data is kept locally in this Sprite.\r\n     *\r\n     * With the animation created, either globally or locally, you can now play it on this Sprite:\r\n     *\r\n     * ```javascript\r\n     * this.add.sprite(x, y).playReverse('run');\r\n     * ```\r\n     *\r\n     * Alternatively, if you wish to run it at a different frame rate, for example, you can pass a config\r\n     * object instead:\r\n     *\r\n     * ```javascript\r\n     * this.add.sprite(x, y).playReverse({ key: 'run', frameRate: 24 });\r\n     * ```\r\n     *\r\n     * When playing an animation on a Sprite it will first check to see if it can find a matching key\r\n     * locally within the Sprite. If it can, it will play the local animation. If not, it will then\r\n     * search the global Animation Manager and look for it there.\r\n     *\r\n     * If you need a Sprite to be able to play both local and global animations, make sure they don't\r\n     * have conflicting keys.\r\n     *\r\n     * See the documentation for the `PlayAnimationConfig` config object for more details about this.\r\n     *\r\n     * Also, see the documentation in the Animation Manager for further details on creating animations.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#playReverse\r\n     * @fires Phaser.Animations.Events#ANIMATION_START\r\n     * @since 3.12.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {boolean} [ignoreIfPlaying=false] - If an animation is already playing then ignore this call.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    playReverse: function (key, ignoreIfPlaying)\r\n    {\r\n        if (ignoreIfPlaying === undefined) { ignoreIfPlaying = false; }\r\n\r\n        //  Must be either an Animation instance, or a PlayAnimationConfig object\r\n        var animKey = (typeof key === 'string') ? key : key.key;\r\n\r\n        if (ignoreIfPlaying && this.isPlaying && this.currentAnim.key === animKey)\r\n        {\r\n            return this.parent;\r\n        }\r\n\r\n        this.forward = false;\r\n        this.inReverse = true;\r\n\r\n        this._paused = false;\r\n        this._wasPlaying = true;\r\n\r\n        return this.startAnimation(key);\r\n    },\r\n\r\n    /**\r\n     * Load the animation based on the key and set-up all of the internal values\r\n     * needed for playback to start. If there is no delay, it will also fire the start events.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#startAnimation\r\n     * @fires Phaser.Animations.Events#ANIMATION_START\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or a `PlayAnimationConfig` object.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    startAnimation: function (key)\r\n    {\r\n        this.load(key);\r\n\r\n        var anim = this.currentAnim;\r\n        var gameObject = this.parent;\r\n\r\n        if (!anim)\r\n        {\r\n            return gameObject;\r\n        }\r\n\r\n        //  Should give us 9,007,199,254,740,991 safe repeats\r\n        this.repeatCounter = (this.repeat === -1) ? Number.MAX_VALUE : this.repeat;\r\n\r\n        anim.getFirstTick(this);\r\n\r\n        this.isPlaying = true;\r\n        this.pendingRepeat = false;\r\n        this.hasStarted = false;\r\n\r\n        this._pendingStop = 0;\r\n        this._pendingStopValue = 0;\r\n        this._paused = false;\r\n\r\n        //  Add any delay the animation itself may have had as well\r\n        this.delayCounter += this.delay;\r\n\r\n        if (this.delayCounter === 0)\r\n        {\r\n            this.handleStart();\r\n        }\r\n        else if (this.showBeforeDelay)\r\n        {\r\n            //  We have a delay, but still need to set the frame\r\n            this.setCurrentFrame(this.currentFrame);\r\n        }\r\n\r\n        return gameObject;\r\n    },\r\n\r\n    /**\r\n     * Handles the start of an animation playback.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#handleStart\r\n     * @private\r\n     * @since 3.50.0\r\n     */\r\n    handleStart: function ()\r\n    {\r\n        if (this.showOnStart)\r\n        {\r\n            this.parent.setVisible(true);\r\n        }\r\n\r\n        this.setCurrentFrame(this.currentFrame);\r\n\r\n        this.hasStarted = true;\r\n\r\n        this.emitEvents(Events.ANIMATION_START);\r\n    },\r\n\r\n    /**\r\n     * Handles the repeat of an animation.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#handleRepeat\r\n     * @private\r\n     * @since 3.50.0\r\n     */\r\n    handleRepeat: function ()\r\n    {\r\n        this.pendingRepeat = false;\r\n\r\n        this.emitEvents(Events.ANIMATION_REPEAT);\r\n    },\r\n\r\n    /**\r\n     * Handles the stop of an animation playback.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#handleStop\r\n     * @private\r\n     * @since 3.50.0\r\n     */\r\n    handleStop: function ()\r\n    {\r\n        this._pendingStop = 0;\r\n\r\n        this.isPlaying = false;\r\n\r\n        this.emitEvents(Events.ANIMATION_STOP);\r\n    },\r\n\r\n    /**\r\n     * Handles the completion of an animation playback.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#handleComplete\r\n     * @private\r\n     * @since 3.50.0\r\n     */\r\n    handleComplete: function ()\r\n    {\r\n        this._pendingStop = 0;\r\n\r\n        this.isPlaying = false;\r\n\r\n        if (this.hideOnComplete)\r\n        {\r\n            this.parent.setVisible(false);\r\n        }\r\n\r\n        this.emitEvents(Events.ANIMATION_COMPLETE, Events.ANIMATION_COMPLETE_KEY);\r\n    },\r\n\r\n    /**\r\n     * Fires the given animation event.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#emitEvents\r\n     * @private\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} event - The Animation Event to dispatch.\r\n     */\r\n    emitEvents: function (event, keyEvent)\r\n    {\r\n        var anim = this.currentAnim;\r\n\r\n        if (anim)\r\n        {\r\n            var frame = this.currentFrame;\r\n\r\n            var gameObject = this.parent;\r\n\r\n            var frameKey = frame.textureFrame;\r\n\r\n            gameObject.emit(event, anim, frame, gameObject, frameKey);\r\n\r\n            if (keyEvent)\r\n            {\r\n                gameObject.emit(keyEvent + anim.key, anim, frame, gameObject, frameKey);\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Reverse the Animation that is already playing on the Game Object.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#reverse\r\n     * @since 3.12.0\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    reverse: function ()\r\n    {\r\n        if (this.isPlaying)\r\n        {\r\n            this.inReverse = !this.inReverse;\r\n\r\n            this.forward = !this.forward;\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Returns a value between 0 and 1 indicating how far this animation is through, ignoring repeats and yoyos.\r\n     *\r\n     * The value is based on the current frame and how far that is in the animation, it is not based on\r\n     * the duration of the animation.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#getProgress\r\n     * @since 3.4.0\r\n     *\r\n     * @return {number} The progress of the current animation in frames, between 0 and 1.\r\n     */\r\n    getProgress: function ()\r\n    {\r\n        var frame = this.currentFrame;\r\n\r\n        if (!frame)\r\n        {\r\n            return 0;\r\n        }\r\n\r\n        var p = frame.progress;\r\n\r\n        if (this.inReverse)\r\n        {\r\n            p *= -1;\r\n        }\r\n\r\n        return p;\r\n    },\r\n\r\n    /**\r\n     * Takes a value between 0 and 1 and uses it to set how far this animation is through playback.\r\n     *\r\n     * Does not factor in repeats or yoyos, but does handle playing forwards or backwards.\r\n     *\r\n     * The value is based on the current frame and how far that is in the animation, it is not based on\r\n     * the duration of the animation.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#setProgress\r\n     * @since 3.4.0\r\n     *\r\n     * @param {number} [value=0] - The progress value, between 0 and 1.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    setProgress: function (value)\r\n    {\r\n        if (!this.forward)\r\n        {\r\n            value = 1 - value;\r\n        }\r\n\r\n        this.setCurrentFrame(this.currentAnim.getFrameByProgress(value));\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Sets the number of times that the animation should repeat after its first play through.\r\n     * For example, if repeat is 1, the animation will play a total of twice: the initial play plus 1 repeat.\r\n     *\r\n     * To repeat indefinitely, use -1.\r\n     * The value should always be an integer.\r\n     *\r\n     * Calling this method only works if the animation is already running. Otherwise, any\r\n     * value specified here will be overwritten when the next animation loads in. To avoid this,\r\n     * use the `repeat` property of the `PlayAnimationConfig` object instead.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#setRepeat\r\n     * @since 3.4.0\r\n     *\r\n     * @param {number} value - The number of times that the animation should repeat.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    setRepeat: function (value)\r\n    {\r\n        this.repeatCounter = (value === -1) ? Number.MAX_VALUE : value;\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Handle the removal of an animation from the Animation Manager.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#globalRemove\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} [key] - The key of the removed Animation.\r\n     * @param {Phaser.Animations.Animation} [animation] - The removed Animation.\r\n     */\r\n    globalRemove: function (key, animation)\r\n    {\r\n        if (animation === undefined) { animation = this.currentAnim; }\r\n\r\n        if (this.isPlaying && animation.key === this.currentAnim.key)\r\n        {\r\n            this.stop();\r\n\r\n            this.setCurrentFrame(this.currentAnim.frames[0]);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Restarts the current animation from its beginning.\r\n     *\r\n     * You can optionally reset the delay and repeat counters as well.\r\n     *\r\n     * Calling this will fire the `ANIMATION_RESTART` event immediately.\r\n     *\r\n     * If you `includeDelay` then it will also fire the `ANIMATION_START` event once\r\n     * the delay has expired, otherwise, playback will just begin immediately.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#restart\r\n     * @fires Phaser.Animations.Events#ANIMATION_RESTART\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} [includeDelay=false] - Whether to include the delay value of the animation when restarting.\r\n     * @param {boolean} [resetRepeats=false] - Whether to reset the repeat counter or not?\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    restart: function (includeDelay, resetRepeats)\r\n    {\r\n        if (includeDelay === undefined) { includeDelay = false; }\r\n        if (resetRepeats === undefined) { resetRepeats = false; }\r\n\r\n        var anim = this.currentAnim;\r\n        var gameObject = this.parent;\r\n\r\n        if (!anim)\r\n        {\r\n            return gameObject;\r\n        }\r\n\r\n        if (resetRepeats)\r\n        {\r\n            this.repeatCounter = (this.repeat === -1) ? Number.MAX_VALUE : this.repeat;\r\n        }\r\n\r\n        anim.getFirstTick(this);\r\n\r\n        this.emitEvents(Events.ANIMATION_RESTART);\r\n\r\n        this.isPlaying = true;\r\n        this.pendingRepeat = false;\r\n\r\n        //  Set this to `true` if there is no delay to include, so it skips the `hasStarted` check in `update`.\r\n        this.hasStarted = !includeDelay;\r\n\r\n        this._pendingStop = 0;\r\n        this._pendingStopValue = 0;\r\n        this._paused = false;\r\n\r\n        this.setCurrentFrame(anim.frames[0]);\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * The current animation has completed. This dispatches the `ANIMATION_COMPLETE` event.\r\n     *\r\n     * This method is called by the Animation instance and should not usually be invoked directly.\r\n     *\r\n     * If no animation is loaded, no events will be dispatched.\r\n     *\r\n     * If another animation has been queued for playback, it will be started after the events fire.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#complete\r\n     * @fires Phaser.Animations.Events#ANIMATION_COMPLETE\r\n     * @since 3.50.0\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    complete: function ()\r\n    {\r\n        this._pendingStop = 0;\r\n\r\n        this.isPlaying = false;\r\n\r\n        if (this.currentAnim)\r\n        {\r\n            this.handleComplete();\r\n        }\r\n\r\n        if (this.nextAnim)\r\n        {\r\n            var key = this.nextAnim;\r\n\r\n            this.nextAnim = (this.nextAnimsQueue.length > 0) ? this.nextAnimsQueue.shift() : null;\r\n\r\n            this.play(key);\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Immediately stops the current animation from playing and dispatches the `ANIMATION_STOP` event.\r\n     *\r\n     * If no animation is running, no events will be dispatched.\r\n     *\r\n     * If there is another animation in the queue (set via the `chain` method) then it will start playing.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#stop\r\n     * @fires Phaser.Animations.Events#ANIMATION_STOP\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    stop: function ()\r\n    {\r\n        this._pendingStop = 0;\r\n\r\n        this.isPlaying = false;\r\n\r\n        this.delayCounter = 0;\r\n\r\n        if (this.currentAnim)\r\n        {\r\n            this.handleStop();\r\n        }\r\n\r\n        if (this.nextAnim)\r\n        {\r\n            var key = this.nextAnim;\r\n\r\n            this.nextAnim = this.nextAnimsQueue.shift();\r\n\r\n            this.play(key);\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Stops the current animation from playing after the specified time delay, given in milliseconds.\r\n     *\r\n     * It then dispatches the `ANIMATION_STOP` event.\r\n     *\r\n     * If no animation is running, no events will be dispatched.\r\n     *\r\n     * If there is another animation in the queue (set via the `chain` method) then it will start playing,\r\n     * when the current one stops.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#stopAfterDelay\r\n     * @fires Phaser.Animations.Events#ANIMATION_STOP\r\n     * @since 3.4.0\r\n     *\r\n     * @param {number} delay - The number of milliseconds to wait before stopping this animation.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    stopAfterDelay: function (delay)\r\n    {\r\n        this._pendingStop = 1;\r\n        this._pendingStopValue = delay;\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Stops the current animation from playing when it next repeats.\r\n     *\r\n     * It then dispatches the `ANIMATION_STOP` event.\r\n     *\r\n     * If no animation is running, no events will be dispatched.\r\n     *\r\n     * If there is another animation in the queue (set via the `chain` method) then it will start playing,\r\n     * when the current one stops.\r\n     *\r\n     * Prior to Phaser 3.50 this method was called `stopOnRepeat` and had no parameters.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#stopAfterRepeat\r\n     * @fires Phaser.Animations.Events#ANIMATION_STOP\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} [repeatCount=1] - How many times should the animation repeat before stopping?\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    stopAfterRepeat: function (repeatCount)\r\n    {\r\n        if (repeatCount === undefined) { repeatCount = 1; }\r\n\r\n        if (this.repeatCounter !== -1 && repeatCount > this.repeatCounter)\r\n        {\r\n            repeatCount = this.repeatCounter;\r\n        }\r\n\r\n        this._pendingStop = 2;\r\n        this._pendingStopValue = repeatCount;\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Stops the current animation from playing when it next sets the given frame.\r\n     * If this frame doesn't exist within the animation it will not stop it from playing.\r\n     *\r\n     * It then dispatches the `ANIMATION_STOP` event.\r\n     *\r\n     * If no animation is running, no events will be dispatched.\r\n     *\r\n     * If there is another animation in the queue (set via the `chain` method) then it will start playing,\r\n     * when the current one stops.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#stopOnFrame\r\n     * @fires Phaser.Animations.Events#ANIMATION_STOP\r\n     * @since 3.4.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationFrame} frame - The frame to check before stopping this animation.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that owns this Animation Component.\r\n     */\r\n    stopOnFrame: function (frame)\r\n    {\r\n        this._pendingStop = 3;\r\n        this._pendingStopValue = frame;\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Returns the total number of frames in this animation, or returns zero if no\r\n     * animation has been loaded.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#getTotalFrames\r\n     * @since 3.4.0\r\n     *\r\n     * @return {number} The total number of frames in the current animation, or zero if no animation has been loaded.\r\n     */\r\n    getTotalFrames: function ()\r\n    {\r\n        return (this.currentAnim) ? this.currentAnim.getTotalFrames() : 0;\r\n    },\r\n\r\n    /**\r\n     * The internal update loop for the AnimationState Component.\r\n     *\r\n     * This is called automatically by the `Sprite.preUpdate` method.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#update\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} time - The current timestamp.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    update: function (time, delta)\r\n    {\r\n        var anim = this.currentAnim;\r\n\r\n        if (!this.isPlaying || !anim || anim.paused)\r\n        {\r\n            return;\r\n        }\r\n\r\n        this.accumulator += delta * this.timeScale * this.animationManager.globalTimeScale;\r\n\r\n        if (this._pendingStop === 1)\r\n        {\r\n            this._pendingStopValue -= delta;\r\n\r\n            if (this._pendingStopValue <= 0)\r\n            {\r\n                return this.stop();\r\n            }\r\n        }\r\n\r\n        if (!this.hasStarted)\r\n        {\r\n            if (this.accumulator >= this.delayCounter)\r\n            {\r\n                this.accumulator -= this.delayCounter;\r\n\r\n                this.handleStart();\r\n            }\r\n        }\r\n        else if (this.accumulator >= this.nextTick)\r\n        {\r\n            //  Process one frame advance as standard\r\n\r\n            if (this.forward)\r\n            {\r\n                anim.nextFrame(this);\r\n            }\r\n            else\r\n            {\r\n                anim.previousFrame(this);\r\n            }\r\n\r\n            //  And only do more if we're skipping frames and have time left\r\n            if (this.isPlaying && this._pendingStop === 0 && this.skipMissedFrames && this.accumulator > this.nextTick)\r\n            {\r\n                var safetyNet = 0;\r\n\r\n                do\r\n                {\r\n                    if (this.forward)\r\n                    {\r\n                        anim.nextFrame(this);\r\n                    }\r\n                    else\r\n                    {\r\n                        anim.previousFrame(this);\r\n                    }\r\n\r\n                    safetyNet++;\r\n\r\n                } while (this.isPlaying && this.accumulator > this.nextTick && safetyNet < 60);\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Sets the given Animation Frame as being the current frame\r\n     * and applies it to the parent Game Object, adjusting size and origin as needed.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#setCurrentFrame\r\n     * @fires Phaser.Animations.Events#ANIMATION_UPDATE\r\n     * @fires Phaser.Animations.Events#ANIMATION_STOP\r\n     * @since 3.4.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationFrame} animationFrame - The animation frame to change to.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object this Animation Component belongs to.\r\n     */\r\n    setCurrentFrame: function (animationFrame)\r\n    {\r\n        var gameObject = this.parent;\r\n\r\n        this.currentFrame = animationFrame;\r\n\r\n        gameObject.texture = animationFrame.frame.texture;\r\n        gameObject.frame = animationFrame.frame;\r\n\r\n        if (gameObject.isCropped)\r\n        {\r\n            gameObject.frame.updateCropUVs(gameObject._crop, gameObject.flipX, gameObject.flipY);\r\n        }\r\n\r\n        if (animationFrame.setAlpha)\r\n        {\r\n            gameObject.alpha = animationFrame.alpha;\r\n        }\r\n\r\n        gameObject.setSizeToFrame();\r\n\r\n        if (gameObject._originComponent)\r\n        {\r\n            if (animationFrame.frame.customPivot)\r\n            {\r\n                gameObject.setOrigin(animationFrame.frame.pivotX, animationFrame.frame.pivotY);\r\n            }\r\n            else\r\n            {\r\n                gameObject.updateDisplayOrigin();\r\n            }\r\n        }\r\n\r\n        if (this.isPlaying && this.hasStarted)\r\n        {\r\n            this.emitEvents(Events.ANIMATION_UPDATE);\r\n\r\n            if (this._pendingStop === 3 && this._pendingStopValue === animationFrame)\r\n            {\r\n                this.stop();\r\n            }\r\n        }\r\n\r\n        return gameObject;\r\n    },\r\n\r\n    /**\r\n     * Advances the animation to the next frame, regardless of the time or animation state.\r\n     * If the animation is set to repeat, or yoyo, this will still take effect.\r\n     *\r\n     * Calling this does not change the direction of the animation. I.e. if it was currently\r\n     * playing in reverse, calling this method doesn't then change the direction to forwards.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#nextFrame\r\n     * @since 3.16.0\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object this Animation Component belongs to.\r\n     */\r\n    nextFrame: function ()\r\n    {\r\n        if (this.currentAnim)\r\n        {\r\n            this.currentAnim.nextFrame(this);\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Advances the animation to the previous frame, regardless of the time or animation state.\r\n     * If the animation is set to repeat, or yoyo, this will still take effect.\r\n     *\r\n     * Calling this does not change the direction of the animation. I.e. if it was currently\r\n     * playing in forwards, calling this method doesn't then change the direction to backwards.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#previousFrame\r\n     * @since 3.16.0\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object this Animation Component belongs to.\r\n     */\r\n    previousFrame: function ()\r\n    {\r\n        if (this.currentAnim)\r\n        {\r\n            this.currentAnim.previousFrame(this);\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Get an Animation instance that has been created locally on this Sprite.\r\n     *\r\n     * See the `create` method for more details.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#get\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} key - The key of the Animation to retrieve.\r\n     *\r\n     * @return {Phaser.Animations.Animation} The Animation, or `null` if the key is invalid.\r\n     */\r\n    get: function (key)\r\n    {\r\n        return (this.anims) ? this.anims.get(key) : null;\r\n    },\r\n\r\n    /**\r\n     * Checks to see if the given key is already used locally within the animations stored on this Sprite.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#exists\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} key - The key of the Animation to check.\r\n     *\r\n     * @return {boolean} `true` if the Animation exists locally, or `false` if the key is available, or there are no local animations.\r\n     */\r\n    exists: function (key)\r\n    {\r\n        return (this.anims) ? this.anims.has(key) : false;\r\n    },\r\n\r\n    /**\r\n     * Creates a new Animation that is local specifically to this Sprite.\r\n     *\r\n     * When a Sprite owns an animation, it is kept out of the global Animation Manager, which means\r\n     * you're free to use keys that may be already defined there. Unless you specifically need a Sprite\r\n     * to have a unique animation, you should favor using global animations instead, as they allow for\r\n     * the same animation to be used across multiple Sprites, saving on memory. However, if this Sprite\r\n     * is the only one to use this animation, it's sensible to create it here.\r\n     *\r\n     * If an invalid key is given this method will return `false`.\r\n     *\r\n     * If you pass the key of an animation that already exists locally, that animation will be returned.\r\n     *\r\n     * A brand new animation is only created if the key is valid and not already in use by this Sprite.\r\n     *\r\n     * If you wish to re-use an existing key, call the `remove` method first, then this method.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#create\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.Types.Animations.Animation} config - The configuration settings for the Animation.\r\n     *\r\n     * @return {(Phaser.Animations.Animation|false)} The Animation that was created, or `false` if the key is already in use.\r\n     */\r\n    create: function (config)\r\n    {\r\n        var key = config.key;\r\n\r\n        var anim = false;\r\n\r\n        if (key)\r\n        {\r\n            anim = this.get(key);\r\n\r\n            if (!anim)\r\n            {\r\n                anim = new Animation(this, key, config);\r\n\r\n                if (!this.anims)\r\n                {\r\n                    this.anims = new CustomMap();\r\n                }\r\n\r\n                this.anims.set(key, anim);\r\n            }\r\n            else\r\n            {\r\n                console.warn('Animation key already exists: ' + key);\r\n            }\r\n        }\r\n\r\n        return anim;\r\n    },\r\n\r\n    /**\r\n     * Create one, or more animations from a loaded Aseprite JSON file.\r\n     *\r\n     * Aseprite is a powerful animated sprite editor and pixel art tool.\r\n     *\r\n     * You can find more details at https://www.aseprite.org/\r\n     *\r\n     * To export a compatible JSON file in Aseprite, please do the following:\r\n     *\r\n     * 1. Go to \"File - Export Sprite Sheet\"\r\n     *\r\n     * 2. On the **Layout** tab:\r\n     * 2a. Set the \"Sheet type\" to \"Packed\"\r\n     * 2b. Set the \"Constraints\" to \"None\"\r\n     * 2c. Check the \"Merge Duplicates\" checkbox\r\n     *\r\n     * 3. On the **Sprite** tab:\r\n     * 3a. Set \"Layers\" to \"Visible layers\"\r\n     * 3b. Set \"Frames\" to \"All frames\", unless you only wish to export a sub-set of tags\r\n     *\r\n     * 4. On the **Borders** tab:\r\n     * 4a. Check the \"Trim Sprite\" and \"Trim Cells\" options\r\n     * 4b. Ensure \"Border Padding\", \"Spacing\" and \"Inner Padding\" are all > 0 (1 is usually enough)\r\n     *\r\n     * 5. On the **Output** tab:\r\n     * 5a. Check \"Output File\", give your image a name and make sure you choose \"png files\" as the file type\r\n     * 5b. Check \"JSON Data\" and give your json file a name\r\n     * 5c. The JSON Data type can be either a Hash or Array, Phaser doesn't mind.\r\n     * 5d. Make sure \"Tags\" is checked in the Meta options\r\n     * 5e. In the \"Item Filename\" input box, make sure it says just \"{frame}\" and nothing more.\r\n     *\r\n     * 6. Click export\r\n     *\r\n     * This was tested with Aseprite 1.2.25.\r\n     *\r\n     * This will export a png and json file which you can load using the Aseprite Loader, i.e.:\r\n     *\r\n     * ```javascript\r\n     * function preload ()\r\n     * {\r\n     *     this.load.path = 'assets/animations/aseprite/';\r\n     *     this.load.aseprite('paladin', 'paladin.png', 'paladin.json');\r\n     * }\r\n     * ```\r\n     *\r\n     * Once loaded, you can call this method on a Sprite with the 'atlas' key:\r\n     *\r\n     * ```javascript\r\n     * const sprite = this.add.sprite(400, 300);\r\n     *\r\n     * sprite.anims.createFromAseprite('paladin');\r\n     * ```\r\n     *\r\n     * Any animations defined in the JSON will now be available to use on this Sprite and you play them\r\n     * via their Tag name. For example, if you have an animation called 'War Cry' on your Aseprite timeline,\r\n     * you can play it on the Sprite using that Tag name:\r\n     *\r\n     * ```javascript\r\n     * const sprite = this.add.sprite(400, 300);\r\n     *\r\n     * sprite.anims.createFromAseprite('paladin');\r\n     *\r\n     * sprite.play('War Cry');\r\n     * ```\r\n     *\r\n     * When calling this method you can optionally provide an array of tag names, and only those animations\r\n     * will be created. For example:\r\n     *\r\n     * ```javascript\r\n     * sprite.anims.createFromAseprite('paladin', [ 'step', 'War Cry', 'Magnum Break' ]);\r\n     * ```\r\n     *\r\n     * This will only create the 3 animations defined. Note that the tag names are case-sensitive.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#createFromAseprite\r\n     * @since 3.60.0\r\n     *\r\n     * @param {string} key - The key of the loaded Aseprite atlas. It must have been loaded prior to calling this method.\r\n     * @param {string[]} [tags] - An array of Tag names. If provided, only animations found in this array will be created.\r\n     *\r\n     * @return {Phaser.Animations.Animation[]} An array of Animation instances that were successfully created.\r\n     */\r\n    createFromAseprite: function (key, tags)\r\n    {\r\n        return this.animationManager.createFromAseprite(key, tags, this.parent);\r\n    },\r\n\r\n    /**\r\n     * Generate an array of {@link Phaser.Types.Animations.AnimationFrame} objects from a texture key and configuration object.\r\n     *\r\n     * Generates objects with string based frame names, as configured by the given {@link Phaser.Types.Animations.GenerateFrameNames}.\r\n     *\r\n     * It's a helper method, designed to make it easier for you to extract all of the frame names from texture atlases.\r\n     * If you're working with a sprite sheet, see the `generateFrameNumbers` method instead.\r\n     *\r\n     * Example:\r\n     *\r\n     * If you have a texture atlases loaded called `gems` and it contains 6 frames called `ruby_0001`, `ruby_0002`, and so on,\r\n     * then you can call this method using: `this.anims.generateFrameNames('gems', { prefix: 'ruby_', end: 6, zeroPad: 4 })`.\r\n     *\r\n     * The `end` value tells it to look for 6 frames, incrementally numbered, all starting with the prefix `ruby_`. The `zeroPad`\r\n     * value tells it how many zeroes pad out the numbers. To create an animation using this method, you can do:\r\n     *\r\n     * ```javascript\r\n     * this.anims.create({\r\n     *   key: 'ruby',\r\n     *   repeat: -1,\r\n     *   frames: this.anims.generateFrameNames('gems', {\r\n     *     prefix: 'ruby_',\r\n     *     end: 6,\r\n     *     zeroPad: 4\r\n     *   })\r\n     * });\r\n     * ```\r\n     *\r\n     * Please see the animation examples for further details.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#generateFrameNames\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} key - The key for the texture containing the animation frames.\r\n     * @param {Phaser.Types.Animations.GenerateFrameNames} [config] - The configuration object for the animation frame names.\r\n     *\r\n     * @return {Phaser.Types.Animations.AnimationFrame[]} The array of {@link Phaser.Types.Animations.AnimationFrame} objects.\r\n     */\r\n    generateFrameNames: function (key, config)\r\n    {\r\n        return this.animationManager.generateFrameNames(key, config);\r\n    },\r\n\r\n    /**\r\n     * Generate an array of {@link Phaser.Types.Animations.AnimationFrame} objects from a texture key and configuration object.\r\n     *\r\n     * Generates objects with numbered frame names, as configured by the given {@link Phaser.Types.Animations.GenerateFrameNumbers}.\r\n     *\r\n     * If you're working with a texture atlas, see the `generateFrameNames` method instead.\r\n     *\r\n     * It's a helper method, designed to make it easier for you to extract frames from sprite sheets.\r\n     * If you're working with a texture atlas, see the `generateFrameNames` method instead.\r\n     *\r\n     * Example:\r\n     *\r\n     * If you have a sprite sheet loaded called `explosion` and it contains 12 frames, then you can call this method using:\r\n     * `this.anims.generateFrameNumbers('explosion', { start: 0, end: 11 })`.\r\n     *\r\n     * The `end` value tells it to stop after 12 frames. To create an animation using this method, you can do:\r\n     *\r\n     * ```javascript\r\n     * this.anims.create({\r\n     *   key: 'boom',\r\n     *   frames: this.anims.generateFrameNumbers('explosion', {\r\n     *     start: 0,\r\n     *     end: 11\r\n     *   })\r\n     * });\r\n     * ```\r\n     *\r\n     * Note that `start` is optional and you don't need to include it if the animation starts from frame 0.\r\n     *\r\n     * To specify an animation in reverse, swap the `start` and `end` values.\r\n     *\r\n     * If the frames are not sequential, you may pass an array of frame numbers instead, for example:\r\n     *\r\n     * `this.anims.generateFrameNumbers('explosion', { frames: [ 0, 1, 2, 1, 2, 3, 4, 0, 1, 2 ] })`\r\n     *\r\n     * Please see the animation examples and `GenerateFrameNumbers` config docs for further details.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#generateFrameNumbers\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} key - The key for the texture containing the animation frames.\r\n     * @param {Phaser.Types.Animations.GenerateFrameNumbers} [config] - The configuration object for the animation frames.\r\n     *\r\n     * @return {Phaser.Types.Animations.AnimationFrame[]} The array of {@link Phaser.Types.Animations.AnimationFrame} objects.\r\n     */\r\n    generateFrameNumbers: function (key, config)\r\n    {\r\n        return this.animationManager.generateFrameNumbers(key, config);\r\n    },\r\n\r\n    /**\r\n     * Removes a locally created Animation from this Sprite, based on the given key.\r\n     *\r\n     * Once an Animation has been removed, this Sprite cannot play it again without re-creating it.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#remove\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} key - The key of the animation to remove.\r\n     *\r\n     * @return {Phaser.Animations.Animation} The Animation instance that was removed from this Sprite, if the key was valid.\r\n     */\r\n    remove: function (key)\r\n    {\r\n        var anim = this.get(key);\r\n\r\n        if (anim)\r\n        {\r\n            if (this.currentAnim === anim)\r\n            {\r\n                this.stop();\r\n            }\r\n\r\n            this.anims.delete(key);\r\n        }\r\n\r\n        return anim;\r\n    },\r\n\r\n    /**\r\n     * Destroy this Animation component.\r\n     *\r\n     * Unregisters event listeners and cleans up its references.\r\n     *\r\n     * @method Phaser.Animations.AnimationState#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.animationManager.off(Events.REMOVE_ANIMATION, this.globalRemove, this);\r\n\r\n        if (this.anims)\r\n        {\r\n            this.anims.clear();\r\n        }\r\n\r\n        this.animationManager = null;\r\n        this.parent = null;\r\n        this.nextAnim = null;\r\n        this.nextAnimsQueue.length = 0;\r\n\r\n        this.currentAnim = null;\r\n        this.currentFrame = null;\r\n    },\r\n\r\n    /**\r\n     * `true` if the current animation is paused, otherwise `false`.\r\n     *\r\n     * @name Phaser.Animations.AnimationState#isPaused\r\n     * @readonly\r\n     * @type {boolean}\r\n     * @since 3.4.0\r\n     */\r\n    isPaused: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._paused;\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = AnimationState;\r\n\n\n/***/ }),\n\n/***/ 57090:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Add Animation Event.\r\n *\r\n * This event is dispatched when a new animation is added to the global Animation Manager.\r\n *\r\n * This can happen either as a result of an animation instance being added to the Animation Manager,\r\n * or the Animation Manager creating a new animation directly.\r\n *\r\n * @event Phaser.Animations.Events#ADD_ANIMATION\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {string} key - The key of the Animation that was added to the global Animation Manager.\r\n * @param {Phaser.Animations.Animation} animation - An instance of the newly created Animation.\r\n */\r\nmodule.exports = 'add';\r\n\n\n/***/ }),\n\n/***/ 25312:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Animation Complete Event.\r\n *\r\n * This event is dispatched by a Sprite when an animation playing on it completes playback.\r\n * This happens when the animation gets to the end of its sequence, factoring in any delays\r\n * or repeats it may have to process.\r\n *\r\n * An animation that is set to loop, or repeat forever, will never fire this event, because\r\n * it never actually completes. If you need to handle this, listen for the `ANIMATION_STOP`\r\n * event instead, as this is emitted when the animation is stopped directly.\r\n *\r\n * Listen for it on the Sprite using `sprite.on('animationcomplete', listener)`\r\n *\r\n * The animation event flow is as follows:\r\n *\r\n * 1. `ANIMATION_START`\r\n * 2. `ANIMATION_UPDATE` (repeated for however many frames the animation has)\r\n * 3. `ANIMATION_REPEAT` (only if the animation is set to repeat, it then emits more update events after this)\r\n * 4. `ANIMATION_COMPLETE` (only if there is a finite, or zero, repeat count)\r\n * 5. `ANIMATION_COMPLETE_KEY` (only if there is a finite, or zero, repeat count)\r\n *\r\n * If the animation is stopped directly, the `ANIMATION_STOP` event is dispatched instead of `ANIMATION_COMPLETE`.\r\n *\r\n * If the animation is restarted while it is already playing, `ANIMATION_RESTART` is emitted.\r\n *\r\n * @event Phaser.Animations.Events#ANIMATION_COMPLETE\r\n * @type {string}\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.Animations.Animation} animation - A reference to the Animation that completed.\r\n * @param {Phaser.Animations.AnimationFrame} frame - The current Animation Frame of the Animation.\r\n * @param {Phaser.GameObjects.Sprite} gameObject - A reference to the Game Object on which the animation updated.\r\n * @param {string} frameKey - The unique key of the Animation Frame within the Animation.\r\n */\r\nmodule.exports = 'animationcomplete';\r\n\n\n/***/ }),\n\n/***/ 89580:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Animation Complete Dynamic Key Event.\r\n *\r\n * This event is dispatched by a Sprite when an animation playing on it completes playback.\r\n * This happens when the animation gets to the end of its sequence, factoring in any delays\r\n * or repeats it may have to process.\r\n *\r\n * An animation that is set to loop, or repeat forever, will never fire this event, because\r\n * it never actually completes. If you need to handle this, listen for the `ANIMATION_STOP`\r\n * event instead, as this is emitted when the animation is stopped directly.\r\n *\r\n * The difference between this and the `ANIMATION_COMPLETE` event is that this one has a\r\n * dynamic event name that contains the name of the animation within it. For example,\r\n * if you had an animation called `explode` you could listen for the completion of that\r\n * specific animation by using: `sprite.on('animationcomplete-explode', listener)`. Or, if you\r\n * wish to use types: `sprite.on(Phaser.Animations.Events.ANIMATION_COMPLETE_KEY + 'explode', listener)`.\r\n *\r\n * The animation event flow is as follows:\r\n *\r\n * 1. `ANIMATION_START`\r\n * 2. `ANIMATION_UPDATE` (repeated for however many frames the animation has)\r\n * 3. `ANIMATION_REPEAT` (only if the animation is set to repeat, it then emits more update events after this)\r\n * 4. `ANIMATION_COMPLETE` (only if there is a finite, or zero, repeat count)\r\n * 5. `ANIMATION_COMPLETE_KEY` (only if there is a finite, or zero, repeat count)\r\n *\r\n * If the animation is stopped directly, the `ANIMATION_STOP` event is dispatched instead of `ANIMATION_COMPLETE`.\r\n *\r\n * If the animation is restarted while it is already playing, `ANIMATION_RESTART` is emitted.\r\n *\r\n * @event Phaser.Animations.Events#ANIMATION_COMPLETE_KEY\r\n * @type {string}\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.Animations.Animation} animation - A reference to the Animation that completed.\r\n * @param {Phaser.Animations.AnimationFrame} frame - The current Animation Frame of the Animation.\r\n * @param {Phaser.GameObjects.Sprite} gameObject - A reference to the Game Object on which the animation updated.\r\n * @param {string} frameKey - The unique key of the Animation Frame within the Animation.\r\n */\r\nmodule.exports = 'animationcomplete-';\r\n\n\n/***/ }),\n\n/***/ 52860:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Animation Repeat Event.\r\n *\r\n * This event is dispatched by a Sprite when an animation repeats playing on it.\r\n * This happens if the animation was created, or played, with a `repeat` value specified.\r\n *\r\n * An animation will repeat when it reaches the end of its sequence.\r\n *\r\n * Listen for it on the Sprite using `sprite.on('animationrepeat', listener)`\r\n *\r\n * The animation event flow is as follows:\r\n *\r\n * 1. `ANIMATION_START`\r\n * 2. `ANIMATION_UPDATE` (repeated for however many frames the animation has)\r\n * 3. `ANIMATION_REPEAT` (only if the animation is set to repeat, it then emits more update events after this)\r\n * 4. `ANIMATION_COMPLETE` (only if there is a finite, or zero, repeat count)\r\n * 5. `ANIMATION_COMPLETE_KEY` (only if there is a finite, or zero, repeat count)\r\n *\r\n * If the animation is stopped directly, the `ANIMATION_STOP` event is dispatched instead of `ANIMATION_COMPLETE`.\r\n *\r\n * If the animation is restarted while it is already playing, `ANIMATION_RESTART` is emitted.\r\n *\r\n * @event Phaser.Animations.Events#ANIMATION_REPEAT\r\n * @type {string}\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.Animations.Animation} animation - A reference to the Animation that has repeated.\r\n * @param {Phaser.Animations.AnimationFrame} frame - The current Animation Frame of the Animation.\r\n * @param {Phaser.GameObjects.Sprite} gameObject - A reference to the Game Object on which the animation repeated.\r\n * @param {string} frameKey - The unique key of the Animation Frame within the Animation.\r\n */\r\nmodule.exports = 'animationrepeat';\r\n\n\n/***/ }),\n\n/***/ 63850:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Animation Restart Event.\r\n *\r\n * This event is dispatched by a Sprite when an animation restarts playing on it.\r\n * This only happens when the `Sprite.anims.restart` method is called.\r\n *\r\n * Listen for it on the Sprite using `sprite.on('animationrestart', listener)`\r\n *\r\n * The animation event flow is as follows:\r\n *\r\n * 1. `ANIMATION_START`\r\n * 2. `ANIMATION_UPDATE` (repeated for however many frames the animation has)\r\n * 3. `ANIMATION_REPEAT` (only if the animation is set to repeat, it then emits more update events after this)\r\n * 4. `ANIMATION_COMPLETE` (only if there is a finite, or zero, repeat count)\r\n * 5. `ANIMATION_COMPLETE_KEY` (only if there is a finite, or zero, repeat count)\r\n *\r\n * If the animation is stopped directly, the `ANIMATION_STOP` event is dispatched instead of `ANIMATION_COMPLETE`.\r\n *\r\n * If the animation is restarted while it is already playing, `ANIMATION_RESTART` is emitted.\r\n *\r\n * @event Phaser.Animations.Events#ANIMATION_RESTART\r\n * @type {string}\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.Animations.Animation} animation - A reference to the Animation that has restarted.\r\n * @param {Phaser.Animations.AnimationFrame} frame - The current Animation Frame of the Animation.\r\n * @param {Phaser.GameObjects.Sprite} gameObject - A reference to the Game Object on which the animation restarted.\r\n * @param {string} frameKey - The unique key of the Animation Frame within the Animation.\r\n */\r\nmodule.exports = 'animationrestart';\r\n\n\n/***/ }),\n\n/***/ 99085:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Animation Start Event.\r\n *\r\n * This event is dispatched by a Sprite when an animation starts playing on it.\r\n * This happens when the animation is played, factoring in any delay that may have been specified.\r\n * This event happens after the delay has expired and prior to the first update event.\r\n *\r\n * Listen for it on the Sprite using `sprite.on('animationstart', listener)`\r\n *\r\n * The animation event flow is as follows:\r\n *\r\n * 1. `ANIMATION_START`\r\n * 2. `ANIMATION_UPDATE` (repeated for however many frames the animation has)\r\n * 3. `ANIMATION_REPEAT` (only if the animation is set to repeat, it then emits more update events after this)\r\n * 4. `ANIMATION_COMPLETE` (only if there is a finite, or zero, repeat count)\r\n * 5. `ANIMATION_COMPLETE_KEY` (only if there is a finite, or zero, repeat count)\r\n *\r\n * If the animation is stopped directly, the `ANIMATION_STOP` event is dispatched instead of `ANIMATION_COMPLETE`.\r\n *\r\n * If the animation is restarted while it is already playing, `ANIMATION_RESTART` is emitted.\r\n *\r\n * @event Phaser.Animations.Events#ANIMATION_START\r\n * @type {string}\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.Animations.Animation} animation - A reference to the Animation that has started.\r\n * @param {Phaser.Animations.AnimationFrame} frame - The current Animation Frame of the Animation.\r\n * @param {Phaser.GameObjects.Sprite} gameObject - A reference to the Game Object on which the animation started.\r\n * @param {string} frameKey - The unique key of the Animation Frame within the Animation.\r\n */\r\nmodule.exports = 'animationstart';\r\n\n\n/***/ }),\n\n/***/ 28087:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Animation Stop Event.\r\n *\r\n * This event is dispatched by a Sprite when an animation is stopped on it. An animation\r\n * will only be stopeed if a method such as `Sprite.stop` or `Sprite.anims.stopAfterDelay`\r\n * is called. It can also be emitted if a new animation is started before the current one completes.\r\n *\r\n * Listen for it on the Sprite using `sprite.on('animationstop', listener)`\r\n *\r\n * The animation event flow is as follows:\r\n *\r\n * 1. `ANIMATION_START`\r\n * 2. `ANIMATION_UPDATE` (repeated for however many frames the animation has)\r\n * 3. `ANIMATION_REPEAT` (only if the animation is set to repeat, it then emits more update events after this)\r\n * 4. `ANIMATION_COMPLETE` (only if there is a finite, or zero, repeat count)\r\n * 5. `ANIMATION_COMPLETE_KEY` (only if there is a finite, or zero, repeat count)\r\n *\r\n * If the animation is stopped directly, the `ANIMATION_STOP` event is dispatched instead of `ANIMATION_COMPLETE`.\r\n *\r\n * If the animation is restarted while it is already playing, `ANIMATION_RESTART` is emitted.\r\n *\r\n * @event Phaser.Animations.Events#ANIMATION_STOP\r\n * @type {string}\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.Animations.Animation} animation - A reference to the Animation that has stopped.\r\n * @param {Phaser.Animations.AnimationFrame} frame - The current Animation Frame of the Animation.\r\n * @param {Phaser.GameObjects.Sprite} gameObject - A reference to the Game Object on which the animation stopped.\r\n * @param {string} frameKey - The unique key of the Animation Frame within the Animation.\r\n */\r\nmodule.exports = 'animationstop';\r\n\n\n/***/ }),\n\n/***/ 1794:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Animation Update Event.\r\n *\r\n * This event is dispatched by a Sprite when an animation playing on it updates. This happens when the animation changes frame.\r\n * An animation will change frame based on the frame rate and other factors like `timeScale` and `delay`. It can also change\r\n * frame when stopped or restarted.\r\n *\r\n * Listen for it on the Sprite using `sprite.on('animationupdate', listener)`\r\n *\r\n * If an animation is playing faster than the game frame-rate can handle, it's entirely possible for it to emit several\r\n * update events in a single game frame, so please be aware of this in your code. The **final** event received that frame\r\n * is the one that is rendered to the game.\r\n *\r\n * The animation event flow is as follows:\r\n *\r\n * 1. `ANIMATION_START`\r\n * 2. `ANIMATION_UPDATE` (repeated for however many frames the animation has)\r\n * 3. `ANIMATION_REPEAT` (only if the animation is set to repeat, it then emits more update events after this)\r\n * 4. `ANIMATION_COMPLETE` (only if there is a finite, or zero, repeat count)\r\n * 5. `ANIMATION_COMPLETE_KEY` (only if there is a finite, or zero, repeat count)\r\n *\r\n * If the animation is stopped directly, the `ANIMATION_STOP` event is dispatched instead of `ANIMATION_COMPLETE`.\r\n *\r\n * If the animation is restarted while it is already playing, `ANIMATION_RESTART` is emitted.\r\n *\r\n * @event Phaser.Animations.Events#ANIMATION_UPDATE\r\n * @type {string}\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.Animations.Animation} animation - A reference to the Animation that has updated.\r\n * @param {Phaser.Animations.AnimationFrame} frame - The current Animation Frame of the Animation.\r\n * @param {Phaser.GameObjects.Sprite} gameObject - A reference to the Game Object on which the animation updated.\r\n * @param {string} frameKey - The unique key of the Animation Frame within the Animation.\r\n */\r\nmodule.exports = 'animationupdate';\r\n\n\n/***/ }),\n\n/***/ 52562:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Pause All Animations Event.\r\n *\r\n * This event is dispatched when the global Animation Manager is told to pause.\r\n *\r\n * When this happens all current animations will stop updating, although it doesn't necessarily mean\r\n * that the game has paused as well.\r\n *\r\n * @event Phaser.Animations.Events#PAUSE_ALL\r\n * @type {string}\r\n * @since 3.0.0\r\n */\r\nmodule.exports = 'pauseall';\r\n\n\n/***/ }),\n\n/***/ 57953:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Remove Animation Event.\r\n *\r\n * This event is dispatched when an animation is removed from the global Animation Manager.\r\n *\r\n * @event Phaser.Animations.Events#REMOVE_ANIMATION\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {string} key - The key of the Animation that was removed from the global Animation Manager.\r\n * @param {Phaser.Animations.Animation} animation - An instance of the removed Animation.\r\n */\r\nmodule.exports = 'remove';\r\n\n\n/***/ }),\n\n/***/ 68339:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Resume All Animations Event.\r\n *\r\n * This event is dispatched when the global Animation Manager resumes, having been previously paused.\r\n *\r\n * When this happens all current animations will continue updating again.\r\n *\r\n * @event Phaser.Animations.Events#RESUME_ALL\r\n * @type {string}\r\n * @since 3.0.0\r\n */\r\nmodule.exports = 'resumeall';\r\n\n\n/***/ }),\n\n/***/ 74943:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Animations.Events\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    ADD_ANIMATION: __webpack_require__(57090),\r\n    ANIMATION_COMPLETE: __webpack_require__(25312),\r\n    ANIMATION_COMPLETE_KEY: __webpack_require__(89580),\r\n    ANIMATION_REPEAT: __webpack_require__(52860),\r\n    ANIMATION_RESTART: __webpack_require__(63850),\r\n    ANIMATION_START: __webpack_require__(99085),\r\n    ANIMATION_STOP: __webpack_require__(28087),\r\n    ANIMATION_UPDATE: __webpack_require__(1794),\r\n    PAUSE_ALL: __webpack_require__(52562),\r\n    REMOVE_ANIMATION: __webpack_require__(57953),\r\n    RESUME_ALL: __webpack_require__(68339)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 60421:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Animations\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    Animation: __webpack_require__(42099),\r\n    AnimationFrame: __webpack_require__(41138),\r\n    AnimationManager: __webpack_require__(60848),\r\n    AnimationState: __webpack_require__(9674),\r\n    Events: __webpack_require__(74943)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 2161:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar CustomMap = __webpack_require__(90330);\r\nvar EventEmitter = __webpack_require__(50792);\r\nvar Events = __webpack_require__(24736);\r\n\r\n/**\r\n * @classdesc\r\n * The BaseCache is a base Cache class that can be used for storing references to any kind of data.\r\n *\r\n * Data can be added, retrieved and removed based on the given keys.\r\n *\r\n * Keys are string-based.\r\n *\r\n * @class BaseCache\r\n * @memberof Phaser.Cache\r\n * @constructor\r\n * @since 3.0.0\r\n */\r\nvar BaseCache = new Class({\r\n\r\n    initialize:\r\n\r\n    function BaseCache ()\r\n    {\r\n        /**\r\n         * The Map in which the cache objects are stored.\r\n         *\r\n         * You can query the Map directly or use the BaseCache methods.\r\n         *\r\n         * @name Phaser.Cache.BaseCache#entries\r\n         * @type {Phaser.Structs.Map.<String, *>}\r\n         * @since 3.0.0\r\n         */\r\n        this.entries = new CustomMap();\r\n\r\n        /**\r\n         * An instance of EventEmitter used by the cache to emit related events.\r\n         *\r\n         * @name Phaser.Cache.BaseCache#events\r\n         * @type {Phaser.Events.EventEmitter}\r\n         * @since 3.0.0\r\n         */\r\n        this.events = new EventEmitter();\r\n    },\r\n\r\n    /**\r\n     * Adds an item to this cache. The item is referenced by a unique string, which you are responsible\r\n     * for setting and keeping track of. The item can only be retrieved by using this string.\r\n     *\r\n     * @method Phaser.Cache.BaseCache#add\r\n     * @fires Phaser.Cache.Events#ADD\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The unique key by which the data added to the cache will be referenced.\r\n     * @param {*} data - The data to be stored in the cache.\r\n     *\r\n     * @return {this} This BaseCache object.\r\n     */\r\n    add: function (key, data)\r\n    {\r\n        this.entries.set(key, data);\r\n\r\n        this.events.emit(Events.ADD, this, key, data);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Checks if this cache contains an item matching the given key.\r\n     * This performs the same action as `BaseCache.exists`.\r\n     *\r\n     * @method Phaser.Cache.BaseCache#has\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The unique key of the item to be checked in this cache.\r\n     *\r\n     * @return {boolean} Returns `true` if the cache contains an item matching the given key, otherwise `false`.\r\n     */\r\n    has: function (key)\r\n    {\r\n        return this.entries.has(key);\r\n    },\r\n\r\n    /**\r\n     * Checks if this cache contains an item matching the given key.\r\n     * This performs the same action as `BaseCache.has` and is called directly by the Loader.\r\n     *\r\n     * @method Phaser.Cache.BaseCache#exists\r\n     * @since 3.7.0\r\n     *\r\n     * @param {string} key - The unique key of the item to be checked in this cache.\r\n     *\r\n     * @return {boolean} Returns `true` if the cache contains an item matching the given key, otherwise `false`.\r\n     */\r\n    exists: function (key)\r\n    {\r\n        return this.entries.has(key);\r\n    },\r\n\r\n    /**\r\n     * Gets an item from this cache based on the given key.\r\n     *\r\n     * @method Phaser.Cache.BaseCache#get\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The unique key of the item to be retrieved from this cache.\r\n     *\r\n     * @return {*} The item in the cache, or `null` if no item matching the given key was found.\r\n     */\r\n    get: function (key)\r\n    {\r\n        return this.entries.get(key);\r\n    },\r\n\r\n    /**\r\n     * Removes and item from this cache based on the given key.\r\n     *\r\n     * If an entry matching the key is found it is removed from the cache and a `remove` event emitted.\r\n     * No additional checks are done on the item removed. If other systems or parts of your game code\r\n     * are relying on this item, it is up to you to sever those relationships prior to removing the item.\r\n     *\r\n     * @method Phaser.Cache.BaseCache#remove\r\n     * @fires Phaser.Cache.Events#REMOVE\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The unique key of the item to remove from the cache.\r\n     *\r\n     * @return {this} This BaseCache object.\r\n     */\r\n    remove: function (key)\r\n    {\r\n        var entry = this.get(key);\r\n\r\n        if (entry)\r\n        {\r\n            this.entries.delete(key);\r\n\r\n            this.events.emit(Events.REMOVE, this, key, entry.data);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns all keys in use in this cache.\r\n     *\r\n     * @method Phaser.Cache.BaseCache#getKeys\r\n     * @since 3.17.0\r\n     *\r\n     * @return {string[]} Array containing all the keys.\r\n     */\r\n    getKeys: function ()\r\n    {\r\n        return this.entries.keys();\r\n    },\r\n\r\n    /**\r\n     * Destroys this cache and all items within it.\r\n     *\r\n     * @method Phaser.Cache.BaseCache#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.entries.clear();\r\n        this.events.removeAllListeners();\r\n\r\n        this.entries = null;\r\n        this.events = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = BaseCache;\r\n\n\n/***/ }),\n\n/***/ 24047:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BaseCache = __webpack_require__(2161);\r\nvar Class = __webpack_require__(83419);\r\nvar GameEvents = __webpack_require__(8443);\r\n\r\n/**\r\n * @classdesc\r\n * The Cache Manager is the global cache owned and maintained by the Game instance.\r\n *\r\n * Various systems, such as the file Loader, rely on this cache in order to store the files\r\n * it has loaded. The manager itself doesn't store any files, but instead owns multiple BaseCache\r\n * instances, one per type of file. You can also add your own custom caches.\r\n *\r\n * @class CacheManager\r\n * @memberof Phaser.Cache\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Game} game - A reference to the Phaser.Game instance that owns this CacheManager.\r\n */\r\nvar CacheManager = new Class({\r\n\r\n    initialize:\r\n\r\n    function CacheManager (game)\r\n    {\r\n        /**\r\n         * A reference to the Phaser.Game instance that owns this CacheManager.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#game\r\n         * @type {Phaser.Game}\r\n         * @protected\r\n         * @since 3.0.0\r\n         */\r\n        this.game = game;\r\n\r\n        /**\r\n         * A Cache storing all binary files, typically added via the Loader.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#binary\r\n         * @type {Phaser.Cache.BaseCache}\r\n         * @since 3.0.0\r\n         */\r\n        this.binary = new BaseCache();\r\n\r\n        /**\r\n         * A Cache storing all bitmap font data files, typically added via the Loader.\r\n         * Only the font data is stored in this cache, the textures are part of the Texture Manager.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#bitmapFont\r\n         * @type {Phaser.Cache.BaseCache}\r\n         * @since 3.0.0\r\n         */\r\n        this.bitmapFont = new BaseCache();\r\n\r\n        /**\r\n         * A Cache storing all JSON data files, typically added via the Loader.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#json\r\n         * @type {Phaser.Cache.BaseCache}\r\n         * @since 3.0.0\r\n         */\r\n        this.json = new BaseCache();\r\n\r\n        /**\r\n         * A Cache storing all physics data files, typically added via the Loader.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#physics\r\n         * @type {Phaser.Cache.BaseCache}\r\n         * @since 3.0.0\r\n         */\r\n        this.physics = new BaseCache();\r\n\r\n        /**\r\n         * A Cache storing all shader source files, typically added via the Loader.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#shader\r\n         * @type {Phaser.Cache.BaseCache}\r\n         * @since 3.0.0\r\n         */\r\n        this.shader = new BaseCache();\r\n\r\n        /**\r\n         * A Cache storing all non-streaming audio files, typically added via the Loader.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#audio\r\n         * @type {Phaser.Cache.BaseCache}\r\n         * @since 3.0.0\r\n         */\r\n        this.audio = new BaseCache();\r\n\r\n        /**\r\n         * A Cache storing all non-streaming video files, typically added via the Loader.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#video\r\n         * @type {Phaser.Cache.BaseCache}\r\n         * @since 3.20.0\r\n         */\r\n        this.video = new BaseCache();\r\n\r\n        /**\r\n         * A Cache storing all text files, typically added via the Loader.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#text\r\n         * @type {Phaser.Cache.BaseCache}\r\n         * @since 3.0.0\r\n         */\r\n        this.text = new BaseCache();\r\n\r\n        /**\r\n         * A Cache storing all html files, typically added via the Loader.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#html\r\n         * @type {Phaser.Cache.BaseCache}\r\n         * @since 3.12.0\r\n         */\r\n        this.html = new BaseCache();\r\n\r\n        /**\r\n         * A Cache storing all WaveFront OBJ files, typically added via the Loader.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#obj\r\n         * @type {Phaser.Cache.BaseCache}\r\n         * @since 3.0.0\r\n         */\r\n        this.obj = new BaseCache();\r\n\r\n        /**\r\n         * A Cache storing all tilemap data files, typically added via the Loader.\r\n         * Only the data is stored in this cache, the textures are part of the Texture Manager.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#tilemap\r\n         * @type {Phaser.Cache.BaseCache}\r\n         * @since 3.0.0\r\n         */\r\n        this.tilemap = new BaseCache();\r\n\r\n        /**\r\n         * A Cache storing all xml data files, typically added via the Loader.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#xml\r\n         * @type {Phaser.Cache.BaseCache}\r\n         * @since 3.0.0\r\n         */\r\n        this.xml = new BaseCache();\r\n\r\n        /**\r\n         * An object that contains your own custom BaseCache entries.\r\n         * Add to this via the `addCustom` method.\r\n         *\r\n         * @name Phaser.Cache.CacheManager#custom\r\n         * @type {Object.<Phaser.Cache.BaseCache>}\r\n         * @since 3.0.0\r\n         */\r\n        this.custom = {};\r\n\r\n        this.game.events.once(GameEvents.DESTROY, this.destroy, this);\r\n    },\r\n\r\n    /**\r\n     * Add your own custom Cache for storing your own files.\r\n     * The cache will be available under `Cache.custom.key`.\r\n     * The cache will only be created if the key is not already in use.\r\n     *\r\n     * @method Phaser.Cache.CacheManager#addCustom\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The unique key of your custom cache.\r\n     *\r\n     * @return {Phaser.Cache.BaseCache} A reference to the BaseCache that was created. If the key was already in use, a reference to the existing cache is returned instead.\r\n     */\r\n    addCustom: function (key)\r\n    {\r\n        if (!this.custom.hasOwnProperty(key))\r\n        {\r\n            this.custom[key] = new BaseCache();\r\n        }\r\n\r\n        return this.custom[key];\r\n    },\r\n\r\n    /**\r\n     * Removes all entries from all BaseCaches and destroys all custom caches.\r\n     *\r\n     * @method Phaser.Cache.CacheManager#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        var keys = [\r\n            'binary',\r\n            'bitmapFont',\r\n            'json',\r\n            'physics',\r\n            'shader',\r\n            'audio',\r\n            'video',\r\n            'text',\r\n            'html',\r\n            'obj',\r\n            'tilemap',\r\n            'xml'\r\n        ];\r\n\r\n        for (var i = 0; i < keys.length; i++)\r\n        {\r\n            this[keys[i]].destroy();\r\n            this[keys[i]] = null;\r\n        }\r\n\r\n        for (var key in this.custom)\r\n        {\r\n            this.custom[key].destroy();\r\n        }\r\n\r\n        this.custom = null;\r\n\r\n        this.game = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = CacheManager;\r\n\n\n/***/ }),\n\n/***/ 51464:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Cache Add Event.\r\n *\r\n * This event is dispatched by any Cache that extends the BaseCache each time a new object is added to it.\r\n *\r\n * @event Phaser.Cache.Events#ADD\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Cache.BaseCache} cache - The cache to which the object was added.\r\n * @param {string} key - The key of the object added to the cache.\r\n * @param {*} object - A reference to the object that was added to the cache.\r\n */\r\nmodule.exports = 'add';\r\n\n\n/***/ }),\n\n/***/ 59261:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Cache Remove Event.\r\n *\r\n * This event is dispatched by any Cache that extends the BaseCache each time an object is removed from it.\r\n *\r\n * @event Phaser.Cache.Events#REMOVE\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Cache.BaseCache} cache - The cache from which the object was removed.\r\n * @param {string} key - The key of the object removed from the cache.\r\n * @param {*} object - A reference to the object that was removed from the cache.\r\n */\r\nmodule.exports = 'remove';\r\n\n\n/***/ }),\n\n/***/ 24736:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Cache.Events\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    ADD: __webpack_require__(51464),\r\n    REMOVE: __webpack_require__(59261)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 83388:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Cache\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    BaseCache: __webpack_require__(2161),\r\n    CacheManager: __webpack_require__(24047),\r\n    Events: __webpack_require__(24736)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 71911:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar DegToRad = __webpack_require__(39506);\r\nvar EventEmitter = __webpack_require__(50792);\r\nvar Events = __webpack_require__(19715);\r\nvar Rectangle = __webpack_require__(87841);\r\nvar TransformMatrix = __webpack_require__(61340);\r\nvar ValueToColor = __webpack_require__(80333);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * A Base Camera class.\r\n *\r\n * The Camera is the way in which all games are rendered in Phaser. They provide a view into your game world,\r\n * and can be positioned, rotated, zoomed and scrolled accordingly.\r\n *\r\n * A Camera consists of two elements: The viewport and the scroll values.\r\n *\r\n * The viewport is the physical position and size of the Camera within your game. Cameras, by default, are\r\n * created the same size as your game, but their position and size can be set to anything. This means if you\r\n * wanted to create a camera that was 320x200 in size, positioned in the bottom-right corner of your game,\r\n * you'd adjust the viewport to do that (using methods like `setViewport` and `setSize`).\r\n *\r\n * If you wish to change where the Camera is looking in your game, then you scroll it. You can do this\r\n * via the properties `scrollX` and `scrollY` or the method `setScroll`. Scrolling has no impact on the\r\n * viewport, and changing the viewport has no impact on the scrolling.\r\n *\r\n * By default a Camera will render all Game Objects it can see. You can change this using the `ignore` method,\r\n * allowing you to filter Game Objects out on a per-Camera basis.\r\n *\r\n * The Base Camera is extended by the Camera class, which adds in special effects including Fade,\r\n * Flash and Camera Shake, as well as the ability to follow Game Objects.\r\n *\r\n * The Base Camera was introduced in Phaser 3.12. It was split off from the Camera class, to allow\r\n * you to isolate special effects as needed. Therefore the 'since' values for properties of this class relate\r\n * to when they were added to the Camera class.\r\n *\r\n * @class BaseCamera\r\n * @memberof Phaser.Cameras.Scene2D\r\n * @constructor\r\n * @since 3.12.0\r\n *\r\n * @extends Phaser.Events.EventEmitter\r\n * @extends Phaser.GameObjects.Components.Alpha\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {number} x - The x position of the Camera, relative to the top-left of the game canvas.\r\n * @param {number} y - The y position of the Camera, relative to the top-left of the game canvas.\r\n * @param {number} width - The width of the Camera, in pixels.\r\n * @param {number} height - The height of the Camera, in pixels.\r\n */\r\nvar BaseCamera = new Class({\r\n\r\n    Extends: EventEmitter,\r\n\r\n    Mixins: [\r\n        Components.AlphaSingle,\r\n        Components.Visible\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function BaseCamera (x, y, width, height)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (width === undefined) { width = 0; }\r\n        if (height === undefined) { height = 0; }\r\n\r\n        EventEmitter.call(this);\r\n\r\n        /**\r\n         * A reference to the Scene this camera belongs to.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#scene\r\n         * @type {Phaser.Scene}\r\n         * @since 3.0.0\r\n         */\r\n        this.scene;\r\n\r\n        /**\r\n         * A reference to the Game Scene Manager.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#sceneManager\r\n         * @type {Phaser.Scenes.SceneManager}\r\n         * @since 3.12.0\r\n         */\r\n        this.sceneManager;\r\n\r\n        /**\r\n         * A reference to the Game Scale Manager.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#scaleManager\r\n         * @type {Phaser.Scale.ScaleManager}\r\n         * @since 3.16.0\r\n         */\r\n        this.scaleManager;\r\n\r\n        /**\r\n         * A reference to the Scene's Camera Manager to which this Camera belongs.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#cameraManager\r\n         * @type {Phaser.Cameras.Scene2D.CameraManager}\r\n         * @since 3.17.0\r\n         */\r\n        this.cameraManager;\r\n\r\n        /**\r\n         * The Camera ID. Assigned by the Camera Manager and used to handle camera exclusion.\r\n         * This value is a bitmask.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#id\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.11.0\r\n         */\r\n        this.id = 0;\r\n\r\n        /**\r\n         * The name of the Camera. This is left empty for your own use.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#name\r\n         * @type {string}\r\n         * @default ''\r\n         * @since 3.0.0\r\n         */\r\n        this.name = '';\r\n\r\n        /**\r\n         * Should this camera round its pixel values to integers?\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#roundPixels\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.roundPixels = false;\r\n\r\n        /**\r\n         * Is this Camera visible or not?\r\n         *\r\n         * A visible camera will render and perform input tests.\r\n         * An invisible camera will not render anything and will skip input tests.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#visible\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.10.0\r\n         */\r\n\r\n        /**\r\n         * Is this Camera using a bounds to restrict scrolling movement?\r\n         *\r\n         * Set this property along with the bounds via `Camera.setBounds`.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#useBounds\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.useBounds = false;\r\n\r\n        /**\r\n         * The World View is a Rectangle that defines the area of the 'world' the Camera is currently looking at.\r\n         * This factors in the Camera viewport size, zoom and scroll position and is updated in the Camera preRender step.\r\n         * If you have enabled Camera bounds the worldview will be clamped to those bounds accordingly.\r\n         * You can use it for culling or intersection checks.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#worldView\r\n         * @type {Phaser.Geom.Rectangle}\r\n         * @readonly\r\n         * @since 3.11.0\r\n         */\r\n        this.worldView = new Rectangle();\r\n\r\n        /**\r\n         * Is this Camera dirty?\r\n         *\r\n         * A dirty Camera has had either its viewport size, bounds, scroll, rotation or zoom levels changed since the last frame.\r\n         *\r\n         * This flag is cleared during the `postRenderCamera` method of the renderer.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#dirty\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.11.0\r\n         */\r\n        this.dirty = true;\r\n\r\n        /**\r\n         * The x position of the Camera viewport, relative to the top-left of the game canvas.\r\n         * The viewport is the area into which the camera renders.\r\n         * To adjust the position the camera is looking at in the game world, see the `scrollX` value.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#_x\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._x = x;\r\n\r\n        /**\r\n         * The y position of the Camera, relative to the top-left of the game canvas.\r\n         * The viewport is the area into which the camera renders.\r\n         * To adjust the position the camera is looking at in the game world, see the `scrollY` value.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#_y\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._y = y;\r\n\r\n        /**\r\n         * The width of the Camera viewport, in pixels.\r\n         *\r\n         * The viewport is the area into which the Camera renders. Setting the viewport does\r\n         * not restrict where the Camera can scroll to.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#_width\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.11.0\r\n         */\r\n        this._width = width;\r\n\r\n        /**\r\n         * The height of the Camera viewport, in pixels.\r\n         *\r\n         * The viewport is the area into which the Camera renders. Setting the viewport does\r\n         * not restrict where the Camera can scroll to.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#_height\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.11.0\r\n         */\r\n        this._height = height;\r\n\r\n        /**\r\n         * The bounds the camera is restrained to during scrolling.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#_bounds\r\n         * @type {Phaser.Geom.Rectangle}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._bounds = new Rectangle();\r\n\r\n        /**\r\n         * The horizontal scroll position of this Camera.\r\n         *\r\n         * Change this value to cause the Camera to scroll around your Scene.\r\n         *\r\n         * Alternatively, setting the Camera to follow a Game Object, via the `startFollow` method,\r\n         * will automatically adjust the Camera scroll values accordingly.\r\n         *\r\n         * You can set the bounds within which the Camera can scroll via the `setBounds` method.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#_scrollX\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.11.0\r\n         */\r\n        this._scrollX = 0;\r\n\r\n        /**\r\n         * The vertical scroll position of this Camera.\r\n         *\r\n         * Change this value to cause the Camera to scroll around your Scene.\r\n         *\r\n         * Alternatively, setting the Camera to follow a Game Object, via the `startFollow` method,\r\n         * will automatically adjust the Camera scroll values accordingly.\r\n         *\r\n         * You can set the bounds within which the Camera can scroll via the `setBounds` method.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#_scrollY\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.11.0\r\n         */\r\n        this._scrollY = 0;\r\n\r\n        /**\r\n         * The Camera horizontal zoom value. Change this value to zoom in, or out of, a Scene.\r\n         *\r\n         * A value of 0.5 would zoom the Camera out, so you can now see twice as much\r\n         * of the Scene as before. A value of 2 would zoom the Camera in, so every pixel\r\n         * now takes up 2 pixels when rendered.\r\n         *\r\n         * Set to 1 to return to the default zoom level.\r\n         *\r\n         * Be careful to never set this value to zero.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#_zoomX\r\n         * @type {number}\r\n         * @private\r\n         * @default 1\r\n         * @since 3.50.0\r\n         */\r\n        this._zoomX = 1;\r\n\r\n        /**\r\n         * The Camera vertical zoom value. Change this value to zoom in, or out of, a Scene.\r\n         *\r\n         * A value of 0.5 would zoom the Camera out, so you can now see twice as much\r\n         * of the Scene as before. A value of 2 would zoom the Camera in, so every pixel\r\n         * now takes up 2 pixels when rendered.\r\n         *\r\n         * Set to 1 to return to the default zoom level.\r\n         *\r\n         * Be careful to never set this value to zero.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#_zoomY\r\n         * @type {number}\r\n         * @private\r\n         * @default 1\r\n         * @since 3.50.0\r\n         */\r\n        this._zoomY = 1;\r\n\r\n        /**\r\n         * The rotation of the Camera in radians.\r\n         *\r\n         * Camera rotation always takes place based on the Camera viewport. By default, rotation happens\r\n         * in the center of the viewport. You can adjust this with the `originX` and `originY` properties.\r\n         *\r\n         * Rotation influences the rendering of _all_ Game Objects visible by this Camera. However, it does not\r\n         * rotate the Camera viewport itself, which always remains an axis-aligned rectangle.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#_rotation\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.11.0\r\n         */\r\n        this._rotation = 0;\r\n\r\n        /**\r\n         * A local transform matrix used for internal calculations.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#matrix\r\n         * @type {Phaser.GameObjects.Components.TransformMatrix}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this.matrix = new TransformMatrix();\r\n\r\n        /**\r\n         * Does this Camera have a transparent background?\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#transparent\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         */\r\n        this.transparent = true;\r\n\r\n        /**\r\n         * The background color of this Camera. Only used if `transparent` is `false`.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#backgroundColor\r\n         * @type {Phaser.Display.Color}\r\n         * @since 3.0.0\r\n         */\r\n        this.backgroundColor = ValueToColor('rgba(0,0,0,0)');\r\n\r\n        /**\r\n         * The Camera alpha value. Setting this property impacts every single object that this Camera\r\n         * renders. You can either set the property directly, i.e. via a Tween, to fade a Camera in or out,\r\n         * or via the chainable `setAlpha` method instead.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#alpha\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.11.0\r\n         */\r\n\r\n        /**\r\n         * Should the camera cull Game Objects before checking them for input hit tests?\r\n         * In some special cases it may be beneficial to disable this.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#disableCull\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.disableCull = false;\r\n\r\n        /**\r\n         * A temporary array of culled objects.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#culledObjects\r\n         * @type {Phaser.GameObjects.GameObject[]}\r\n         * @default []\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this.culledObjects = [];\r\n\r\n        /**\r\n         * The mid-point of the Camera in 'world' coordinates.\r\n         *\r\n         * Use it to obtain exactly where in the world the center of the camera is currently looking.\r\n         *\r\n         * This value is updated in the preRender method, after the scroll values and follower\r\n         * have been processed.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#midPoint\r\n         * @type {Phaser.Math.Vector2}\r\n         * @readonly\r\n         * @since 3.11.0\r\n         */\r\n        this.midPoint = new Vector2(width / 2, height / 2);\r\n\r\n        /**\r\n         * The horizontal origin of rotation for this Camera.\r\n         *\r\n         * By default the camera rotates around the center of the viewport.\r\n         *\r\n         * Changing the origin allows you to adjust the point in the viewport from which rotation happens.\r\n         * A value of 0 would rotate from the top-left of the viewport. A value of 1 from the bottom right.\r\n         *\r\n         * See `setOrigin` to set both origins in a single, chainable call.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#originX\r\n         * @type {number}\r\n         * @default 0.5\r\n         * @since 3.11.0\r\n         */\r\n        this.originX = 0.5;\r\n\r\n        /**\r\n         * The vertical origin of rotation for this Camera.\r\n         *\r\n         * By default the camera rotates around the center of the viewport.\r\n         *\r\n         * Changing the origin allows you to adjust the point in the viewport from which rotation happens.\r\n         * A value of 0 would rotate from the top-left of the viewport. A value of 1 from the bottom right.\r\n         *\r\n         * See `setOrigin` to set both origins in a single, chainable call.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#originY\r\n         * @type {number}\r\n         * @default 0.5\r\n         * @since 3.11.0\r\n         */\r\n        this.originY = 0.5;\r\n\r\n        /**\r\n         * Does this Camera have a custom viewport?\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#_customViewport\r\n         * @type {boolean}\r\n         * @private\r\n         * @default false\r\n         * @since 3.12.0\r\n         */\r\n        this._customViewport = false;\r\n\r\n        /**\r\n         * The Mask this Camera is using during render.\r\n         * Set the mask using the `setMask` method. Remove the mask using the `clearMask` method.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#mask\r\n         * @type {?(Phaser.Display.Masks.BitmapMask|Phaser.Display.Masks.GeometryMask)}\r\n         * @since 3.17.0\r\n         */\r\n        this.mask = null;\r\n\r\n        /**\r\n         * The Camera that this Camera uses for translation during masking.\r\n         *\r\n         * If the mask is fixed in position this will be a reference to\r\n         * the CameraManager.default instance. Otherwise, it'll be a reference\r\n         * to itself.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#_maskCamera\r\n         * @type {?Phaser.Cameras.Scene2D.BaseCamera}\r\n         * @private\r\n         * @since 3.17.0\r\n         */\r\n        this._maskCamera = null;\r\n\r\n        /**\r\n         * This array is populated with all of the Game Objects that this Camera has rendered\r\n         * in the previous (or current, depending on when you inspect it) frame.\r\n         *\r\n         * It is cleared at the start of `Camera.preUpdate`, or if the Camera is destroyed.\r\n         *\r\n         * You should not modify this array as it is used internally by the input system,\r\n         * however you can read it as required. Note that Game Objects may appear in this\r\n         * list multiple times if they belong to multiple non-exclusive Containers.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#renderList\r\n         * @type {Phaser.GameObjects.GameObject[]}\r\n         * @since 3.52.0\r\n         */\r\n        this.renderList = [];\r\n\r\n        /**\r\n         * Is this Camera a Scene Camera? (which is the default), or a Camera\r\n         * belonging to a Texture?\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#isSceneCamera\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.60.0\r\n         */\r\n        this.isSceneCamera = true;\r\n\r\n        /**\r\n         * Can this Camera render rounded pixel values?\r\n         * \r\n         * This property is updated during the `preRender` method and should not be\r\n         * set directly. It is set based on the `roundPixels` property of the Camera\r\n         * combined with the zoom level. If the zoom is an integer then the WebGL\r\n         * Renderer can apply rounding during rendering.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.BaseCamera#renderRoundPixels\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @default true\r\n         * @since 3.86.0\r\n         */\r\n        this.renderRoundPixels = true;\r\n    },\r\n\r\n    /**\r\n     * Adds the given Game Object to this cameras render list.\r\n     *\r\n     * This is invoked during the rendering stage. Only objects that are actually rendered\r\n     * will appear in the render list.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#addToRenderList\r\n     * @since 3.52.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child - The Game Object to add to the render list.\r\n     */\r\n    addToRenderList: function (child)\r\n    {\r\n        this.renderList.push(child);\r\n    },\r\n\r\n    /**\r\n     * Set the Alpha level of this Camera. The alpha controls the opacity of the Camera as it renders.\r\n     * Alpha values are provided as a float between 0, fully transparent, and 1, fully opaque.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setAlpha\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} [value=1] - The Camera alpha value.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n\r\n    /**\r\n     * Sets the rotation origin of this Camera.\r\n     *\r\n     * The values are given in the range 0 to 1 and are only used when calculating Camera rotation.\r\n     *\r\n     * By default the camera rotates around the center of the viewport.\r\n     *\r\n     * Changing the origin allows you to adjust the point in the viewport from which rotation happens.\r\n     * A value of 0 would rotate from the top-left of the viewport. A value of 1 from the bottom right.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setOrigin\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} [x=0.5] - The horizontal origin value.\r\n     * @param {number} [y=x] - The vertical origin value. If not defined it will be set to the value of `x`.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setOrigin: function (x, y)\r\n    {\r\n        if (x === undefined) { x = 0.5; }\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.originX = x;\r\n        this.originY = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Calculates what the Camera.scrollX and scrollY values would need to be in order to move\r\n     * the Camera so it is centered on the given x and y coordinates, without actually moving\r\n     * the Camera there. The results are clamped based on the Camera bounds, if set.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#getScroll\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} x - The horizontal coordinate to center on.\r\n     * @param {number} y - The vertical coordinate to center on.\r\n     * @param {Phaser.Math.Vector2} [out] - A Vector2 to store the values in. If not given a new Vector2 is created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The scroll coordinates stored in the `x` and `y` properties.\r\n     */\r\n    getScroll: function (x, y, out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        var originX = this.width * 0.5;\r\n        var originY = this.height * 0.5;\r\n\r\n        out.x = x - originX;\r\n        out.y = y - originY;\r\n\r\n        if (this.useBounds)\r\n        {\r\n            out.x = this.clampX(out.x);\r\n            out.y = this.clampY(out.y);\r\n        }\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Moves the Camera horizontally so that it is centered on the given x coordinate, bounds allowing.\r\n     * Calling this does not change the scrollY value.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#centerOnX\r\n     * @since 3.16.0\r\n     *\r\n     * @param {number} x - The horizontal coordinate to center on.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    centerOnX: function (x)\r\n    {\r\n        var originX = this.width * 0.5;\r\n\r\n        this.midPoint.x = x;\r\n\r\n        this.scrollX = x - originX;\r\n\r\n        if (this.useBounds)\r\n        {\r\n            this.scrollX = this.clampX(this.scrollX);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Moves the Camera vertically so that it is centered on the given y coordinate, bounds allowing.\r\n     * Calling this does not change the scrollX value.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#centerOnY\r\n     * @since 3.16.0\r\n     *\r\n     * @param {number} y - The vertical coordinate to center on.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    centerOnY: function (y)\r\n    {\r\n        var originY = this.height * 0.5;\r\n\r\n        this.midPoint.y = y;\r\n\r\n        this.scrollY = y - originY;\r\n\r\n        if (this.useBounds)\r\n        {\r\n            this.scrollY = this.clampY(this.scrollY);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Moves the Camera so that it is centered on the given coordinates, bounds allowing.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#centerOn\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} x - The horizontal coordinate to center on.\r\n     * @param {number} y - The vertical coordinate to center on.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    centerOn: function (x, y)\r\n    {\r\n        this.centerOnX(x);\r\n        this.centerOnY(y);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Moves the Camera so that it is looking at the center of the Camera Bounds, if enabled.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#centerToBounds\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    centerToBounds: function ()\r\n    {\r\n        if (this.useBounds)\r\n        {\r\n            var bounds = this._bounds;\r\n            var originX = this.width * 0.5;\r\n            var originY = this.height * 0.5;\r\n\r\n            this.midPoint.set(bounds.centerX, bounds.centerY);\r\n\r\n            this.scrollX = bounds.centerX - originX;\r\n            this.scrollY = bounds.centerY - originY;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Moves the Camera so that it is re-centered based on its viewport size.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#centerToSize\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    centerToSize: function ()\r\n    {\r\n        this.scrollX = this.width * 0.5;\r\n        this.scrollY = this.height * 0.5;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Takes an array of Game Objects and returns a new array featuring only those objects\r\n     * visible by this camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#cull\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject[]} G - [renderableObjects,$return]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject[]} renderableObjects - An array of Game Objects to cull.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject[]} An array of Game Objects visible to this Camera.\r\n     */\r\n    cull: function (renderableObjects)\r\n    {\r\n        if (this.disableCull)\r\n        {\r\n            return renderableObjects;\r\n        }\r\n\r\n        var cameraMatrix = this.matrix.matrix;\r\n\r\n        var mva = cameraMatrix[0];\r\n        var mvb = cameraMatrix[1];\r\n        var mvc = cameraMatrix[2];\r\n        var mvd = cameraMatrix[3];\r\n\r\n        /* First Invert Matrix */\r\n        var determinant = (mva * mvd) - (mvb * mvc);\r\n\r\n        if (!determinant)\r\n        {\r\n            return renderableObjects;\r\n        }\r\n\r\n        var mve = cameraMatrix[4];\r\n        var mvf = cameraMatrix[5];\r\n\r\n        var scrollX = this.scrollX;\r\n        var scrollY = this.scrollY;\r\n        var cameraW = this.width;\r\n        var cameraH = this.height;\r\n        var cullTop = this.y;\r\n        var cullBottom = cullTop + cameraH;\r\n        var cullLeft = this.x;\r\n        var cullRight = cullLeft + cameraW;\r\n        var culledObjects = this.culledObjects;\r\n        var length = renderableObjects.length;\r\n\r\n        determinant = 1 / determinant;\r\n\r\n        culledObjects.length = 0;\r\n\r\n        for (var index = 0; index < length; ++index)\r\n        {\r\n            var object = renderableObjects[index];\r\n\r\n            if (!object.hasOwnProperty('width') || object.parentContainer)\r\n            {\r\n                culledObjects.push(object);\r\n                continue;\r\n            }\r\n\r\n            var objectW = object.width;\r\n            var objectH = object.height;\r\n            var objectX = (object.x - (scrollX * object.scrollFactorX)) - (objectW * object.originX);\r\n            var objectY = (object.y - (scrollY * object.scrollFactorY)) - (objectH * object.originY);\r\n            var tx = (objectX * mva + objectY * mvc + mve);\r\n            var ty = (objectX * mvb + objectY * mvd + mvf);\r\n            var tw = ((objectX + objectW) * mva + (objectY + objectH) * mvc + mve);\r\n            var th = ((objectX + objectW) * mvb + (objectY + objectH) * mvd + mvf);\r\n\r\n            if ((tw > cullLeft && tx < cullRight) && (th > cullTop && ty < cullBottom))\r\n            {\r\n                culledObjects.push(object);\r\n            }\r\n        }\r\n\r\n        return culledObjects;\r\n    },\r\n\r\n    /**\r\n     * Converts the given `x` and `y` coordinates into World space, based on this Cameras transform.\r\n     * You can optionally provide a Vector2, or similar object, to store the results in.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#getWorldPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [output,$return]\r\n     *\r\n     * @param {number} x - The x position to convert to world space.\r\n     * @param {number} y - The y position to convert to world space.\r\n     * @param {(object|Phaser.Math.Vector2)} [output] - An optional object to store the results in. If not provided a new Vector2 will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} An object holding the converted values in its `x` and `y` properties.\r\n     */\r\n    getWorldPoint: function (x, y, output)\r\n    {\r\n        if (output === undefined) { output = new Vector2(); }\r\n\r\n        var cameraMatrix = this.matrix.matrix;\r\n\r\n        var mva = cameraMatrix[0];\r\n        var mvb = cameraMatrix[1];\r\n        var mvc = cameraMatrix[2];\r\n        var mvd = cameraMatrix[3];\r\n        var mve = cameraMatrix[4];\r\n        var mvf = cameraMatrix[5];\r\n\r\n        //  Invert Matrix\r\n        var determinant = (mva * mvd) - (mvb * mvc);\r\n\r\n        if (!determinant)\r\n        {\r\n            output.x = x;\r\n            output.y = y;\r\n\r\n            return output;\r\n        }\r\n\r\n        determinant = 1 / determinant;\r\n\r\n        var ima = mvd * determinant;\r\n        var imb = -mvb * determinant;\r\n        var imc = -mvc * determinant;\r\n        var imd = mva * determinant;\r\n        var ime = (mvc * mvf - mvd * mve) * determinant;\r\n        var imf = (mvb * mve - mva * mvf) * determinant;\r\n\r\n        var c = Math.cos(this.rotation);\r\n        var s = Math.sin(this.rotation);\r\n\r\n        var zoomX = this.zoomX;\r\n        var zoomY = this.zoomY;\r\n\r\n        var scrollX = this.scrollX;\r\n        var scrollY = this.scrollY;\r\n\r\n        var sx = x + ((scrollX * c - scrollY * s) * zoomX);\r\n        var sy = y + ((scrollX * s + scrollY * c) * zoomY);\r\n\r\n        //  Apply transform to point\r\n        output.x = (sx * ima + sy * imc) + ime;\r\n        output.y = (sx * imb + sy * imd) + imf;\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Given a Game Object, or an array of Game Objects, it will update all of their camera filter settings\r\n     * so that they are ignored by this Camera. This means they will not be rendered by this Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#ignore\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(Phaser.GameObjects.GameObject|Phaser.GameObjects.GameObject[]|Phaser.GameObjects.Group|Phaser.GameObjects.Layer|Phaser.GameObjects.Layer[])} entries - The Game Object, or array of Game Objects, to be ignored by this Camera.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    ignore: function (entries)\r\n    {\r\n        var id = this.id;\r\n\r\n        if (!Array.isArray(entries))\r\n        {\r\n            entries = [ entries ];\r\n        }\r\n\r\n        for (var i = 0; i < entries.length; i++)\r\n        {\r\n            var entry = entries[i];\r\n\r\n            if (Array.isArray(entry))\r\n            {\r\n                this.ignore(entry);\r\n            }\r\n            else if (entry.isParent)\r\n            {\r\n                this.ignore(entry.getChildren());\r\n            }\r\n            else\r\n            {\r\n                entry.cameraFilter |= id;\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Takes an x value and checks it's within the range of the Camera bounds, adjusting if required.\r\n     * Do not call this method if you are not using camera bounds.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#clampX\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} x - The value to horizontally scroll clamp.\r\n     *\r\n     * @return {number} The adjusted value to use as scrollX.\r\n     */\r\n    clampX: function (x)\r\n    {\r\n        var bounds = this._bounds;\r\n\r\n        var dw = this.displayWidth;\r\n\r\n        var bx = bounds.x + ((dw - this.width) / 2);\r\n        var bw = Math.max(bx, bx + bounds.width - dw);\r\n\r\n        if (x < bx)\r\n        {\r\n            x = bx;\r\n        }\r\n        else if (x > bw)\r\n        {\r\n            x = bw;\r\n        }\r\n\r\n        return x;\r\n    },\r\n\r\n    /**\r\n     * Takes a y value and checks it's within the range of the Camera bounds, adjusting if required.\r\n     * Do not call this method if you are not using camera bounds.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#clampY\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} y - The value to vertically scroll clamp.\r\n     *\r\n     * @return {number} The adjusted value to use as scrollY.\r\n     */\r\n    clampY: function (y)\r\n    {\r\n        var bounds = this._bounds;\r\n\r\n        var dh = this.displayHeight;\r\n\r\n        var by = bounds.y + ((dh - this.height) / 2);\r\n        var bh = Math.max(by, by + bounds.height - dh);\r\n\r\n        if (y < by)\r\n        {\r\n            y = by;\r\n        }\r\n        else if (y > bh)\r\n        {\r\n            y = bh;\r\n        }\r\n\r\n        return y;\r\n    },\r\n\r\n    /*\r\n        var gap = this._zoomInversed;\r\n        return gap * Math.round((src.x - this.scrollX * src.scrollFactorX) / gap);\r\n    */\r\n\r\n    /**\r\n     * If this Camera has previously had movement bounds set on it, this will remove them.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#removeBounds\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    removeBounds: function ()\r\n    {\r\n        this.useBounds = false;\r\n\r\n        this.dirty = true;\r\n\r\n        this._bounds.setEmpty();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the rotation of this Camera. This causes everything it renders to appear rotated.\r\n     *\r\n     * Rotating a camera does not rotate the viewport itself, it is applied during rendering.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setAngle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [value=0] - The cameras angle of rotation, given in degrees.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setAngle: function (value)\r\n    {\r\n        if (value === undefined) { value = 0; }\r\n\r\n        this.rotation = DegToRad(value);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the background color for this Camera.\r\n     *\r\n     * By default a Camera has a transparent background but it can be given a solid color, with any level\r\n     * of transparency, via this method.\r\n     *\r\n     * The color value can be specified using CSS color notation, hex or numbers.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setBackgroundColor\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|number|Phaser.Types.Display.InputColorObject)} [color='rgba(0,0,0,0)'] - The color value. In CSS, hex or numeric color notation.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setBackgroundColor: function (color)\r\n    {\r\n        if (color === undefined) { color = 'rgba(0,0,0,0)'; }\r\n\r\n        this.backgroundColor = ValueToColor(color);\r\n\r\n        this.transparent = (this.backgroundColor.alpha === 0);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the bounds of the Camera. The bounds are an axis-aligned rectangle.\r\n     *\r\n     * The Camera bounds controls where the Camera can scroll to, stopping it from scrolling off the\r\n     * edges and into blank space. It does not limit the placement of Game Objects, or where\r\n     * the Camera viewport can be positioned.\r\n     *\r\n     * Temporarily disable the bounds by changing the boolean `Camera.useBounds`.\r\n     *\r\n     * Clear the bounds entirely by calling `Camera.removeBounds`.\r\n     *\r\n     * If you set bounds that are smaller than the viewport it will stop the Camera from being\r\n     * able to scroll. The bounds can be positioned where-ever you wish. By default they are from\r\n     * 0x0 to the canvas width x height. This means that the coordinate 0x0 is the top left of\r\n     * the Camera bounds. However, you can position them anywhere. So if you wanted a game world\r\n     * that was 2048x2048 in size, with 0x0 being the center of it, you can set the bounds x/y\r\n     * to be -1024, -1024, with a width and height of 2048. Depending on your game you may find\r\n     * it easier for 0x0 to be the top-left of the bounds, or you may wish 0x0 to be the middle.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setBounds\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The top-left x coordinate of the bounds.\r\n     * @param {number} y - The top-left y coordinate of the bounds.\r\n     * @param {number} width - The width of the bounds, in pixels.\r\n     * @param {number} height - The height of the bounds, in pixels.\r\n     * @param {boolean} [centerOn=false] - If `true` the Camera will automatically be centered on the new bounds.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setBounds: function (x, y, width, height, centerOn)\r\n    {\r\n        if (centerOn === undefined) { centerOn = false; }\r\n\r\n        this._bounds.setTo(x, y, width, height);\r\n\r\n        this.dirty = true;\r\n        this.useBounds = true;\r\n\r\n        if (centerOn)\r\n        {\r\n            this.centerToBounds();\r\n        }\r\n        else\r\n        {\r\n            this.scrollX = this.clampX(this.scrollX);\r\n            this.scrollY = this.clampY(this.scrollY);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns a rectangle containing the bounds of the Camera.\r\n     *\r\n     * If the Camera does not have any bounds the rectangle will be empty.\r\n     *\r\n     * The rectangle is a copy of the bounds, so is safe to modify.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#getBounds\r\n     * @since 3.16.0\r\n     *\r\n     * @param {Phaser.Geom.Rectangle} [out] - An optional Rectangle to store the bounds in. If not given, a new Rectangle will be created.\r\n     *\r\n     * @return {Phaser.Geom.Rectangle} A rectangle containing the bounds of this Camera.\r\n     */\r\n    getBounds: function (out)\r\n    {\r\n        if (out === undefined) { out = new Rectangle(); }\r\n\r\n        var source = this._bounds;\r\n\r\n        out.setTo(source.x, source.y, source.width, source.height);\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Sets the name of this Camera.\r\n     * This value is for your own use and isn't used internally.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setName\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} [value=''] - The name of the Camera.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setName: function (value)\r\n    {\r\n        if (value === undefined) { value = ''; }\r\n\r\n        this.name = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the position of the Camera viewport within the game.\r\n     *\r\n     * This does not change where the camera is 'looking'. See `setScroll` to control that.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setPosition\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The top-left x coordinate of the Camera viewport.\r\n     * @param {number} [y=x] - The top-left y coordinate of the Camera viewport.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setPosition: function (x, y)\r\n    {\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.x = x;\r\n        this.y = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the rotation of this Camera. This causes everything it renders to appear rotated.\r\n     *\r\n     * Rotating a camera does not rotate the viewport itself, it is applied during rendering.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setRotation\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [value=0] - The rotation of the Camera, in radians.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setRotation: function (value)\r\n    {\r\n        if (value === undefined) { value = 0; }\r\n\r\n        this.rotation = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Should the Camera round pixel values to whole integers when rendering Game Objects?\r\n     *\r\n     * In some types of game, especially with pixel art, this is required to prevent sub-pixel aliasing.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setRoundPixels\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} value - `true` to round Camera pixels, `false` to not.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setRoundPixels: function (value)\r\n    {\r\n        this.roundPixels = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the Scene the Camera is bound to.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setScene\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Scene} scene - The Scene the camera is bound to.\r\n     * @param {boolean} [isSceneCamera=true] - Is this Camera being used for a Scene (true) or a Texture? (false)\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setScene: function (scene, isSceneCamera)\r\n    {\r\n        if (isSceneCamera === undefined) { isSceneCamera = true; }\r\n\r\n        if (this.scene && this._customViewport)\r\n        {\r\n            this.sceneManager.customViewports--;\r\n        }\r\n\r\n        this.scene = scene;\r\n        this.isSceneCamera = isSceneCamera;\r\n\r\n        var sys = scene.sys;\r\n\r\n        this.sceneManager = sys.game.scene;\r\n        this.scaleManager = sys.scale;\r\n        this.cameraManager = sys.cameras;\r\n\r\n        this.updateSystem();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the position of where the Camera is looking within the game.\r\n     * You can also modify the properties `Camera.scrollX` and `Camera.scrollY` directly.\r\n     * Use this method, or the scroll properties, to move your camera around the game world.\r\n     *\r\n     * This does not change where the camera viewport is placed. See `setPosition` to control that.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setScroll\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate of the Camera in the game world.\r\n     * @param {number} [y=x] - The y coordinate of the Camera in the game world.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setScroll: function (x, y)\r\n    {\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.scrollX = x;\r\n        this.scrollY = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the size of the Camera viewport.\r\n     *\r\n     * By default a Camera is the same size as the game, but can be made smaller via this method,\r\n     * allowing you to create mini-cam style effects by creating and positioning a smaller Camera\r\n     * viewport within your game.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setSize\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} width - The width of the Camera viewport.\r\n     * @param {number} [height=width] - The height of the Camera viewport.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setSize: function (width, height)\r\n    {\r\n        if (height === undefined) { height = width; }\r\n\r\n        this.width = width;\r\n        this.height = height;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * This method sets the position and size of the Camera viewport in a single call.\r\n     *\r\n     * If you're trying to change where the Camera is looking at in your game, then see\r\n     * the method `Camera.setScroll` instead. This method is for changing the viewport\r\n     * itself, not what the camera can see.\r\n     *\r\n     * By default a Camera is the same size as the game, but can be made smaller via this method,\r\n     * allowing you to create mini-cam style effects by creating and positioning a smaller Camera\r\n     * viewport within your game.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setViewport\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The top-left x coordinate of the Camera viewport.\r\n     * @param {number} y - The top-left y coordinate of the Camera viewport.\r\n     * @param {number} width - The width of the Camera viewport.\r\n     * @param {number} [height=width] - The height of the Camera viewport.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setViewport: function (x, y, width, height)\r\n    {\r\n        this.x = x;\r\n        this.y = y;\r\n        this.width = width;\r\n        this.height = height;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the zoom value of the Camera.\r\n     *\r\n     * Changing to a smaller value, such as 0.5, will cause the camera to 'zoom out'.\r\n     * Changing to a larger value, such as 2, will cause the camera to 'zoom in'.\r\n     *\r\n     * A value of 1 means 'no zoom' and is the default.\r\n     *\r\n     * Changing the zoom does not impact the Camera viewport in any way, it is only applied during rendering.\r\n     *\r\n     * As of Phaser 3.50 you can now set the horizontal and vertical zoom values independently.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setZoom\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=1] - The horizontal zoom value of the Camera. The minimum it can be is 0.001.\r\n     * @param {number} [y=x] - The vertical zoom value of the Camera. The minimum it can be is 0.001.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setZoom: function (x, y)\r\n    {\r\n        if (x === undefined) { x = 1; }\r\n        if (y === undefined) { y = x; }\r\n\r\n        if (x === 0)\r\n        {\r\n            x = 0.001;\r\n        }\r\n\r\n        if (y === 0)\r\n        {\r\n            y = 0.001;\r\n        }\r\n\r\n        this.zoomX = x;\r\n        this.zoomY = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the mask to be applied to this Camera during rendering.\r\n     *\r\n     * The mask must have been previously created and can be either a GeometryMask or a BitmapMask.\r\n     *\r\n     * Bitmap Masks only work on WebGL. Geometry Masks work on both WebGL and Canvas.\r\n     *\r\n     * If a mask is already set on this Camera it will be immediately replaced.\r\n     *\r\n     * Masks have no impact on physics or input detection. They are purely a rendering component\r\n     * that allows you to limit what is visible during the render pass.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setMask\r\n     * @since 3.17.0\r\n     *\r\n     * @param {(Phaser.Display.Masks.BitmapMask|Phaser.Display.Masks.GeometryMask)} mask - The mask this Camera will use when rendering.\r\n     * @param {boolean} [fixedPosition=true] - Should the mask translate along with the Camera, or be fixed in place and not impacted by the Cameras transform?\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setMask: function (mask, fixedPosition)\r\n    {\r\n        if (fixedPosition === undefined) { fixedPosition = true; }\r\n\r\n        this.mask = mask;\r\n\r\n        this._maskCamera = (fixedPosition) ? this.cameraManager.default : this;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Clears the mask that this Camera was using.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#clearMask\r\n     * @since 3.17.0\r\n     *\r\n     * @param {boolean} [destroyMask=false] - Destroy the mask before clearing it?\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    clearMask: function (destroyMask)\r\n    {\r\n        if (destroyMask === undefined) { destroyMask = false; }\r\n\r\n        if (destroyMask && this.mask)\r\n        {\r\n            this.mask.destroy();\r\n        }\r\n\r\n        this.mask = null;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the visibility of this Camera.\r\n     *\r\n     * An invisible Camera will skip rendering and input tests of everything it can see.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setVisible\r\n     * @since 3.10.0\r\n     *\r\n     * @param {boolean} value - The visible state of the Camera.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n\r\n    /**\r\n     * Returns an Object suitable for JSON storage containing all of the Camera viewport and rendering properties.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.Cameras.Scene2D.JSONCamera} A well-formed object suitable for conversion to JSON.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        var output = {\r\n            name: this.name,\r\n            x: this.x,\r\n            y: this.y,\r\n            width: this.width,\r\n            height: this.height,\r\n            zoom: this.zoom,\r\n            rotation: this.rotation,\r\n            roundPixels: this.roundPixels,\r\n            scrollX: this.scrollX,\r\n            scrollY: this.scrollY,\r\n            backgroundColor: this.backgroundColor.rgba\r\n        };\r\n\r\n        if (this.useBounds)\r\n        {\r\n            output['bounds'] = {\r\n                x: this._bounds.x,\r\n                y: this._bounds.y,\r\n                width: this._bounds.width,\r\n                height: this._bounds.height\r\n            };\r\n        }\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Internal method called automatically by the Camera Manager.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#update\r\n     * @protected\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} time - The current timestamp as generated by the Request Animation Frame or SetTimeout.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    update: function ()\r\n    {\r\n        //  NOOP\r\n    },\r\n\r\n    /**\r\n     * Set if this Camera is being used as a Scene Camera, or a Texture\r\n     * Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#setIsSceneCamera\r\n     * @since 3.60.0\r\n     *\r\n     * @param {boolean} value - Is this being used as a Scene Camera, or a Texture camera?\r\n     */\r\n    setIsSceneCamera: function (value)\r\n    {\r\n        this.isSceneCamera = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Internal method called automatically when the viewport changes.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#updateSystem\r\n     * @private\r\n     * @since 3.12.0\r\n     */\r\n    updateSystem: function ()\r\n    {\r\n        if (!this.scaleManager || !this.isSceneCamera)\r\n        {\r\n            return;\r\n        }\r\n\r\n        var custom = (this._x !== 0 || this._y !== 0 || this.scaleManager.width !== this._width || this.scaleManager.height !== this._height);\r\n\r\n        var sceneManager = this.sceneManager;\r\n\r\n        if (custom && !this._customViewport)\r\n        {\r\n            //  We need a custom viewport for this Camera\r\n            sceneManager.customViewports++;\r\n        }\r\n        else if (!custom && this._customViewport)\r\n        {\r\n            //  We're turning off a custom viewport for this Camera\r\n            sceneManager.customViewports--;\r\n        }\r\n\r\n        this.dirty = true;\r\n        this._customViewport = custom;\r\n    },\r\n\r\n    /**\r\n     * Destroys this Camera instance and its internal properties and references.\r\n     * Once destroyed you cannot use this Camera again, even if re-added to a Camera Manager.\r\n     *\r\n     * This method is called automatically by `CameraManager.remove` if that methods `runDestroy` argument is `true`, which is the default.\r\n     *\r\n     * Unless you have a specific reason otherwise, always use `CameraManager.remove` and allow it to handle the camera destruction,\r\n     * rather than calling this method directly.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.BaseCamera#destroy\r\n     * @fires Phaser.Cameras.Scene2D.Events#DESTROY\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.emit(Events.DESTROY, this);\r\n\r\n        this.removeAllListeners();\r\n\r\n        this.matrix.destroy();\r\n\r\n        this.culledObjects = [];\r\n\r\n        if (this._customViewport)\r\n        {\r\n            //  We're turning off a custom viewport for this Camera\r\n            this.sceneManager.customViewports--;\r\n        }\r\n\r\n        this.renderList = [];\r\n\r\n        this._bounds = null;\r\n\r\n        this.scene = null;\r\n        this.scaleManager = null;\r\n        this.sceneManager = null;\r\n        this.cameraManager = null;\r\n    },\r\n\r\n    /**\r\n     * The x position of the Camera viewport, relative to the top-left of the game canvas.\r\n     * The viewport is the area into which the camera renders.\r\n     * To adjust the position the camera is looking at in the game world, see the `scrollX` value.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#x\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    x: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._x;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._x = value;\r\n            this.updateSystem();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The y position of the Camera viewport, relative to the top-left of the game canvas.\r\n     * The viewport is the area into which the camera renders.\r\n     * To adjust the position the camera is looking at in the game world, see the `scrollY` value.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#y\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    y: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._y;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._y = value;\r\n            this.updateSystem();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The width of the Camera viewport, in pixels.\r\n     *\r\n     * The viewport is the area into which the Camera renders. Setting the viewport does\r\n     * not restrict where the Camera can scroll to.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#width\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    width: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._width;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._width = value;\r\n            this.updateSystem();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The height of the Camera viewport, in pixels.\r\n     *\r\n     * The viewport is the area into which the Camera renders. Setting the viewport does\r\n     * not restrict where the Camera can scroll to.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#height\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    height: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._height;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._height = value;\r\n            this.updateSystem();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The horizontal scroll position of this Camera.\r\n     *\r\n     * Change this value to cause the Camera to scroll around your Scene.\r\n     *\r\n     * Alternatively, setting the Camera to follow a Game Object, via the `startFollow` method,\r\n     * will automatically adjust the Camera scroll values accordingly.\r\n     *\r\n     * You can set the bounds within which the Camera can scroll via the `setBounds` method.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#scrollX\r\n     * @type {number}\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n    scrollX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._scrollX;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            if (value !== this._scrollX)\r\n            {\r\n                this._scrollX = value;\r\n                this.dirty = true;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The vertical scroll position of this Camera.\r\n     *\r\n     * Change this value to cause the Camera to scroll around your Scene.\r\n     *\r\n     * Alternatively, setting the Camera to follow a Game Object, via the `startFollow` method,\r\n     * will automatically adjust the Camera scroll values accordingly.\r\n     *\r\n     * You can set the bounds within which the Camera can scroll via the `setBounds` method.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#scrollY\r\n     * @type {number}\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n    scrollY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._scrollY;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            if (value !== this._scrollY)\r\n            {\r\n                this._scrollY = value;\r\n                this.dirty = true;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The Camera zoom value. Change this value to zoom in, or out of, a Scene.\r\n     *\r\n     * A value of 0.5 would zoom the Camera out, so you can now see twice as much\r\n     * of the Scene as before. A value of 2 would zoom the Camera in, so every pixel\r\n     * now takes up 2 pixels when rendered.\r\n     *\r\n     * Set to 1 to return to the default zoom level.\r\n     *\r\n     * Be careful to never set this value to zero.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#zoom\r\n     * @type {number}\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    zoom: {\r\n\r\n        get: function ()\r\n        {\r\n            return (this._zoomX + this._zoomY) / 2;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._zoomX = value;\r\n            this._zoomY = value;\r\n\r\n            this.dirty = true;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The Camera horizontal zoom value. Change this value to zoom in, or out of, a Scene.\r\n     *\r\n     * A value of 0.5 would zoom the Camera out, so you can now see twice as much\r\n     * of the Scene as before. A value of 2 would zoom the Camera in, so every pixel\r\n     * now takes up 2 pixels when rendered.\r\n     *\r\n     * Set to 1 to return to the default zoom level.\r\n     *\r\n     * Be careful to never set this value to zero.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#zoomX\r\n     * @type {number}\r\n     * @default 1\r\n     * @since 3.50.0\r\n     */\r\n    zoomX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._zoomX;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._zoomX = value;\r\n            this.dirty = true;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The Camera vertical zoom value. Change this value to zoom in, or out of, a Scene.\r\n     *\r\n     * A value of 0.5 would zoom the Camera out, so you can now see twice as much\r\n     * of the Scene as before. A value of 2 would zoom the Camera in, so every pixel\r\n     * now takes up 2 pixels when rendered.\r\n     *\r\n     * Set to 1 to return to the default zoom level.\r\n     *\r\n     * Be careful to never set this value to zero.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#zoomY\r\n     * @type {number}\r\n     * @default 1\r\n     * @since 3.50.0\r\n     */\r\n    zoomY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._zoomY;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._zoomY = value;\r\n            this.dirty = true;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The rotation of the Camera in radians.\r\n     *\r\n     * Camera rotation always takes place based on the Camera viewport. By default, rotation happens\r\n     * in the center of the viewport. You can adjust this with the `originX` and `originY` properties.\r\n     *\r\n     * Rotation influences the rendering of _all_ Game Objects visible by this Camera. However, it does not\r\n     * rotate the Camera viewport itself, which always remains an axis-aligned rectangle.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#rotation\r\n     * @type {number}\r\n     * @private\r\n     * @default 0\r\n     * @since 3.11.0\r\n     */\r\n    rotation: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._rotation;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._rotation = value;\r\n            this.dirty = true;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The horizontal position of the center of the Camera's viewport, relative to the left of the game canvas.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#centerX\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.10.0\r\n     */\r\n    centerX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.x + (0.5 * this.width);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The vertical position of the center of the Camera's viewport, relative to the top of the game canvas.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#centerY\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.10.0\r\n     */\r\n    centerY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.y + (0.5 * this.height);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The displayed width of the camera viewport, factoring in the camera zoom level.\r\n     *\r\n     * If a camera has a viewport width of 800 and a zoom of 0.5 then its display width\r\n     * would be 1600, as it's displaying twice as many pixels as zoom level 1.\r\n     *\r\n     * Equally, a camera with a width of 800 and zoom of 2 would have a display width\r\n     * of 400 pixels.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#displayWidth\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.11.0\r\n     */\r\n    displayWidth: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.width / this.zoomX;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The displayed height of the camera viewport, factoring in the camera zoom level.\r\n     *\r\n     * If a camera has a viewport height of 600 and a zoom of 0.5 then its display height\r\n     * would be 1200, as it's displaying twice as many pixels as zoom level 1.\r\n     *\r\n     * Equally, a camera with a height of 600 and zoom of 2 would have a display height\r\n     * of 300 pixels.\r\n     *\r\n     * @name Phaser.Cameras.Scene2D.BaseCamera#displayHeight\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.11.0\r\n     */\r\n    displayHeight: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.height / this.zoomY;\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = BaseCamera;\r\n\n\n/***/ }),\n\n/***/ 38058:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BaseCamera = __webpack_require__(71911);\r\nvar CenterOn = __webpack_require__(67502);\r\nvar Clamp = __webpack_require__(45319);\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar Effects = __webpack_require__(20052);\r\nvar Events = __webpack_require__(19715);\r\nvar Linear = __webpack_require__(28915);\r\nvar Rectangle = __webpack_require__(87841);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * A Camera.\r\n *\r\n * The Camera is the way in which all games are rendered in Phaser. They provide a view into your game world,\r\n * and can be positioned, rotated, zoomed and scrolled accordingly.\r\n *\r\n * A Camera consists of two elements: The viewport and the scroll values.\r\n *\r\n * The viewport is the physical position and size of the Camera within your game. Cameras, by default, are\r\n * created the same size as your game, but their position and size can be set to anything. This means if you\r\n * wanted to create a camera that was 320x200 in size, positioned in the bottom-right corner of your game,\r\n * you'd adjust the viewport to do that (using methods like `setViewport` and `setSize`).\r\n *\r\n * If you wish to change where the Camera is looking in your game, then you scroll it. You can do this\r\n * via the properties `scrollX` and `scrollY` or the method `setScroll`. Scrolling has no impact on the\r\n * viewport, and changing the viewport has no impact on the scrolling.\r\n *\r\n * By default a Camera will render all Game Objects it can see. You can change this using the `ignore` method,\r\n * allowing you to filter Game Objects out on a per-Camera basis.\r\n *\r\n * A Camera also has built-in special effects including Fade, Flash and Camera Shake.\r\n *\r\n * @class Camera\r\n * @memberof Phaser.Cameras.Scene2D\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @extends Phaser.Cameras.Scene2D.BaseCamera\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n *\r\n * @param {number} x - The x position of the Camera, relative to the top-left of the game canvas.\r\n * @param {number} y - The y position of the Camera, relative to the top-left of the game canvas.\r\n * @param {number} width - The width of the Camera, in pixels.\r\n * @param {number} height - The height of the Camera, in pixels.\r\n */\r\nvar Camera = new Class({\r\n\r\n    Extends: BaseCamera,\r\n\r\n    Mixins: [\r\n        Components.PostPipeline\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Camera (x, y, width, height)\r\n    {\r\n        BaseCamera.call(this, x, y, width, height);\r\n\r\n        this.initPostPipeline();\r\n\r\n        /**\r\n         * Does this Camera allow the Game Objects it renders to receive input events?\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Camera#inputEnabled\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         */\r\n        this.inputEnabled = true;\r\n\r\n        /**\r\n         * The Camera Fade effect handler.\r\n         * To fade this camera see the `Camera.fade` methods.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Camera#fadeEffect\r\n         * @type {Phaser.Cameras.Scene2D.Effects.Fade}\r\n         * @since 3.5.0\r\n         */\r\n        this.fadeEffect = new Effects.Fade(this);\r\n\r\n        /**\r\n         * The Camera Flash effect handler.\r\n         * To flash this camera see the `Camera.flash` method.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Camera#flashEffect\r\n         * @type {Phaser.Cameras.Scene2D.Effects.Flash}\r\n         * @since 3.5.0\r\n         */\r\n        this.flashEffect = new Effects.Flash(this);\r\n\r\n        /**\r\n         * The Camera Shake effect handler.\r\n         * To shake this camera see the `Camera.shake` method.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Camera#shakeEffect\r\n         * @type {Phaser.Cameras.Scene2D.Effects.Shake}\r\n         * @since 3.5.0\r\n         */\r\n        this.shakeEffect = new Effects.Shake(this);\r\n\r\n        /**\r\n         * The Camera Pan effect handler.\r\n         * To pan this camera see the `Camera.pan` method.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Camera#panEffect\r\n         * @type {Phaser.Cameras.Scene2D.Effects.Pan}\r\n         * @since 3.11.0\r\n         */\r\n        this.panEffect = new Effects.Pan(this);\r\n\r\n        /**\r\n         * The Camera Rotate To effect handler.\r\n         * To rotate this camera see the `Camera.rotateTo` method.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Camera#rotateToEffect\r\n         * @type {Phaser.Cameras.Scene2D.Effects.RotateTo}\r\n         * @since 3.23.0\r\n         */\r\n        this.rotateToEffect = new Effects.RotateTo(this);\r\n\r\n        /**\r\n         * The Camera Zoom effect handler.\r\n         * To zoom this camera see the `Camera.zoom` method.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Camera#zoomEffect\r\n         * @type {Phaser.Cameras.Scene2D.Effects.Zoom}\r\n         * @since 3.11.0\r\n         */\r\n        this.zoomEffect = new Effects.Zoom(this);\r\n\r\n        /**\r\n         * The linear interpolation value to use when following a target.\r\n         *\r\n         * Can also be set via `setLerp` or as part of the `startFollow` call.\r\n         *\r\n         * The default values of 1 means the camera will instantly snap to the target coordinates.\r\n         * A lower value, such as 0.1 means the camera will more slowly track the target, giving\r\n         * a smooth transition. You can set the horizontal and vertical values independently, and also\r\n         * adjust this value in real-time during your game.\r\n         *\r\n         * Be sure to keep the value between 0 and 1. A value of zero will disable tracking on that axis.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Camera#lerp\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.9.0\r\n         */\r\n        this.lerp = new Vector2(1, 1);\r\n\r\n        /**\r\n         * The values stored in this property are subtracted from the Camera targets position, allowing you to\r\n         * offset the camera from the actual target x/y coordinates by this amount.\r\n         * Can also be set via `setFollowOffset` or as part of the `startFollow` call.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Camera#followOffset\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.9.0\r\n         */\r\n        this.followOffset = new Vector2();\r\n\r\n        /**\r\n         * The Camera dead zone.\r\n         *\r\n         * The deadzone is only used when the camera is following a target.\r\n         *\r\n         * It defines a rectangular region within which if the target is present, the camera will not scroll.\r\n         * If the target moves outside of this area, the camera will begin scrolling in order to follow it.\r\n         *\r\n         * The `lerp` values that you can set for a follower target also apply when using a deadzone.\r\n         *\r\n         * You can directly set this property to be an instance of a Rectangle. Or, you can use the\r\n         * `setDeadzone` method for a chainable approach.\r\n         *\r\n         * The rectangle you provide can have its dimensions adjusted dynamically, however, please\r\n         * note that its position is updated every frame, as it is constantly re-centered on the cameras mid point.\r\n         *\r\n         * Calling `setDeadzone` with no arguments will reset an active deadzone, as will setting this property\r\n         * to `null`.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Camera#deadzone\r\n         * @type {?Phaser.Geom.Rectangle}\r\n         * @since 3.11.0\r\n         */\r\n        this.deadzone = null;\r\n\r\n        /**\r\n         * Internal follow target reference.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Camera#_follow\r\n         * @type {?any}\r\n         * @private\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this._follow = null;\r\n    },\r\n\r\n    /**\r\n     * Sets the Camera dead zone.\r\n     *\r\n     * The deadzone is only used when the camera is following a target.\r\n     *\r\n     * It defines a rectangular region within which if the target is present, the camera will not scroll.\r\n     * If the target moves outside of this area, the camera will begin scrolling in order to follow it.\r\n     *\r\n     * The deadzone rectangle is re-positioned every frame so that it is centered on the mid-point\r\n     * of the camera. This allows you to use the object for additional game related checks, such as\r\n     * testing if an object is within it or not via a Rectangle.contains call.\r\n     *\r\n     * The `lerp` values that you can set for a follower target also apply when using a deadzone.\r\n     *\r\n     * Calling this method with no arguments will reset an active deadzone.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#setDeadzone\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} [width] - The width of the deadzone rectangle in pixels. If not specified the deadzone is removed.\r\n     * @param {number} [height] - The height of the deadzone rectangle in pixels.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setDeadzone: function (width, height)\r\n    {\r\n        if (width === undefined)\r\n        {\r\n            this.deadzone = null;\r\n        }\r\n        else\r\n        {\r\n            if (this.deadzone)\r\n            {\r\n                this.deadzone.width = width;\r\n                this.deadzone.height = height;\r\n            }\r\n            else\r\n            {\r\n                this.deadzone = new Rectangle(0, 0, width, height);\r\n            }\r\n\r\n            if (this._follow)\r\n            {\r\n                var originX = this.width / 2;\r\n                var originY = this.height / 2;\r\n\r\n                var fx = this._follow.x - this.followOffset.x;\r\n                var fy = this._follow.y - this.followOffset.y;\r\n\r\n                this.midPoint.set(fx, fy);\r\n\r\n                this.scrollX = fx - originX;\r\n                this.scrollY = fy - originY;\r\n            }\r\n\r\n            CenterOn(this.deadzone, this.midPoint.x, this.midPoint.y);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Fades the Camera in from the given color over the duration specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#fadeIn\r\n     * @fires Phaser.Cameras.Scene2D.Events#FADE_IN_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#FADE_IN_COMPLETE\r\n     * @since 3.3.0\r\n     *\r\n     * @param {number} [duration=1000] - The duration of the effect in milliseconds.\r\n     * @param {number} [red=0] - The amount to fade the red channel towards. A value between 0 and 255.\r\n     * @param {number} [green=0] - The amount to fade the green channel towards. A value between 0 and 255.\r\n     * @param {number} [blue=0] - The amount to fade the blue channel towards. A value between 0 and 255.\r\n     * @param {function} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent two arguments: A reference to the camera and a progress amount between 0 and 1 indicating how complete the effect is.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    fadeIn: function (duration, red, green, blue, callback, context)\r\n    {\r\n        return this.fadeEffect.start(false, duration, red, green, blue, true, callback, context);\r\n    },\r\n\r\n    /**\r\n     * Fades the Camera out to the given color over the duration specified.\r\n     * This is an alias for Camera.fade that forces the fade to start, regardless of existing fades.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#fadeOut\r\n     * @fires Phaser.Cameras.Scene2D.Events#FADE_OUT_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#FADE_OUT_COMPLETE\r\n     * @since 3.3.0\r\n     *\r\n     * @param {number} [duration=1000] - The duration of the effect in milliseconds.\r\n     * @param {number} [red=0] - The amount to fade the red channel towards. A value between 0 and 255.\r\n     * @param {number} [green=0] - The amount to fade the green channel towards. A value between 0 and 255.\r\n     * @param {number} [blue=0] - The amount to fade the blue channel towards. A value between 0 and 255.\r\n     * @param {function} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent two arguments: A reference to the camera and a progress amount between 0 and 1 indicating how complete the effect is.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    fadeOut: function (duration, red, green, blue, callback, context)\r\n    {\r\n        return this.fadeEffect.start(true, duration, red, green, blue, true, callback, context);\r\n    },\r\n\r\n    /**\r\n     * Fades the Camera from the given color to transparent over the duration specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#fadeFrom\r\n     * @fires Phaser.Cameras.Scene2D.Events#FADE_IN_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#FADE_IN_COMPLETE\r\n     * @since 3.5.0\r\n     *\r\n     * @param {number} [duration=1000] - The duration of the effect in milliseconds.\r\n     * @param {number} [red=0] - The amount to fade the red channel towards. A value between 0 and 255.\r\n     * @param {number} [green=0] - The amount to fade the green channel towards. A value between 0 and 255.\r\n     * @param {number} [blue=0] - The amount to fade the blue channel towards. A value between 0 and 255.\r\n     * @param {boolean} [force=false] - Force the effect to start immediately, even if already running.\r\n     * @param {function} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent two arguments: A reference to the camera and a progress amount between 0 and 1 indicating how complete the effect is.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    fadeFrom: function (duration, red, green, blue, force, callback, context)\r\n    {\r\n        return this.fadeEffect.start(false, duration, red, green, blue, force, callback, context);\r\n    },\r\n\r\n    /**\r\n     * Fades the Camera from transparent to the given color over the duration specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#fade\r\n     * @fires Phaser.Cameras.Scene2D.Events#FADE_OUT_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#FADE_OUT_COMPLETE\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [duration=1000] - The duration of the effect in milliseconds.\r\n     * @param {number} [red=0] - The amount to fade the red channel towards. A value between 0 and 255.\r\n     * @param {number} [green=0] - The amount to fade the green channel towards. A value between 0 and 255.\r\n     * @param {number} [blue=0] - The amount to fade the blue channel towards. A value between 0 and 255.\r\n     * @param {boolean} [force=false] - Force the effect to start immediately, even if already running.\r\n     * @param {function} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent two arguments: A reference to the camera and a progress amount between 0 and 1 indicating how complete the effect is.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    fade: function (duration, red, green, blue, force, callback, context)\r\n    {\r\n        return this.fadeEffect.start(true, duration, red, green, blue, force, callback, context);\r\n    },\r\n\r\n    /**\r\n     * Flashes the Camera by setting it to the given color immediately and then fading it away again quickly over the duration specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#flash\r\n     * @fires Phaser.Cameras.Scene2D.Events#FLASH_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#FLASH_COMPLETE\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [duration=250] - The duration of the effect in milliseconds.\r\n     * @param {number} [red=255] - The amount to fade the red channel towards. A value between 0 and 255.\r\n     * @param {number} [green=255] - The amount to fade the green channel towards. A value between 0 and 255.\r\n     * @param {number} [blue=255] - The amount to fade the blue channel towards. A value between 0 and 255.\r\n     * @param {boolean} [force=false] - Force the effect to start immediately, even if already running.\r\n     * @param {function} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent two arguments: A reference to the camera and a progress amount between 0 and 1 indicating how complete the effect is.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    flash: function (duration, red, green, blue, force, callback, context)\r\n    {\r\n        return this.flashEffect.start(duration, red, green, blue, force, callback, context);\r\n    },\r\n\r\n    /**\r\n     * Shakes the Camera by the given intensity over the duration specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#shake\r\n     * @fires Phaser.Cameras.Scene2D.Events#SHAKE_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#SHAKE_COMPLETE\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [duration=100] - The duration of the effect in milliseconds.\r\n     * @param {(number|Phaser.Math.Vector2)} [intensity=0.05] - The intensity of the shake.\r\n     * @param {boolean} [force=false] - Force the shake effect to start immediately, even if already running.\r\n     * @param {function} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent two arguments: A reference to the camera and a progress amount between 0 and 1 indicating how complete the effect is.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    shake: function (duration, intensity, force, callback, context)\r\n    {\r\n        return this.shakeEffect.start(duration, intensity, force, callback, context);\r\n    },\r\n\r\n    /**\r\n     * This effect will scroll the Camera so that the center of its viewport finishes at the given destination,\r\n     * over the duration and with the ease specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#pan\r\n     * @fires Phaser.Cameras.Scene2D.Events#PAN_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#PAN_COMPLETE\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} x - The destination x coordinate to scroll the center of the Camera viewport to.\r\n     * @param {number} y - The destination y coordinate to scroll the center of the Camera viewport to.\r\n     * @param {number} [duration=1000] - The duration of the effect in milliseconds.\r\n     * @param {(string|function)} [ease='Linear'] - The ease to use for the pan. Can be any of the Phaser Easing constants or a custom function.\r\n     * @param {boolean} [force=false] - Force the pan effect to start immediately, even if already running.\r\n     * @param {Phaser.Types.Cameras.Scene2D.CameraPanCallback} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent four arguments: A reference to the camera, a progress amount between 0 and 1 indicating how complete the effect is,\r\n     * the current camera scroll x coordinate and the current camera scroll y coordinate.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    pan: function (x, y, duration, ease, force, callback, context)\r\n    {\r\n        return this.panEffect.start(x, y, duration, ease, force, callback, context);\r\n    },\r\n\r\n    /**\r\n     * This effect will rotate the Camera so that the viewport finishes at the given angle in radians,\r\n     * over the duration and with the ease specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#rotateTo\r\n     * @since 3.23.0\r\n     *\r\n     * @param {number} radians - The destination angle in radians to rotate the Camera viewport to. If the angle is positive then the rotation is clockwise else anticlockwise\r\n     * @param {boolean} [shortestPath=false] - If shortest path is set to true the camera will rotate in the quickest direction clockwise or anti-clockwise.\r\n     * @param {number} [duration=1000] - The duration of the effect in milliseconds.\r\n     * @param {(string|function)} [ease='Linear'] - The ease to use for the rotation. Can be any of the Phaser Easing constants or a custom function.\r\n     * @param {boolean} [force=false] - Force the rotation effect to start immediately, even if already running.\r\n     * @param {CameraRotateCallback} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent four arguments: A reference to the camera, a progress amount between 0 and 1 indicating how complete the effect is,\r\n     * the current camera rotation angle in radians.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {Phaser.Cameras.Scene2D.Camera} This Camera instance.\r\n     */\r\n    rotateTo: function (radians, shortestPath, duration, ease, force, callback, context)\r\n    {\r\n        return this.rotateToEffect.start(radians, shortestPath, duration, ease, force, callback, context);\r\n    },\r\n\r\n    /**\r\n     * This effect will zoom the Camera to the given scale, over the duration and with the ease specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#zoomTo\r\n     * @fires Phaser.Cameras.Scene2D.Events#ZOOM_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#ZOOM_COMPLETE\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} zoom - The target Camera zoom value.\r\n     * @param {number} [duration=1000] - The duration of the effect in milliseconds.\r\n     * @param {(string|function)} [ease='Linear'] - The ease to use for the pan. Can be any of the Phaser Easing constants or a custom function.\r\n     * @param {boolean} [force=false] - Force the pan effect to start immediately, even if already running.\r\n     * @param {Phaser.Types.Cameras.Scene2D.CameraPanCallback} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent four arguments: A reference to the camera, a progress amount between 0 and 1 indicating how complete the effect is,\r\n     * the current camera scroll x coordinate and the current camera scroll y coordinate.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    zoomTo: function (zoom, duration, ease, force, callback, context)\r\n    {\r\n        return this.zoomEffect.start(zoom, duration, ease, force, callback, context);\r\n    },\r\n\r\n    /**\r\n     * Internal preRender step.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#preRender\r\n     * @protected\r\n     * @since 3.0.0\r\n     */\r\n    preRender: function ()\r\n    {\r\n        this.renderList.length = 0;\r\n\r\n        var width = this.width;\r\n        var height = this.height;\r\n\r\n        var halfWidth = width * 0.5;\r\n        var halfHeight = height * 0.5;\r\n\r\n        var zoomX = this.zoomX;\r\n        var zoomY = this.zoomY;\r\n        var matrix = this.matrix;\r\n\r\n        this.renderRoundPixels = (this.roundPixels && Number.isInteger(zoomX) && Number.isInteger(zoomY));\r\n\r\n        var originX = width * this.originX;\r\n        var originY = height * this.originY;\r\n\r\n        var follow = this._follow;\r\n        var deadzone = this.deadzone;\r\n\r\n        var sx = this.scrollX;\r\n        var sy = this.scrollY;\r\n\r\n        if (deadzone)\r\n        {\r\n            CenterOn(deadzone, this.midPoint.x, this.midPoint.y);\r\n        }\r\n\r\n        var emitFollowEvent = false;\r\n\r\n        if (follow && !this.panEffect.isRunning)\r\n        {\r\n            var lerp = this.lerp;\r\n\r\n            var fx = follow.x - this.followOffset.x;\r\n            var fy = follow.y - this.followOffset.y;\r\n\r\n            if (deadzone)\r\n            {\r\n                if (fx < deadzone.x)\r\n                {\r\n                    sx = Linear(sx, sx - (deadzone.x - fx), lerp.x);\r\n                }\r\n                else if (fx > deadzone.right)\r\n                {\r\n                    sx = Linear(sx, sx + (fx - deadzone.right), lerp.x);\r\n                }\r\n\r\n                if (fy < deadzone.y)\r\n                {\r\n                    sy = Linear(sy, sy - (deadzone.y - fy), lerp.y);\r\n                }\r\n                else if (fy > deadzone.bottom)\r\n                {\r\n                    sy = Linear(sy, sy + (fy - deadzone.bottom), lerp.y);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                sx = Linear(sx, fx - originX, lerp.x);\r\n                sy = Linear(sy, fy - originY, lerp.y);\r\n            }\r\n\r\n            emitFollowEvent = true;\r\n        }\r\n\r\n        if (this.roundPixels)\r\n        {\r\n            sx = Math.floor(sx);\r\n            sy = Math.floor(sy);\r\n        }\r\n\r\n        if (this.useBounds)\r\n        {\r\n            sx = this.clampX(sx);\r\n            sy = this.clampY(sy);\r\n        }\r\n\r\n        //  Values are in pixels and not impacted by zooming the Camera\r\n        this.scrollX = sx;\r\n        this.scrollY = sy;\r\n\r\n        //  Don't round the midPoint, otherwise it breaks things like smooth zoom\r\n        var midX = sx + halfWidth;\r\n        var midY = sy + halfHeight;\r\n\r\n        //  The center of the camera, in world space, so taking zoom into account\r\n        //  Basically the pixel value of what it's looking at in the middle of the cam\r\n        this.midPoint.set(midX, midY);\r\n\r\n        var displayWidth = Math.floor((width / zoomX) + 0.5);\r\n        var displayHeight = Math.floor((height / zoomY) + 0.5);\r\n\r\n        var vwx = Math.floor((midX - (displayWidth / 2)) + 0.5);\r\n        var vwy = Math.floor((midY - (displayHeight / 2)) + 0.5);\r\n\r\n        this.worldView.setTo(vwx, vwy, displayWidth, displayHeight);\r\n\r\n        matrix.applyITRS(\r\n            Math.floor(this.x + originX + 0.5),\r\n            Math.floor(this.y + originY + 0.5),\r\n            this.rotation,\r\n            zoomX, zoomY\r\n        );\r\n\r\n        matrix.translate(-originX, -originY);\r\n\r\n        this.shakeEffect.preRender();\r\n\r\n        if (emitFollowEvent)\r\n        {\r\n            this.emit(Events.FOLLOW_UPDATE, this, follow);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Sets the linear interpolation value to use when following a target.\r\n     *\r\n     * The default values of 1 means the camera will instantly snap to the target coordinates.\r\n     * A lower value, such as 0.1 means the camera will more slowly track the target, giving\r\n     * a smooth transition. You can set the horizontal and vertical values independently, and also\r\n     * adjust this value in real-time during your game.\r\n     *\r\n     * Be sure to keep the value between 0 and 1. A value of zero will disable tracking on that axis.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#setLerp\r\n     * @since 3.9.0\r\n     *\r\n     * @param {number} [x=1] - The amount added to the horizontal linear interpolation of the follow target.\r\n     * @param {number} [y=1] - The amount added to the vertical linear interpolation of the follow target.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setLerp: function (x, y)\r\n    {\r\n        if (x === undefined) { x = 1; }\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.lerp.set(x, y);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the horizontal and vertical offset of the camera from its follow target.\r\n     * The values are subtracted from the targets position during the Cameras update step.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#setFollowOffset\r\n     * @since 3.9.0\r\n     *\r\n     * @param {number} [x=0] - The horizontal offset from the camera follow target.x position.\r\n     * @param {number} [y=0] - The vertical offset from the camera follow target.y position.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    setFollowOffset: function (x, y)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n\r\n        this.followOffset.set(x, y);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the Camera to follow a Game Object.\r\n     *\r\n     * When enabled the Camera will automatically adjust its scroll position to keep the target Game Object\r\n     * in its center.\r\n     *\r\n     * You can set the linear interpolation value used in the follow code.\r\n     * Use low lerp values (such as 0.1) to automatically smooth the camera motion.\r\n     *\r\n     * If you find you're getting a slight \"jitter\" effect when following an object it's probably to do with sub-pixel\r\n     * rendering of the targets position. This can be rounded by setting the `roundPixels` argument to `true` to\r\n     * force full pixel rounding rendering. Note that this can still be broken if you have specified a non-integer zoom\r\n     * value on the camera. So be sure to keep the camera zoom to integers.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#startFollow\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(Phaser.GameObjects.GameObject|object)} target - The target for the Camera to follow.\r\n     * @param {boolean} [roundPixels=false] - Round the camera position to whole integers to avoid sub-pixel rendering?\r\n     * @param {number} [lerpX=1] - A value between 0 and 1. This value specifies the amount of linear interpolation to use when horizontally tracking the target. The closer the value to 1, the faster the camera will track.\r\n     * @param {number} [lerpY=1] - A value between 0 and 1. This value specifies the amount of linear interpolation to use when vertically tracking the target. The closer the value to 1, the faster the camera will track.\r\n     * @param {number} [offsetX=0] - The horizontal offset from the camera follow target.x position.\r\n     * @param {number} [offsetY=0] - The vertical offset from the camera follow target.y position.\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    startFollow: function (target, roundPixels, lerpX, lerpY, offsetX, offsetY)\r\n    {\r\n        if (roundPixels === undefined) { roundPixels = false; }\r\n        if (lerpX === undefined) { lerpX = 1; }\r\n        if (lerpY === undefined) { lerpY = lerpX; }\r\n        if (offsetX === undefined) { offsetX = 0; }\r\n        if (offsetY === undefined) { offsetY = offsetX; }\r\n\r\n        this._follow = target;\r\n\r\n        this.roundPixels = roundPixels;\r\n\r\n        lerpX = Clamp(lerpX, 0, 1);\r\n        lerpY = Clamp(lerpY, 0, 1);\r\n\r\n        this.lerp.set(lerpX, lerpY);\r\n\r\n        this.followOffset.set(offsetX, offsetY);\r\n\r\n        var originX = this.width / 2;\r\n        var originY = this.height / 2;\r\n\r\n        var fx = target.x - offsetX;\r\n        var fy = target.y - offsetY;\r\n\r\n        this.midPoint.set(fx, fy);\r\n\r\n        this.scrollX = fx - originX;\r\n        this.scrollY = fy - originY;\r\n\r\n        if (this.useBounds)\r\n        {\r\n            this.scrollX = this.clampX(this.scrollX);\r\n            this.scrollY = this.clampY(this.scrollY);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stops a Camera from following a Game Object, if previously set via `Camera.startFollow`.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#stopFollow\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    stopFollow: function ()\r\n    {\r\n        this._follow = null;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Resets any active FX, such as a fade, flash or shake. Useful to call after a fade in order to\r\n     * remove the fade.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#resetFX\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Camera instance.\r\n     */\r\n    resetFX: function ()\r\n    {\r\n        this.rotateToEffect.reset();\r\n        this.panEffect.reset();\r\n        this.shakeEffect.reset();\r\n        this.flashEffect.reset();\r\n        this.fadeEffect.reset();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Internal method called automatically by the Camera Manager.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#update\r\n     * @protected\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} time - The current timestamp as generated by the Request Animation Frame or SetTimeout.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    update: function (time, delta)\r\n    {\r\n        if (this.visible)\r\n        {\r\n            this.rotateToEffect.update(time, delta);\r\n            this.panEffect.update(time, delta);\r\n            this.zoomEffect.update(time, delta);\r\n            this.shakeEffect.update(time, delta);\r\n            this.flashEffect.update(time, delta);\r\n            this.fadeEffect.update(time, delta);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Destroys this Camera instance. You rarely need to call this directly.\r\n     *\r\n     * Called by the Camera Manager. If you wish to destroy a Camera please use `CameraManager.remove` as\r\n     * cameras are stored in a pool, ready for recycling later, and calling this directly will prevent that.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Camera#destroy\r\n     * @fires Phaser.Cameras.Scene2D.Events#DESTROY\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.resetFX();\r\n\r\n        BaseCamera.prototype.destroy.call(this);\r\n\r\n        this._follow = null;\r\n\r\n        this.deadzone = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Camera;\r\n\n\n/***/ }),\n\n/***/ 32743:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Camera = __webpack_require__(38058);\r\nvar Class = __webpack_require__(83419);\r\nvar GetFastValue = __webpack_require__(95540);\r\nvar PluginCache = __webpack_require__(37277);\r\nvar RectangleContains = __webpack_require__(37303);\r\nvar ScaleEvents = __webpack_require__(97480);\r\nvar SceneEvents = __webpack_require__(44594);\r\n\r\n/**\r\n * @classdesc\r\n * The Camera Manager is a plugin that belongs to a Scene and is responsible for managing all of the Scene Cameras.\r\n *\r\n * By default you can access the Camera Manager from within a Scene using `this.cameras`, although this can be changed\r\n * in your game config.\r\n *\r\n * Create new Cameras using the `add` method. Or extend the Camera class with your own addition code and then add\r\n * the new Camera in using the `addExisting` method.\r\n *\r\n * Cameras provide a view into your game world, and can be positioned, rotated, zoomed and scrolled accordingly.\r\n *\r\n * A Camera consists of two elements: The viewport and the scroll values.\r\n *\r\n * The viewport is the physical position and size of the Camera within your game. Cameras, by default, are\r\n * created the same size as your game, but their position and size can be set to anything. This means if you\r\n * wanted to create a camera that was 320x200 in size, positioned in the bottom-right corner of your game,\r\n * you'd adjust the viewport to do that (using methods like `setViewport` and `setSize`).\r\n *\r\n * If you wish to change where the Camera is looking in your game, then you scroll it. You can do this\r\n * via the properties `scrollX` and `scrollY` or the method `setScroll`. Scrolling has no impact on the\r\n * viewport, and changing the viewport has no impact on the scrolling.\r\n *\r\n * By default a Camera will render all Game Objects it can see. You can change this using the `ignore` method,\r\n * allowing you to filter Game Objects out on a per-Camera basis. The Camera Manager can manage up to 31 unique\r\n * 'Game Object ignore capable' Cameras. Any Cameras beyond 31 that you create will all be given a Camera ID of\r\n * zero, meaning that they cannot be used for Game Object exclusion. This means if you need your Camera to ignore\r\n * Game Objects, make sure it's one of the first 31 created.\r\n *\r\n * A Camera also has built-in special effects including Fade, Flash, Camera Shake, Pan and Zoom.\r\n *\r\n * @class CameraManager\r\n * @memberof Phaser.Cameras.Scene2D\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene that owns the Camera Manager plugin.\r\n */\r\nvar CameraManager = new Class({\r\n\r\n    initialize:\r\n\r\n    function CameraManager (scene)\r\n    {\r\n        /**\r\n         * The Scene that owns the Camera Manager plugin.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.CameraManager#scene\r\n         * @type {Phaser.Scene}\r\n         * @since 3.0.0\r\n         */\r\n        this.scene = scene;\r\n\r\n        /**\r\n         * A reference to the Scene.Systems handler for the Scene that owns the Camera Manager.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.CameraManager#systems\r\n         * @type {Phaser.Scenes.Systems}\r\n         * @since 3.0.0\r\n         */\r\n        this.systems = scene.sys;\r\n\r\n        /**\r\n         * All Cameras created by, or added to, this Camera Manager, will have their `roundPixels`\r\n         * property set to match this value. By default it is set to match the value set in the\r\n         * game configuration, but can be changed at any point. Equally, individual cameras can\r\n         * also be changed as needed.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.CameraManager#roundPixels\r\n         * @type {boolean}\r\n         * @since 3.11.0\r\n         */\r\n        this.roundPixels = scene.sys.game.config.roundPixels;\r\n\r\n        /**\r\n         * An Array of the Camera objects being managed by this Camera Manager.\r\n         * The Cameras are updated and rendered in the same order in which they appear in this array.\r\n         * Do not directly add or remove entries to this array. However, you can move the contents\r\n         * around the array should you wish to adjust the display order.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.CameraManager#cameras\r\n         * @type {Phaser.Cameras.Scene2D.Camera[]}\r\n         * @since 3.0.0\r\n         */\r\n        this.cameras = [];\r\n\r\n        /**\r\n         * A handy reference to the 'main' camera. By default this is the first Camera the\r\n         * Camera Manager creates. You can also set it directly, or use the `makeMain` argument\r\n         * in the `add` and `addExisting` methods. It allows you to access it from your game:\r\n         *\r\n         * ```javascript\r\n         * var cam = this.cameras.main;\r\n         * ```\r\n         *\r\n         * Also see the properties `camera1`, `camera2` and so on.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.CameraManager#main\r\n         * @type {Phaser.Cameras.Scene2D.Camera}\r\n         * @since 3.0.0\r\n         */\r\n        this.main;\r\n\r\n        /**\r\n         * A default un-transformed Camera that doesn't exist on the camera list and doesn't\r\n         * count towards the total number of cameras being managed. It exists for other\r\n         * systems, as well as your own code, should they require a basic un-transformed\r\n         * camera instance from which to calculate a view matrix.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.CameraManager#default\r\n         * @type {Phaser.Cameras.Scene2D.Camera}\r\n         * @since 3.17.0\r\n         */\r\n        this.default;\r\n\r\n        scene.sys.events.once(SceneEvents.BOOT, this.boot, this);\r\n        scene.sys.events.on(SceneEvents.START, this.start, this);\r\n    },\r\n\r\n    /**\r\n     * This method is called automatically, only once, when the Scene is first created.\r\n     * Do not invoke it directly.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#boot\r\n     * @private\r\n     * @listens Phaser.Scenes.Events#DESTROY\r\n     * @since 3.5.1\r\n     */\r\n    boot: function ()\r\n    {\r\n        var sys = this.systems;\r\n\r\n        if (sys.settings.cameras)\r\n        {\r\n            //  We have cameras to create\r\n            this.fromJSON(sys.settings.cameras);\r\n        }\r\n        else\r\n        {\r\n            //  Make one\r\n            this.add();\r\n        }\r\n\r\n        this.main = this.cameras[0];\r\n\r\n        //  Create a default camera\r\n        this.default = new Camera(0, 0, sys.scale.width, sys.scale.height).setScene(this.scene);\r\n\r\n        sys.game.scale.on(ScaleEvents.RESIZE, this.onResize, this);\r\n\r\n        this.systems.events.once(SceneEvents.DESTROY, this.destroy, this);\r\n    },\r\n\r\n    /**\r\n     * This method is called automatically by the Scene when it is starting up.\r\n     * It is responsible for creating local systems, properties and listening for Scene events.\r\n     * Do not invoke it directly.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#start\r\n     * @private\r\n     * @listens Phaser.Scenes.Events#UPDATE\r\n     * @listens Phaser.Scenes.Events#SHUTDOWN\r\n     * @since 3.5.0\r\n     */\r\n    start: function ()\r\n    {\r\n        if (!this.main)\r\n        {\r\n            var sys = this.systems;\r\n\r\n            if (sys.settings.cameras)\r\n            {\r\n                //  We have cameras to create\r\n                this.fromJSON(sys.settings.cameras);\r\n            }\r\n            else\r\n            {\r\n                //  Make one\r\n                this.add();\r\n            }\r\n\r\n            this.main = this.cameras[0];\r\n        }\r\n\r\n        var eventEmitter = this.systems.events;\r\n\r\n        eventEmitter.on(SceneEvents.UPDATE, this.update, this);\r\n        eventEmitter.once(SceneEvents.SHUTDOWN, this.shutdown, this);\r\n    },\r\n\r\n    /**\r\n     * Adds a new Camera into the Camera Manager. The Camera Manager can support up to 31 different Cameras.\r\n     *\r\n     * Each Camera has its own viewport, which controls the size of the Camera and its position within the canvas.\r\n     *\r\n     * Use the `Camera.scrollX` and `Camera.scrollY` properties to change where the Camera is looking, or the\r\n     * Camera methods such as `centerOn`. Cameras also have built in special effects, such as fade, flash, shake,\r\n     * pan and zoom.\r\n     *\r\n     * By default Cameras are transparent and will render anything that they can see based on their `scrollX`\r\n     * and `scrollY` values. Game Objects can be set to be ignored by a Camera by using the `Camera.ignore` method.\r\n     *\r\n     * The Camera will have its `roundPixels` property set to whatever `CameraManager.roundPixels` is. You can change\r\n     * it after creation if required.\r\n     *\r\n     * See the Camera class documentation for more details.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#add\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=0] - The horizontal position of the Camera viewport.\r\n     * @param {number} [y=0] - The vertical position of the Camera viewport.\r\n     * @param {number} [width] - The width of the Camera viewport. If not given it'll be the game config size.\r\n     * @param {number} [height] - The height of the Camera viewport. If not given it'll be the game config size.\r\n     * @param {boolean} [makeMain=false] - Set this Camera as being the 'main' camera. This just makes the property `main` a reference to it.\r\n     * @param {string} [name=''] - The name of the Camera.\r\n     *\r\n     * @return {Phaser.Cameras.Scene2D.Camera} The newly created Camera.\r\n     */\r\n    add: function (x, y, width, height, makeMain, name)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (width === undefined) { width = this.scene.sys.scale.width; }\r\n        if (height === undefined) { height = this.scene.sys.scale.height; }\r\n        if (makeMain === undefined) { makeMain = false; }\r\n        if (name === undefined) { name = ''; }\r\n\r\n        var camera = new Camera(x, y, width, height);\r\n\r\n        camera.setName(name);\r\n        camera.setScene(this.scene);\r\n        camera.setRoundPixels(this.roundPixels);\r\n\r\n        camera.id = this.getNextID();\r\n\r\n        this.cameras.push(camera);\r\n\r\n        if (makeMain)\r\n        {\r\n            this.main = camera;\r\n        }\r\n\r\n        return camera;\r\n    },\r\n\r\n    /**\r\n     * Adds an existing Camera into the Camera Manager.\r\n     *\r\n     * The Camera should either be a `Phaser.Cameras.Scene2D.Camera` instance, or a class that extends from it.\r\n     *\r\n     * The Camera will have its `roundPixels` property set to whatever `CameraManager.roundPixels` is. You can change\r\n     * it after addition if required.\r\n     *\r\n     * The Camera will be assigned an ID, which is used for Game Object exclusion and then added to the\r\n     * manager. As long as it doesn't already exist in the manager it will be added then returned.\r\n     *\r\n     * If this method returns `null` then the Camera already exists in this Camera Manager.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#addExisting\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera to be added to the Camera Manager.\r\n     * @param {boolean} [makeMain=false] - Set this Camera as being the 'main' camera. This just makes the property `main` a reference to it.\r\n     *\r\n     * @return {?Phaser.Cameras.Scene2D.Camera} The Camera that was added to the Camera Manager, or `null` if it couldn't be added.\r\n     */\r\n    addExisting: function (camera, makeMain)\r\n    {\r\n        if (makeMain === undefined) { makeMain = false; }\r\n\r\n        var index = this.cameras.indexOf(camera);\r\n\r\n        if (index === -1)\r\n        {\r\n            camera.id = this.getNextID();\r\n\r\n            camera.setRoundPixels(this.roundPixels);\r\n\r\n            this.cameras.push(camera);\r\n\r\n            if (makeMain)\r\n            {\r\n                this.main = camera;\r\n            }\r\n\r\n            return camera;\r\n        }\r\n\r\n        return null;\r\n    },\r\n\r\n    /**\r\n     * Gets the next available Camera ID number.\r\n     *\r\n     * The Camera Manager supports up to 31 unique cameras, after which the ID returned will always be zero.\r\n     * You can create additional cameras beyond 31, but they cannot be used for Game Object exclusion.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#getNextID\r\n     * @private\r\n     * @since 3.11.0\r\n     *\r\n     * @return {number} The next available Camera ID, or 0 if they're all already in use.\r\n     */\r\n    getNextID: function ()\r\n    {\r\n        var cameras = this.cameras;\r\n\r\n        var testID = 1;\r\n\r\n        //  Find the first free camera ID we can use\r\n\r\n        for (var t = 0; t < 32; t++)\r\n        {\r\n            var found = false;\r\n\r\n            for (var i = 0; i < cameras.length; i++)\r\n            {\r\n                var camera = cameras[i];\r\n\r\n                if (camera && camera.id === testID)\r\n                {\r\n                    found = true;\r\n                    continue;\r\n                }\r\n            }\r\n\r\n            if (found)\r\n            {\r\n                testID = testID << 1;\r\n            }\r\n            else\r\n            {\r\n                return testID;\r\n            }\r\n        }\r\n\r\n        return 0;\r\n    },\r\n\r\n    /**\r\n     * Gets the total number of Cameras in this Camera Manager.\r\n     *\r\n     * If the optional `isVisible` argument is set it will only count Cameras that are currently visible.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#getTotal\r\n     * @since 3.11.0\r\n     *\r\n     * @param {boolean} [isVisible=false] - Set the `true` to only include visible Cameras in the total.\r\n     *\r\n     * @return {number} The total number of Cameras in this Camera Manager.\r\n     */\r\n    getTotal: function (isVisible)\r\n    {\r\n        if (isVisible === undefined) { isVisible = false; }\r\n\r\n        var total = 0;\r\n\r\n        var cameras = this.cameras;\r\n\r\n        for (var i = 0; i < cameras.length; i++)\r\n        {\r\n            var camera = cameras[i];\r\n\r\n            if (!isVisible || (isVisible && camera.visible))\r\n            {\r\n                total++;\r\n            }\r\n        }\r\n\r\n        return total;\r\n    },\r\n\r\n    /**\r\n     * Populates this Camera Manager based on the given configuration object, or an array of config objects.\r\n     *\r\n     * See the `Phaser.Types.Cameras.Scene2D.CameraConfig` documentation for details of the object structure.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#fromJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(Phaser.Types.Cameras.Scene2D.CameraConfig|Phaser.Types.Cameras.Scene2D.CameraConfig[])} config - A Camera configuration object, or an array of them, to be added to this Camera Manager.\r\n     *\r\n     * @return {this} This Camera Manager instance.\r\n     */\r\n    fromJSON: function (config)\r\n    {\r\n        if (!Array.isArray(config))\r\n        {\r\n            config = [ config ];\r\n        }\r\n\r\n        var gameWidth = this.scene.sys.scale.width;\r\n        var gameHeight = this.scene.sys.scale.height;\r\n\r\n        for (var i = 0; i < config.length; i++)\r\n        {\r\n            var cameraConfig = config[i];\r\n\r\n            var x = GetFastValue(cameraConfig, 'x', 0);\r\n            var y = GetFastValue(cameraConfig, 'y', 0);\r\n            var width = GetFastValue(cameraConfig, 'width', gameWidth);\r\n            var height = GetFastValue(cameraConfig, 'height', gameHeight);\r\n\r\n            var camera = this.add(x, y, width, height);\r\n\r\n            //  Direct properties\r\n            camera.name = GetFastValue(cameraConfig, 'name', '');\r\n            camera.zoom = GetFastValue(cameraConfig, 'zoom', 1);\r\n            camera.rotation = GetFastValue(cameraConfig, 'rotation', 0);\r\n            camera.scrollX = GetFastValue(cameraConfig, 'scrollX', 0);\r\n            camera.scrollY = GetFastValue(cameraConfig, 'scrollY', 0);\r\n            camera.roundPixels = GetFastValue(cameraConfig, 'roundPixels', false);\r\n            camera.visible = GetFastValue(cameraConfig, 'visible', true);\r\n\r\n            // Background Color\r\n\r\n            var backgroundColor = GetFastValue(cameraConfig, 'backgroundColor', false);\r\n\r\n            if (backgroundColor)\r\n            {\r\n                camera.setBackgroundColor(backgroundColor);\r\n            }\r\n\r\n            //  Bounds\r\n\r\n            var boundsConfig = GetFastValue(cameraConfig, 'bounds', null);\r\n\r\n            if (boundsConfig)\r\n            {\r\n                var bx = GetFastValue(boundsConfig, 'x', 0);\r\n                var by = GetFastValue(boundsConfig, 'y', 0);\r\n                var bwidth = GetFastValue(boundsConfig, 'width', gameWidth);\r\n                var bheight = GetFastValue(boundsConfig, 'height', gameHeight);\r\n\r\n                camera.setBounds(bx, by, bwidth, bheight);\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Gets a Camera based on its name.\r\n     *\r\n     * Camera names are optional and don't have to be set, so this method is only of any use if you\r\n     * have given your Cameras unique names.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#getCamera\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} name - The name of the Camera.\r\n     *\r\n     * @return {?Phaser.Cameras.Scene2D.Camera} The first Camera with a name matching the given string, otherwise `null`.\r\n     */\r\n    getCamera: function (name)\r\n    {\r\n        var cameras = this.cameras;\r\n\r\n        for (var i = 0; i < cameras.length; i++)\r\n        {\r\n            if (cameras[i].name === name)\r\n            {\r\n                return cameras[i];\r\n            }\r\n        }\r\n\r\n        return null;\r\n    },\r\n\r\n    /**\r\n     * Returns an array of all cameras below the given Pointer.\r\n     *\r\n     * The first camera in the array is the top-most camera in the camera list.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#getCamerasBelowPointer\r\n     * @since 3.10.0\r\n     *\r\n     * @param {Phaser.Input.Pointer} pointer - The Pointer to check against.\r\n     *\r\n     * @return {Phaser.Cameras.Scene2D.Camera[]} An array of cameras below the Pointer.\r\n     */\r\n    getCamerasBelowPointer: function (pointer)\r\n    {\r\n        var cameras = this.cameras;\r\n\r\n        var x = pointer.x;\r\n        var y = pointer.y;\r\n\r\n        var output = [];\r\n\r\n        for (var i = 0; i < cameras.length; i++)\r\n        {\r\n            var camera = cameras[i];\r\n\r\n            if (camera.visible && camera.inputEnabled && RectangleContains(camera, x, y))\r\n            {\r\n                //  So the top-most camera is at the top of the search array\r\n                output.unshift(camera);\r\n            }\r\n        }\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Removes the given Camera, or an array of Cameras, from this Camera Manager.\r\n     *\r\n     * If found in the Camera Manager it will be immediately removed from the local cameras array.\r\n     * If also currently the 'main' camera, 'main' will be reset to be camera 0.\r\n     *\r\n     * The removed Cameras are automatically destroyed if the `runDestroy` argument is `true`, which is the default.\r\n     * If you wish to re-use the cameras then set this to `false`, but know that they will retain their references\r\n     * and internal data until destroyed or re-added to a Camera Manager.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#remove\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(Phaser.Cameras.Scene2D.Camera|Phaser.Cameras.Scene2D.Camera[])} camera - The Camera, or an array of Cameras, to be removed from this Camera Manager.\r\n     * @param {boolean} [runDestroy=true] - Automatically call `Camera.destroy` on each Camera removed from this Camera Manager.\r\n     *\r\n     * @return {number} The total number of Cameras removed.\r\n     */\r\n    remove: function (camera, runDestroy)\r\n    {\r\n        if (runDestroy === undefined) { runDestroy = true; }\r\n\r\n        if (!Array.isArray(camera))\r\n        {\r\n            camera = [ camera ];\r\n        }\r\n\r\n        var total = 0;\r\n        var cameras = this.cameras;\r\n\r\n        for (var i = 0; i < camera.length; i++)\r\n        {\r\n            var index = cameras.indexOf(camera[i]);\r\n\r\n            if (index !== -1)\r\n            {\r\n                if (runDestroy)\r\n                {\r\n                    cameras[index].destroy();\r\n                }\r\n                else\r\n                {\r\n                    cameras[index].renderList = [];\r\n                }\r\n\r\n                cameras.splice(index, 1);\r\n\r\n                total++;\r\n            }\r\n        }\r\n\r\n        if (!this.main && cameras[0])\r\n        {\r\n            this.main = cameras[0];\r\n        }\r\n\r\n        return total;\r\n    },\r\n\r\n    /**\r\n     * The internal render method. This is called automatically by the Scene and should not be invoked directly.\r\n     *\r\n     * It will iterate through all local cameras and render them in turn, as long as they're visible and have\r\n     * an alpha level > 0.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#render\r\n     * @protected\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer)} renderer - The Renderer that will render the children to this camera.\r\n     * @param {Phaser.GameObjects.DisplayList} displayList - The Display List for the Scene.\r\n     */\r\n    render: function (renderer, displayList)\r\n    {\r\n        var scene = this.scene;\r\n        var cameras = this.cameras;\r\n\r\n        for (var i = 0; i < cameras.length; i++)\r\n        {\r\n            var camera = cameras[i];\r\n\r\n            if (camera.visible && camera.alpha > 0)\r\n            {\r\n                camera.preRender();\r\n\r\n                var visibleChildren = this.getVisibleChildren(displayList.getChildren(), camera);\r\n\r\n                renderer.render(scene, visibleChildren, camera);\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Takes an array of Game Objects and a Camera and returns a new array\r\n     * containing only those Game Objects that pass the `willRender` test\r\n     * against the given Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#getVisibleChildren\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject[]} children - An array of Game Objects to be checked against the camera.\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera to filter the Game Objects against.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject[]} A filtered list of only Game Objects within the Scene that will render against the given Camera.\r\n     */\r\n    getVisibleChildren: function (children, camera)\r\n    {\r\n        return children.filter(function (child)\r\n        {\r\n            return child.willRender(camera);\r\n        });\r\n    },\r\n\r\n    /**\r\n     * Resets this Camera Manager.\r\n     *\r\n     * This will iterate through all current Cameras, destroying them all, then it will reset the\r\n     * cameras array, reset the ID counter and create 1 new single camera using the default values.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#resetAll\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Cameras.Scene2D.Camera} The freshly created main Camera.\r\n     */\r\n    resetAll: function ()\r\n    {\r\n        for (var i = 0; i < this.cameras.length; i++)\r\n        {\r\n            this.cameras[i].destroy();\r\n        }\r\n\r\n        this.cameras = [];\r\n\r\n        this.main = this.add();\r\n\r\n        return this.main;\r\n    },\r\n\r\n    /**\r\n     * The main update loop. Called automatically when the Scene steps.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#update\r\n     * @protected\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} time - The current timestamp as generated by the Request Animation Frame or SetTimeout.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    update: function (time, delta)\r\n    {\r\n        for (var i = 0; i < this.cameras.length; i++)\r\n        {\r\n            this.cameras[i].update(time, delta);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * The event handler that manages the `resize` event dispatched by the Scale Manager.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#onResize\r\n     * @since 3.18.0\r\n     *\r\n     * @param {Phaser.Structs.Size} gameSize - The default Game Size object. This is the un-modified game dimensions.\r\n     * @param {Phaser.Structs.Size} baseSize - The base Size object. The game dimensions. The canvas width / height values match this.\r\n     */\r\n    onResize: function (gameSize, baseSize, displaySize, previousWidth, previousHeight)\r\n    {\r\n        for (var i = 0; i < this.cameras.length; i++)\r\n        {\r\n            var cam = this.cameras[i];\r\n\r\n            //  if camera is at 0x0 and was the size of the previous game size, then we can safely assume it\r\n            //  should be updated to match the new game size too\r\n\r\n            if (cam._x === 0 && cam._y === 0 && cam._width === previousWidth && cam._height === previousHeight)\r\n            {\r\n                cam.setSize(baseSize.width, baseSize.height);\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Resizes all cameras to the given dimensions.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#resize\r\n     * @since 3.2.0\r\n     *\r\n     * @param {number} width - The new width of the camera.\r\n     * @param {number} height - The new height of the camera.\r\n     */\r\n    resize: function (width, height)\r\n    {\r\n        for (var i = 0; i < this.cameras.length; i++)\r\n        {\r\n            this.cameras[i].setSize(width, height);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * The Scene that owns this plugin is shutting down.\r\n     * We need to kill and reset all internal properties as well as stop listening to Scene events.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#shutdown\r\n     * @private\r\n     * @since 3.0.0\r\n     */\r\n    shutdown: function ()\r\n    {\r\n        this.main = undefined;\r\n\r\n        for (var i = 0; i < this.cameras.length; i++)\r\n        {\r\n            this.cameras[i].destroy();\r\n        }\r\n\r\n        this.cameras = [];\r\n\r\n        var eventEmitter = this.systems.events;\r\n\r\n        eventEmitter.off(SceneEvents.UPDATE, this.update, this);\r\n        eventEmitter.off(SceneEvents.SHUTDOWN, this.shutdown, this);\r\n    },\r\n\r\n    /**\r\n     * The Scene that owns this plugin is being destroyed.\r\n     * We need to shutdown and then kill off all external references.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.CameraManager#destroy\r\n     * @private\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.shutdown();\r\n\r\n        this.default.destroy();\r\n\r\n        this.systems.events.off(SceneEvents.START, this.start, this);\r\n        this.systems.events.off(SceneEvents.DESTROY, this.destroy, this);\r\n        this.systems.game.scale.off(ScaleEvents.RESIZE, this.onResize, this);\r\n\r\n        this.scene = null;\r\n        this.systems = null;\r\n    }\r\n\r\n});\r\n\r\nPluginCache.register('CameraManager', CameraManager, 'cameras');\r\n\r\nmodule.exports = CameraManager;\r\n\n\n/***/ }),\n\n/***/ 5020:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Clamp = __webpack_require__(45319);\r\nvar Class = __webpack_require__(83419);\r\nvar Events = __webpack_require__(19715);\r\n\r\n/**\r\n * @classdesc\r\n * A Camera Fade effect.\r\n *\r\n * This effect will fade the camera viewport to the given color, over the duration specified.\r\n *\r\n * Only the camera viewport is faded. None of the objects it is displaying are impacted, i.e. their colors do\r\n * not change.\r\n *\r\n * The effect will dispatch several events on the Camera itself and you can also specify an `onUpdate` callback,\r\n * which is invoked each frame for the duration of the effect, if required.\r\n *\r\n * @class Fade\r\n * @memberof Phaser.Cameras.Scene2D.Effects\r\n * @constructor\r\n * @since 3.5.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera this effect is acting upon.\r\n */\r\nvar Fade = new Class({\r\n\r\n    initialize:\r\n\r\n    function Fade (camera)\r\n    {\r\n        /**\r\n         * The Camera this effect belongs to.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Fade#camera\r\n         * @type {Phaser.Cameras.Scene2D.Camera}\r\n         * @readonly\r\n         * @since 3.5.0\r\n         */\r\n        this.camera = camera;\r\n\r\n        /**\r\n         * Is this effect actively running?\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Fade#isRunning\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @default false\r\n         * @since 3.5.0\r\n         */\r\n        this.isRunning = false;\r\n\r\n        /**\r\n         * Has this effect finished running?\r\n         *\r\n         * This is different from `isRunning` because it remains set to `true` when the effect is over,\r\n         * until the effect is either reset or started again.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Fade#isComplete\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @default false\r\n         * @since 3.5.0\r\n         */\r\n        this.isComplete = false;\r\n\r\n        /**\r\n         * The direction of the fade.\r\n         * `true` = fade out (transparent to color), `false` = fade in (color to transparent)\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Fade#direction\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @since 3.5.0\r\n         */\r\n        this.direction = true;\r\n\r\n        /**\r\n         * The duration of the effect, in milliseconds.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Fade#duration\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 0\r\n         * @since 3.5.0\r\n         */\r\n        this.duration = 0;\r\n\r\n        /**\r\n         * The value of the red color channel the camera will use for the fade effect.\r\n         * A value between 0 and 255.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Fade#red\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this.red = 0;\r\n\r\n        /**\r\n         * The value of the green color channel the camera will use for the fade effect.\r\n         * A value between 0 and 255.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Fade#green\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this.green = 0;\r\n\r\n        /**\r\n         * The value of the blue color channel the camera will use for the fade effect.\r\n         * A value between 0 and 255.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Fade#blue\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this.blue = 0;\r\n\r\n        /**\r\n         * The value of the alpha channel used during the fade effect.\r\n         * A value between 0 and 1.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Fade#alpha\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this.alpha = 0;\r\n\r\n        /**\r\n         * If this effect is running this holds the current percentage of the progress, a value between 0 and 1.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Fade#progress\r\n         * @type {number}\r\n         * @since 3.5.0\r\n         */\r\n        this.progress = 0;\r\n\r\n        /**\r\n         * Effect elapsed timer.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Fade#_elapsed\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this._elapsed = 0;\r\n\r\n        /**\r\n         * This callback is invoked every frame for the duration of the effect.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Fade#_onUpdate\r\n         * @type {?Phaser.Types.Cameras.Scene2D.CameraFadeCallback}\r\n         * @private\r\n         * @default null\r\n         * @since 3.5.0\r\n         */\r\n        this._onUpdate;\r\n\r\n        /**\r\n         * On Complete callback scope.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Fade#_onUpdateScope\r\n         * @type {any}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this._onUpdateScope;\r\n    },\r\n\r\n    /**\r\n     * Fades the Camera to or from the given color over the duration specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Fade#start\r\n     * @fires Phaser.Cameras.Scene2D.Events#FADE_IN_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#FADE_OUT_START\r\n     * @since 3.5.0\r\n     *\r\n     * @param {boolean} [direction=true] - The direction of the fade. `true` = fade out (transparent to color), `false` = fade in (color to transparent)\r\n     * @param {number} [duration=1000] - The duration of the effect in milliseconds.\r\n     * @param {number} [red=0] - The amount to fade the red channel towards. A value between 0 and 255.\r\n     * @param {number} [green=0] - The amount to fade the green channel towards. A value between 0 and 255.\r\n     * @param {number} [blue=0] - The amount to fade the blue channel towards. A value between 0 and 255.\r\n     * @param {boolean} [force=false] - Force the effect to start immediately, even if already running.\r\n     * @param {Phaser.Types.Cameras.Scene2D.CameraFadeCallback} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent two arguments: A reference to the camera and a progress amount between 0 and 1 indicating how complete the effect is.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {Phaser.Cameras.Scene2D.Camera} The Camera on which the effect was started.\r\n     */\r\n    start: function (direction, duration, red, green, blue, force, callback, context)\r\n    {\r\n        if (direction === undefined) { direction = true; }\r\n        if (duration === undefined) { duration = 1000; }\r\n        if (red === undefined) { red = 0; }\r\n        if (green === undefined) { green = 0; }\r\n        if (blue === undefined) { blue = 0; }\r\n        if (force === undefined) { force = false; }\r\n        if (callback === undefined) { callback = null; }\r\n        if (context === undefined) { context = this.camera.scene; }\r\n\r\n        if (!force && this.isRunning)\r\n        {\r\n            return this.camera;\r\n        }\r\n\r\n        this.isRunning = true;\r\n        this.isComplete = false;\r\n        this.duration = duration;\r\n        this.direction = direction;\r\n        this.progress = 0;\r\n\r\n        this.red = red;\r\n        this.green = green;\r\n        this.blue = blue;\r\n        this.alpha = (direction) ? Number.MIN_VALUE : 1;\r\n\r\n        this._elapsed = 0;\r\n\r\n        this._onUpdate = callback;\r\n        this._onUpdateScope = context;\r\n\r\n        var eventName = (direction) ? Events.FADE_OUT_START : Events.FADE_IN_START;\r\n\r\n        this.camera.emit(eventName, this.camera, this, duration, red, green, blue);\r\n\r\n        return this.camera;\r\n    },\r\n\r\n    /**\r\n     * The main update loop for this effect. Called automatically by the Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Fade#update\r\n     * @since 3.5.0\r\n     *\r\n     * @param {number} time - The current timestamp as generated by the Request Animation Frame or SetTimeout.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    update: function (time, delta)\r\n    {\r\n        if (!this.isRunning)\r\n        {\r\n            return;\r\n        }\r\n\r\n        this._elapsed += delta;\r\n\r\n        this.progress = Clamp(this._elapsed / this.duration, 0, 1);\r\n\r\n        if (this._onUpdate)\r\n        {\r\n            this._onUpdate.call(this._onUpdateScope, this.camera, this.progress);\r\n        }\r\n\r\n        if (this._elapsed < this.duration)\r\n        {\r\n            this.alpha = (this.direction) ? this.progress : 1 - this.progress;\r\n        }\r\n        else\r\n        {\r\n            this.alpha = (this.direction) ? 1 : 0;\r\n            this.effectComplete();\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Called internally by the Canvas Renderer.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Fade#postRenderCanvas\r\n     * @since 3.5.0\r\n     *\r\n     * @param {CanvasRenderingContext2D} ctx - The Canvas context to render to.\r\n     *\r\n     * @return {boolean} `true` if the effect drew to the renderer, otherwise `false`.\r\n     */\r\n    postRenderCanvas: function (ctx)\r\n    {\r\n        if (!this.isRunning && !this.isComplete)\r\n        {\r\n            return false;\r\n        }\r\n\r\n        var camera = this.camera;\r\n\r\n        ctx.fillStyle = 'rgba(' + this.red + ',' + this.green + ',' + this.blue + ',' + this.alpha + ')';\r\n        ctx.fillRect(camera.x, camera.y, camera.width, camera.height);\r\n\r\n        return true;\r\n    },\r\n\r\n    /**\r\n     * Called internally by the WebGL Renderer.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Fade#postRenderWebGL\r\n     * @since 3.5.0\r\n     *\r\n     * @param {Phaser.Renderer.WebGL.Pipelines.MultiPipeline} pipeline - The WebGL Pipeline to render to. Must provide the `drawFillRect` method.\r\n     * @param {function} getTintFunction - A function that will return the gl safe tint colors.\r\n     *\r\n     * @return {boolean} `true` if the effect drew to the renderer, otherwise `false`.\r\n     */\r\n    postRenderWebGL: function (pipeline, getTintFunction)\r\n    {\r\n        if (!this.isRunning && !this.isComplete)\r\n        {\r\n            return false;\r\n        }\r\n\r\n        var camera = this.camera;\r\n        var red = this.red / 255;\r\n        var green = this.green / 255;\r\n        var blue = this.blue / 255;\r\n\r\n        pipeline.drawFillRect(\r\n            camera.x, camera.y, camera.width, camera.height,\r\n            getTintFunction(blue, green, red, 1),\r\n            this.alpha\r\n        );\r\n\r\n        return true;\r\n    },\r\n\r\n    /**\r\n     * Called internally when the effect completes.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Fade#effectComplete\r\n     * @fires Phaser.Cameras.Scene2D.Events#FADE_IN_COMPLETE\r\n     * @fires Phaser.Cameras.Scene2D.Events#FADE_OUT_COMPLETE\r\n     * @since 3.5.0\r\n     */\r\n    effectComplete: function ()\r\n    {\r\n        this._onUpdate = null;\r\n        this._onUpdateScope = null;\r\n\r\n        this.isRunning = false;\r\n        this.isComplete = true;\r\n\r\n        var eventName = (this.direction) ? Events.FADE_OUT_COMPLETE : Events.FADE_IN_COMPLETE;\r\n\r\n        this.camera.emit(eventName, this.camera, this);\r\n    },\r\n\r\n    /**\r\n     * Resets this camera effect.\r\n     * If it was previously running, it stops instantly without calling its onComplete callback or emitting an event.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Fade#reset\r\n     * @since 3.5.0\r\n     */\r\n    reset: function ()\r\n    {\r\n        this.isRunning = false;\r\n        this.isComplete = false;\r\n\r\n        this._onUpdate = null;\r\n        this._onUpdateScope = null;\r\n    },\r\n\r\n    /**\r\n     * Destroys this effect, releasing it from the Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Fade#destroy\r\n     * @since 3.5.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.reset();\r\n\r\n        this.camera = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Fade;\r\n\n\n/***/ }),\n\n/***/ 10662:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Clamp = __webpack_require__(45319);\r\nvar Class = __webpack_require__(83419);\r\nvar Events = __webpack_require__(19715);\r\n\r\n/**\r\n * @classdesc\r\n * A Camera Flash effect.\r\n *\r\n * This effect will flash the camera viewport to the given color, over the duration specified.\r\n *\r\n * Only the camera viewport is flashed. None of the objects it is displaying are impacted, i.e. their colors do\r\n * not change.\r\n *\r\n * The effect will dispatch several events on the Camera itself and you can also specify an `onUpdate` callback,\r\n * which is invoked each frame for the duration of the effect, if required.\r\n *\r\n * @class Flash\r\n * @memberof Phaser.Cameras.Scene2D.Effects\r\n * @constructor\r\n * @since 3.5.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera this effect is acting upon.\r\n */\r\nvar Flash = new Class({\r\n\r\n    initialize:\r\n\r\n    function Flash (camera)\r\n    {\r\n        /**\r\n         * The Camera this effect belongs to.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Flash#camera\r\n         * @type {Phaser.Cameras.Scene2D.Camera}\r\n         * @readonly\r\n         * @since 3.5.0\r\n         */\r\n        this.camera = camera;\r\n\r\n        /**\r\n         * Is this effect actively running?\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Flash#isRunning\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @default false\r\n         * @since 3.5.0\r\n         */\r\n        this.isRunning = false;\r\n\r\n        /**\r\n         * The duration of the effect, in milliseconds.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Flash#duration\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 0\r\n         * @since 3.5.0\r\n         */\r\n        this.duration = 0;\r\n\r\n        /**\r\n         * The value of the red color channel the camera will use for the flash effect.\r\n         * A value between 0 and 255.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Flash#red\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this.red = 0;\r\n\r\n        /**\r\n         * The value of the green color channel the camera will use for the flash effect.\r\n         * A value between 0 and 255.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Flash#green\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this.green = 0;\r\n\r\n        /**\r\n         * The value of the blue color channel the camera will use for the flash effect.\r\n         * A value between 0 and 255.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Flash#blue\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this.blue = 0;\r\n\r\n        /**\r\n         * The value of the alpha channel used during the flash effect.\r\n         * A value between 0 and 1.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Flash#alpha\r\n         * @type {number}\r\n         * @since 3.5.0\r\n         */\r\n        this.alpha = 1;\r\n\r\n        /**\r\n         * If this effect is running this holds the current percentage of the progress, a value between 0 and 1.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Flash#progress\r\n         * @type {number}\r\n         * @since 3.5.0\r\n         */\r\n        this.progress = 0;\r\n\r\n        /**\r\n         * Effect elapsed timer.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Flash#_elapsed\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this._elapsed = 0;\r\n\r\n        /**\r\n         * This is an internal copy of the initial value of `this.alpha`, used to calculate the current alpha value of the fade effect.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Flash#_alpha\r\n         * @type {number}\r\n         * @private\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this._alpha;\r\n\r\n        /**\r\n         * This callback is invoked every frame for the duration of the effect.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Flash#_onUpdate\r\n         * @type {?Phaser.Types.Cameras.Scene2D.CameraFlashCallback}\r\n         * @private\r\n         * @default null\r\n         * @since 3.5.0\r\n         */\r\n        this._onUpdate;\r\n\r\n        /**\r\n         * On Complete callback scope.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Flash#_onUpdateScope\r\n         * @type {any}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this._onUpdateScope;\r\n    },\r\n\r\n    /**\r\n     * Flashes the Camera to or from the given color over the duration specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Flash#start\r\n     * @fires Phaser.Cameras.Scene2D.Events#FLASH_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#FLASH_COMPLETE\r\n     * @since 3.5.0\r\n     *\r\n     * @param {number} [duration=250] - The duration of the effect in milliseconds.\r\n     * @param {number} [red=255] - The amount to flash the red channel towards. A value between 0 and 255.\r\n     * @param {number} [green=255] - The amount to flash the green channel towards. A value between 0 and 255.\r\n     * @param {number} [blue=255] - The amount to flash the blue channel towards. A value between 0 and 255.\r\n     * @param {boolean} [force=false] - Force the effect to start immediately, even if already running.\r\n     * @param {Phaser.Types.Cameras.Scene2D.CameraFlashCallback} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent two arguments: A reference to the camera and a progress amount between 0 and 1 indicating how complete the effect is.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {Phaser.Cameras.Scene2D.Camera} The Camera on which the effect was started.\r\n     */\r\n    start: function (duration, red, green, blue, force, callback, context)\r\n    {\r\n        if (duration === undefined) { duration = 250; }\r\n        if (red === undefined) { red = 255; }\r\n        if (green === undefined) { green = 255; }\r\n        if (blue === undefined) { blue = 255; }\r\n        if (force === undefined) { force = false; }\r\n        if (callback === undefined) { callback = null; }\r\n        if (context === undefined) { context = this.camera.scene; }\r\n\r\n        if (!force && this.isRunning)\r\n        {\r\n            return this.camera;\r\n        }\r\n\r\n        this.isRunning = true;\r\n        this.duration = duration;\r\n        this.progress = 0;\r\n\r\n        this.red = red;\r\n        this.green = green;\r\n        this.blue = blue;\r\n\r\n        this._alpha = this.alpha;\r\n        this._elapsed = 0;\r\n\r\n        this._onUpdate = callback;\r\n        this._onUpdateScope = context;\r\n\r\n        this.camera.emit(Events.FLASH_START, this.camera, this, duration, red, green, blue);\r\n\r\n        return this.camera;\r\n    },\r\n\r\n    /**\r\n     * The main update loop for this effect. Called automatically by the Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Flash#update\r\n     * @since 3.5.0\r\n     *\r\n     * @param {number} time - The current timestamp as generated by the Request Animation Frame or SetTimeout.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    update: function (time, delta)\r\n    {\r\n        if (!this.isRunning)\r\n        {\r\n            return;\r\n        }\r\n\r\n        this._elapsed += delta;\r\n\r\n        this.progress = Clamp(this._elapsed / this.duration, 0, 1);\r\n\r\n        if (this._onUpdate)\r\n        {\r\n            this._onUpdate.call(this._onUpdateScope, this.camera, this.progress);\r\n        }\r\n\r\n        if (this._elapsed < this.duration)\r\n        {\r\n            this.alpha = this._alpha * (1 - this.progress);\r\n        }\r\n        else\r\n        {\r\n            this.effectComplete();\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Called internally by the Canvas Renderer.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Flash#postRenderCanvas\r\n     * @since 3.5.0\r\n     *\r\n     * @param {CanvasRenderingContext2D} ctx - The Canvas context to render to.\r\n     *\r\n     * @return {boolean} `true` if the effect drew to the renderer, otherwise `false`.\r\n     */\r\n    postRenderCanvas: function (ctx)\r\n    {\r\n        if (!this.isRunning)\r\n        {\r\n            return false;\r\n        }\r\n\r\n        var camera = this.camera;\r\n\r\n        ctx.fillStyle = 'rgba(' + this.red + ',' + this.green + ',' + this.blue + ',' + this.alpha + ')';\r\n        ctx.fillRect(camera.x, camera.y, camera.width, camera.height);\r\n\r\n        return true;\r\n    },\r\n\r\n    /**\r\n     * Called internally by the WebGL Renderer.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Flash#postRenderWebGL\r\n     * @since 3.5.0\r\n     *\r\n     * @param {Phaser.Renderer.WebGL.Pipelines.MultiPipeline} pipeline - The WebGL Pipeline to render to. Must provide the `drawFillRect` method.\r\n     * @param {function} getTintFunction - A function that will return the gl safe tint colors.\r\n     *\r\n     * @return {boolean} `true` if the effect drew to the renderer, otherwise `false`.\r\n     */\r\n    postRenderWebGL: function (pipeline, getTintFunction)\r\n    {\r\n        if (!this.isRunning)\r\n        {\r\n            return false;\r\n        }\r\n\r\n        var camera = this.camera;\r\n        var red = this.red / 255;\r\n        var green = this.green / 255;\r\n        var blue = this.blue / 255;\r\n\r\n        pipeline.drawFillRect(\r\n            camera.x, camera.y, camera.width, camera.height,\r\n            getTintFunction(blue, green, red, 1),\r\n            this.alpha\r\n        );\r\n\r\n        return true;\r\n    },\r\n\r\n    /**\r\n     * Called internally when the effect completes.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Flash#effectComplete\r\n     * @fires Phaser.Cameras.Scene2D.Events#FLASH_COMPLETE\r\n     * @since 3.5.0\r\n     */\r\n    effectComplete: function ()\r\n    {\r\n        this.alpha = this._alpha;\r\n        this._onUpdate = null;\r\n        this._onUpdateScope = null;\r\n\r\n        this.isRunning = false;\r\n\r\n        this.camera.emit(Events.FLASH_COMPLETE, this.camera, this);\r\n    },\r\n\r\n    /**\r\n     * Resets this camera effect.\r\n     * If it was previously running, it stops instantly without calling its onComplete callback or emitting an event.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Flash#reset\r\n     * @since 3.5.0\r\n     */\r\n    reset: function ()\r\n    {\r\n        this.isRunning = false;\r\n\r\n        this._onUpdate = null;\r\n        this._onUpdateScope = null;\r\n    },\r\n\r\n    /**\r\n     * Destroys this effect, releasing it from the Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Flash#destroy\r\n     * @since 3.5.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.reset();\r\n\r\n        this.camera = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Flash;\r\n\n\n/***/ }),\n\n/***/ 20359:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Clamp = __webpack_require__(45319);\r\nvar Class = __webpack_require__(83419);\r\nvar EaseMap = __webpack_require__(62640);\r\nvar Events = __webpack_require__(19715);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * A Camera Pan effect.\r\n *\r\n * This effect will scroll the Camera so that the center of its viewport finishes at the given destination,\r\n * over the duration and with the ease specified.\r\n *\r\n * Only the camera scroll is moved. None of the objects it is displaying are impacted, i.e. their positions do\r\n * not change.\r\n *\r\n * The effect will dispatch several events on the Camera itself and you can also specify an `onUpdate` callback,\r\n * which is invoked each frame for the duration of the effect if required.\r\n *\r\n * @class Pan\r\n * @memberof Phaser.Cameras.Scene2D.Effects\r\n * @constructor\r\n * @since 3.11.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera this effect is acting upon.\r\n */\r\nvar Pan = new Class({\r\n\r\n    initialize:\r\n\r\n    function Pan (camera)\r\n    {\r\n        /**\r\n         * The Camera this effect belongs to.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Pan#camera\r\n         * @type {Phaser.Cameras.Scene2D.Camera}\r\n         * @readonly\r\n         * @since 3.11.0\r\n         */\r\n        this.camera = camera;\r\n\r\n        /**\r\n         * Is this effect actively running?\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Pan#isRunning\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @default false\r\n         * @since 3.11.0\r\n         */\r\n        this.isRunning = false;\r\n\r\n        /**\r\n         * The duration of the effect, in milliseconds.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Pan#duration\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 0\r\n         * @since 3.11.0\r\n         */\r\n        this.duration = 0;\r\n\r\n        /**\r\n         * The starting scroll coordinates to pan the camera from.\r\n         * \r\n         * @name Phaser.Cameras.Scene2D.Effects.Pan#source\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.11.0\r\n         */\r\n        this.source = new Vector2();\r\n\r\n        /**\r\n         * The constantly updated value based on zoom.\r\n         * \r\n         * @name Phaser.Cameras.Scene2D.Effects.Pan#current\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.11.0\r\n         */\r\n        this.current = new Vector2();\r\n\r\n        /**\r\n         * The destination scroll coordinates to pan the camera to.\r\n         * \r\n         * @name Phaser.Cameras.Scene2D.Effects.Pan#destination\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.11.0\r\n         */\r\n        this.destination = new Vector2();\r\n\r\n        /**\r\n         * The ease function to use during the pan.\r\n         * \r\n         * @name Phaser.Cameras.Scene2D.Effects.Pan#ease\r\n         * @type {function}\r\n         * @since 3.11.0\r\n         */\r\n        this.ease;\r\n\r\n        /**\r\n         * If this effect is running this holds the current percentage of the progress, a value between 0 and 1.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Pan#progress\r\n         * @type {number}\r\n         * @since 3.11.0\r\n         */\r\n        this.progress = 0;\r\n\r\n        /**\r\n         * Effect elapsed timer.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Pan#_elapsed\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.11.0\r\n         */\r\n        this._elapsed = 0;\r\n\r\n        /**\r\n         * This callback is invoked every frame for the duration of the effect.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Pan#_onUpdate\r\n         * @type {?Phaser.Types.Cameras.Scene2D.CameraPanCallback}\r\n         * @private\r\n         * @default null\r\n         * @since 3.11.0\r\n         */\r\n        this._onUpdate;\r\n\r\n        /**\r\n         * On Complete callback scope.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Pan#_onUpdateScope\r\n         * @type {any}\r\n         * @private\r\n         * @since 3.11.0\r\n         */\r\n        this._onUpdateScope;\r\n    },\r\n\r\n    /**\r\n     * This effect will scroll the Camera so that the center of its viewport finishes at the given destination,\r\n     * over the duration and with the ease specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Pan#start\r\n     * @fires Phaser.Cameras.Scene2D.Events#PAN_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#PAN_COMPLETE\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} x - The destination x coordinate to scroll the center of the Camera viewport to.\r\n     * @param {number} y - The destination y coordinate to scroll the center of the Camera viewport to.\r\n     * @param {number} [duration=1000] - The duration of the effect in milliseconds.\r\n     * @param {(string|function)} [ease='Linear'] - The ease to use for the pan. Can be any of the Phaser Easing constants or a custom function.\r\n     * @param {boolean} [force=false] - Force the pan effect to start immediately, even if already running.\r\n     * @param {Phaser.Types.Cameras.Scene2D.CameraPanCallback} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent four arguments: A reference to the camera, a progress amount between 0 and 1 indicating how complete the effect is,\r\n     * the current camera scroll x coordinate and the current camera scroll y coordinate.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {Phaser.Cameras.Scene2D.Camera} The Camera on which the effect was started.\r\n     */\r\n    start: function (x, y, duration, ease, force, callback, context)\r\n    {\r\n        if (duration === undefined) { duration = 1000; }\r\n        if (ease === undefined) { ease = EaseMap.Linear; }\r\n        if (force === undefined) { force = false; }\r\n        if (callback === undefined) { callback = null; }\r\n        if (context === undefined) { context = this.camera.scene; }\r\n\r\n        var cam = this.camera;\r\n\r\n        if (!force && this.isRunning)\r\n        {\r\n            return cam;\r\n        }\r\n\r\n        this.isRunning = true;\r\n        this.duration = duration;\r\n        this.progress = 0;\r\n\r\n        //  Starting from\r\n        this.source.set(cam.scrollX, cam.scrollY);\r\n\r\n        //  Destination\r\n        this.destination.set(x, y);\r\n\r\n        //  Zoom factored version\r\n        cam.getScroll(x, y, this.current);\r\n\r\n        //  Using this ease\r\n        if (typeof ease === 'string' && EaseMap.hasOwnProperty(ease))\r\n        {\r\n            this.ease = EaseMap[ease];\r\n        }\r\n        else if (typeof ease === 'function')\r\n        {\r\n            this.ease = ease;\r\n        }\r\n\r\n        this._elapsed = 0;\r\n\r\n        this._onUpdate = callback;\r\n        this._onUpdateScope = context;\r\n\r\n        this.camera.emit(Events.PAN_START, this.camera, this, duration, x, y);\r\n\r\n        return cam;\r\n    },\r\n\r\n    /**\r\n     * The main update loop for this effect. Called automatically by the Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Pan#update\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} time - The current timestamp as generated by the Request Animation Frame or SetTimeout.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    update: function (time, delta)\r\n    {\r\n        if (!this.isRunning)\r\n        {\r\n            return;\r\n        }\r\n\r\n        this._elapsed += delta;\r\n\r\n        var progress = Clamp(this._elapsed / this.duration, 0, 1);\r\n\r\n        this.progress = progress;\r\n\r\n        var cam = this.camera;\r\n\r\n        if (this._elapsed < this.duration)\r\n        {\r\n            var v = this.ease(progress);\r\n\r\n            cam.getScroll(this.destination.x, this.destination.y, this.current);\r\n\r\n            var x = this.source.x + ((this.current.x - this.source.x) * v);\r\n            var y = this.source.y + ((this.current.y - this.source.y) * v);\r\n\r\n            cam.setScroll(x, y);\r\n\r\n            if (this._onUpdate)\r\n            {\r\n                this._onUpdate.call(this._onUpdateScope, cam, progress, x, y);\r\n            }\r\n        }\r\n        else\r\n        {\r\n            cam.centerOn(this.destination.x, this.destination.y);\r\n\r\n            if (this._onUpdate)\r\n            {\r\n                this._onUpdate.call(this._onUpdateScope, cam, progress, cam.scrollX, cam.scrollY);\r\n            }\r\n    \r\n            this.effectComplete();\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Called internally when the effect completes.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Pan#effectComplete\r\n     * @fires Phaser.Cameras.Scene2D.Events#PAN_COMPLETE\r\n     * @since 3.11.0\r\n     */\r\n    effectComplete: function ()\r\n    {\r\n        this._onUpdate = null;\r\n        this._onUpdateScope = null;\r\n\r\n        this.isRunning = false;\r\n\r\n        this.camera.emit(Events.PAN_COMPLETE, this.camera, this);\r\n    },\r\n\r\n    /**\r\n     * Resets this camera effect.\r\n     * If it was previously running, it stops instantly without calling its onComplete callback or emitting an event.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Pan#reset\r\n     * @since 3.11.0\r\n     */\r\n    reset: function ()\r\n    {\r\n        this.isRunning = false;\r\n\r\n        this._onUpdate = null;\r\n        this._onUpdateScope = null;\r\n    },\r\n\r\n    /**\r\n     * Destroys this effect, releasing it from the Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Pan#destroy\r\n     * @since 3.11.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.reset();\r\n\r\n        this.camera = null;\r\n        this.source = null;\r\n        this.destination = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Pan;\r\n\n\n/***/ }),\n\n/***/ 34208:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Jason Nicholls <nicholls.jason@gmail.com>\r\n * @copyright    2018 Photon Storm Ltd.\r\n * @license      {@link https://github.com/photonstorm/phaser/blob/master/license.txt|MIT License}\r\n */\r\n\r\nvar Clamp = __webpack_require__(45319);\r\nvar Class = __webpack_require__(83419);\r\nvar Events = __webpack_require__(19715);\r\nvar EaseMap = __webpack_require__(62640);\r\n\r\n/**\r\n * @classdesc\r\n * A Camera Rotate effect.\r\n *\r\n * This effect will rotate the Camera so that the its viewport finishes at the given angle in radians,\r\n * over the duration and with the ease specified.\r\n * \r\n * Camera rotation always takes place based on the Camera viewport. By default, rotation happens\r\n * in the center of the viewport. You can adjust this with the `originX` and `originY` properties.\r\n *\r\n * Rotation influences the rendering of _all_ Game Objects visible by this Camera. However, it does not\r\n * rotate the Camera viewport itself, which always remains an axis-aligned rectangle.\r\n *\r\n * Only the camera is rotates. None of the objects it is displaying are impacted, i.e. their positions do\r\n * not change.\r\n *\r\n * The effect will dispatch several events on the Camera itself and you can also specify an `onUpdate` callback,\r\n * which is invoked each frame for the duration of the effect if required.\r\n *\r\n * @class RotateTo\r\n * @memberof Phaser.Cameras.Scene2D.Effects\r\n * @constructor\r\n * @since 3.23.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera this effect is acting upon.\r\n */\r\nvar RotateTo = new Class({\r\n\r\n    initialize:\r\n\r\n    function RotateTo (camera)\r\n    {\r\n        /**\r\n         * The Camera this effect belongs to.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.RotateTo#camera\r\n         * @type {Phaser.Cameras.Scene2D.Camera}\r\n         * @readonly\r\n         * @since 3.23.0\r\n         */\r\n        this.camera = camera;\r\n\r\n        /**\r\n         * Is this effect actively running?\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.RotateTo#isRunning\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @default false\r\n         * @since 3.23.0\r\n         */\r\n        this.isRunning = false;\r\n\r\n        /**\r\n         * The duration of the effect, in milliseconds.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.RotateTo#duration\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 0\r\n         * @since 3.23.0\r\n         */\r\n        this.duration = 0;\r\n\r\n        /**\r\n         * The starting angle to rotate the camera from.\r\n         * \r\n         * @name Phaser.Cameras.Scene2D.Effects.RotateTo#source\r\n         * @type {number}\r\n         * @since 3.23.0\r\n         */\r\n        this.source = 0;\r\n\r\n        /**\r\n         * The constantly updated value based on the force.\r\n         * \r\n         * @name Phaser.Cameras.Scene2D.Effects.RotateTo#current\r\n         * @type {number}\r\n         * @since 3.23.0\r\n         */\r\n        this.current = 0;\r\n\r\n        /**\r\n         * The destination angle in radians to rotate the camera to.\r\n         * \r\n         * @name Phaser.Cameras.Scene2D.Effects.RotateTo#destination\r\n         * @type {number}\r\n         * @since 3.23.0\r\n         */\r\n        this.destination = 0;\r\n\r\n        /**\r\n         * The ease function to use during the Rotate.\r\n         * \r\n         * @name Phaser.Cameras.Scene2D.Effects.RotateTo#ease\r\n         * @type {function}\r\n         * @since 3.23.0\r\n         */\r\n        this.ease;\r\n\r\n        /**\r\n         * If this effect is running this holds the current percentage of the progress, a value between 0 and 1.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.RotateTo#progress\r\n         * @type {number}\r\n         * @since 3.23.0\r\n         */\r\n        this.progress = 0;\r\n\r\n        /**\r\n         * Effect elapsed timer.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.RotateTo#_elapsed\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.23.0\r\n         */\r\n        this._elapsed = 0;\r\n\r\n        /**\r\n         * @callback CameraRotateCallback\r\n         *\r\n         * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera on which the effect is running.\r\n         * @param {number} progress - The progress of the effect. A value between 0 and 1.\r\n         * @param {number} angle - The Camera's new angle in radians.\r\n         */\r\n\r\n        /**\r\n         * This callback is invoked every frame for the duration of the effect.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.RotateTo#_onUpdate\r\n         * @type {?CameraRotateCallback}\r\n         * @private\r\n         * @default null\r\n         * @since 3.23.0\r\n         */\r\n        this._onUpdate;\r\n\r\n        /**\r\n         * On Complete callback scope.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.RotateTo#_onUpdateScope\r\n         * @type {any}\r\n         * @private\r\n         * @since 3.23.0\r\n         */\r\n        this._onUpdateScope;\r\n\r\n        /**\r\n         * The direction of the rotation.\r\n         * \r\n         * @name Phaser.Cameras.Scene2D.Effects.RotateTo#clockwise\r\n         * @type {boolean}\r\n         * @since 3.23.0\r\n         */\r\n        this.clockwise = true;\r\n\r\n        /**\r\n         * The shortest direction to the target rotation.\r\n         * \r\n         * @name Phaser.Cameras.Scene2D.Effects.RotateTo#shortestPath\r\n         * @type {boolean}\r\n         * @since 3.23.0\r\n         */\r\n        this.shortestPath = false;\r\n    },\r\n\r\n    /**\r\n     * This effect will scroll the Camera so that the center of its viewport finishes at the given angle,\r\n     * over the duration and with the ease specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.RotateTo#start\r\n     * @fires Phaser.Cameras.Scene2D.Events#ROTATE_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#ROTATE_COMPLETE\r\n     * @since 3.23.0\r\n     *\r\n     * @param {number} radians - The destination angle in radians to rotate the Camera viewport to. If the angle is positive then the rotation is clockwise else anticlockwise\r\n     * @param {boolean} [shortestPath=false] - If shortest path is set to true the camera will rotate in the quickest direction clockwise or anti-clockwise.\r\n     * @param {number} [duration=1000] - The duration of the effect in milliseconds.\r\n     * @param {(string|function)} [ease='Linear'] - The ease to use for the Rotate. Can be any of the Phaser Easing constants or a custom function.\r\n     * @param {boolean} [force=false] - Force the rotation effect to start immediately, even if already running.\r\n     * @param {CameraRotateCallback} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent four arguments: A reference to the camera, a progress amount between 0 and 1 indicating how complete the effect is,\r\n     * the current camera scroll x coordinate and the current camera scroll y coordinate.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {Phaser.Cameras.Scene2D.Camera} The Camera on which the effect was started.\r\n     */\r\n    start: function (radians, shortestPath, duration, ease, force, callback, context)\r\n    {\r\n        if (duration === undefined) { duration = 1000; }\r\n        if (ease === undefined) { ease = EaseMap.Linear; }\r\n        if (force === undefined) { force = false; }\r\n        if (callback === undefined) { callback = null; }\r\n        if (context === undefined) { context = this.camera.scene; }\r\n        if (shortestPath === undefined) { shortestPath = false; }\r\n\r\n        this.shortestPath = shortestPath;\r\n\r\n        var tmpDestination = radians;\r\n\r\n        if (radians < 0)\r\n        {\r\n            tmpDestination = -1 * radians;\r\n            this.clockwise = false;\r\n        }\r\n        else\r\n        {\r\n            this.clockwise = true;\r\n        }\r\n\r\n        var maxRad = (360 * Math.PI) / 180;\r\n\r\n        tmpDestination = tmpDestination - (Math.floor(tmpDestination / maxRad) * maxRad);\r\n\r\n        var cam = this.camera;\r\n\r\n        if (!force && this.isRunning)\r\n        {\r\n            return cam;\r\n        }\r\n\r\n        this.isRunning = true;\r\n        this.duration = duration;\r\n        this.progress = 0;\r\n\r\n        //  Starting from\r\n        this.source = cam.rotation;\r\n\r\n        //  Destination\r\n        this.destination = tmpDestination;\r\n\r\n        //  Using this ease\r\n        if (typeof ease === 'string' && EaseMap.hasOwnProperty(ease))\r\n        {\r\n            this.ease = EaseMap[ease];\r\n        }\r\n        else if (typeof ease === 'function')\r\n        {\r\n            this.ease = ease;\r\n        }\r\n\r\n        this._elapsed = 0;\r\n\r\n        this._onUpdate = callback;\r\n        this._onUpdateScope = context;\r\n\r\n\r\n        if (this.shortestPath)\r\n        {\r\n            // The shortest path is true so calculate the quickest direction\r\n            var cwDist = 0;\r\n            var acwDist = 0;\r\n\r\n            if (this.destination > this.source)\r\n            {\r\n                cwDist = Math.abs(this.destination - this.source);\r\n            }\r\n            else\r\n            {\r\n                cwDist = (Math.abs(this.destination + maxRad) - this.source);\r\n            }\r\n\r\n            if (this.source > this.destination)\r\n            {\r\n                acwDist = Math.abs(this.source - this.destination);\r\n            }\r\n            else\r\n            {\r\n                acwDist = (Math.abs(this.source + maxRad) - this.destination);\r\n            }\r\n\r\n            if (cwDist < acwDist)\r\n            {\r\n                this.clockwise = true;\r\n            }\r\n            else if (cwDist > acwDist)\r\n            {\r\n                this.clockwise = false;\r\n            }\r\n        }\r\n\r\n        this.camera.emit(Events.ROTATE_START, this.camera, this, duration, tmpDestination);\r\n\r\n        return cam;\r\n    },\r\n\r\n    /**\r\n     * The main update loop for this effect. Called automatically by the Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.RotateTo#update\r\n     * @since 3.23.0\r\n     *\r\n     * @param {number} time - The current timestamp as generated by the Request Animation Frame or SetTimeout.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    update: function (time, delta)\r\n    {\r\n        if (!this.isRunning)\r\n        {\r\n            return;\r\n        }\r\n\r\n        this._elapsed += delta;\r\n\r\n        var progress = Clamp(this._elapsed / this.duration, 0, 1);\r\n\r\n        this.progress = progress;\r\n\r\n        var cam = this.camera;\r\n\r\n        if (this._elapsed < this.duration)\r\n        {\r\n            var v = this.ease(progress);\r\n\r\n            this.current = cam.rotation;\r\n            var distance = 0;\r\n            var maxRad = (360 * Math.PI) / 180;\r\n            var target = this.destination;\r\n            var current = this.current;\r\n\r\n            if (this.clockwise === false)\r\n            {\r\n                target = this.current;\r\n                current = this.destination;\r\n            }\r\n\r\n            if (target >= current)\r\n            {\r\n                distance = Math.abs(target - current);\r\n            }\r\n            else\r\n            {\r\n                distance = (Math.abs(target + maxRad) - current);\r\n            }\r\n\r\n            var r = 0;\r\n\r\n            if (this.clockwise)\r\n            {\r\n                r = (cam.rotation + (distance * v));\r\n            }\r\n            else\r\n            {\r\n                r = (cam.rotation - (distance * v));\r\n            }\r\n\r\n            cam.rotation = r;\r\n\r\n            if (this._onUpdate)\r\n            {\r\n                this._onUpdate.call(this._onUpdateScope, cam, progress, r);\r\n            }\r\n        }\r\n        else\r\n        {\r\n            cam.rotation = this.destination;\r\n\r\n            if (this._onUpdate)\r\n            {\r\n                this._onUpdate.call(this._onUpdateScope, cam, progress, this.destination);\r\n            }\r\n    \r\n            this.effectComplete();\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Called internally when the effect completes.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.RotateTo#effectComplete\r\n     * @since 3.23.0\r\n     */\r\n    effectComplete: function ()\r\n    {\r\n        this._onUpdate = null;\r\n        this._onUpdateScope = null;\r\n\r\n        this.isRunning = false;\r\n\r\n        this.camera.emit(Events.ROTATE_COMPLETE, this.camera, this);\r\n    },\r\n\r\n    /**\r\n     * Resets this camera effect.\r\n     * If it was previously running, it stops instantly without calling its onComplete callback or emitting an event.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.RotateTo#reset\r\n     * @since 3.23.0\r\n     */\r\n    reset: function ()\r\n    {\r\n        this.isRunning = false;\r\n\r\n        this._onUpdate = null;\r\n        this._onUpdateScope = null;\r\n    },\r\n\r\n    /**\r\n     * Destroys this effect, releasing it from the Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.RotateTo#destroy\r\n     * @since 3.23.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.reset();\r\n\r\n        this.camera = null;\r\n        this.source = null;\r\n        this.destination = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = RotateTo;\r\n\n\n/***/ }),\n\n/***/ 30330:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Clamp = __webpack_require__(45319);\r\nvar Class = __webpack_require__(83419);\r\nvar Events = __webpack_require__(19715);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * A Camera Shake effect.\r\n *\r\n * This effect will shake the camera viewport by a random amount, bounded by the specified intensity, each frame.\r\n *\r\n * Only the camera viewport is moved. None of the objects it is displaying are impacted, i.e. their positions do\r\n * not change.\r\n *\r\n * The effect will dispatch several events on the Camera itself and you can also specify an `onUpdate` callback,\r\n * which is invoked each frame for the duration of the effect if required.\r\n *\r\n * @class Shake\r\n * @memberof Phaser.Cameras.Scene2D.Effects\r\n * @constructor\r\n * @since 3.5.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera this effect is acting upon.\r\n */\r\nvar Shake = new Class({\r\n\r\n    initialize:\r\n\r\n    function Shake (camera)\r\n    {\r\n        /**\r\n         * The Camera this effect belongs to.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Shake#camera\r\n         * @type {Phaser.Cameras.Scene2D.Camera}\r\n         * @readonly\r\n         * @since 3.5.0\r\n         */\r\n        this.camera = camera;\r\n\r\n        /**\r\n         * Is this effect actively running?\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Shake#isRunning\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @default false\r\n         * @since 3.5.0\r\n         */\r\n        this.isRunning = false;\r\n\r\n        /**\r\n         * The duration of the effect, in milliseconds.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Shake#duration\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 0\r\n         * @since 3.5.0\r\n         */\r\n        this.duration = 0;\r\n\r\n        /**\r\n         * The intensity of the effect. Use small float values. The default when the effect starts is 0.05.\r\n         * This is a Vector2 object, allowing you to control the shake intensity independently across x and y.\r\n         * You can modify this value while the effect is active to create more varied shake effects.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Shake#intensity\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.5.0\r\n         */\r\n        this.intensity = new Vector2();\r\n\r\n        /**\r\n         * If this effect is running this holds the current percentage of the progress, a value between 0 and 1.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Shake#progress\r\n         * @type {number}\r\n         * @since 3.5.0\r\n         */\r\n        this.progress = 0;\r\n\r\n        /**\r\n         * Effect elapsed timer.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Shake#_elapsed\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this._elapsed = 0;\r\n\r\n        /**\r\n         * How much to offset the camera by horizontally.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Shake#_offsetX\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._offsetX = 0;\r\n\r\n        /**\r\n         * How much to offset the camera by vertically.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Shake#_offsetY\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._offsetY = 0;\r\n\r\n        /**\r\n         * This callback is invoked every frame for the duration of the effect.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Shake#_onUpdate\r\n         * @type {?Phaser.Types.Cameras.Scene2D.CameraShakeCallback}\r\n         * @private\r\n         * @default null\r\n         * @since 3.5.0\r\n         */\r\n        this._onUpdate;\r\n\r\n        /**\r\n         * On Complete callback scope.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Shake#_onUpdateScope\r\n         * @type {any}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this._onUpdateScope;\r\n    },\r\n\r\n    /**\r\n     * Shakes the Camera by the given intensity over the duration specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Shake#start\r\n     * @fires Phaser.Cameras.Scene2D.Events#SHAKE_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#SHAKE_COMPLETE\r\n     * @since 3.5.0\r\n     *\r\n     * @param {number} [duration=100] - The duration of the effect in milliseconds.\r\n     * @param {(number|Phaser.Math.Vector2)} [intensity=0.05] - The intensity of the shake.\r\n     * @param {boolean} [force=false] - Force the shake effect to start immediately, even if already running.\r\n     * @param {Phaser.Types.Cameras.Scene2D.CameraShakeCallback} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent two arguments: A reference to the camera and a progress amount between 0 and 1 indicating how complete the effect is.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {Phaser.Cameras.Scene2D.Camera} The Camera on which the effect was started.\r\n     */\r\n    start: function (duration, intensity, force, callback, context)\r\n    {\r\n        if (duration === undefined) { duration = 100; }\r\n        if (intensity === undefined) { intensity = 0.05; }\r\n        if (force === undefined) { force = false; }\r\n        if (callback === undefined) { callback = null; }\r\n        if (context === undefined) { context = this.camera.scene; }\r\n\r\n        if (!force && this.isRunning)\r\n        {\r\n            return this.camera;\r\n        }\r\n\r\n        this.isRunning = true;\r\n        this.duration = duration;\r\n        this.progress = 0;\r\n\r\n        if (typeof intensity === 'number')\r\n        {\r\n            this.intensity.set(intensity);\r\n        }\r\n        else\r\n        {\r\n            this.intensity.set(intensity.x, intensity.y);\r\n        }\r\n\r\n        this._elapsed = 0;\r\n        this._offsetX = 0;\r\n        this._offsetY = 0;\r\n\r\n        this._onUpdate = callback;\r\n        this._onUpdateScope = context;\r\n\r\n        this.camera.emit(Events.SHAKE_START, this.camera, this, duration, intensity);\r\n\r\n        return this.camera;\r\n    },\r\n\r\n    /**\r\n     * The pre-render step for this effect. Called automatically by the Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Shake#preRender\r\n     * @since 3.5.0\r\n     */\r\n    preRender: function ()\r\n    {\r\n        if (this.isRunning)\r\n        {\r\n            this.camera.matrix.translate(this._offsetX, this._offsetY);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * The main update loop for this effect. Called automatically by the Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Shake#update\r\n     * @since 3.5.0\r\n     *\r\n     * @param {number} time - The current timestamp as generated by the Request Animation Frame or SetTimeout.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    update: function (time, delta)\r\n    {\r\n        if (!this.isRunning)\r\n        {\r\n            return;\r\n        }\r\n\r\n        this._elapsed += delta;\r\n\r\n        this.progress = Clamp(this._elapsed / this.duration, 0, 1);\r\n\r\n        if (this._onUpdate)\r\n        {\r\n            this._onUpdate.call(this._onUpdateScope, this.camera, this.progress);\r\n        }\r\n\r\n        if (this._elapsed < this.duration)\r\n        {\r\n            var intensity = this.intensity;\r\n            var width = this.camera.width;\r\n            var height = this.camera.height;\r\n            var zoom = this.camera.zoom;\r\n\r\n            this._offsetX = (Math.random() * intensity.x * width * 2 - intensity.x * width) * zoom;\r\n            this._offsetY = (Math.random() * intensity.y * height * 2 - intensity.y * height) * zoom;\r\n\r\n            if (this.camera.roundPixels)\r\n            {\r\n                this._offsetX = Math.round(this._offsetX);\r\n                this._offsetY = Math.round(this._offsetY);\r\n            }\r\n        }\r\n        else\r\n        {\r\n            this.effectComplete();\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Called internally when the effect completes.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Shake#effectComplete\r\n     * @fires Phaser.Cameras.Scene2D.Events#SHAKE_COMPLETE\r\n     * @since 3.5.0\r\n     */\r\n    effectComplete: function ()\r\n    {\r\n        this._offsetX = 0;\r\n        this._offsetY = 0;\r\n\r\n        this._onUpdate = null;\r\n        this._onUpdateScope = null;\r\n\r\n        this.isRunning = false;\r\n\r\n        this.camera.emit(Events.SHAKE_COMPLETE, this.camera, this);\r\n    },\r\n\r\n    /**\r\n     * Resets this camera effect.\r\n     * If it was previously running, it stops instantly without calling its onComplete callback or emitting an event.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Shake#reset\r\n     * @since 3.5.0\r\n     */\r\n    reset: function ()\r\n    {\r\n        this.isRunning = false;\r\n\r\n        this._offsetX = 0;\r\n        this._offsetY = 0;\r\n\r\n        this._onUpdate = null;\r\n        this._onUpdateScope = null;\r\n    },\r\n\r\n    /**\r\n     * Destroys this effect, releasing it from the Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Shake#destroy\r\n     * @since 3.5.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.reset();\r\n\r\n        this.camera = null;\r\n        this.intensity = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Shake;\r\n\n\n/***/ }),\n\n/***/ 45641:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Clamp = __webpack_require__(45319);\r\nvar Class = __webpack_require__(83419);\r\nvar EaseMap = __webpack_require__(62640);\r\nvar Events = __webpack_require__(19715);\r\n\r\n/**\r\n * @classdesc\r\n * A Camera Zoom effect.\r\n *\r\n * This effect will zoom the Camera to the given scale, over the duration and with the ease specified.\r\n *\r\n * The effect will dispatch several events on the Camera itself and you can also specify an `onUpdate` callback,\r\n * which is invoked each frame for the duration of the effect if required.\r\n *\r\n * @class Zoom\r\n * @memberof Phaser.Cameras.Scene2D.Effects\r\n * @constructor\r\n * @since 3.11.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera this effect is acting upon.\r\n */\r\nvar Zoom = new Class({\r\n\r\n    initialize:\r\n\r\n    function Zoom (camera)\r\n    {\r\n        /**\r\n         * The Camera this effect belongs to.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Zoom#camera\r\n         * @type {Phaser.Cameras.Scene2D.Camera}\r\n         * @readonly\r\n         * @since 3.11.0\r\n         */\r\n        this.camera = camera;\r\n\r\n        /**\r\n         * Is this effect actively running?\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Zoom#isRunning\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @default false\r\n         * @since 3.11.0\r\n         */\r\n        this.isRunning = false;\r\n\r\n        /**\r\n         * The duration of the effect, in milliseconds.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Zoom#duration\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 0\r\n         * @since 3.11.0\r\n         */\r\n        this.duration = 0;\r\n\r\n        /**\r\n         * The starting zoom value;\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Zoom#source\r\n         * @type {number}\r\n         * @since 3.11.0\r\n         */\r\n        this.source = 1;\r\n\r\n        /**\r\n         * The destination zoom value.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Zoom#destination\r\n         * @type {number}\r\n         * @since 3.11.0\r\n         */\r\n        this.destination = 1;\r\n\r\n        /**\r\n         * The ease function to use during the zoom.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Zoom#ease\r\n         * @type {function}\r\n         * @since 3.11.0\r\n         */\r\n        this.ease;\r\n\r\n        /**\r\n         * If this effect is running this holds the current percentage of the progress, a value between 0 and 1.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Zoom#progress\r\n         * @type {number}\r\n         * @since 3.11.0\r\n         */\r\n        this.progress = 0;\r\n\r\n        /**\r\n         * Effect elapsed timer.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Zoom#_elapsed\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.11.0\r\n         */\r\n        this._elapsed = 0;\r\n\r\n        /**\r\n         * This callback is invoked every frame for the duration of the effect.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Zoom#_onUpdate\r\n         * @type {?Phaser.Types.Cameras.Scene2D.CameraZoomCallback}\r\n         * @private\r\n         * @default null\r\n         * @since 3.11.0\r\n         */\r\n        this._onUpdate;\r\n\r\n        /**\r\n         * On Complete callback scope.\r\n         *\r\n         * @name Phaser.Cameras.Scene2D.Effects.Zoom#_onUpdateScope\r\n         * @type {any}\r\n         * @private\r\n         * @since 3.11.0\r\n         */\r\n        this._onUpdateScope;\r\n    },\r\n\r\n    /**\r\n     * This effect will zoom the Camera to the given scale, over the duration and with the ease specified.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Zoom#start\r\n     * @fires Phaser.Cameras.Scene2D.Events#ZOOM_START\r\n     * @fires Phaser.Cameras.Scene2D.Events#ZOOM_COMPLETE\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} zoom - The target Camera zoom value.\r\n     * @param {number} [duration=1000] - The duration of the effect in milliseconds.\r\n     * @param {(string|function)} [ease='Linear'] - The ease to use for the Zoom. Can be any of the Phaser Easing constants or a custom function.\r\n     * @param {boolean} [force=false] - Force the zoom effect to start immediately, even if already running.\r\n     * @param {Phaser.Types.Cameras.Scene2D.CameraZoomCallback} [callback] - This callback will be invoked every frame for the duration of the effect.\r\n     * It is sent three arguments: A reference to the camera, a progress amount between 0 and 1 indicating how complete the effect is,\r\n     * and the current camera zoom value.\r\n     * @param {any} [context] - The context in which the callback is invoked. Defaults to the Scene to which the Camera belongs.\r\n     *\r\n     * @return {Phaser.Cameras.Scene2D.Camera} The Camera on which the effect was started.\r\n     */\r\n    start: function (zoom, duration, ease, force, callback, context)\r\n    {\r\n        if (duration === undefined) { duration = 1000; }\r\n        if (ease === undefined) { ease = EaseMap.Linear; }\r\n        if (force === undefined) { force = false; }\r\n        if (callback === undefined) { callback = null; }\r\n        if (context === undefined) { context = this.camera.scene; }\r\n\r\n        var cam = this.camera;\r\n\r\n        if (!force && this.isRunning)\r\n        {\r\n            return cam;\r\n        }\r\n\r\n        this.isRunning = true;\r\n        this.duration = duration;\r\n        this.progress = 0;\r\n\r\n        //  Starting from\r\n        this.source = cam.zoom;\r\n\r\n        //  Zooming to\r\n        this.destination = zoom;\r\n\r\n        //  Using this ease\r\n        if (typeof ease === 'string' && EaseMap.hasOwnProperty(ease))\r\n        {\r\n            this.ease = EaseMap[ease];\r\n        }\r\n        else if (typeof ease === 'function')\r\n        {\r\n            this.ease = ease;\r\n        }\r\n\r\n        this._elapsed = 0;\r\n\r\n        this._onUpdate = callback;\r\n        this._onUpdateScope = context;\r\n\r\n        this.camera.emit(Events.ZOOM_START, this.camera, this, duration, zoom);\r\n\r\n        return cam;\r\n    },\r\n\r\n    /**\r\n     * The main update loop for this effect. Called automatically by the Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Zoom#update\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} time - The current timestamp as generated by the Request Animation Frame or SetTimeout.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    update: function (time, delta)\r\n    {\r\n        if (!this.isRunning)\r\n        {\r\n            return;\r\n        }\r\n\r\n        this._elapsed += delta;\r\n\r\n        this.progress = Clamp(this._elapsed / this.duration, 0, 1);\r\n\r\n        if (this._elapsed < this.duration)\r\n        {\r\n            this.camera.zoom = this.source + ((this.destination - this.source) * this.ease(this.progress));\r\n\r\n            if (this._onUpdate)\r\n            {\r\n                this._onUpdate.call(this._onUpdateScope, this.camera, this.progress, this.camera.zoom);\r\n            }\r\n        }\r\n        else\r\n        {\r\n            this.camera.zoom = this.destination;\r\n\r\n            if (this._onUpdate)\r\n            {\r\n                this._onUpdate.call(this._onUpdateScope, this.camera, this.progress, this.destination);\r\n            }\r\n\r\n            this.effectComplete();\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Called internally when the effect completes.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Zoom#effectComplete\r\n     * @fires Phaser.Cameras.Scene2D.Events#ZOOM_COMPLETE\r\n     * @since 3.11.0\r\n     */\r\n    effectComplete: function ()\r\n    {\r\n        this._onUpdate = null;\r\n        this._onUpdateScope = null;\r\n\r\n        this.isRunning = false;\r\n\r\n        this.camera.emit(Events.ZOOM_COMPLETE, this.camera, this);\r\n    },\r\n\r\n    /**\r\n     * Resets this camera effect.\r\n     * If it was previously running, it stops instantly without calling its onComplete callback or emitting an event.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Zoom#reset\r\n     * @since 3.11.0\r\n     */\r\n    reset: function ()\r\n    {\r\n        this.isRunning = false;\r\n\r\n        this._onUpdate = null;\r\n        this._onUpdateScope = null;\r\n    },\r\n\r\n    /**\r\n     * Destroys this effect, releasing it from the Camera.\r\n     *\r\n     * @method Phaser.Cameras.Scene2D.Effects.Zoom#destroy\r\n     * @since 3.11.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.reset();\r\n\r\n        this.camera = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Zoom;\r\n\n\n/***/ }),\n\n/***/ 20052:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Cameras.Scene2D.Effects\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    Fade: __webpack_require__(5020),\r\n    Flash: __webpack_require__(10662),\r\n    Pan: __webpack_require__(20359),\r\n    Shake: __webpack_require__(30330),\r\n    RotateTo: __webpack_require__(34208),\r\n    Zoom: __webpack_require__(45641)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 16438:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Destroy Camera Event.\r\n *\r\n * This event is dispatched by a Camera instance when it is destroyed by the Camera Manager.\r\n *\r\n * Listen for it via either of the following:\r\n *\r\n * ```js\r\n * this.cameras.main.on('cameradestroy', () => {});\r\n * ```\r\n *\r\n * or use the constant, to avoid having to remember the correct event string:\r\n *\r\n * ```js\r\n * this.cameras.main.on(Phaser.Cameras.Scene2D.Events.DESTROY, () => {});\r\n * ```\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#DESTROY\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.BaseCamera} camera - The camera that was destroyed.\r\n */\r\nmodule.exports = 'cameradestroy';\r\n\n\n/***/ }),\n\n/***/ 32726:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Fade In Complete Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Fade In Effect completes.\r\n *\r\n * Listen to it from a Camera instance using `Camera.on('camerafadeincomplete', listener)`.\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#FADE_IN_COMPLETE\r\n * @type {string}\r\n * @since 3.3.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.Fade} effect - A reference to the effect instance.\r\n */\r\nmodule.exports = 'camerafadeincomplete';\r\n\n\n/***/ }),\n\n/***/ 87807:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Fade In Start Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Fade In Effect starts.\r\n *\r\n * Listen to it from a Camera instance using `Camera.on('camerafadeinstart', listener)`.\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#FADE_IN_START\r\n * @type {string}\r\n * @since 3.3.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.Fade} effect - A reference to the effect instance.\r\n * @param {number} duration - The duration of the effect.\r\n * @param {number} red - The red color channel value.\r\n * @param {number} green - The green color channel value.\r\n * @param {number} blue - The blue color channel value.\r\n */\r\nmodule.exports = 'camerafadeinstart';\r\n\n\n/***/ }),\n\n/***/ 45917:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Fade Out Complete Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Fade Out Effect completes.\r\n *\r\n * Listen to it from a Camera instance using `Camera.on('camerafadeoutcomplete', listener)`.\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#FADE_OUT_COMPLETE\r\n * @type {string}\r\n * @since 3.3.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.Fade} effect - A reference to the effect instance.\r\n */\r\nmodule.exports = 'camerafadeoutcomplete';\r\n\n\n/***/ }),\n\n/***/ 95666:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Fade Out Start Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Fade Out Effect starts.\r\n *\r\n * Listen to it from a Camera instance using `Camera.on('camerafadeoutstart', listener)`.\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#FADE_OUT_START\r\n * @type {string}\r\n * @since 3.3.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.Fade} effect - A reference to the effect instance.\r\n * @param {number} duration - The duration of the effect.\r\n * @param {number} red - The red color channel value.\r\n * @param {number} green - The green color channel value.\r\n * @param {number} blue - The blue color channel value.\r\n */\r\nmodule.exports = 'camerafadeoutstart';\r\n\n\n/***/ }),\n\n/***/ 47056:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Flash Complete Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Flash Effect completes.\r\n *\r\n * Listen for it via either of the following:\r\n *\r\n * ```js\r\n * this.cameras.main.on('cameraflashcomplete', () => {});\r\n * ```\r\n *\r\n * or use the constant, to avoid having to remember the correct event string:\r\n *\r\n * ```js\r\n * this.cameras.main.on(Phaser.Cameras.Scene2D.Events.FLASH_COMPLETE, () => {});\r\n * ```\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#FLASH_COMPLETE\r\n * @type {string}\r\n * @since 3.3.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.Flash} effect - A reference to the effect instance.\r\n */\r\nmodule.exports = 'cameraflashcomplete';\r\n\n\n/***/ }),\n\n/***/ 91261:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Flash Start Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Flash Effect starts.\r\n *\r\n * Listen for it via either of the following:\r\n *\r\n * ```js\r\n * this.cameras.main.on('cameraflashstart', () => {});\r\n * ```\r\n *\r\n * or use the constant, to avoid having to remember the correct event string:\r\n *\r\n * ```js\r\n * this.cameras.main.on(Phaser.Cameras.Scene2D.Events.FLASH_START, () => {});\r\n * ```\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#FLASH_START\r\n * @type {string}\r\n * @since 3.3.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.Flash} effect - A reference to the effect instance.\r\n * @param {number} duration - The duration of the effect.\r\n * @param {number} red - The red color channel value.\r\n * @param {number} green - The green color channel value.\r\n * @param {number} blue - The blue color channel value.\r\n */\r\nmodule.exports = 'cameraflashstart';\r\n\n\n/***/ }),\n\n/***/ 45047:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Follower Update Event.\r\n *\r\n * This event is dispatched by a Camera instance when it is following a\r\n * Game Object and the Camera position has been updated as a result of\r\n * that following.\r\n *\r\n * Listen to it from a Camera instance using: `camera.on('followupdate', listener)`.\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#FOLLOW_UPDATE\r\n * @type {string}\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.BaseCamera} camera - The camera that emitted the event.\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object the camera is following.\r\n */\r\nmodule.exports = 'followupdate';\r\n\n\n/***/ }),\n\n/***/ 81927:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Pan Complete Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Pan Effect completes.\r\n *\r\n * Listen for it via either of the following:\r\n *\r\n * ```js\r\n * this.cameras.main.on('camerapancomplete', () => {});\r\n * ```\r\n *\r\n * or use the constant, to avoid having to remember the correct event string:\r\n *\r\n * ```js\r\n * this.cameras.main.on(Phaser.Cameras.Scene2D.Events.PAN_COMPLETE, () => {});\r\n * ```\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#PAN_COMPLETE\r\n * @type {string}\r\n * @since 3.3.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.Pan} effect - A reference to the effect instance.\r\n */\r\nmodule.exports = 'camerapancomplete';\r\n\n\n/***/ }),\n\n/***/ 74264:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Pan Start Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Pan Effect starts.\r\n *\r\n * Listen for it via either of the following:\r\n *\r\n * ```js\r\n * this.cameras.main.on('camerapanstart', () => {});\r\n * ```\r\n *\r\n * or use the constant, to avoid having to remember the correct event string:\r\n *\r\n * ```js\r\n * this.cameras.main.on(Phaser.Cameras.Scene2D.Events.PAN_START, () => {});\r\n * ```\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#PAN_START\r\n * @type {string}\r\n * @since 3.3.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.Pan} effect - A reference to the effect instance.\r\n * @param {number} duration - The duration of the effect.\r\n * @param {number} x - The destination scroll x coordinate.\r\n * @param {number} y - The destination scroll y coordinate.\r\n */\r\nmodule.exports = 'camerapanstart';\r\n\n\n/***/ }),\n\n/***/ 54419:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Post-Render Event.\r\n *\r\n * This event is dispatched by a Camera instance after is has finished rendering.\r\n * It is only dispatched if the Camera is rendering to a texture.\r\n *\r\n * Listen to it from a Camera instance using: `camera.on('postrender', listener)`.\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#POST_RENDER\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.BaseCamera} camera - The camera that has finished rendering to a texture.\r\n */\r\nmodule.exports = 'postrender';\r\n\n\n/***/ }),\n\n/***/ 79330:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Pre-Render Event.\r\n *\r\n * This event is dispatched by a Camera instance when it is about to render.\r\n * It is only dispatched if the Camera is rendering to a texture.\r\n *\r\n * Listen to it from a Camera instance using: `camera.on('prerender', listener)`.\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#PRE_RENDER\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.BaseCamera} camera - The camera that is about to render to a texture.\r\n */\r\nmodule.exports = 'prerender';\r\n\n\n/***/ }),\n\n/***/ 93183:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Rotate Complete Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Rotate Effect completes.\r\n *\r\n * Listen for it via either of the following:\r\n *\r\n * ```js\r\n * this.cameras.main.on('camerarotatecomplete', () => {});\r\n * ```\r\n *\r\n * or use the constant, to avoid having to remember the correct event string:\r\n *\r\n * ```js\r\n * this.cameras.main.on(Phaser.Cameras.Scene2D.Events.ROTATE_COMPLETE, () => {});\r\n * ```\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#ROTATE_COMPLETE\r\n * @type {string}\r\n * @since 3.23.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.RotateTo} effect - A reference to the effect instance.\r\n */\r\nmodule.exports = 'camerarotatecomplete';\r\n\n\n/***/ }),\n\n/***/ 80112:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Rotate Start Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Rotate Effect starts.\r\n *\r\n * Listen for it via either of the following:\r\n *\r\n * ```js\r\n * this.cameras.main.on('camerarotatestart', () => {});\r\n * ```\r\n *\r\n * or use the constant, to avoid having to remember the correct event string:\r\n *\r\n * ```js\r\n * this.cameras.main.on(Phaser.Cameras.Scene2D.Events.ROTATE_START, () => {});\r\n * ```\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#ROTATE_START\r\n * @type {string}\r\n * @since 3.23.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.RotateTo} effect - A reference to the effect instance.\r\n * @param {number} duration - The duration of the effect.\r\n * @param {number} destination - The destination value.\r\n */\r\nmodule.exports = 'camerarotatestart';\r\n\n\n/***/ }),\n\n/***/ 62252:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Shake Complete Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Shake Effect completes.\r\n *\r\n * Listen for it via either of the following:\r\n *\r\n * ```js\r\n * this.cameras.main.on('camerashakecomplete', () => {});\r\n * ```\r\n *\r\n * or use the constant, to avoid having to remember the correct event string:\r\n *\r\n * ```js\r\n * this.cameras.main.on(Phaser.Cameras.Scene2D.Events.SHAKE_COMPLETE, () => {});\r\n * ```\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#SHAKE_COMPLETE\r\n * @type {string}\r\n * @since 3.3.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.Shake} effect - A reference to the effect instance.\r\n */\r\nmodule.exports = 'camerashakecomplete';\r\n\n\n/***/ }),\n\n/***/ 86017:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Shake Start Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Shake Effect starts.\r\n *\r\n * Listen for it via either of the following:\r\n *\r\n * ```js\r\n * this.cameras.main.on('camerashakestart', () => {});\r\n * ```\r\n *\r\n * or use the constant, to avoid having to remember the correct event string:\r\n *\r\n * ```js\r\n * this.cameras.main.on(Phaser.Cameras.Scene2D.Events.SHAKE_START, () => {});\r\n * ```\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#SHAKE_START\r\n * @type {string}\r\n * @since 3.3.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.Shake} effect - A reference to the effect instance.\r\n * @param {number} duration - The duration of the effect.\r\n * @param {number} intensity - The intensity of the effect.\r\n */\r\nmodule.exports = 'camerashakestart';\r\n\n\n/***/ }),\n\n/***/ 539:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Zoom Complete Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Zoom Effect completes.\r\n *\r\n * Listen for it via either of the following:\r\n *\r\n * ```js\r\n * this.cameras.main.on('camerazoomcomplete', () => {});\r\n * ```\r\n *\r\n * or use the constant, to avoid having to remember the correct event string:\r\n *\r\n * ```js\r\n * this.cameras.main.on(Phaser.Cameras.Scene2D.Events.ZOOM_COMPLETE, () => {});\r\n * ```\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#ZOOM_COMPLETE\r\n * @type {string}\r\n * @since 3.3.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.Zoom} effect - A reference to the effect instance.\r\n */\r\nmodule.exports = 'camerazoomcomplete';\r\n\n\n/***/ }),\n\n/***/ 51892:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Camera Zoom Start Event.\r\n *\r\n * This event is dispatched by a Camera instance when the Zoom Effect starts.\r\n *\r\n * Listen for it via either of the following:\r\n *\r\n * ```js\r\n * this.cameras.main.on('camerazoomstart', () => {});\r\n * ```\r\n *\r\n * or use the constant, to avoid having to remember the correct event string:\r\n *\r\n * ```js\r\n * this.cameras.main.on(Phaser.Cameras.Scene2D.Events.ZOOM_START, () => {});\r\n * ```\r\n *\r\n * @event Phaser.Cameras.Scene2D.Events#ZOOM_START\r\n * @type {string}\r\n * @since 3.3.0\r\n *\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera that the effect began on.\r\n * @param {Phaser.Cameras.Scene2D.Effects.Zoom} effect - A reference to the effect instance.\r\n * @param {number} duration - The duration of the effect.\r\n * @param {number} zoom - The destination zoom value.\r\n */\r\nmodule.exports = 'camerazoomstart';\r\n\n\n/***/ }),\n\n/***/ 19715:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Cameras.Scene2D.Events\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    DESTROY: __webpack_require__(16438),\r\n    FADE_IN_COMPLETE: __webpack_require__(32726),\r\n    FADE_IN_START: __webpack_require__(87807),\r\n    FADE_OUT_COMPLETE: __webpack_require__(45917),\r\n    FADE_OUT_START: __webpack_require__(95666),\r\n    FLASH_COMPLETE: __webpack_require__(47056),\r\n    FLASH_START: __webpack_require__(91261),\r\n    FOLLOW_UPDATE: __webpack_require__(45047),\r\n    PAN_COMPLETE: __webpack_require__(81927),\r\n    PAN_START: __webpack_require__(74264),\r\n    POST_RENDER: __webpack_require__(54419),\r\n    PRE_RENDER: __webpack_require__(79330),\r\n    ROTATE_COMPLETE: __webpack_require__(93183),\r\n    ROTATE_START: __webpack_require__(80112),\r\n    SHAKE_COMPLETE: __webpack_require__(62252),\r\n    SHAKE_START: __webpack_require__(86017),\r\n    ZOOM_COMPLETE: __webpack_require__(539),\r\n    ZOOM_START: __webpack_require__(51892)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 87969:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Cameras.Scene2D\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    Camera: __webpack_require__(38058),\r\n    BaseCamera: __webpack_require__(71911),\r\n    CameraManager: __webpack_require__(32743),\r\n    Effects: __webpack_require__(20052),\r\n    Events: __webpack_require__(19715)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 63091:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar GetValue = __webpack_require__(35154);\r\n\r\n/**\r\n * @classdesc\r\n * A Fixed Key Camera Control.\r\n *\r\n * This allows you to control the movement and zoom of a camera using the defined keys.\r\n *\r\n * ```javascript\r\n * var camControl = new FixedKeyControl({\r\n *     camera: this.cameras.main,\r\n *     left: cursors.left,\r\n *     right: cursors.right,\r\n *     speed: float OR { x: 0, y: 0 }\r\n * });\r\n * ```\r\n *\r\n * Movement is precise and has no 'smoothing' applied to it.\r\n *\r\n * You must call the `update` method of this controller every frame.\r\n *\r\n * @class FixedKeyControl\r\n * @memberof Phaser.Cameras.Controls\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.Cameras.Controls.FixedKeyControlConfig} config - The Fixed Key Control configuration object.\r\n */\r\nvar FixedKeyControl = new Class({\r\n\r\n    initialize:\r\n\r\n    function FixedKeyControl (config)\r\n    {\r\n        /**\r\n         * The Camera that this Control will update.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#camera\r\n         * @type {?Phaser.Cameras.Scene2D.Camera}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.camera = GetValue(config, 'camera', null);\r\n\r\n        /**\r\n         * The Key to be pressed that will move the Camera left.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#left\r\n         * @type {?Phaser.Input.Keyboard.Key}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.left = GetValue(config, 'left', null);\r\n\r\n        /**\r\n         * The Key to be pressed that will move the Camera right.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#right\r\n         * @type {?Phaser.Input.Keyboard.Key}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.right = GetValue(config, 'right', null);\r\n\r\n        /**\r\n         * The Key to be pressed that will move the Camera up.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#up\r\n         * @type {?Phaser.Input.Keyboard.Key}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.up = GetValue(config, 'up', null);\r\n\r\n        /**\r\n         * The Key to be pressed that will move the Camera down.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#down\r\n         * @type {?Phaser.Input.Keyboard.Key}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.down = GetValue(config, 'down', null);\r\n\r\n        /**\r\n         * The Key to be pressed that will zoom the Camera in.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#zoomIn\r\n         * @type {?Phaser.Input.Keyboard.Key}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.zoomIn = GetValue(config, 'zoomIn', null);\r\n\r\n        /**\r\n         * The Key to be pressed that will zoom the Camera out.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#zoomOut\r\n         * @type {?Phaser.Input.Keyboard.Key}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.zoomOut = GetValue(config, 'zoomOut', null);\r\n\r\n        /**\r\n         * The speed at which the camera will zoom if the `zoomIn` or `zoomOut` keys are pressed.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#zoomSpeed\r\n         * @type {number}\r\n         * @default 0.01\r\n         * @since 3.0.0\r\n         */\r\n        this.zoomSpeed = GetValue(config, 'zoomSpeed', 0.01);\r\n\r\n        /**\r\n         * The smallest zoom value the camera will reach when zoomed out.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#minZoom\r\n         * @type {number}\r\n         * @default 0.001\r\n         * @since 3.53.0\r\n         */\r\n        this.minZoom = GetValue(config, 'minZoom', 0.001);\r\n\r\n        /**\r\n         * The largest zoom value the camera will reach when zoomed in.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#maxZoom\r\n         * @type {number}\r\n         * @default 1000\r\n         * @since 3.53.0\r\n         */\r\n        this.maxZoom = GetValue(config, 'maxZoom', 1000);\r\n\r\n        /**\r\n         * The horizontal speed the camera will move.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#speedX\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.speedX = 0;\r\n\r\n        /**\r\n         * The vertical speed the camera will move.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#speedY\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.speedY = 0;\r\n\r\n        var speed = GetValue(config, 'speed', null);\r\n\r\n        if (typeof speed === 'number')\r\n        {\r\n            this.speedX = speed;\r\n            this.speedY = speed;\r\n        }\r\n        else\r\n        {\r\n            this.speedX = GetValue(config, 'speed.x', 0);\r\n            this.speedY = GetValue(config, 'speed.y', 0);\r\n        }\r\n\r\n        /**\r\n         * Internal property to track the current zoom level.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#_zoom\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._zoom = 0;\r\n\r\n        /**\r\n         * A flag controlling if the Controls will update the Camera or not.\r\n         *\r\n         * @name Phaser.Cameras.Controls.FixedKeyControl#active\r\n         * @type {boolean}\r\n         * @since 3.0.0\r\n         */\r\n        this.active = (this.camera !== null);\r\n    },\r\n\r\n    /**\r\n     * Starts the Key Control running, providing it has been linked to a camera.\r\n     *\r\n     * @method Phaser.Cameras.Controls.FixedKeyControl#start\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Key Control instance.\r\n     */\r\n    start: function ()\r\n    {\r\n        this.active = (this.camera !== null);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stops this Key Control from running. Call `start` to start it again.\r\n     *\r\n     * @method Phaser.Cameras.Controls.FixedKeyControl#stop\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Key Control instance.\r\n     */\r\n    stop: function ()\r\n    {\r\n        this.active = false;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Binds this Key Control to a camera.\r\n     *\r\n     * @method Phaser.Cameras.Controls.FixedKeyControl#setCamera\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera to bind this Key Control to.\r\n     *\r\n     * @return {this} This Key Control instance.\r\n     */\r\n    setCamera: function (camera)\r\n    {\r\n        this.camera = camera;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Applies the results of pressing the control keys to the Camera.\r\n     *\r\n     * You must call this every step, it is not called automatically.\r\n     *\r\n     * @method Phaser.Cameras.Controls.FixedKeyControl#update\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} delta - The delta time in ms since the last frame. This is a smoothed and capped value based on the FPS rate.\r\n     */\r\n    update: function (delta)\r\n    {\r\n        if (!this.active)\r\n        {\r\n            return;\r\n        }\r\n\r\n        if (delta === undefined) { delta = 1; }\r\n\r\n        var cam = this.camera;\r\n\r\n        if (this.up && this.up.isDown)\r\n        {\r\n            cam.scrollY -= ((this.speedY * delta) | 0);\r\n        }\r\n        else if (this.down && this.down.isDown)\r\n        {\r\n            cam.scrollY += ((this.speedY * delta) | 0);\r\n        }\r\n\r\n        if (this.left && this.left.isDown)\r\n        {\r\n            cam.scrollX -= ((this.speedX * delta) | 0);\r\n        }\r\n        else if (this.right && this.right.isDown)\r\n        {\r\n            cam.scrollX += ((this.speedX * delta) | 0);\r\n        }\r\n\r\n        //  Camera zoom\r\n\r\n        if (this.zoomIn && this.zoomIn.isDown)\r\n        {\r\n            cam.zoom -= this.zoomSpeed;\r\n\r\n            if (cam.zoom < this.minZoom)\r\n            {\r\n                cam.zoom = this.minZoom;\r\n            }\r\n        }\r\n        else if (this.zoomOut && this.zoomOut.isDown)\r\n        {\r\n            cam.zoom += this.zoomSpeed;\r\n\r\n            if (cam.zoom > this.maxZoom)\r\n            {\r\n                cam.zoom = this.maxZoom;\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Destroys this Key Control.\r\n     *\r\n     * @method Phaser.Cameras.Controls.FixedKeyControl#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.camera = null;\r\n\r\n        this.left = null;\r\n        this.right = null;\r\n        this.up = null;\r\n        this.down = null;\r\n\r\n        this.zoomIn = null;\r\n        this.zoomOut = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = FixedKeyControl;\r\n\n\n/***/ }),\n\n/***/ 58818:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar GetValue = __webpack_require__(35154);\r\n\r\n/**\r\n * @classdesc\r\n * A Smoothed Key Camera Control.\r\n *\r\n * This allows you to control the movement and zoom of a camera using the defined keys.\r\n * Unlike the Fixed Camera Control you can also provide physics values for acceleration, drag and maxSpeed for smoothing effects.\r\n *\r\n * ```javascript\r\n * var controlConfig = {\r\n *     camera: this.cameras.main,\r\n *     left: cursors.left,\r\n *     right: cursors.right,\r\n *     up: cursors.up,\r\n *     down: cursors.down,\r\n *     zoomIn: this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.Q),\r\n *     zoomOut: this.input.keyboard.addKey(Phaser.Input.Keyboard.KeyCodes.E),\r\n *     zoomSpeed: 0.02,\r\n *     acceleration: 0.06,\r\n *     drag: 0.0005,\r\n *     maxSpeed: 1.0\r\n * };\r\n * ```\r\n *\r\n * You must call the `update` method of this controller every frame.\r\n *\r\n * @class SmoothedKeyControl\r\n * @memberof Phaser.Cameras.Controls\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.Cameras.Controls.SmoothedKeyControlConfig} config - The Smoothed Key Control configuration object.\r\n */\r\nvar SmoothedKeyControl = new Class({\r\n\r\n    initialize:\r\n\r\n    function SmoothedKeyControl (config)\r\n    {\r\n        /**\r\n         * The Camera that this Control will update.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#camera\r\n         * @type {?Phaser.Cameras.Scene2D.Camera}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.camera = GetValue(config, 'camera', null);\r\n\r\n        /**\r\n         * The Key to be pressed that will move the Camera left.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#left\r\n         * @type {?Phaser.Input.Keyboard.Key}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.left = GetValue(config, 'left', null);\r\n\r\n        /**\r\n         * The Key to be pressed that will move the Camera right.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#right\r\n         * @type {?Phaser.Input.Keyboard.Key}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.right = GetValue(config, 'right', null);\r\n\r\n        /**\r\n         * The Key to be pressed that will move the Camera up.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#up\r\n         * @type {?Phaser.Input.Keyboard.Key}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.up = GetValue(config, 'up', null);\r\n\r\n        /**\r\n         * The Key to be pressed that will move the Camera down.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#down\r\n         * @type {?Phaser.Input.Keyboard.Key}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.down = GetValue(config, 'down', null);\r\n\r\n        /**\r\n         * The Key to be pressed that will zoom the Camera in.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#zoomIn\r\n         * @type {?Phaser.Input.Keyboard.Key}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.zoomIn = GetValue(config, 'zoomIn', null);\r\n\r\n        /**\r\n         * The Key to be pressed that will zoom the Camera out.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#zoomOut\r\n         * @type {?Phaser.Input.Keyboard.Key}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.zoomOut = GetValue(config, 'zoomOut', null);\r\n\r\n        /**\r\n         * The speed at which the camera will zoom if the `zoomIn` or `zoomOut` keys are pressed.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#zoomSpeed\r\n         * @type {number}\r\n         * @default 0.01\r\n         * @since 3.0.0\r\n         */\r\n        this.zoomSpeed = GetValue(config, 'zoomSpeed', 0.01);\r\n\r\n        /**\r\n         * The smallest zoom value the camera will reach when zoomed out.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#minZoom\r\n         * @type {number}\r\n         * @default 0.001\r\n         * @since 3.53.0\r\n         */\r\n        this.minZoom = GetValue(config, 'minZoom', 0.001);\r\n\r\n        /**\r\n         * The largest zoom value the camera will reach when zoomed in.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#maxZoom\r\n         * @type {number}\r\n         * @default 1000\r\n         * @since 3.53.0\r\n         */\r\n        this.maxZoom = GetValue(config, 'maxZoom', 1000);\r\n\r\n        /**\r\n         * The horizontal acceleration the camera will move.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#accelX\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.accelX = 0;\r\n\r\n        /**\r\n         * The vertical acceleration the camera will move.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#accelY\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.accelY = 0;\r\n\r\n        var accel = GetValue(config, 'acceleration', null);\r\n\r\n        if (typeof accel === 'number')\r\n        {\r\n            this.accelX = accel;\r\n            this.accelY = accel;\r\n        }\r\n        else\r\n        {\r\n            this.accelX = GetValue(config, 'acceleration.x', 0);\r\n            this.accelY = GetValue(config, 'acceleration.y', 0);\r\n        }\r\n\r\n        /**\r\n         * The horizontal drag applied to the camera when it is moving.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#dragX\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.dragX = 0;\r\n\r\n        /**\r\n         * The vertical drag applied to the camera when it is moving.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#dragY\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.dragY = 0;\r\n\r\n        var drag = GetValue(config, 'drag', null);\r\n\r\n        if (typeof drag === 'number')\r\n        {\r\n            this.dragX = drag;\r\n            this.dragY = drag;\r\n        }\r\n        else\r\n        {\r\n            this.dragX = GetValue(config, 'drag.x', 0);\r\n            this.dragY = GetValue(config, 'drag.y', 0);\r\n        }\r\n\r\n        /**\r\n         * The maximum horizontal speed the camera will move.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#maxSpeedX\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.maxSpeedX = 0;\r\n\r\n        /**\r\n         * The maximum vertical speed the camera will move.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#maxSpeedY\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.maxSpeedY = 0;\r\n\r\n        var maxSpeed = GetValue(config, 'maxSpeed', null);\r\n\r\n        if (typeof maxSpeed === 'number')\r\n        {\r\n            this.maxSpeedX = maxSpeed;\r\n            this.maxSpeedY = maxSpeed;\r\n        }\r\n        else\r\n        {\r\n            this.maxSpeedX = GetValue(config, 'maxSpeed.x', 0);\r\n            this.maxSpeedY = GetValue(config, 'maxSpeed.y', 0);\r\n        }\r\n\r\n        /**\r\n         * Internal property to track the speed of the control.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#_speedX\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._speedX = 0;\r\n\r\n        /**\r\n         * Internal property to track the speed of the control.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#_speedY\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._speedY = 0;\r\n\r\n        /**\r\n         * Internal property to track the zoom of the control.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#_zoom\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._zoom = 0;\r\n\r\n        /**\r\n         * A flag controlling if the Controls will update the Camera or not.\r\n         *\r\n         * @name Phaser.Cameras.Controls.SmoothedKeyControl#active\r\n         * @type {boolean}\r\n         * @since 3.0.0\r\n         */\r\n        this.active = (this.camera !== null);\r\n    },\r\n\r\n    /**\r\n     * Starts the Key Control running, providing it has been linked to a camera.\r\n     *\r\n     * @method Phaser.Cameras.Controls.SmoothedKeyControl#start\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Key Control instance.\r\n     */\r\n    start: function ()\r\n    {\r\n        this.active = (this.camera !== null);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stops this Key Control from running. Call `start` to start it again.\r\n     *\r\n     * @method Phaser.Cameras.Controls.SmoothedKeyControl#stop\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Key Control instance.\r\n     */\r\n    stop: function ()\r\n    {\r\n        this.active = false;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Binds this Key Control to a camera.\r\n     *\r\n     * @method Phaser.Cameras.Controls.SmoothedKeyControl#setCamera\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera to bind this Key Control to.\r\n     *\r\n     * @return {this} This Key Control instance.\r\n     */\r\n    setCamera: function (camera)\r\n    {\r\n        this.camera = camera;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Applies the results of pressing the control keys to the Camera.\r\n     *\r\n     * You must call this every step, it is not called automatically.\r\n     *\r\n     * @method Phaser.Cameras.Controls.SmoothedKeyControl#update\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} delta - The delta time in ms since the last frame. This is a smoothed and capped value based on the FPS rate.\r\n     */\r\n    update: function (delta)\r\n    {\r\n        if (!this.active)\r\n        {\r\n            return;\r\n        }\r\n\r\n        if (delta === undefined) { delta = 1; }\r\n\r\n        var cam = this.camera;\r\n\r\n        //  Apply Deceleration\r\n\r\n        if (this._speedX > 0)\r\n        {\r\n            this._speedX -= this.dragX * delta;\r\n\r\n            if (this._speedX < 0)\r\n            {\r\n                this._speedX = 0;\r\n            }\r\n        }\r\n        else if (this._speedX < 0)\r\n        {\r\n            this._speedX += this.dragX * delta;\r\n\r\n            if (this._speedX > 0)\r\n            {\r\n                this._speedX = 0;\r\n            }\r\n        }\r\n\r\n        if (this._speedY > 0)\r\n        {\r\n            this._speedY -= this.dragY * delta;\r\n\r\n            if (this._speedY < 0)\r\n            {\r\n                this._speedY = 0;\r\n            }\r\n        }\r\n        else if (this._speedY < 0)\r\n        {\r\n            this._speedY += this.dragY * delta;\r\n\r\n            if (this._speedY > 0)\r\n            {\r\n                this._speedY = 0;\r\n            }\r\n        }\r\n\r\n        //  Check for keys\r\n\r\n        if (this.up && this.up.isDown)\r\n        {\r\n            this._speedY += this.accelY;\r\n\r\n            if (this._speedY > this.maxSpeedY)\r\n            {\r\n                this._speedY = this.maxSpeedY;\r\n            }\r\n        }\r\n        else if (this.down && this.down.isDown)\r\n        {\r\n            this._speedY -= this.accelY;\r\n\r\n            if (this._speedY < -this.maxSpeedY)\r\n            {\r\n                this._speedY = -this.maxSpeedY;\r\n            }\r\n        }\r\n\r\n        if (this.left && this.left.isDown)\r\n        {\r\n            this._speedX += this.accelX;\r\n\r\n            if (this._speedX > this.maxSpeedX)\r\n            {\r\n                this._speedX = this.maxSpeedX;\r\n            }\r\n        }\r\n        else if (this.right && this.right.isDown)\r\n        {\r\n            this._speedX -= this.accelX;\r\n\r\n            if (this._speedX < -this.maxSpeedX)\r\n            {\r\n                this._speedX = -this.maxSpeedX;\r\n            }\r\n        }\r\n\r\n        //  Camera zoom\r\n\r\n        if (this.zoomIn && this.zoomIn.isDown)\r\n        {\r\n            this._zoom = -this.zoomSpeed;\r\n        }\r\n        else if (this.zoomOut && this.zoomOut.isDown)\r\n        {\r\n            this._zoom = this.zoomSpeed;\r\n        }\r\n        else\r\n        {\r\n            this._zoom = 0;\r\n        }\r\n\r\n        //  Apply to Camera\r\n\r\n        if (this._speedX !== 0)\r\n        {\r\n            cam.scrollX -= ((this._speedX * delta) | 0);\r\n        }\r\n\r\n        if (this._speedY !== 0)\r\n        {\r\n            cam.scrollY -= ((this._speedY * delta) | 0);\r\n        }\r\n\r\n        if (this._zoom !== 0)\r\n        {\r\n            cam.zoom += this._zoom;\r\n\r\n            if (cam.zoom < this.minZoom)\r\n            {\r\n                cam.zoom = this.minZoom;\r\n            }\r\n            else if (cam.zoom > this.maxZoom)\r\n            {\r\n                cam.zoom = this.maxZoom;\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Destroys this Key Control.\r\n     *\r\n     * @method Phaser.Cameras.Controls.SmoothedKeyControl#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.camera = null;\r\n\r\n        this.left = null;\r\n        this.right = null;\r\n        this.up = null;\r\n        this.down = null;\r\n\r\n        this.zoomIn = null;\r\n        this.zoomOut = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = SmoothedKeyControl;\r\n\n\n/***/ }),\n\n/***/ 38865:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Cameras.Controls\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    FixedKeyControl: __webpack_require__(63091),\r\n    SmoothedKeyControl: __webpack_require__(58818)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 26638:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Cameras\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Types.Cameras\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    Controls: __webpack_require__(38865),\r\n    Scene2D: __webpack_require__(87969)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 8054:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Global constants.\r\n *\r\n * @ignore\r\n */\r\n\r\nvar CONST = {\r\n\r\n    /**\r\n     * Phaser Release Version\r\n     *\r\n     * @name Phaser.VERSION\r\n     * @const\r\n     * @type {string}\r\n     * @since 3.0.0\r\n     */\r\n    VERSION: '3.86.0',\r\n\r\n    BlendModes: __webpack_require__(10312),\r\n\r\n    ScaleModes: __webpack_require__(29795),\r\n\r\n    /**\r\n     * This setting will auto-detect if the browser is capable of suppporting WebGL.\r\n     * If it is, it will use the WebGL Renderer. If not, it will fall back to the Canvas Renderer.\r\n     *\r\n     * @name Phaser.AUTO\r\n     * @const\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    AUTO: 0,\r\n\r\n    /**\r\n     * Forces Phaser to only use the Canvas Renderer, regardless if the browser supports\r\n     * WebGL or not.\r\n     *\r\n     * @name Phaser.CANVAS\r\n     * @const\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    CANVAS: 1,\r\n\r\n    /**\r\n     * Forces Phaser to use the WebGL Renderer. If the browser does not support it, there is\r\n     * no fallback to Canvas with this setting, so you should trap it and display a suitable\r\n     * message to the user.\r\n     *\r\n     * @name Phaser.WEBGL\r\n     * @const\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    WEBGL: 2,\r\n\r\n    /**\r\n     * A Headless Renderer doesn't create either a Canvas or WebGL Renderer. However, it still\r\n     * absolutely relies on the DOM being present and available. This mode is meant for unit testing,\r\n     * not for running Phaser on the server, which is something you really shouldn't do.\r\n     *\r\n     * @name Phaser.HEADLESS\r\n     * @const\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    HEADLESS: 3,\r\n\r\n    /**\r\n     * In Phaser the value -1 means 'forever' in lots of cases, this const allows you to use it instead\r\n     * to help you remember what the value is doing in your code.\r\n     *\r\n     * @name Phaser.FOREVER\r\n     * @const\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    FOREVER: -1,\r\n\r\n    /**\r\n     * Direction constant.\r\n     *\r\n     * @name Phaser.NONE\r\n     * @const\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    NONE: 4,\r\n\r\n    /**\r\n     * Direction constant.\r\n     *\r\n     * @name Phaser.UP\r\n     * @const\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    UP: 5,\r\n\r\n    /**\r\n     * Direction constant.\r\n     *\r\n     * @name Phaser.DOWN\r\n     * @const\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    DOWN: 6,\r\n\r\n    /**\r\n     * Direction constant.\r\n     *\r\n     * @name Phaser.LEFT\r\n     * @const\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    LEFT: 7,\r\n\r\n    /**\r\n     * Direction constant.\r\n     *\r\n     * @name Phaser.RIGHT\r\n     * @const\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    RIGHT: 8\r\n\r\n};\r\n\r\nmodule.exports = CONST;\r\n\n\n/***/ }),\n\n/***/ 69547:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar CONST = __webpack_require__(8054);\r\nvar DefaultPlugins = __webpack_require__(42363);\r\nvar Device = __webpack_require__(82264);\r\nvar GetFastValue = __webpack_require__(95540);\r\nvar GetValue = __webpack_require__(35154);\r\nvar IsPlainObject = __webpack_require__(41212);\r\nvar NOOP = __webpack_require__(29747);\r\nvar PhaserMath = __webpack_require__(75508);\r\nvar PIPELINE_CONST = __webpack_require__(36060);\r\nvar ValueToColor = __webpack_require__(80333);\r\n\r\n/**\r\n * @classdesc\r\n * The active game configuration settings, parsed from a {@link Phaser.Types.Core.GameConfig} object.\r\n *\r\n * @class Config\r\n * @memberof Phaser.Core\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.Core.GameConfig} [GameConfig] - The configuration object for your Phaser Game instance.\r\n *\r\n * @see Phaser.Game#config\r\n */\r\nvar Config = new Class({\r\n\r\n    initialize:\r\n\r\n    function Config (config)\r\n    {\r\n        if (config === undefined) { config = {}; }\r\n\r\n        var defaultBannerColor = [\r\n            '#ff0000',\r\n            '#ffff00',\r\n            '#00ff00',\r\n            '#00ffff',\r\n            '#000000'\r\n        ];\r\n\r\n        var defaultBannerTextColor = '#ffffff';\r\n\r\n        //  Scale Manager - Anything set in here over-rides anything set in the core game config\r\n\r\n        var scaleConfig = GetValue(config, 'scale', null);\r\n\r\n        /**\r\n         * @const {(number|string)} Phaser.Core.Config#width - The width of the underlying canvas, in pixels.\r\n         */\r\n        this.width = GetValue(scaleConfig, 'width', 1024, config);\r\n\r\n        /**\r\n         * @const {(number|string)} Phaser.Core.Config#height - The height of the underlying canvas, in pixels.\r\n         */\r\n        this.height = GetValue(scaleConfig, 'height', 768, config);\r\n\r\n        /**\r\n         * @const {(Phaser.Scale.ZoomType|number)} Phaser.Core.Config#zoom - The zoom factor, as used by the Scale Manager.\r\n         */\r\n        this.zoom = GetValue(scaleConfig, 'zoom', 1, config);\r\n\r\n        /**\r\n         * @const {?*} Phaser.Core.Config#parent - A parent DOM element into which the canvas created by the renderer will be injected.\r\n         */\r\n        this.parent = GetValue(scaleConfig, 'parent', undefined, config);\r\n\r\n        /**\r\n         * @const {Phaser.Scale.ScaleModeType} Phaser.Core.Config#scaleMode - The scale mode as used by the Scale Manager. The default is zero, which is no scaling.\r\n         */\r\n        this.scaleMode = GetValue(scaleConfig, (scaleConfig) ? 'mode' : 'scaleMode', 0, config);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#expandParent - Is the Scale Manager allowed to adjust the CSS height property of the parent to be 100%?\r\n         */\r\n        this.expandParent = GetValue(scaleConfig, 'expandParent', true, config);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#autoRound - Automatically round the display and style sizes of the canvas. This can help with performance in lower-powered devices.\r\n         */\r\n        this.autoRound = GetValue(scaleConfig, 'autoRound', false, config);\r\n\r\n        /**\r\n         * @const {Phaser.Scale.CenterType} Phaser.Core.Config#autoCenter - Automatically center the canvas within the parent?\r\n         */\r\n        this.autoCenter = GetValue(scaleConfig, 'autoCenter', 0, config);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#resizeInterval - How many ms should elapse before checking if the browser size has changed?\r\n         */\r\n        this.resizeInterval = GetValue(scaleConfig, 'resizeInterval', 500, config);\r\n\r\n        /**\r\n         * @const {?(HTMLElement|string)} Phaser.Core.Config#fullscreenTarget - The DOM element that will be sent into full screen mode, or its `id`. If undefined Phaser will create its own div and insert the canvas into it when entering fullscreen mode.\r\n         */\r\n        this.fullscreenTarget = GetValue(scaleConfig, 'fullscreenTarget', null, config);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#minWidth - The minimum width, in pixels, the canvas will scale down to. A value of zero means no minimum.\r\n         */\r\n        this.minWidth = GetValue(scaleConfig, 'min.width', 0, config);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#maxWidth - The maximum width, in pixels, the canvas will scale up to. A value of zero means no maximum.\r\n         */\r\n        this.maxWidth = GetValue(scaleConfig, 'max.width', 0, config);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#minHeight - The minimum height, in pixels, the canvas will scale down to. A value of zero means no minimum.\r\n         */\r\n        this.minHeight = GetValue(scaleConfig, 'min.height', 0, config);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#maxHeight - The maximum height, in pixels, the canvas will scale up to. A value of zero means no maximum.\r\n         */\r\n        this.maxHeight = GetValue(scaleConfig, 'max.height', 0, config);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#snapWidth - The horizontal amount to snap the canvas by when the Scale Manager is resizing. A value of zero means no snapping.\r\n         */\r\n        this.snapWidth = GetValue(scaleConfig, 'snap.width', 0, config);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#snapHeight - The vertical amount to snap the canvas by when the Scale Manager is resizing. A value of zero means no snapping.\r\n         */\r\n        this.snapHeight = GetValue(scaleConfig, 'snap.height', 0, config);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#renderType - Force Phaser to use a specific renderer. Can be `CONST.CANVAS`, `CONST.WEBGL`, `CONST.HEADLESS` or `CONST.AUTO` (default)\r\n         */\r\n        this.renderType = GetValue(config, 'type', CONST.AUTO);\r\n\r\n        /**\r\n         * @const {?HTMLCanvasElement} Phaser.Core.Config#canvas - Force Phaser to use your own Canvas element instead of creating one.\r\n         */\r\n        this.canvas = GetValue(config, 'canvas', null);\r\n\r\n        /**\r\n         * @const {?(CanvasRenderingContext2D|WebGLRenderingContext)} Phaser.Core.Config#context - Force Phaser to use your own Canvas context instead of creating one.\r\n         */\r\n        this.context = GetValue(config, 'context', null);\r\n\r\n        /**\r\n         * @const {?string} Phaser.Core.Config#canvasStyle - Optional CSS attributes to be set on the canvas object created by the renderer.\r\n         */\r\n        this.canvasStyle = GetValue(config, 'canvasStyle', null);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#customEnvironment - Is Phaser running under a custom (non-native web) environment? If so, set this to `true` to skip internal Feature detection. If `true` the `renderType` cannot be left as `AUTO`.\r\n         */\r\n        this.customEnvironment = GetValue(config, 'customEnvironment', false);\r\n\r\n        /**\r\n         * @const {?object} Phaser.Core.Config#sceneConfig - The default Scene configuration object.\r\n         */\r\n        this.sceneConfig = GetValue(config, 'scene', null);\r\n\r\n        /**\r\n         * @const {string[]} Phaser.Core.Config#seed - A seed which the Random Data Generator will use. If not given, a dynamic seed based on the time is used.\r\n         */\r\n        this.seed = GetValue(config, 'seed', [ (Date.now() * Math.random()).toString() ]);\r\n\r\n        PhaserMath.RND = new PhaserMath.RandomDataGenerator(this.seed);\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#gameTitle - The title of the game.\r\n         */\r\n        this.gameTitle = GetValue(config, 'title', '');\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#gameURL - The URL of the game.\r\n         */\r\n        this.gameURL = GetValue(config, 'url', 'https://phaser.io/v385/');\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#gameVersion - The version of the game.\r\n         */\r\n        this.gameVersion = GetValue(config, 'version', '');\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#autoFocus - If `true` the window will automatically be given focus immediately and on any future mousedown event.\r\n         */\r\n        this.autoFocus = GetValue(config, 'autoFocus', true);\r\n\r\n        /**\r\n         * @const {(number|boolean)} Phaser.Core.Config#stableSort - `false` or `0` = Use the built-in StableSort (needed for older browsers), `true` or `1` = Rely on ES2019 Array.sort being stable (modern browsers only), or `-1` = Try and determine this automatically based on browser inspection (not guaranteed to work, errs on side of caution).\r\n         */\r\n        this.stableSort = GetValue(config, 'stableSort', -1);\r\n\r\n        if (this.stableSort === -1)\r\n        {\r\n            this.stableSort = (Device.browser.es2019) ? 1 : 0;\r\n        }\r\n\r\n        Device.features.stableSort = this.stableSort;\r\n\r\n        //  DOM Element Container\r\n\r\n        /**\r\n         * @const {?boolean} Phaser.Core.Config#domCreateContainer - Should the game create a div element to act as a DOM Container? Only enable if you're using DOM Element objects. You must provide a parent object if you use this feature.\r\n         */\r\n        this.domCreateContainer = GetValue(config, 'dom.createContainer', false);\r\n\r\n        /**\r\n         * @const {?string} Phaser.Core.Config#domPointerEvents - The default `pointerEvents` attribute set on the DOM Container.\r\n         */\r\n        this.domPointerEvents = GetValue(config, 'dom.pointerEvents', 'none');\r\n\r\n        //  Input\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#inputKeyboard - Enable the Keyboard Plugin. This can be disabled in games that don't need keyboard input.\r\n         */\r\n        this.inputKeyboard = GetValue(config, 'input.keyboard', true);\r\n\r\n        /**\r\n         * @const {*} Phaser.Core.Config#inputKeyboardEventTarget - The DOM Target to listen for keyboard events on. Defaults to `window` if not specified.\r\n         */\r\n        this.inputKeyboardEventTarget = GetValue(config, 'input.keyboard.target', window);\r\n\r\n        /**\r\n         * @const {?number[]} Phaser.Core.Config#inputKeyboardCapture - `preventDefault` will be called on every non-modified key which has a key code in this array. By default, it is empty.\r\n         */\r\n        this.inputKeyboardCapture = GetValue(config, 'input.keyboard.capture', []);\r\n\r\n        /**\r\n         * @const {(boolean|object)} Phaser.Core.Config#inputMouse - Enable the Mouse Plugin. This can be disabled in games that don't need mouse input.\r\n         */\r\n        this.inputMouse = GetValue(config, 'input.mouse', true);\r\n\r\n        /**\r\n         * @const {?*} Phaser.Core.Config#inputMouseEventTarget - The DOM Target to listen for mouse events on. Defaults to the game canvas if not specified.\r\n         */\r\n        this.inputMouseEventTarget = GetValue(config, 'input.mouse.target', null);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#inputMousePreventDefaultDown - Should `mousedown` DOM events have `preventDefault` called on them?\r\n         */\r\n        this.inputMousePreventDefaultDown = GetValue(config, 'input.mouse.preventDefaultDown', true);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#inputMousePreventDefaultUp - Should `mouseup` DOM events have `preventDefault` called on them?\r\n         */\r\n        this.inputMousePreventDefaultUp = GetValue(config, 'input.mouse.preventDefaultUp', true);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#inputMousePreventDefaultMove - Should `mousemove` DOM events have `preventDefault` called on them?\r\n         */\r\n        this.inputMousePreventDefaultMove = GetValue(config, 'input.mouse.preventDefaultMove', true);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#inputMousePreventDefaultWheel - Should `wheel` DOM events have `preventDefault` called on them?\r\n         */\r\n        this.inputMousePreventDefaultWheel = GetValue(config, 'input.mouse.preventDefaultWheel', true);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#inputTouch - Enable the Touch Plugin. This can be disabled in games that don't need touch input.\r\n         */\r\n        this.inputTouch = GetValue(config, 'input.touch', Device.input.touch);\r\n\r\n        /**\r\n         * @const {?*} Phaser.Core.Config#inputTouchEventTarget - The DOM Target to listen for touch events on. Defaults to the game canvas if not specified.\r\n         */\r\n        this.inputTouchEventTarget = GetValue(config, 'input.touch.target', null);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#inputTouchCapture - Should touch events be captured? I.e. have prevent default called on them.\r\n         */\r\n        this.inputTouchCapture = GetValue(config, 'input.touch.capture', true);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#inputActivePointers - The number of Pointer objects created by default. In a mouse-only, or non-multi touch game, you can leave this as 1.\r\n         */\r\n        this.inputActivePointers = GetValue(config, 'input.activePointers', 1);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#inputSmoothFactor - The smoothing factor to apply during Pointer movement. See {@link Phaser.Input.Pointer#smoothFactor}.\r\n         */\r\n        this.inputSmoothFactor = GetValue(config, 'input.smoothFactor', 0);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#inputWindowEvents - Should Phaser listen for input events on the Window? If you disable this, events like 'POINTER_UP_OUTSIDE' will no longer fire.\r\n         */\r\n        this.inputWindowEvents = GetValue(config, 'input.windowEvents', true);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#inputGamepad - Enable the Gamepad Plugin. This can be disabled in games that don't need gamepad input.\r\n         */\r\n        this.inputGamepad = GetValue(config, 'input.gamepad', false);\r\n\r\n        /**\r\n         * @const {*} Phaser.Core.Config#inputGamepadEventTarget - The DOM Target to listen for gamepad events on. Defaults to `window` if not specified.\r\n         */\r\n        this.inputGamepadEventTarget = GetValue(config, 'input.gamepad.target', window);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#disableContextMenu - Set to `true` to disable the right-click context menu.\r\n         */\r\n        this.disableContextMenu = GetValue(config, 'disableContextMenu', false);\r\n\r\n        /**\r\n         * @const {Phaser.Types.Core.AudioConfig} Phaser.Core.Config#audio - The Audio Configuration object.\r\n         */\r\n        this.audio = GetValue(config, 'audio', {});\r\n\r\n        //  If you do: { banner: false } it won't display any banner at all\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#hideBanner - Don't write the banner line to the console.log. See `Phaser.Types.Core.BannerConfig` for details of this object.\r\n         */\r\n        this.hideBanner = (GetValue(config, 'banner', null) === false);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#hidePhaser - Omit Phaser's name and version from the banner.\r\n         */\r\n        this.hidePhaser = GetValue(config, 'banner.hidePhaser', false);\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#bannerTextColor - The color of the banner text.\r\n         */\r\n        this.bannerTextColor = GetValue(config, 'banner.text', defaultBannerTextColor);\r\n\r\n        /**\r\n         * @const {string[]} Phaser.Core.Config#bannerBackgroundColor - The background colors of the banner.\r\n         */\r\n        this.bannerBackgroundColor = GetValue(config, 'banner.background', defaultBannerColor);\r\n\r\n        if (this.gameTitle === '' && this.hidePhaser)\r\n        {\r\n            this.hideBanner = true;\r\n        }\r\n\r\n        /**\r\n         * @const {Phaser.Types.Core.FPSConfig} Phaser.Core.Config#fps - The Frame Rate Configuration object, as parsed by the Timestep class.\r\n         */\r\n        this.fps = GetValue(config, 'fps', null);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#disablePreFX - Disables the automatic creation of the Pre FX Pipelines. If disabled, you cannot use the built-in Pre FX on Game Objects.\r\n         */\r\n        this.disablePreFX = GetValue(config, 'disablePreFX', false);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#disablePostFX - Disables the automatic creation of the Post FX Pipelines. If disabled, you cannot use the built-in Post FX on Game Objects.\r\n         */\r\n        this.disablePostFX = GetValue(config, 'disablePostFX', false);\r\n\r\n        //  Render Settings - Anything set in here over-rides anything set in the core game config\r\n\r\n        var renderConfig = GetValue(config, 'render', null);\r\n\r\n        /**\r\n         * @const {Phaser.Types.Core.PipelineConfig} Phaser.Core.Config#pipeline - An object mapping WebGL names to WebGLPipeline classes. These should be class constructors, not instances.\r\n         */\r\n        this.pipeline = GetValue(renderConfig, 'pipeline', null, config);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#autoMobilePipeline - Automatically enable the Mobile Pipeline if iOS or Android detected?\r\n         */\r\n        this.autoMobilePipeline = GetValue(renderConfig, 'autoMobilePipeline', true, config);\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#defaultPipeline - The WebGL Pipeline that Game Objects will use by default. Set to 'MultiPipeline' as standard. See also 'autoMobilePipeline'.\r\n         */\r\n        this.defaultPipeline = GetValue(renderConfig, 'defaultPipeline', PIPELINE_CONST.MULTI_PIPELINE, config);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#antialias - When set to `true`, WebGL uses linear interpolation to draw scaled or rotated textures, giving a smooth appearance. When set to `false`, WebGL uses nearest-neighbor interpolation, giving a crisper appearance. `false` also disables antialiasing of the game canvas itself, if the browser supports it, when the game canvas is scaled.\r\n         */\r\n        this.antialias = GetValue(renderConfig, 'antialias', true, config);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#antialiasGL - Sets the `antialias` property when the WebGL context is created. Setting this value does not impact any subsequent textures that are created, or the canvas style attributes.\r\n         */\r\n        this.antialiasGL = GetValue(renderConfig, 'antialiasGL', true, config);\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#mipmapFilter - Sets the mipmap magFilter to be used when creating WebGL textures. Don't set unless you wish to create mipmaps. Set to one of the following: 'NEAREST', 'LINEAR', 'NEAREST_MIPMAP_NEAREST', 'LINEAR_MIPMAP_NEAREST', 'NEAREST_MIPMAP_LINEAR' or 'LINEAR_MIPMAP_LINEAR'.\r\n         */\r\n        this.mipmapFilter = GetValue(renderConfig, 'mipmapFilter', '', config);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#desynchronized - When set to `true` it will create a desynchronized context for both 2D and WebGL. See https://developers.google.com/web/updates/2019/05/desynchronized for details.\r\n         */\r\n        this.desynchronized = GetValue(renderConfig, 'desynchronized', false, config);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#roundPixels - Draw texture-based Game Objects at only whole-integer positions. Game Objects without textures, like Graphics, ignore this property.\r\n         */\r\n        this.roundPixels = GetValue(renderConfig, 'roundPixels', false, config);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#pixelArt - Prevent pixel art from becoming blurred when scaled. It will remain crisp (tells the WebGL renderer to automatically create textures using a linear filter mode).\r\n         */\r\n        this.pixelArt = GetValue(renderConfig, 'pixelArt', this.zoom !== 1, config);\r\n\r\n        if (this.pixelArt)\r\n        {\r\n            this.antialias = false;\r\n            this.antialiasGL = false;\r\n            this.roundPixels = true;\r\n        }\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#transparent - Whether the game canvas will have a transparent background.\r\n         */\r\n        this.transparent = GetValue(renderConfig, 'transparent', false, config);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#clearBeforeRender - Whether the game canvas will be cleared between each rendering frame. You can disable this if you have a full-screen background image or game object.\r\n         */\r\n        this.clearBeforeRender = GetValue(renderConfig, 'clearBeforeRender', true, config);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#preserveDrawingBuffer - If the value is true the WebGL buffers will not be cleared and will preserve their values until cleared or overwritten by the author.\r\n         */\r\n        this.preserveDrawingBuffer = GetValue(renderConfig, 'preserveDrawingBuffer', false, config);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#premultipliedAlpha - In WebGL mode, sets the drawing buffer to contain colors with pre-multiplied alpha.\r\n         */\r\n        this.premultipliedAlpha = GetValue(renderConfig, 'premultipliedAlpha', true, config);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#failIfMajorPerformanceCaveat - Let the browser abort creating a WebGL context if it judges performance would be unacceptable.\r\n         */\r\n        this.failIfMajorPerformanceCaveat = GetValue(renderConfig, 'failIfMajorPerformanceCaveat', false, config);\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#powerPreference - \"high-performance\", \"low-power\" or \"default\". A hint to the browser on how much device power the game might use.\r\n         */\r\n        this.powerPreference = GetValue(renderConfig, 'powerPreference', 'default', config);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#batchSize - The default WebGL Batch size. Represents the number of _quads_ that can be added to a single batch.\r\n         */\r\n        this.batchSize = GetValue(renderConfig, 'batchSize', 4096, config);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#maxTextures - When in WebGL mode, this sets the maximum number of GPU Textures to use. The default, -1, will use all available units. The WebGL1 spec says all browsers should provide a minimum of 8.\r\n         */\r\n        this.maxTextures = GetValue(renderConfig, 'maxTextures', -1, config);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#maxLights - The maximum number of lights allowed to be visible within range of a single Camera in the LightManager.\r\n         */\r\n        this.maxLights = GetValue(renderConfig, 'maxLights', 10, config);\r\n\r\n        var bgc = GetValue(config, 'backgroundColor', 0);\r\n\r\n        /**\r\n         * @const {Phaser.Display.Color} Phaser.Core.Config#backgroundColor - The background color of the game canvas. The default is black. This value is ignored if `transparent` is set to `true`.\r\n         */\r\n        this.backgroundColor = ValueToColor(bgc);\r\n\r\n        if (this.transparent)\r\n        {\r\n            this.backgroundColor = ValueToColor(0x000000);\r\n            this.backgroundColor.alpha = 0;\r\n        }\r\n\r\n        /**\r\n         * @const {Phaser.Types.Core.BootCallback} Phaser.Core.Config#preBoot - Called before Phaser boots. Useful for initializing anything not related to Phaser that Phaser may require while booting.\r\n         */\r\n        this.preBoot = GetValue(config, 'callbacks.preBoot', NOOP);\r\n\r\n        /**\r\n         * @const {Phaser.Types.Core.BootCallback} Phaser.Core.Config#postBoot - A function to run at the end of the boot sequence. At this point, all the game systems have started and plugins have been loaded.\r\n         */\r\n        this.postBoot = GetValue(config, 'callbacks.postBoot', NOOP);\r\n\r\n        /**\r\n         * @const {Phaser.Types.Core.PhysicsConfig} Phaser.Core.Config#physics - The Physics Configuration object.\r\n         */\r\n        this.physics = GetValue(config, 'physics', {});\r\n\r\n        /**\r\n         * @const {(boolean|string)} Phaser.Core.Config#defaultPhysicsSystem - The default physics system. It will be started for each scene. Either 'arcade', 'impact' or 'matter'.\r\n         */\r\n        this.defaultPhysicsSystem = GetValue(this.physics, 'default', false);\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#loaderBaseURL - A URL used to resolve paths given to the loader. Example: 'http://labs.phaser.io/assets/'.\r\n         */\r\n        this.loaderBaseURL = GetValue(config, 'loader.baseURL', '');\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#loaderPath - A URL path used to resolve relative paths given to the loader. Example: 'images/sprites/'.\r\n         */\r\n        this.loaderPath = GetValue(config, 'loader.path', '');\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#loaderMaxParallelDownloads - Maximum parallel downloads allowed for resources (Default to 32).\r\n         */\r\n        this.loaderMaxParallelDownloads = GetValue(config, 'loader.maxParallelDownloads', (Device.os.android) ? 6 : 32);\r\n\r\n        /**\r\n         * @const {(string|undefined)} Phaser.Core.Config#loaderCrossOrigin - 'anonymous', 'use-credentials', or `undefined`. If you're not making cross-origin requests, leave this as `undefined`. See {@link https://developer.mozilla.org/en-US/docs/Web/HTML/CORS_settings_attributes}.\r\n         */\r\n        this.loaderCrossOrigin = GetValue(config, 'loader.crossOrigin', undefined);\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#loaderResponseType - The response type of the XHR request, e.g. `blob`, `text`, etc.\r\n         */\r\n        this.loaderResponseType = GetValue(config, 'loader.responseType', '');\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#loaderAsync - Should the XHR request use async or not?\r\n         */\r\n        this.loaderAsync = GetValue(config, 'loader.async', true);\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#loaderUser - Optional username for all XHR requests.\r\n         */\r\n        this.loaderUser = GetValue(config, 'loader.user', '');\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#loaderPassword - Optional password for all XHR requests.\r\n         */\r\n        this.loaderPassword = GetValue(config, 'loader.password', '');\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#loaderTimeout - Optional XHR timeout value, in ms.\r\n         */\r\n        this.loaderTimeout = GetValue(config, 'loader.timeout', 0);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#loaderMaxRetries - The number of times to retry a file load if it fails.\r\n         */\r\n        this.loaderMaxRetries = GetValue(config, 'loader.maxRetries', 2);\r\n\r\n        /**\r\n         * @const {boolean} Phaser.Core.Config#loaderWithCredentials - Optional XHR withCredentials value.\r\n         */\r\n        this.loaderWithCredentials = GetValue(config, 'loader.withCredentials', false);\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#loaderImageLoadType - Optional load type for image, `XHR` is default, or `HTMLImageElement` for a lightweight way.\r\n         */\r\n        this.loaderImageLoadType = GetValue(config, 'loader.imageLoadType', 'XHR');\r\n\r\n        // On iOS, Capacitor often runs on a capacitor:// protocol, meaning local files are served from capacitor:// rather than file://\r\n        // See: https://github.com/photonstorm/phaser/issues/5685\r\n\r\n        /**\r\n         * @const {string[]} Phaser.Core.Config#loaderLocalScheme - An array of schemes that the Loader considers as being 'local' files. Defaults to: `[ 'file://', 'capacitor://' ]`.\r\n         */\r\n        this.loaderLocalScheme = GetValue(config, 'loader.localScheme', [ 'file://', 'capacitor://' ]);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#glowFXQuality - The quality of the Glow FX (defaults to 0.1)\r\n         */\r\n        this.glowFXQuality = GetValue(config, 'fx.glow.quality', 0.1);\r\n\r\n        /**\r\n         * @const {number} Phaser.Core.Config#glowFXDistance - The distance of the Glow FX (defaults to 10)\r\n         */\r\n        this.glowFXDistance = GetValue(config, 'fx.glow.distance', 10);\r\n\r\n        /*\r\n         * Allows `plugins` property to either be an array, in which case it just replaces\r\n         * the default plugins like previously, or a config object.\r\n         *\r\n         * plugins: {\r\n         *    global: [\r\n         *        { key: 'TestPlugin', plugin: TestPlugin, start: true, data: { msg: 'The plugin is alive' } },\r\n         *    ],\r\n         *    scene: [\r\n         *        { key: 'WireFramePlugin', plugin: WireFramePlugin, systemKey: 'wireFramePlugin', sceneKey: 'wireframe' }\r\n         *    ],\r\n         *    default: [], OR\r\n         *    defaultMerge: [\r\n         *        'ModPlayer'\r\n         *    ]\r\n         * }\r\n         */\r\n\r\n        /**\r\n         * @const {any} Phaser.Core.Config#installGlobalPlugins - An array of global plugins to be installed.\r\n         */\r\n        this.installGlobalPlugins = [];\r\n\r\n        /**\r\n         * @const {any} Phaser.Core.Config#installScenePlugins - An array of Scene level plugins to be installed.\r\n         */\r\n        this.installScenePlugins = [];\r\n\r\n        var plugins = GetValue(config, 'plugins', null);\r\n        var defaultPlugins = DefaultPlugins.DefaultScene;\r\n\r\n        if (plugins)\r\n        {\r\n            //  Old 3.7 array format?\r\n            if (Array.isArray(plugins))\r\n            {\r\n                this.defaultPlugins = plugins;\r\n            }\r\n            else if (IsPlainObject(plugins))\r\n            {\r\n                this.installGlobalPlugins = GetFastValue(plugins, 'global', []);\r\n                this.installScenePlugins = GetFastValue(plugins, 'scene', []);\r\n\r\n                if (Array.isArray(plugins.default))\r\n                {\r\n                    defaultPlugins = plugins.default;\r\n                }\r\n                else if (Array.isArray(plugins.defaultMerge))\r\n                {\r\n                    defaultPlugins = defaultPlugins.concat(plugins.defaultMerge);\r\n                }\r\n            }\r\n        }\r\n\r\n        /**\r\n         * @const {any} Phaser.Core.Config#defaultPlugins - The plugins installed into every Scene (in addition to CoreScene and Global).\r\n         */\r\n        this.defaultPlugins = defaultPlugins;\r\n\r\n        //  Default / Missing Images\r\n        var pngPrefix = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAg';\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#defaultImage - A base64 encoded PNG that will be used as the default blank texture.\r\n         */\r\n        this.defaultImage = GetValue(config, 'images.default', pngPrefix + 'AQMAAABJtOi3AAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAABVJREFUeF7NwIEAAAAAgKD9qdeocAMAoAABm3DkcAAAAABJRU5ErkJggg==');\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#missingImage - A base64 encoded PNG that will be used as the default texture when a texture is assigned that is missing or not loaded.\r\n         */\r\n        this.missingImage = GetValue(config, 'images.missing', pngPrefix + 'CAIAAAD8GO2jAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAJ9JREFUeNq01ssOwyAMRFG46v//Mt1ESmgh+DFmE2GPOBARKb2NVjo+17PXLD8a1+pl5+A+wSgFygymWYHBb0FtsKhJDdZlncG2IzJ4ayoMDv20wTmSMzClEgbWYNTAkQ0Z+OJ+A/eWnAaR9+oxCF4Os0H8htsMUp+pwcgBBiMNnAwF8GqIgL2hAzaGFFgZauDPKABmowZ4GL369/0rwACp2yA/ttmvsQAAAABJRU5ErkJggg==');\r\n\r\n        /**\r\n         * @const {string} Phaser.Core.Config#whiteImage - A base64 encoded PNG that will be used as the default texture when a texture is assigned that is white or not loaded.\r\n         */\r\n        this.whiteImage = GetValue(config, 'images.white', 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAAECAIAAAAmkwkpAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAABdJREFUeNpi/P//PwMMMDEgAdwcgAADAJZuAwXJYZOzAAAAAElFTkSuQmCC');\r\n\r\n        if (window)\r\n        {\r\n            if (window.FORCE_WEBGL)\r\n            {\r\n                this.renderType = CONST.WEBGL;\r\n            }\r\n            else if (window.FORCE_CANVAS)\r\n            {\r\n                this.renderType = CONST.CANVAS;\r\n            }\r\n        }\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Config;\r\n\n\n/***/ }),\n\n/***/ 86054:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CanvasInterpolation = __webpack_require__(20623);\r\nvar CanvasPool = __webpack_require__(27919);\r\nvar CONST = __webpack_require__(8054);\r\nvar Features = __webpack_require__(89357);\r\n\r\n/**\r\n * Called automatically by Phaser.Game and responsible for creating the renderer it will use.\r\n *\r\n * Relies upon two webpack global flags to be defined: `WEBGL_RENDERER` and `CANVAS_RENDERER` during build time, but not at run-time.\r\n *\r\n * @function Phaser.Core.CreateRenderer\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Game} game - The Phaser.Game instance on which the renderer will be set.\r\n */\r\nvar CreateRenderer = function (game)\r\n{\r\n    var config = game.config;\r\n\r\n    if ((config.customEnvironment || config.canvas) && config.renderType === CONST.AUTO)\r\n    {\r\n        throw new Error('Must set explicit renderType in custom environment');\r\n    }\r\n\r\n    //  Not a custom environment, didn't provide their own canvas and not headless, so determine the renderer:\r\n    if (!config.customEnvironment && !config.canvas && config.renderType !== CONST.HEADLESS)\r\n    {\r\n        if (config.renderType === CONST.AUTO)\r\n        {\r\n            config.renderType = Features.webGL ? CONST.WEBGL : CONST.CANVAS;\r\n        }\r\n\r\n        if (config.renderType === CONST.WEBGL)\r\n        {\r\n            if (!Features.webGL) { throw new Error('Cannot create WebGL context, aborting.'); }\r\n        }\r\n        else if (config.renderType === CONST.CANVAS)\r\n        {\r\n            if (!Features.canvas) { throw new Error('Cannot create Canvas context, aborting.'); }\r\n        }\r\n        else\r\n        {\r\n            throw new Error('Unknown value for renderer type: ' + config.renderType);\r\n        }\r\n    }\r\n\r\n    //  Pixel Art mode?\r\n    if (!config.antialias)\r\n    {\r\n        CanvasPool.disableSmoothing();\r\n    }\r\n\r\n    var baseSize = game.scale.baseSize;\r\n\r\n    var width = baseSize.width;\r\n    var height = baseSize.height;\r\n\r\n    //  Does the game config provide its own canvas element to use?\r\n    if (config.canvas)\r\n    {\r\n        game.canvas = config.canvas;\r\n\r\n        game.canvas.width = width;\r\n        game.canvas.height = height;\r\n    }\r\n    else\r\n    {\r\n        game.canvas = CanvasPool.create(game, width, height, config.renderType);\r\n    }\r\n\r\n    //  Does the game config provide some canvas css styles to use?\r\n    if (config.canvasStyle)\r\n    {\r\n        game.canvas.style = config.canvasStyle;\r\n    }\r\n\r\n    //  Pixel Art mode?\r\n    if (!config.antialias)\r\n    {\r\n        CanvasInterpolation.setCrisp(game.canvas);\r\n    }\r\n\r\n    if (config.renderType === CONST.HEADLESS)\r\n    {\r\n        //  Nothing more to do here\r\n        return;\r\n    }\r\n\r\n    var CanvasRenderer;\r\n    var WebGLRenderer;\r\n\r\n    if (true)\r\n    {\r\n        CanvasRenderer = __webpack_require__(68627);\r\n        WebGLRenderer = __webpack_require__(74797);\r\n\r\n        //  Let the config pick the renderer type, as both are included\r\n        if (config.renderType === CONST.WEBGL)\r\n        {\r\n            game.renderer = new WebGLRenderer(game);\r\n        }\r\n        else\r\n        {\r\n            game.renderer = new CanvasRenderer(game);\r\n            game.context = game.renderer.gameContext;\r\n        }\r\n    }\r\n\r\n    if (false)\r\n    {}\r\n\r\n    if (false)\r\n    {}\r\n};\r\n\r\nmodule.exports = CreateRenderer;\r\n\n\n/***/ }),\n\n/***/ 96391:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CONST = __webpack_require__(8054);\r\n\r\n/**\r\n * Called automatically by Phaser.Game and responsible for creating the console.log debug header.\r\n *\r\n * You can customize or disable the header via the Game Config object.\r\n *\r\n * @function Phaser.Core.DebugHeader\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Game} game - The Phaser.Game instance which will output this debug header.\r\n */\r\nvar DebugHeader = function (game)\r\n{\r\n    var config = game.config;\r\n\r\n    if (config.hideBanner)\r\n    {\r\n        return;\r\n    }\r\n\r\n    var renderType = 'WebGL';\r\n\r\n    if (config.renderType === CONST.CANVAS)\r\n    {\r\n        renderType = 'Canvas';\r\n    }\r\n    else if (config.renderType === CONST.HEADLESS)\r\n    {\r\n        renderType = 'Headless';\r\n    }\r\n\r\n    var audioConfig = config.audio;\r\n    var deviceAudio = game.device.audio;\r\n\r\n    var audioType;\r\n\r\n    if (deviceAudio.webAudio && !audioConfig.disableWebAudio)\r\n    {\r\n        audioType = 'Web Audio';\r\n    }\r\n    else if (audioConfig.noAudio || (!deviceAudio.webAudio && !deviceAudio.audioData))\r\n    {\r\n        audioType = 'No Audio';\r\n    }\r\n    else\r\n    {\r\n        audioType = 'HTML5 Audio';\r\n    }\r\n\r\n    if (!game.device.browser.ie)\r\n    {\r\n        var c = '';\r\n        var args = [ c ];\r\n\r\n        if (Array.isArray(config.bannerBackgroundColor))\r\n        {\r\n            var lastColor;\r\n\r\n            config.bannerBackgroundColor.forEach(function (color)\r\n            {\r\n                c = c.concat('%c ');\r\n\r\n                args.push('background: ' + color);\r\n\r\n                lastColor = color;\r\n            });\r\n\r\n            //  inject the text color\r\n            args[args.length - 1] = 'color: ' + config.bannerTextColor + '; background: ' + lastColor;\r\n        }\r\n        else\r\n        {\r\n            c = c.concat('%c ');\r\n\r\n            args.push('color: ' + config.bannerTextColor + '; background: ' + config.bannerBackgroundColor);\r\n        }\r\n\r\n        //  URL link background color (always transparent to support different browser themes)\r\n        args.push('background: transparent');\r\n\r\n        if (config.gameTitle)\r\n        {\r\n            c = c.concat(config.gameTitle);\r\n\r\n            if (config.gameVersion)\r\n            {\r\n                c = c.concat(' v' + config.gameVersion);\r\n            }\r\n\r\n            if (!config.hidePhaser)\r\n            {\r\n                c = c.concat(' / ');\r\n            }\r\n        }\r\n\r\n        var fb = ( false) ? 0 : '';\r\n\r\n        if (!config.hidePhaser)\r\n        {\r\n            c = c.concat('Phaser v' + CONST.VERSION + fb + ' (' + renderType + ' | ' + audioType + ')');\r\n        }\r\n\r\n        c = c.concat(' %c ' + config.gameURL);\r\n\r\n        //  Inject the new string back into the args array\r\n        args[0] = c;\r\n\r\n        console.log.apply(console, args);\r\n    }\r\n    else if (window['console'])\r\n    {\r\n        console.log('Phaser v' + CONST.VERSION + ' / https://phaser.io');\r\n    }\r\n};\r\n\r\nmodule.exports = DebugHeader;\r\n\n\n/***/ }),\n\n/***/ 50127:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar AddToDOM = __webpack_require__(40366);\r\nvar AnimationManager = __webpack_require__(60848);\r\nvar CacheManager = __webpack_require__(24047);\r\nvar CanvasPool = __webpack_require__(27919);\r\nvar Class = __webpack_require__(83419);\r\nvar Config = __webpack_require__(69547);\r\nvar CreateDOMContainer = __webpack_require__(83719);\r\nvar CreateRenderer = __webpack_require__(86054);\r\nvar DataManager = __webpack_require__(45893);\r\nvar DebugHeader = __webpack_require__(96391);\r\nvar Device = __webpack_require__(82264);\r\nvar DOMContentLoaded = __webpack_require__(57264);\r\nvar EventEmitter = __webpack_require__(50792);\r\nvar Events = __webpack_require__(8443);\r\nvar InputManager = __webpack_require__(7003);\r\nvar PluginCache = __webpack_require__(37277);\r\nvar PluginManager = __webpack_require__(77332);\r\nvar ScaleManager = __webpack_require__(76531);\r\nvar SceneManager = __webpack_require__(60903);\r\nvar TextureEvents = __webpack_require__(69442);\r\nvar TextureManager = __webpack_require__(17130);\r\nvar TimeStep = __webpack_require__(65898);\r\nvar VisibilityHandler = __webpack_require__(51085);\r\n\r\nif (true)\r\n{\r\n    var SoundManagerCreator = __webpack_require__(14747);\r\n}\r\n\r\nif (false)\r\n{ var FacebookInstantGamesPlugin; }\r\n\r\n/**\r\n * @classdesc\r\n * The Phaser.Game instance is the main controller for the entire Phaser game. It is responsible\r\n * for handling the boot process, parsing the configuration values, creating the renderer,\r\n * and setting-up all of the global Phaser systems, such as sound and input.\r\n * Once that is complete it will start the Scene Manager and then begin the main game loop.\r\n *\r\n * You should generally avoid accessing any of the systems created by Game, and instead use those\r\n * made available to you via the Phaser.Scene Systems class instead.\r\n *\r\n * @class Game\r\n * @memberof Phaser\r\n * @constructor\r\n * @fires Phaser.Core.Events#BLUR\r\n * @fires Phaser.Core.Events#FOCUS\r\n * @fires Phaser.Core.Events#HIDDEN\r\n * @fires Phaser.Core.Events#VISIBLE\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.Core.GameConfig} [GameConfig] - The configuration object for your Phaser Game instance.\r\n */\r\nvar Game = new Class({\r\n\r\n    initialize:\r\n\r\n    function Game (config)\r\n    {\r\n        /**\r\n         * The parsed Game Configuration object.\r\n         *\r\n         * The values stored within this object are read-only and should not be changed at run-time.\r\n         *\r\n         * @name Phaser.Game#config\r\n         * @type {Phaser.Core.Config}\r\n         * @readonly\r\n         * @since 3.0.0\r\n         */\r\n        this.config = new Config(config);\r\n\r\n        /**\r\n         * A reference to either the Canvas or WebGL Renderer that this Game is using.\r\n         *\r\n         * @name Phaser.Game#renderer\r\n         * @type {(Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer)}\r\n         * @since 3.0.0\r\n         */\r\n        this.renderer = null;\r\n\r\n        /**\r\n         * A reference to an HTML Div Element used as the DOM Element Container.\r\n         *\r\n         * Only set if `createDOMContainer` is `true` in the game config (by default it is `false`) and\r\n         * if you provide a parent element to insert the Phaser Game inside.\r\n         *\r\n         * See the DOM Element Game Object for more details.\r\n         *\r\n         * @name Phaser.Game#domContainer\r\n         * @type {HTMLDivElement}\r\n         * @since 3.17.0\r\n         */\r\n        this.domContainer = null;\r\n\r\n        /**\r\n         * A reference to the HTML Canvas Element that Phaser uses to render the game.\r\n         * This is created automatically by Phaser unless you provide a `canvas` property\r\n         * in your Game Config.\r\n         *\r\n         * @name Phaser.Game#canvas\r\n         * @type {HTMLCanvasElement}\r\n         * @since 3.0.0\r\n         */\r\n        this.canvas = null;\r\n\r\n        /**\r\n         * A reference to the Rendering Context belonging to the Canvas Element this game is rendering to.\r\n         * If the game is running under Canvas it will be a 2d Canvas Rendering Context.\r\n         * If the game is running under WebGL it will be a WebGL Rendering Context.\r\n         * This context is created automatically by Phaser unless you provide a `context` property\r\n         * in your Game Config.\r\n         *\r\n         * @name Phaser.Game#context\r\n         * @type {(CanvasRenderingContext2D|WebGLRenderingContext)}\r\n         * @since 3.0.0\r\n         */\r\n        this.context = null;\r\n\r\n        /**\r\n         * A flag indicating when this Game instance has finished its boot process.\r\n         *\r\n         * @name Phaser.Game#isBooted\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @since 3.0.0\r\n         */\r\n        this.isBooted = false;\r\n\r\n        /**\r\n         * A flag indicating if this Game is currently running its game step or not.\r\n         *\r\n         * @name Phaser.Game#isRunning\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @since 3.0.0\r\n         */\r\n        this.isRunning = false;\r\n\r\n        /**\r\n         * An Event Emitter which is used to broadcast game-level events from the global systems.\r\n         *\r\n         * @name Phaser.Game#events\r\n         * @type {Phaser.Events.EventEmitter}\r\n         * @since 3.0.0\r\n         */\r\n        this.events = new EventEmitter();\r\n\r\n        /**\r\n         * An instance of the Animation Manager.\r\n         *\r\n         * The Animation Manager is a global system responsible for managing all animations used within your game.\r\n         *\r\n         * @name Phaser.Game#anims\r\n         * @type {Phaser.Animations.AnimationManager}\r\n         * @since 3.0.0\r\n         */\r\n        this.anims = new AnimationManager(this);\r\n\r\n        /**\r\n         * An instance of the Texture Manager.\r\n         *\r\n         * The Texture Manager is a global system responsible for managing all textures being used by your game.\r\n         *\r\n         * @name Phaser.Game#textures\r\n         * @type {Phaser.Textures.TextureManager}\r\n         * @since 3.0.0\r\n         */\r\n        this.textures = new TextureManager(this);\r\n\r\n        /**\r\n         * An instance of the Cache Manager.\r\n         *\r\n         * The Cache Manager is a global system responsible for caching, accessing and releasing external game assets.\r\n         *\r\n         * @name Phaser.Game#cache\r\n         * @type {Phaser.Cache.CacheManager}\r\n         * @since 3.0.0\r\n         */\r\n        this.cache = new CacheManager(this);\r\n\r\n        /**\r\n         * An instance of the Data Manager. This is a global manager, available from any Scene\r\n         * and allows you to share and exchange your own game-level data or events without having\r\n         * to use an internal event system.\r\n         *\r\n         * @name Phaser.Game#registry\r\n         * @type {Phaser.Data.DataManager}\r\n         * @since 3.0.0\r\n         */\r\n        this.registry = new DataManager(this, new EventEmitter());\r\n\r\n        /**\r\n         * An instance of the Input Manager.\r\n         *\r\n         * The Input Manager is a global system responsible for the capture of browser-level input events.\r\n         *\r\n         * @name Phaser.Game#input\r\n         * @type {Phaser.Input.InputManager}\r\n         * @since 3.0.0\r\n         */\r\n        this.input = new InputManager(this, this.config);\r\n\r\n        /**\r\n         * An instance of the Scene Manager.\r\n         *\r\n         * The Scene Manager is a global system responsible for creating, modifying and updating the Scenes in your game.\r\n         *\r\n         * @name Phaser.Game#scene\r\n         * @type {Phaser.Scenes.SceneManager}\r\n         * @since 3.0.0\r\n         */\r\n        this.scene = new SceneManager(this, this.config.sceneConfig);\r\n\r\n        /**\r\n         * A reference to the Device inspector.\r\n         *\r\n         * Contains information about the device running this game, such as OS, browser vendor and feature support.\r\n         * Used by various systems to determine capabilities and code paths.\r\n         *\r\n         * @name Phaser.Game#device\r\n         * @type {Phaser.DeviceConf}\r\n         * @since 3.0.0\r\n         */\r\n        this.device = Device;\r\n\r\n        /**\r\n         * An instance of the Scale Manager.\r\n         *\r\n         * The Scale Manager is a global system responsible for handling scaling of the game canvas.\r\n         *\r\n         * @name Phaser.Game#scale\r\n         * @type {Phaser.Scale.ScaleManager}\r\n         * @since 3.16.0\r\n         */\r\n        this.scale = new ScaleManager(this, this.config);\r\n\r\n        /**\r\n         * An instance of the base Sound Manager.\r\n         *\r\n         * The Sound Manager is a global system responsible for the playback and updating of all audio in your game.\r\n         *\r\n         * You can disable the inclusion of the Sound Manager in your build by toggling the webpack `FEATURE_SOUND` flag.\r\n         *\r\n         * @name Phaser.Game#sound\r\n         * @type {(Phaser.Sound.NoAudioSoundManager|Phaser.Sound.HTML5AudioSoundManager|Phaser.Sound.WebAudioSoundManager)}\r\n         * @since 3.0.0\r\n         */\r\n        this.sound = null;\r\n\r\n        if (true)\r\n        {\r\n            this.sound = SoundManagerCreator.create(this);\r\n        }\r\n\r\n        /**\r\n         * An instance of the Time Step.\r\n         *\r\n         * The Time Step is a global system responsible for setting-up and responding to the browser frame events, processing\r\n         * them and calculating delta values. It then automatically calls the game step.\r\n         *\r\n         * @name Phaser.Game#loop\r\n         * @type {Phaser.Core.TimeStep}\r\n         * @since 3.0.0\r\n         */\r\n        this.loop = new TimeStep(this, this.config.fps);\r\n\r\n        /**\r\n         * An instance of the Plugin Manager.\r\n         *\r\n         * The Plugin Manager is a global system that allows plugins to register themselves with it, and can then install\r\n         * those plugins into Scenes as required.\r\n         *\r\n         * @name Phaser.Game#plugins\r\n         * @type {Phaser.Plugins.PluginManager}\r\n         * @since 3.0.0\r\n         */\r\n        this.plugins = new PluginManager(this, this.config);\r\n\r\n        if (false)\r\n        {}\r\n\r\n        /**\r\n         * Is this Game pending destruction at the start of the next frame?\r\n         *\r\n         * @name Phaser.Game#pendingDestroy\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this.pendingDestroy = false;\r\n\r\n        /**\r\n         * Remove the Canvas once the destroy is over?\r\n         *\r\n         * @name Phaser.Game#removeCanvas\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.5.0\r\n         */\r\n        this.removeCanvas = false;\r\n\r\n        /**\r\n         * Remove everything when the game is destroyed.\r\n         * You cannot create a new Phaser instance on the same web page after doing this.\r\n         *\r\n         * @name Phaser.Game#noReturn\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.12.0\r\n         */\r\n        this.noReturn = false;\r\n\r\n        /**\r\n         * Does the window the game is running in currently have focus or not?\r\n         * This is modified by the VisibilityHandler.\r\n         *\r\n         * @name Phaser.Game#hasFocus\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @since 3.9.0\r\n         */\r\n        this.hasFocus = false;\r\n\r\n        /**\r\n         * Is the Game currently paused? This will stop everything from updating,\r\n         * except the `TimeStep` and related RequestAnimationFrame or setTimeout.\r\n         * Those will continue stepping, but the core Game step will be skipped.\r\n         *\r\n         * @name Phaser.Game#isPaused\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this.isPaused = false;\r\n\r\n        //  Wait for the DOM Ready event, then call boot.\r\n        DOMContentLoaded(this.boot.bind(this));\r\n    },\r\n\r\n    /**\r\n     * This method is called automatically when the DOM is ready. It is responsible for creating the renderer,\r\n     * displaying the Debug Header, adding the game canvas to the DOM and emitting the 'boot' event.\r\n     * It listens for a 'ready' event from the base systems and once received it will call `Game.start`.\r\n     *\r\n     * @method Phaser.Game#boot\r\n     * @protected\r\n     * @fires Phaser.Core.Events#BOOT\r\n     * @listens Phaser.Textures.Events#READY\r\n     * @since 3.0.0\r\n     */\r\n    boot: function ()\r\n    {\r\n        if (!PluginCache.hasCore('EventEmitter'))\r\n        {\r\n            console.warn('Aborting. Core Plugins missing.');\r\n            return;\r\n        }\r\n\r\n        this.isBooted = true;\r\n\r\n        this.config.preBoot(this);\r\n\r\n        this.scale.preBoot();\r\n\r\n        CreateRenderer(this);\r\n\r\n        CreateDOMContainer(this);\r\n\r\n        DebugHeader(this);\r\n\r\n        AddToDOM(this.canvas, this.config.parent);\r\n\r\n        //  The Texture Manager has to wait on a couple of non-blocking events before it's fully ready.\r\n        //  So it will emit this internal event when done:\r\n        this.textures.once(TextureEvents.READY, this.texturesReady, this);\r\n\r\n        this.events.emit(Events.BOOT);\r\n\r\n        if (false)\r\n        {}\r\n    },\r\n\r\n    /**\r\n     * Called automatically when the Texture Manager has finished setting up and preparing the\r\n     * default textures.\r\n     *\r\n     * @method Phaser.Game#texturesReady\r\n     * @private\r\n     * @fires Phaser.Game#READY\r\n     * @since 3.12.0\r\n     */\r\n    texturesReady: function ()\r\n    {\r\n        //  Start all the other systems\r\n        this.events.emit(Events.READY);\r\n\r\n        this.start();\r\n    },\r\n\r\n    /**\r\n     * Called automatically by Game.boot once all of the global systems have finished setting themselves up.\r\n     * By this point the Game is now ready to start the main loop running.\r\n     * It will also enable the Visibility Handler.\r\n     *\r\n     * @method Phaser.Game#start\r\n     * @protected\r\n     * @since 3.0.0\r\n     */\r\n    start: function ()\r\n    {\r\n        this.isRunning = true;\r\n\r\n        this.config.postBoot(this);\r\n\r\n        if (this.renderer)\r\n        {\r\n            this.loop.start(this.step.bind(this));\r\n        }\r\n        else\r\n        {\r\n            this.loop.start(this.headlessStep.bind(this));\r\n        }\r\n\r\n        VisibilityHandler(this);\r\n\r\n        var eventEmitter = this.events;\r\n\r\n        eventEmitter.on(Events.HIDDEN, this.onHidden, this);\r\n        eventEmitter.on(Events.VISIBLE, this.onVisible, this);\r\n        eventEmitter.on(Events.BLUR, this.onBlur, this);\r\n        eventEmitter.on(Events.FOCUS, this.onFocus, this);\r\n    },\r\n\r\n    /**\r\n     * The main Game Step. Called automatically by the Time Step, once per browser frame (typically as a result of\r\n     * Request Animation Frame, or Set Timeout on very old browsers.)\r\n     *\r\n     * The step will update the global managers first, then proceed to update each Scene in turn, via the Scene Manager.\r\n     *\r\n     * It will then render each Scene in turn, via the Renderer. This process emits `prerender` and `postrender` events.\r\n     *\r\n     * @method Phaser.Game#step\r\n     * @fires Phaser.Core.Events#PRE_STEP\r\n     * @fires Phaser.Core.Events#STEP\r\n     * @fires Phaser.Core.Events#POST_STEP\r\n     * @fires Phaser.Core.Events#PRE_RENDER\r\n     * @fires Phaser.Core.Events#POST_RENDER\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} time - The current time. Either a High Resolution Timer value if it comes from Request Animation Frame, or Date.now if using SetTimeout.\r\n     * @param {number} delta - The delta time in ms since the last frame. This is a smoothed and capped value based on the FPS rate.\r\n     */\r\n    step: function (time, delta)\r\n    {\r\n        if (this.pendingDestroy)\r\n        {\r\n            return this.runDestroy();\r\n        }\r\n\r\n        if (this.isPaused)\r\n        {\r\n            return;\r\n        }\r\n\r\n        var eventEmitter = this.events;\r\n\r\n        //  Global Managers like Input and Sound update in the prestep\r\n\r\n        eventEmitter.emit(Events.PRE_STEP, time, delta);\r\n\r\n        //  This is mostly meant for user-land code and plugins\r\n\r\n        eventEmitter.emit(Events.STEP, time, delta);\r\n\r\n        //  Update the Scene Manager and all active Scenes\r\n\r\n        this.scene.update(time, delta);\r\n\r\n        //  Our final event before rendering starts\r\n\r\n        eventEmitter.emit(Events.POST_STEP, time, delta);\r\n\r\n        var renderer = this.renderer;\r\n\r\n        //  Run the Pre-render (clearing the canvas, setting background colors, etc)\r\n\r\n        renderer.preRender();\r\n\r\n        eventEmitter.emit(Events.PRE_RENDER, renderer, time, delta);\r\n\r\n        //  The main render loop. Iterates all Scenes and all Cameras in those scenes, rendering to the renderer instance.\r\n\r\n        this.scene.render(renderer);\r\n\r\n        //  The Post-Render call. Tidies up loose end, takes snapshots, etc.\r\n\r\n        renderer.postRender();\r\n\r\n        //  The final event before the step repeats. Your last chance to do anything to the canvas before it all starts again.\r\n\r\n        eventEmitter.emit(Events.POST_RENDER, renderer, time, delta);\r\n    },\r\n\r\n    /**\r\n     * A special version of the Game Step for the HEADLESS renderer only.\r\n     *\r\n     * The main Game Step. Called automatically by the Time Step, once per browser frame (typically as a result of\r\n     * Request Animation Frame, or Set Timeout on very old browsers.)\r\n     *\r\n     * The step will update the global managers first, then proceed to update each Scene in turn, via the Scene Manager.\r\n     *\r\n     * This process emits `prerender` and `postrender` events, even though nothing actually displays.\r\n     *\r\n     * @method Phaser.Game#headlessStep\r\n     * @fires Phaser.Game#PRE_RENDER\r\n     * @fires Phaser.Game#POST_RENDER\r\n     * @since 3.2.0\r\n     *\r\n     * @param {number} time - The current time. Either a High Resolution Timer value if it comes from Request Animation Frame, or Date.now if using SetTimeout.\r\n     * @param {number} delta - The delta time in ms since the last frame. This is a smoothed and capped value based on the FPS rate.\r\n     */\r\n    headlessStep: function (time, delta)\r\n    {\r\n        if (this.pendingDestroy)\r\n        {\r\n            return this.runDestroy();\r\n        }\r\n\r\n        if (this.isPaused)\r\n        {\r\n            return;\r\n        }\r\n\r\n        var eventEmitter = this.events;\r\n\r\n        //  Global Managers like Input and Sound update in the prestep\r\n\r\n        eventEmitter.emit(Events.PRE_STEP, time, delta);\r\n\r\n        //  This is mostly meant for user-land code and plugins\r\n\r\n        eventEmitter.emit(Events.STEP, time, delta);\r\n\r\n        //  Update the Scene Manager and all active Scenes\r\n\r\n        this.scene.update(time, delta);\r\n\r\n        //  Our final event before rendering starts\r\n\r\n        eventEmitter.emit(Events.POST_STEP, time, delta);\r\n\r\n        //  Render\r\n        this.scene.isProcessing = false;\r\n\r\n        eventEmitter.emit(Events.PRE_RENDER, null, time, delta);\r\n\r\n        eventEmitter.emit(Events.POST_RENDER, null, time, delta);\r\n    },\r\n\r\n    /**\r\n     * Called automatically by the Visibility Handler.\r\n     * This will pause the main loop and then emit a pause event.\r\n     *\r\n     * @method Phaser.Game#onHidden\r\n     * @protected\r\n     * @fires Phaser.Core.Events#PAUSE\r\n     * @since 3.0.0\r\n     */\r\n    onHidden: function ()\r\n    {\r\n        this.loop.pause();\r\n\r\n        this.events.emit(Events.PAUSE);\r\n    },\r\n\r\n    /**\r\n     * This will pause the entire game and emit a `PAUSE` event.\r\n     *\r\n     * All of Phaser's internal systems will be paused and the game will not re-render.\r\n     *\r\n     * Note that it does not pause any Loader requests that are currently in-flight.\r\n     *\r\n     * @method Phaser.Game#pause\r\n     * @fires Phaser.Core.Events#PAUSE\r\n     * @since 3.60.0\r\n     */\r\n    pause: function ()\r\n    {\r\n        var wasPaused = this.isPaused;\r\n\r\n        this.isPaused = true;\r\n\r\n        if (!wasPaused)\r\n        {\r\n            this.events.emit(Events.PAUSE);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Called automatically by the Visibility Handler.\r\n     * This will resume the main loop and then emit a resume event.\r\n     *\r\n     * @method Phaser.Game#onVisible\r\n     * @protected\r\n     * @fires Phaser.Core.Events#RESUME\r\n     * @since 3.0.0\r\n     */\r\n    onVisible: function ()\r\n    {\r\n        this.loop.resume();\r\n\r\n        this.events.emit(Events.RESUME, this.loop.pauseDuration);\r\n    },\r\n\r\n    /**\r\n     * This will resume the entire game and emit a `RESUME` event.\r\n     *\r\n     * All of Phaser's internal systems will be resumed and the game will start rendering again.\r\n     *\r\n     * @method Phaser.Game#resume\r\n     * @fires Phaser.Core.Events#RESUME\r\n     * @since 3.60.0\r\n     */\r\n    resume: function ()\r\n    {\r\n        var wasPaused = this.isPaused;\r\n\r\n        this.isPaused = false;\r\n\r\n        if (wasPaused)\r\n        {\r\n            this.events.emit(Events.RESUME, 0);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Called automatically by the Visibility Handler.\r\n     * This will set the main loop into a 'blurred' state, which pauses it.\r\n     *\r\n     * @method Phaser.Game#onBlur\r\n     * @protected\r\n     * @since 3.0.0\r\n     */\r\n    onBlur: function ()\r\n    {\r\n        this.hasFocus = false;\r\n\r\n        this.loop.blur();\r\n    },\r\n\r\n    /**\r\n     * Called automatically by the Visibility Handler.\r\n     * This will set the main loop into a 'focused' state, which resumes it.\r\n     *\r\n     * @method Phaser.Game#onFocus\r\n     * @protected\r\n     * @since 3.0.0\r\n     */\r\n    onFocus: function ()\r\n    {\r\n        this.hasFocus = true;\r\n\r\n        this.loop.focus();\r\n    },\r\n\r\n    /**\r\n     * Returns the current game frame.\r\n     *\r\n     * When the game starts running, the frame is incremented every time Request Animation Frame, or Set Timeout, fires.\r\n     *\r\n     * @method Phaser.Game#getFrame\r\n     * @since 3.16.0\r\n     *\r\n     * @return {number} The current game frame.\r\n     */\r\n    getFrame: function ()\r\n    {\r\n        return this.loop.frame;\r\n    },\r\n\r\n    /**\r\n     * Returns the time that the current game step started at, as based on `performance.now`.\r\n     *\r\n     * @method Phaser.Game#getTime\r\n     * @since 3.16.0\r\n     *\r\n     * @return {number} The current game timestamp.\r\n     */\r\n    getTime: function ()\r\n    {\r\n        return this.loop.now;\r\n    },\r\n\r\n    /**\r\n     * Flags this Game instance as needing to be destroyed on the _next frame_, making this an asynchronous operation.\r\n     *\r\n     * It will wait until the current frame has completed and then call `runDestroy` internally.\r\n     *\r\n     * If you need to react to the games eventual destruction, listen for the `DESTROY` event.\r\n     *\r\n     * If you **do not** need to run Phaser again on the same web page you can set the `noReturn` argument to `true` and it will free-up\r\n     * memory being held by the core Phaser plugins. If you do need to create another game instance on the same page, leave this as `false`.\r\n     *\r\n     * @method Phaser.Game#destroy\r\n     * @fires Phaser.Core.Events#DESTROY\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} removeCanvas - Set to `true` if you would like the parent canvas element removed from the DOM, or `false` to leave it in place.\r\n     * @param {boolean} [noReturn=false] - If `true` all the core Phaser plugins are destroyed. You cannot create another instance of Phaser on the same web page if you do this.\r\n     */\r\n    destroy: function (removeCanvas, noReturn)\r\n    {\r\n        if (noReturn === undefined) { noReturn = false; }\r\n\r\n        this.pendingDestroy = true;\r\n\r\n        this.removeCanvas = removeCanvas;\r\n        this.noReturn = noReturn;\r\n    },\r\n\r\n    /**\r\n     * Destroys this Phaser.Game instance, all global systems, all sub-systems and all Scenes.\r\n     *\r\n     * @method Phaser.Game#runDestroy\r\n     * @private\r\n     * @since 3.5.0\r\n     */\r\n    runDestroy: function ()\r\n    {\r\n        this.scene.destroy();\r\n\r\n        this.events.emit(Events.DESTROY);\r\n\r\n        this.events.removeAllListeners();\r\n\r\n        if (this.renderer)\r\n        {\r\n            this.renderer.destroy();\r\n        }\r\n\r\n        if (this.removeCanvas && this.canvas)\r\n        {\r\n            CanvasPool.remove(this.canvas);\r\n\r\n            if (this.canvas.parentNode)\r\n            {\r\n                this.canvas.parentNode.removeChild(this.canvas);\r\n            }\r\n        }\r\n\r\n        if (this.domContainer && this.domContainer.parentNode)\r\n        {\r\n            this.domContainer.parentNode.removeChild(this.domContainer);\r\n        }\r\n\r\n        this.loop.destroy();\r\n\r\n        this.pendingDestroy = false;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Game;\r\n\r\n/**\r\n * \"Computers are good at following instructions, but not at reading your mind.\" - Donald Knuth\r\n */\r\n\n\n/***/ }),\n\n/***/ 65898:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar GetValue = __webpack_require__(35154);\r\nvar NOOP = __webpack_require__(29747);\r\nvar RequestAnimationFrame = __webpack_require__(43092);\r\n\r\n// http://www.testufo.com/#test=animation-time-graph\r\n\r\n/**\r\n * @classdesc\r\n * The core runner class that Phaser uses to handle the game loop. It can use either Request Animation Frame,\r\n * or SetTimeout, based on browser support and config settings, to create a continuous loop within the browser.\r\n *\r\n * Each time the loop fires, `TimeStep.step` is called and this is then passed onto the core Game update loop,\r\n * it is the core heartbeat of your game. It will fire as often as Request Animation Frame is capable of handling\r\n * on the target device.\r\n *\r\n * Note that there are lots of situations where a browser will stop updating your game. Such as if the player\r\n * switches tabs, or covers up the browser window with another application. In these cases, the 'heartbeat'\r\n * of your game will pause, and only resume when focus is returned to it by the player. There is no way to avoid\r\n * this situation, all you can do is use the visibility events the browser, and Phaser, provide to detect when\r\n * it has happened and then gracefully recover.\r\n *\r\n * @class TimeStep\r\n * @memberof Phaser.Core\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Game} game - A reference to the Phaser.Game instance that owns this Time Step.\r\n * @param {Phaser.Types.Core.FPSConfig} config\r\n */\r\nvar TimeStep = new Class({\r\n\r\n    initialize:\r\n\r\n    function TimeStep (game, config)\r\n    {\r\n        /**\r\n         * A reference to the Phaser.Game instance.\r\n         *\r\n         * @name Phaser.Core.TimeStep#game\r\n         * @type {Phaser.Game}\r\n         * @readonly\r\n         * @since 3.0.0\r\n         */\r\n        this.game = game;\r\n\r\n        /**\r\n         * The Request Animation Frame DOM Event handler.\r\n         *\r\n         * @name Phaser.Core.TimeStep#raf\r\n         * @type {Phaser.DOM.RequestAnimationFrame}\r\n         * @readonly\r\n         * @since 3.0.0\r\n         */\r\n        this.raf = new RequestAnimationFrame();\r\n\r\n        /**\r\n         * A flag that is set once the TimeStep has started running and toggled when it stops.\r\n         *\r\n         * @name Phaser.Core.TimeStep#started\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.started = false;\r\n\r\n        /**\r\n         * A flag that is set once the TimeStep has started running and toggled when it stops.\r\n         * The difference between this value and `started` is that `running` is toggled when\r\n         * the TimeStep is sent to sleep, where-as `started` remains `true`, only changing if\r\n         * the TimeStep is actually stopped, not just paused.\r\n         *\r\n         * @name Phaser.Core.TimeStep#running\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.running = false;\r\n\r\n        /**\r\n         * The minimum fps rate you want the Time Step to run at.\r\n         *\r\n         * Setting this cannot guarantee the browser runs at this rate, it merely influences\r\n         * the internal timing values to help the Timestep know when it has gone out of sync.\r\n         *\r\n         * @name Phaser.Core.TimeStep#minFps\r\n         * @type {number}\r\n         * @default 5\r\n         * @since 3.0.0\r\n         */\r\n        this.minFps = GetValue(config, 'min', 5);\r\n\r\n        /**\r\n         * The target fps rate for the Time Step to run at.\r\n         *\r\n         * Setting this value will not actually change the speed at which the browser runs, that is beyond\r\n         * the control of Phaser. Instead, it allows you to determine performance issues and if the Time Step\r\n         * is spiraling out of control.\r\n         *\r\n         * @name Phaser.Core.TimeStep#targetFps\r\n         * @type {number}\r\n         * @default 60\r\n         * @since 3.0.0\r\n         */\r\n        this.targetFps = GetValue(config, 'target', 60);\r\n\r\n        /**\r\n         * Enforce a frame rate limit. This forces how often the Game step will run. By default it is zero,\r\n         * which means it will run at whatever limit the browser (via RequestAnimationFrame) can handle, which\r\n         * is the optimum rate for fast-action or responsive games.\r\n         *\r\n         * However, if you are building a non-game app, like a graphics generator, or low-intensity game that doesn't\r\n         * require 60fps, then you can lower the step rate via this Game Config value:\r\n         *\r\n         * ```js\r\n         * fps: {\r\n         *   limit: 30\r\n         * }\r\n         * ```\r\n         *\r\n         * Setting this _beyond_ the rate of RequestAnimationFrame will make no difference at all.\r\n         *\r\n         * Use it purely to _restrict_ updates in low-intensity situations only.\r\n         *\r\n         * @name Phaser.Core.TimeStep#fpsLimit\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.60.0\r\n         */\r\n        this.fpsLimit = GetValue(config, 'limit', 0);\r\n\r\n        /**\r\n         * Is the FPS rate limited?\r\n         *\r\n         * This is set by setting the Game Config `limit` value to a value above zero.\r\n         *\r\n         * Consider this property as read-only.\r\n         *\r\n         * @name Phaser.Core.TimeStep#hasFpsLimit\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.60.0\r\n         */\r\n        this.hasFpsLimit = (this.fpsLimit > 0);\r\n\r\n        /**\r\n         * Internal value holding the fps rate limit in ms.\r\n         *\r\n         * @name Phaser.Core.TimeStep#_limitRate\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.60.0\r\n         */\r\n        this._limitRate = (this.hasFpsLimit) ? (1000 / this.fpsLimit) : 0;\r\n\r\n        /**\r\n         * The minimum fps value in ms.\r\n         *\r\n         * Defaults to 200ms between frames (i.e. super slow!)\r\n         *\r\n         * @name Phaser.Core.TimeStep#_min\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._min = 1000 / this.minFps;\r\n\r\n        /**\r\n         * The target fps value in ms.\r\n         *\r\n         * Defaults to 16.66ms between frames (i.e. normal)\r\n         *\r\n         * @name Phaser.Core.TimeStep#_target\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._target = 1000 / this.targetFps;\r\n\r\n        /**\r\n         * An exponential moving average of the frames per second.\r\n         *\r\n         * @name Phaser.Core.TimeStep#actualFps\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 60\r\n         * @since 3.0.0\r\n         */\r\n        this.actualFps = this.targetFps;\r\n\r\n        /**\r\n         * The time at which the next fps rate update will take place.\r\n         *\r\n         * When an fps update happens, the `framesThisSecond` value is reset.\r\n         *\r\n         * @name Phaser.Core.TimeStep#nextFpsUpdate\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.nextFpsUpdate = 0;\r\n\r\n        /**\r\n         * The number of frames processed this second.\r\n         *\r\n         * @name Phaser.Core.TimeStep#framesThisSecond\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.framesThisSecond = 0;\r\n\r\n        /**\r\n         * A callback to be invoked each time the TimeStep steps.\r\n         *\r\n         * @name Phaser.Core.TimeStep#callback\r\n         * @type {Phaser.Types.Core.TimeStepCallback}\r\n         * @default NOOP\r\n         * @since 3.0.0\r\n         */\r\n        this.callback = NOOP;\r\n\r\n        /**\r\n         * You can force the TimeStep to use SetTimeOut instead of Request Animation Frame by setting\r\n         * the `forceSetTimeOut` property to `true` in the Game Configuration object. It cannot be changed at run-time.\r\n         *\r\n         * @name Phaser.Core.TimeStep#forceSetTimeOut\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.forceSetTimeOut = GetValue(config, 'forceSetTimeOut', false);\r\n\r\n        /**\r\n         * The time, updated each step by adding the elapsed delta time to the previous value.\r\n         *\r\n         * This differs from the `TimeStep.now` value, which is the high resolution time value\r\n         * as provided by Request Animation Frame.\r\n         *\r\n         * @name Phaser.Core.TimeStep#time\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.time = 0;\r\n\r\n        /**\r\n         * The time at which the game started running.\r\n         *\r\n         * This value is adjusted if the game is then paused and resumes.\r\n         *\r\n         * @name Phaser.Core.TimeStep#startTime\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.startTime = 0;\r\n\r\n        /**\r\n         * The time of the previous step.\r\n         *\r\n         * This is typically a high resolution timer value, as provided by Request Animation Frame.\r\n         *\r\n         * @name Phaser.Core.TimeStep#lastTime\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.lastTime = 0;\r\n\r\n        /**\r\n         * The current frame the game is on. This counter is incremented once every game step, regardless of how much\r\n         * time has passed and is unaffected by delta smoothing.\r\n         *\r\n         * @name Phaser.Core.TimeStep#frame\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.frame = 0;\r\n\r\n        /**\r\n         * Is the browser currently considered in focus by the Page Visibility API?\r\n         *\r\n         * This value is set in the `blur` method, which is called automatically by the Game instance.\r\n         *\r\n         * @name Phaser.Core.TimeStep#inFocus\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @default true\r\n         * @since 3.0.0\r\n         */\r\n        this.inFocus = true;\r\n\r\n        /**\r\n         * The duration of the most recent game pause, if any, in ms.\r\n         *\r\n         * @name Phaser.Core.TimeStep#pauseDuration\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 0\r\n         * @since 3.85.0\r\n         */\r\n        this.pauseDuration = 0;\r\n\r\n        /**\r\n         * The timestamp at which the game became paused, as determined by the Page Visibility API.\r\n         *\r\n         * @name Phaser.Core.TimeStep#_pauseTime\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._pauseTime = 0;\r\n\r\n        /**\r\n         * An internal counter to allow for the browser 'cooling down' after coming back into focus.\r\n         *\r\n         * @name Phaser.Core.TimeStep#_coolDown\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._coolDown = 0;\r\n\r\n        /**\r\n         * The delta time, in ms, since the last game step. This is a clamped and smoothed average value.\r\n         *\r\n         * @name Phaser.Core.TimeStep#delta\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.delta = 0;\r\n\r\n        /**\r\n         * Internal index of the delta history position.\r\n         *\r\n         * @name Phaser.Core.TimeStep#deltaIndex\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.deltaIndex = 0;\r\n\r\n        /**\r\n         * Internal array holding the previous delta values, used for delta smoothing.\r\n         *\r\n         * @name Phaser.Core.TimeStep#deltaHistory\r\n         * @type {number[]}\r\n         * @since 3.0.0\r\n         */\r\n        this.deltaHistory = [];\r\n\r\n        /**\r\n         * The maximum number of delta values that are retained in order to calculate a smoothed moving average.\r\n         *\r\n         * This can be changed in the Game Config via the `fps.deltaHistory` property. The default is 10.\r\n         *\r\n         * @name Phaser.Core.TimeStep#deltaSmoothingMax\r\n         * @type {number}\r\n         * @default 10\r\n         * @since 3.0.0\r\n         */\r\n        this.deltaSmoothingMax = GetValue(config, 'deltaHistory', 10);\r\n\r\n        /**\r\n         * The number of frames that the cooldown is set to after the browser panics over the FPS rate, usually\r\n         * as a result of switching tabs and regaining focus.\r\n         *\r\n         * This can be changed in the Game Config via the `fps.panicMax` property. The default is 120.\r\n         *\r\n         * @name Phaser.Core.TimeStep#panicMax\r\n         * @type {number}\r\n         * @default 120\r\n         * @since 3.0.0\r\n         */\r\n        this.panicMax = GetValue(config, 'panicMax', 120);\r\n\r\n        /**\r\n         * The actual elapsed time in ms between one update and the next.\r\n         *\r\n         * Unlike with `delta`, no smoothing, capping, or averaging is applied to this value.\r\n         * So please be careful when using this value in math calculations.\r\n         *\r\n         * @name Phaser.Core.TimeStep#rawDelta\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.rawDelta = 0;\r\n\r\n        /**\r\n         * The time, set at the start of the current step.\r\n         *\r\n         * This is typically a high resolution timer value, as provided by Request Animation Frame.\r\n         *\r\n         * This can differ from the `time` value in that it isn't calculated based on the delta value.\r\n         *\r\n         * @name Phaser.Core.TimeStep#now\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.18.0\r\n         */\r\n        this.now = 0;\r\n\r\n        /**\r\n         * Apply smoothing to the delta value used within Phasers internal calculations?\r\n         *\r\n         * This can be changed in the Game Config via the `fps.smoothStep` property. The default is `true`.\r\n         *\r\n         * Smoothing helps settle down the delta values after browser tab switches, or other situations\r\n         * which could cause significant delta spikes or dips. By default it has been enabled in Phaser 3\r\n         * since the first version, but is now exposed under this property (and the corresponding game config\r\n         * `smoothStep` value), to allow you to easily disable it, should you require.\r\n         *\r\n         * @name Phaser.Core.TimeStep#smoothStep\r\n         * @type {boolean}\r\n         * @since 3.22.0\r\n         */\r\n        this.smoothStep = GetValue(config, 'smoothStep', true);\r\n    },\r\n\r\n    /**\r\n     * Called by the Game instance when the DOM window.onBlur event triggers.\r\n     *\r\n     * @method Phaser.Core.TimeStep#blur\r\n     * @since 3.0.0\r\n     */\r\n    blur: function ()\r\n    {\r\n        this.inFocus = false;\r\n    },\r\n\r\n    /**\r\n     * Called by the Game instance when the DOM window.onFocus event triggers.\r\n     *\r\n     * @method Phaser.Core.TimeStep#focus\r\n     * @since 3.0.0\r\n     */\r\n    focus: function ()\r\n    {\r\n        this.inFocus = true;\r\n\r\n        this.resetDelta();\r\n    },\r\n\r\n    /**\r\n     * Called when the visibility API says the game is 'hidden' (tab switch out of view, etc)\r\n     *\r\n     * @method Phaser.Core.TimeStep#pause\r\n     * @since 3.0.0\r\n     */\r\n    pause: function ()\r\n    {\r\n        this._pauseTime = window.performance.now();\r\n    },\r\n\r\n    /**\r\n     * Called when the visibility API says the game is 'visible' again (tab switch back into view, etc)\r\n     *\r\n     * @method Phaser.Core.TimeStep#resume\r\n     * @since 3.0.0\r\n     */\r\n    resume: function ()\r\n    {\r\n        this.resetDelta();\r\n\r\n        this.pauseDuration = this.time - this._pauseTime;\r\n        this.startTime += this.pauseDuration;\r\n    },\r\n\r\n    /**\r\n     * Resets the time, lastTime, fps averages and delta history.\r\n     * Called automatically when a browser sleeps them resumes.\r\n     *\r\n     * @method Phaser.Core.TimeStep#resetDelta\r\n     * @since 3.0.0\r\n     */\r\n    resetDelta: function ()\r\n    {\r\n        var now = window.performance.now();\r\n\r\n        this.time = now;\r\n        this.lastTime = now;\r\n        this.nextFpsUpdate = now + 1000;\r\n        this.framesThisSecond = 0;\r\n\r\n        //  Pre-populate smoothing array\r\n\r\n        for (var i = 0; i < this.deltaSmoothingMax; i++)\r\n        {\r\n            this.deltaHistory[i] = Math.min(this._target, this.deltaHistory[i]);\r\n        }\r\n\r\n        this.delta = 0;\r\n        this.deltaIndex = 0;\r\n\r\n        this._coolDown = this.panicMax;\r\n    },\r\n\r\n    /**\r\n     * Starts the Time Step running, if it is not already doing so.\r\n     * Called automatically by the Game Boot process.\r\n     *\r\n     * @method Phaser.Core.TimeStep#start\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.Core.TimeStepCallback} callback - The callback to be invoked each time the Time Step steps.\r\n     */\r\n    start: function (callback)\r\n    {\r\n        if (this.started)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        this.started = true;\r\n        this.running = true;\r\n\r\n        for (var i = 0; i < this.deltaSmoothingMax; i++)\r\n        {\r\n            this.deltaHistory[i] = this._target;\r\n        }\r\n\r\n        this.resetDelta();\r\n\r\n        this.startTime = window.performance.now();\r\n\r\n        this.callback = callback;\r\n\r\n        var step = (this.hasFpsLimit) ? this.stepLimitFPS.bind(this) : this.step.bind(this);\r\n\r\n        this.raf.start(step, this.forceSetTimeOut, this._target);\r\n    },\r\n\r\n    /**\r\n     * Takes the delta value and smooths it based on the previous frames.\r\n     *\r\n     * Called automatically as part of the step.\r\n     *\r\n     * @method Phaser.Core.TimeStep#smoothDelta\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} delta - The delta value for this step.\r\n     *\r\n     * @return {number} The smoothed delta value.\r\n     */\r\n    smoothDelta: function (delta)\r\n    {\r\n        var idx = this.deltaIndex;\r\n        var history = this.deltaHistory;\r\n        var max = this.deltaSmoothingMax;\r\n\r\n        if (this._coolDown > 0 || !this.inFocus)\r\n        {\r\n            this._coolDown--;\r\n\r\n            delta = Math.min(delta, this._target);\r\n        }\r\n\r\n        if (delta > this._min)\r\n        {\r\n            //  Probably super bad start time or browser tab context loss,\r\n            //  so use the last 'sane' delta value\r\n\r\n            delta = history[idx];\r\n\r\n            //  Clamp delta to min (in case history has become corrupted somehow)\r\n            delta = Math.min(delta, this._min);\r\n        }\r\n\r\n        //  Smooth out the delta over the previous X frames\r\n\r\n        //  add the delta to the smoothing array\r\n        history[idx] = delta;\r\n\r\n        //  adjusts the delta history array index based on the smoothing count\r\n        //  this stops the array growing beyond the size of deltaSmoothingMax\r\n        this.deltaIndex++;\r\n\r\n        if (this.deltaIndex >= max)\r\n        {\r\n            this.deltaIndex = 0;\r\n        }\r\n\r\n        //  Loop the history array, adding the delta values together\r\n        var avg = 0;\r\n\r\n        for (var i = 0; i < max; i++)\r\n        {\r\n            avg += history[i];\r\n        }\r\n\r\n        //  Then divide by the array length to get the average delta\r\n        avg /= max;\r\n\r\n        return avg;\r\n    },\r\n\r\n    /**\r\n     * Update the estimate of the frame rate, `fps`. Every second, the number\r\n     * of frames that occurred in that second are included in an exponential\r\n     * moving average of all frames per second, with an alpha of 0.25. This\r\n     * means that more recent seconds affect the estimated frame rate more than\r\n     * older seconds.\r\n     *\r\n     * When a browser window is NOT minimized, but is covered up (i.e. you're using\r\n     * another app which has spawned a window over the top of the browser), then it\r\n     * will start to throttle the raf callback time. It waits for a while, and then\r\n     * starts to drop the frame rate at 1 frame per second until it's down to just over 1fps.\r\n     * So if the game was running at 60fps, and the player opens a new window, then\r\n     * after 60 seconds (+ the 'buffer time') it'll be down to 1fps, so rafin'g at 1Hz.\r\n     *\r\n     * When they make the game visible again, the frame rate is increased at a rate of\r\n     * approx. 8fps, back up to 60fps (or the max it can obtain)\r\n     *\r\n     * There is no easy way to determine if this drop in frame rate is because the\r\n     * browser is throttling raf, or because the game is struggling with performance\r\n     * because you're asking it to do too much on the device.\r\n     *\r\n     * Compute the new exponential moving average with an alpha of 0.25.\r\n     *\r\n     * @method Phaser.Core.TimeStep#updateFPS\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} time - The timestamp passed in from RequestAnimationFrame or setTimeout.\r\n     */\r\n    updateFPS: function (time)\r\n    {\r\n        this.actualFps = 0.25 * this.framesThisSecond + 0.75 * this.actualFps;\r\n        this.nextFpsUpdate = time + 1000;\r\n        this.framesThisSecond = 0;\r\n    },\r\n\r\n    /**\r\n     * The main step method with an fps limiter. This is called each time the browser updates, either by Request Animation Frame,\r\n     * or by Set Timeout. It is responsible for calculating the delta values, frame totals, cool down history and more.\r\n     * You generally should never call this method directly.\r\n     *\r\n     * @method Phaser.Core.TimeStep#stepLimitFPS\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} time - The timestamp passed in from RequestAnimationFrame or setTimeout.\r\n     */\r\n    stepLimitFPS: function (time)\r\n    {\r\n        this.now = time;\r\n\r\n        //  delta time (time is in ms)\r\n        //  Math.max because Chrome will sometimes give negative deltas\r\n        var delta = Math.max(0, time - this.lastTime);\r\n\r\n        this.rawDelta = delta;\r\n\r\n        //  Real-world timer advance\r\n        this.time += this.rawDelta;\r\n\r\n        if (this.smoothStep)\r\n        {\r\n            delta = this.smoothDelta(delta);\r\n        }\r\n\r\n        //  Set as the world delta value (after smoothing, if applied)\r\n        this.delta += delta;\r\n\r\n        if (time >= this.nextFpsUpdate)\r\n        {\r\n            this.updateFPS(time);\r\n        }\r\n\r\n        this.framesThisSecond++;\r\n\r\n        if (this.delta >= this._limitRate)\r\n        {\r\n            this.callback(time, this.delta);\r\n\r\n            this.delta = 0;\r\n        }\r\n\r\n        //  Shift time value over\r\n        this.lastTime = time;\r\n\r\n        this.frame++;\r\n    },\r\n\r\n    /**\r\n     * The main step method. This is called each time the browser updates, either by Request Animation Frame,\r\n     * or by Set Timeout. It is responsible for calculating the delta values, frame totals, cool down history and more.\r\n     * You generally should never call this method directly.\r\n     *\r\n     * @method Phaser.Core.TimeStep#step\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} time - The timestamp passed in from RequestAnimationFrame or setTimeout.\r\n     */\r\n    step: function (time)\r\n    {\r\n        this.now = time;\r\n\r\n        //  delta time (time is in ms)\r\n        //  Math.max because Chrome will sometimes give negative deltas\r\n        var delta = Math.max(0, time - this.lastTime);\r\n\r\n        this.rawDelta = delta;\r\n\r\n        //  Real-world timer advance\r\n        this.time += this.rawDelta;\r\n\r\n        if (this.smoothStep)\r\n        {\r\n            delta = this.smoothDelta(delta);\r\n        }\r\n\r\n        //  Set as the world delta value (after smoothing, if applied)\r\n        this.delta = delta;\r\n\r\n        if (time >= this.nextFpsUpdate)\r\n        {\r\n            this.updateFPS(time);\r\n        }\r\n\r\n        this.framesThisSecond++;\r\n\r\n        this.callback(time, delta);\r\n\r\n        //  Shift time value over\r\n        this.lastTime = time;\r\n\r\n        this.frame++;\r\n    },\r\n\r\n    /**\r\n     * Manually calls `TimeStep.step`.\r\n     *\r\n     * @method Phaser.Core.TimeStep#tick\r\n     * @since 3.0.0\r\n     */\r\n    tick: function ()\r\n    {\r\n        var now = window.performance.now();\r\n\r\n        if (this.hasFpsLimit)\r\n        {\r\n            this.stepLimitFPS(now);\r\n        }\r\n        else\r\n        {\r\n            this.step(now);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Sends the TimeStep to sleep, stopping Request Animation Frame (or SetTimeout) and toggling the `running` flag to false.\r\n     *\r\n     * @method Phaser.Core.TimeStep#sleep\r\n     * @since 3.0.0\r\n     */\r\n    sleep: function ()\r\n    {\r\n        if (this.running)\r\n        {\r\n            this.raf.stop();\r\n\r\n            this.running = false;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Wakes-up the TimeStep, restarting Request Animation Frame (or SetTimeout) and toggling the `running` flag to true.\r\n     * The `seamless` argument controls if the wake-up should adjust the start time or not.\r\n     *\r\n     * @method Phaser.Core.TimeStep#wake\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} [seamless=false] - Adjust the startTime based on the lastTime values.\r\n     */\r\n    wake: function (seamless)\r\n    {\r\n        if (seamless === undefined) { seamless = false; }\r\n\r\n        var now = window.performance.now();\r\n\r\n        if (this.running)\r\n        {\r\n            return;\r\n        }\r\n        else if (seamless)\r\n        {\r\n            this.startTime += -this.lastTime + (this.lastTime + now);\r\n        }\r\n\r\n        var step = (this.hasFpsLimit) ? this.stepLimitFPS.bind(this) : this.step.bind(this);\r\n\r\n        this.raf.start(step, this.forceSetTimeOut, this._target);\r\n\r\n        this.running = true;\r\n\r\n        this.nextFpsUpdate = now + 1000;\r\n        this.framesThisSecond = 0;\r\n        this.fpsLimitTriggered = false;\r\n\r\n        this.tick();\r\n    },\r\n\r\n    /**\r\n     * Gets the duration which the game has been running, in seconds.\r\n     *\r\n     * @method Phaser.Core.TimeStep#getDuration\r\n     * @since 3.17.0\r\n     *\r\n     * @return {number} The duration in seconds.\r\n     */\r\n    getDuration: function ()\r\n    {\r\n        return Math.round(this.lastTime - this.startTime) / 1000;\r\n    },\r\n\r\n    /**\r\n     * Gets the duration which the game has been running, in ms.\r\n     *\r\n     * @method Phaser.Core.TimeStep#getDurationMS\r\n     * @since 3.17.0\r\n     *\r\n     * @return {number} The duration in ms.\r\n     */\r\n    getDurationMS: function ()\r\n    {\r\n        return Math.round(this.lastTime - this.startTime);\r\n    },\r\n\r\n    /**\r\n     * Stops the TimeStep running.\r\n     *\r\n     * @method Phaser.Core.TimeStep#stop\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} The TimeStep object.\r\n     */\r\n    stop: function ()\r\n    {\r\n        this.running = false;\r\n        this.started = false;\r\n\r\n        this.raf.stop();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Destroys the TimeStep. This will stop Request Animation Frame, stop the step, clear the callbacks and null\r\n     * any objects.\r\n     *\r\n     * @method Phaser.Core.TimeStep#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.stop();\r\n\r\n        this.raf.destroy();\r\n\r\n        this.raf = null;\r\n        this.game = null;\r\n        this.callback = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = TimeStep;\r\n\n\n/***/ }),\n\n/***/ 51085:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Events = __webpack_require__(8443);\r\n\r\n/**\r\n * The Visibility Handler is responsible for listening out for document level visibility change events.\r\n * This includes `visibilitychange` if the browser supports it, and blur and focus events. It then uses\r\n * the provided Event Emitter and fires the related events.\r\n *\r\n * @function Phaser.Core.VisibilityHandler\r\n * @fires Phaser.Core.Events#BLUR\r\n * @fires Phaser.Core.Events#FOCUS\r\n * @fires Phaser.Core.Events#HIDDEN\r\n * @fires Phaser.Core.Events#VISIBLE\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Game} game - The Game instance this Visibility Handler is working on.\r\n */\r\nvar VisibilityHandler = function (game)\r\n{\r\n    var hiddenVar;\r\n    var eventEmitter = game.events;\r\n\r\n    if (document.hidden !== undefined)\r\n    {\r\n        hiddenVar = 'visibilitychange';\r\n    }\r\n    else\r\n    {\r\n        var vendors = [ 'webkit', 'moz', 'ms' ];\r\n\r\n        vendors.forEach(function (prefix)\r\n        {\r\n            if (document[prefix + 'Hidden'] !== undefined)\r\n            {\r\n                document.hidden = function ()\r\n                {\r\n                    return document[prefix + 'Hidden'];\r\n                };\r\n\r\n                hiddenVar = prefix + 'visibilitychange';\r\n            }\r\n\r\n        });\r\n    }\r\n\r\n    var onChange = function (event)\r\n    {\r\n        if (document.hidden || event.type === 'pause')\r\n        {\r\n            eventEmitter.emit(Events.HIDDEN);\r\n        }\r\n        else\r\n        {\r\n            eventEmitter.emit(Events.VISIBLE);\r\n        }\r\n    };\r\n\r\n    if (hiddenVar)\r\n    {\r\n        document.addEventListener(hiddenVar, onChange, false);\r\n    }\r\n\r\n    window.onblur = function ()\r\n    {\r\n        eventEmitter.emit(Events.BLUR);\r\n    };\r\n\r\n    window.onfocus = function ()\r\n    {\r\n        eventEmitter.emit(Events.FOCUS);\r\n    };\r\n\r\n    //  Automatically give the window focus unless config says otherwise\r\n    if (window.focus && game.config.autoFocus)\r\n    {\r\n        window.focus();\r\n    }\r\n};\r\n\r\nmodule.exports = VisibilityHandler;\r\n\n\n/***/ }),\n\n/***/ 97217:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Blur Event.\r\n *\r\n * This event is dispatched by the Game Visibility Handler when the window in which the Game instance is embedded\r\n * enters a blurred state. The blur event is raised when the window loses focus. This can happen if a user swaps\r\n * tab, or if they simply remove focus from the browser to another app.\r\n *\r\n * @event Phaser.Core.Events#BLUR\r\n * @type {string}\r\n * @since 3.0.0\r\n */\r\nmodule.exports = 'blur';\r\n\n\n/***/ }),\n\n/***/ 47548:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Boot Event.\r\n *\r\n * This event is dispatched when the Phaser Game instance has finished booting, but before it is ready to start running.\r\n * The global systems use this event to know when to set themselves up, dispatching their own `ready` events as required.\r\n *\r\n * @event Phaser.Core.Events#BOOT\r\n * @type {string}\r\n * @since 3.0.0\r\n */\r\nmodule.exports = 'boot';\r\n\n\n/***/ }),\n\n/***/ 19814:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Context Lost Event.\r\n *\r\n * This event is dispatched by the Game if the WebGL Renderer it is using encounters a WebGL Context Lost event from the browser.\r\n *\r\n * The renderer halts all rendering and cannot resume after this happens.\r\n *\r\n * @event Phaser.Core.Events#CONTEXT_LOST\r\n * @type {string}\r\n * @since 3.19.0\r\n */\r\nmodule.exports = 'contextlost';\r\n\n\n/***/ }),\n\n/***/ 68446:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Destroy Event.\r\n *\r\n * This event is dispatched when the game instance has been told to destroy itself.\r\n * Lots of internal systems listen to this event in order to clear themselves out.\r\n * Custom plugins and game code should also do the same.\r\n *\r\n * @event Phaser.Core.Events#DESTROY\r\n * @type {string}\r\n * @since 3.0.0\r\n */\r\nmodule.exports = 'destroy';\r\n\n\n/***/ }),\n\n/***/ 41700:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Focus Event.\r\n *\r\n * This event is dispatched by the Game Visibility Handler when the window in which the Game instance is embedded\r\n * enters a focused state. The focus event is raised when the window re-gains focus, having previously lost it.\r\n *\r\n * @event Phaser.Core.Events#FOCUS\r\n * @type {string}\r\n * @since 3.0.0\r\n */\r\nmodule.exports = 'focus';\r\n\n\n/***/ }),\n\n/***/ 25432:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Hidden Event.\r\n *\r\n * This event is dispatched by the Game Visibility Handler when the document in which the Game instance is embedded\r\n * enters a hidden state. Only browsers that support the Visibility API will cause this event to be emitted.\r\n *\r\n * In most modern browsers, when the document enters a hidden state, the Request Animation Frame and setTimeout, which\r\n * control the main game loop, will automatically pause. There is no way to stop this from happening. It is something\r\n * your game should account for in its own code, should the pause be an issue (i.e. for multiplayer games)\r\n *\r\n * @event Phaser.Core.Events#HIDDEN\r\n * @type {string}\r\n * @since 3.0.0\r\n */\r\nmodule.exports = 'hidden';\r\n\n\n/***/ }),\n\n/***/ 65942:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Pause Event.\r\n *\r\n * This event is dispatched when the Game loop enters a paused state, usually as a result of the Visibility Handler.\r\n *\r\n * @event Phaser.Core.Events#PAUSE\r\n * @type {string}\r\n * @since 3.0.0\r\n */\r\nmodule.exports = 'pause';\r\n\n\n/***/ }),\n\n/***/ 59211:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Post-Render Event.\r\n *\r\n * This event is dispatched right at the end of the render process.\r\n *\r\n * Every Scene will have rendered and been drawn to the canvas by the time this event is fired.\r\n * Use it for any last minute post-processing before the next game step begins.\r\n *\r\n * @event Phaser.Core.Events#POST_RENDER\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {(Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer)} renderer - A reference to the current renderer being used by the Game instance.\r\n */\r\nmodule.exports = 'postrender';\r\n\n\n/***/ }),\n\n/***/ 47789:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Post-Step Event.\r\n *\r\n * This event is dispatched after the Scene Manager has updated.\r\n * Hook into it from plugins or systems that need to do things before the render starts.\r\n *\r\n * @event Phaser.Core.Events#POST_STEP\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {number} time - The current time. Either a High Resolution Timer value if it comes from Request Animation Frame, or Date.now if using SetTimeout.\r\n * @param {number} delta - The delta time in ms since the last frame. This is a smoothed and capped value based on the FPS rate.\r\n */\r\nmodule.exports = 'poststep';\r\n\n\n/***/ }),\n\n/***/ 39066:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Pre-Render Event.\r\n *\r\n * This event is dispatched immediately before any of the Scenes have started to render.\r\n *\r\n * The renderer will already have been initialized this frame, clearing itself and preparing to receive the Scenes for rendering, but it won't have actually drawn anything yet.\r\n *\r\n * @event Phaser.Core.Events#PRE_RENDER\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {(Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer)} renderer - A reference to the current renderer being used by the Game instance.\r\n */\r\nmodule.exports = 'prerender';\r\n\n\n/***/ }),\n\n/***/ 460:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Pre-Step Event.\r\n *\r\n * This event is dispatched before the main Game Step starts. By this point in the game cycle none of the Scene updates have yet happened.\r\n * Hook into it from plugins or systems that need to update before the Scene Manager does.\r\n *\r\n * @event Phaser.Core.Events#PRE_STEP\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {number} time - The current time. Either a High Resolution Timer value if it comes from Request Animation Frame, or Date.now if using SetTimeout.\r\n * @param {number} delta - The delta time in ms since the last frame. This is a smoothed and capped value based on the FPS rate.\r\n */\r\nmodule.exports = 'prestep';\r\n\n\n/***/ }),\n\n/***/ 16175:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Ready Event.\r\n *\r\n * This event is dispatched when the Phaser Game instance has finished booting, the Texture Manager is fully ready,\r\n * and all local systems are now able to start.\r\n *\r\n * @event Phaser.Core.Events#READY\r\n * @type {string}\r\n * @since 3.0.0\r\n */\r\nmodule.exports = 'ready';\r\n\n\n/***/ }),\n\n/***/ 42331:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Resume Event.\r\n *\r\n * This event is dispatched when the game loop leaves a paused state and resumes running.\r\n *\r\n * @event Phaser.Core.Events#RESUME\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {number} pauseDuration - The duration, in ms, that the game was paused for, or 0 if {@link Phaser.Game#resume} was called.\r\n */\r\nmodule.exports = 'resume';\r\n\n\n/***/ }),\n\n/***/ 11966:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Step Event.\r\n *\r\n * This event is dispatched after the Game Pre-Step and before the Scene Manager steps.\r\n * Hook into it from plugins or systems that need to update before the Scene Manager does, but after the core Systems have.\r\n *\r\n * @event Phaser.Core.Events#STEP\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {number} time - The current time. Either a High Resolution Timer value if it comes from Request Animation Frame, or Date.now if using SetTimeout.\r\n * @param {number} delta - The delta time in ms since the last frame. This is a smoothed and capped value based on the FPS rate.\r\n */\r\nmodule.exports = 'step';\r\n\n\n/***/ }),\n\n/***/ 32969:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * This event is dispatched when the Scene Manager has created the System Scene,\r\n * which other plugins and systems may use to initialize themselves.\r\n *\r\n * This event is dispatched just once by the Game instance.\r\n *\r\n * @event Phaser.Core.Events#SYSTEM_READY\r\n * @type {string}\r\n * @since 3.70.0\r\n *\r\n * @param {Phaser.Scenes.Systems} sys - A reference to the Scene Systems class of the Scene that emitted this event.\r\n */\r\nmodule.exports = 'systemready';\r\n\n\n/***/ }),\n\n/***/ 94830:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Visible Event.\r\n *\r\n * This event is dispatched by the Game Visibility Handler when the document in which the Game instance is embedded\r\n * enters a visible state, previously having been hidden.\r\n *\r\n * Only browsers that support the Visibility API will cause this event to be emitted.\r\n *\r\n * @event Phaser.Core.Events#VISIBLE\r\n * @type {string}\r\n * @since 3.0.0\r\n */\r\nmodule.exports = 'visible';\r\n\n\n/***/ }),\n\n/***/ 8443:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Core.Events\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    BLUR: __webpack_require__(97217),\r\n    BOOT: __webpack_require__(47548),\r\n    CONTEXT_LOST: __webpack_require__(19814),\r\n    DESTROY: __webpack_require__(68446),\r\n    FOCUS: __webpack_require__(41700),\r\n    HIDDEN: __webpack_require__(25432),\r\n    PAUSE: __webpack_require__(65942),\r\n    POST_RENDER: __webpack_require__(59211),\r\n    POST_STEP: __webpack_require__(47789),\r\n    PRE_RENDER: __webpack_require__(39066),\r\n    PRE_STEP: __webpack_require__(460),\r\n    READY: __webpack_require__(16175),\r\n    RESUME: __webpack_require__(42331),\r\n    STEP: __webpack_require__(11966),\r\n    SYSTEM_READY: __webpack_require__(32969),\r\n    VISIBLE: __webpack_require__(94830)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 42857:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Core\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    Config: __webpack_require__(69547),\r\n    CreateRenderer: __webpack_require__(86054),\r\n    DebugHeader: __webpack_require__(96391),\r\n    Events: __webpack_require__(8443),\r\n    TimeStep: __webpack_require__(65898),\r\n    VisibilityHandler: __webpack_require__(51085)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 99584:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Arne16 = __webpack_require__(5290);\r\nvar CanvasPool = __webpack_require__(27919);\r\nvar GetValue = __webpack_require__(35154);\r\n\r\n/**\r\n * Generates a texture based on the given Create configuration object.\r\n *\r\n * The texture is drawn using a fixed-size indexed palette of 16 colors, where the hex value in the\r\n * data cells map to a single color. For example, if the texture config looked like this:\r\n *\r\n * ```javascript\r\n * var star = [\r\n *   '.....828.....',\r\n *   '....72227....',\r\n *   '....82228....',\r\n *   '...7222227...',\r\n *   '2222222222222',\r\n *   '8222222222228',\r\n *   '.72222222227.',\r\n *   '..787777787..',\r\n *   '..877777778..',\r\n *   '.78778887787.',\r\n *   '.27887.78872.',\r\n *   '.787.....787.'\r\n * ];\r\n *\r\n * this.textures.generate('star', { data: star, pixelWidth: 4 });\r\n * ```\r\n *\r\n * Then it would generate a texture that is 52 x 48 pixels in size, because each cell of the data array\r\n * represents 1 pixel multiplied by the `pixelWidth` value. The cell values, such as `8`, maps to color\r\n * number 8 in the palette. If a cell contains a period character `.` then it is transparent.\r\n *\r\n * The default palette is Arne16, but you can specify your own using the `palette` property.\r\n *\r\n * @function Phaser.Create.GenerateTexture\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.Create.GenerateTextureConfig} config - The Generate Texture Configuration object.\r\n *\r\n * @return {HTMLCanvasElement} An HTMLCanvasElement which contains the generated texture drawn to it.\r\n */\r\nvar GenerateTexture = function (config)\r\n{\r\n    var data = GetValue(config, 'data', []);\r\n    var canvas = GetValue(config, 'canvas', null);\r\n    var palette = GetValue(config, 'palette', Arne16);\r\n    var pixelWidth = GetValue(config, 'pixelWidth', 1);\r\n    var pixelHeight = GetValue(config, 'pixelHeight', pixelWidth);\r\n    var resizeCanvas = GetValue(config, 'resizeCanvas', true);\r\n    var clearCanvas = GetValue(config, 'clearCanvas', true);\r\n    var preRender = GetValue(config, 'preRender', null);\r\n    var postRender = GetValue(config, 'postRender', null);\r\n\r\n    var width = Math.floor(Math.abs(data[0].length * pixelWidth));\r\n    var height = Math.floor(Math.abs(data.length * pixelHeight));\r\n\r\n    if (!canvas)\r\n    {\r\n        canvas = CanvasPool.create2D(this, width, height);\r\n        resizeCanvas = false;\r\n        clearCanvas = false;\r\n    }\r\n\r\n    if (resizeCanvas)\r\n    {\r\n        canvas.width = width;\r\n        canvas.height = height;\r\n    }\r\n\r\n    var ctx = canvas.getContext('2d', { willReadFrequently: true });\r\n\r\n    if (clearCanvas)\r\n    {\r\n        ctx.clearRect(0, 0, width, height);\r\n    }\r\n\r\n    //  preRender Callback?\r\n    if (preRender)\r\n    {\r\n        preRender(canvas, ctx);\r\n    }\r\n\r\n    //  Draw it\r\n    for (var y = 0; y < data.length; y++)\r\n    {\r\n        var row = data[y];\r\n\r\n        for (var x = 0; x < row.length; x++)\r\n        {\r\n            var d = row[x];\r\n\r\n            if (d !== '.' && d !== ' ')\r\n            {\r\n                ctx.fillStyle = palette[d];\r\n                ctx.fillRect(x * pixelWidth, y * pixelHeight, pixelWidth, pixelHeight);\r\n            }\r\n        }\r\n    }\r\n\r\n    //  postRender Callback?\r\n    if (postRender)\r\n    {\r\n        postRender(canvas, ctx);\r\n    }\r\n\r\n    return canvas;\r\n};\r\n\r\nmodule.exports = GenerateTexture;\r\n\n\n/***/ }),\n\n/***/ 15822:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Create\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    GenerateTexture: __webpack_require__(99584),\r\n    Palettes: __webpack_require__(57763)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 5290:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * A 16 color palette by [Arne](http://androidarts.com/palette/16pal.htm)\r\n *\r\n * @name Phaser.Create.Palettes.ARNE16\r\n * @since 3.0.0\r\n *\r\n * @type {Phaser.Types.Create.Palette}\r\n */\r\nmodule.exports = {\r\n    0: '#000',\r\n    1: '#9D9D9D',\r\n    2: '#FFF',\r\n    3: '#BE2633',\r\n    4: '#E06F8B',\r\n    5: '#493C2B',\r\n    6: '#A46422',\r\n    7: '#EB8931',\r\n    8: '#F7E26B',\r\n    9: '#2F484E',\r\n    A: '#44891A',\r\n    B: '#A3CE27',\r\n    C: '#1B2632',\r\n    D: '#005784',\r\n    E: '#31A2F2',\r\n    F: '#B2DCEF'\r\n};\r\n\n\n/***/ }),\n\n/***/ 23816:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * A 16 color palette inspired by the Commodore 64.\r\n *\r\n * @name Phaser.Create.Palettes.C64\r\n * @since 3.0.0\r\n *\r\n * @type {Phaser.Types.Create.Palette}\r\n */\r\nmodule.exports = {\r\n    0: '#000',\r\n    1: '#fff',\r\n    2: '#8b4131',\r\n    3: '#7bbdc5',\r\n    4: '#8b41ac',\r\n    5: '#6aac41',\r\n    6: '#3931a4',\r\n    7: '#d5de73',\r\n    8: '#945a20',\r\n    9: '#5a4100',\r\n    A: '#bd736a',\r\n    B: '#525252',\r\n    C: '#838383',\r\n    D: '#acee8b',\r\n    E: '#7b73de',\r\n    F: '#acacac'\r\n};\r\n\n\n/***/ }),\n\n/***/ 9866:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * A 16 color CGA inspired palette by [Arne](http://androidarts.com/palette/16pal.htm)\r\n *\r\n * @name Phaser.Create.Palettes.CGA\r\n * @since 3.0.0\r\n *\r\n * @type {Phaser.Types.Create.Palette}\r\n */\r\nmodule.exports = {\r\n    0: '#000',\r\n    1: '#2234d1',\r\n    2: '#0c7e45',\r\n    3: '#44aacc',\r\n    4: '#8a3622',\r\n    5: '#5c2e78',\r\n    6: '#aa5c3d',\r\n    7: '#b5b5b5',\r\n    8: '#5e606e',\r\n    9: '#4c81fb',\r\n    A: '#6cd947',\r\n    B: '#7be2f9',\r\n    C: '#eb8a60',\r\n    D: '#e23d69',\r\n    E: '#ffd93f',\r\n    F: '#fff'\r\n};\r\n\n\n/***/ }),\n\n/***/ 77552:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * A 16 color JMP palette by [Arne](http://androidarts.com/palette/16pal.htm)\r\n *\r\n * @name Phaser.Create.Palettes.JMP\r\n * @since 3.0.0\r\n *\r\n * @type {Phaser.Types.Create.Palette}\r\n */\r\nmodule.exports = {\r\n    0: '#000',\r\n    1: '#191028',\r\n    2: '#46af45',\r\n    3: '#a1d685',\r\n    4: '#453e78',\r\n    5: '#7664fe',\r\n    6: '#833129',\r\n    7: '#9ec2e8',\r\n    8: '#dc534b',\r\n    9: '#e18d79',\r\n    A: '#d6b97b',\r\n    B: '#e9d8a1',\r\n    C: '#216c4b',\r\n    D: '#d365c8',\r\n    E: '#afaab9',\r\n    F: '#f5f4eb'\r\n};\r\n\n\n/***/ }),\n\n/***/ 92259:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * A 16 color palette inspired by Japanese computers like the MSX.\r\n *\r\n * @name Phaser.Create.Palettes.MSX\r\n * @since 3.0.0\r\n *\r\n * @type {Phaser.Types.Create.Palette}\r\n */\r\nmodule.exports = {\r\n    0: '#000',\r\n    1: '#191028',\r\n    2: '#46af45',\r\n    3: '#a1d685',\r\n    4: '#453e78',\r\n    5: '#7664fe',\r\n    6: '#833129',\r\n    7: '#9ec2e8',\r\n    8: '#dc534b',\r\n    9: '#e18d79',\r\n    A: '#d6b97b',\r\n    B: '#e9d8a1',\r\n    C: '#216c4b',\r\n    D: '#d365c8',\r\n    E: '#afaab9',\r\n    F: '#fff'\r\n};\r\n\n\n/***/ }),\n\n/***/ 57763:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Create.Palettes\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    ARNE16: __webpack_require__(5290),\r\n    C64: __webpack_require__(23816),\r\n    CGA: __webpack_require__(9866),\r\n    JMP: __webpack_require__(77552),\r\n    MSX: __webpack_require__(92259)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 46728:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n//  Based on the three.js Curve classes created by [zz85](http://www.lab4games.net/zz85/blog)\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar CubicBezier = __webpack_require__(36316);\r\nvar Curve = __webpack_require__(80021);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * A higher-order Bézier curve constructed of four points.\r\n *\r\n * @class CubicBezier\r\n * @extends Phaser.Curves.Curve\r\n * @memberof Phaser.Curves\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {(Phaser.Math.Vector2|Phaser.Math.Vector2[])} p0 - Start point, or an array of point pairs.\r\n * @param {Phaser.Math.Vector2} p1 - Control Point 1.\r\n * @param {Phaser.Math.Vector2} p2 - Control Point 2.\r\n * @param {Phaser.Math.Vector2} p3 - End Point.\r\n */\r\nvar CubicBezierCurve = new Class({\r\n\r\n    Extends: Curve,\r\n\r\n    initialize:\r\n\r\n    function CubicBezierCurve (p0, p1, p2, p3)\r\n    {\r\n        Curve.call(this, 'CubicBezierCurve');\r\n\r\n        if (Array.isArray(p0))\r\n        {\r\n            p3 = new Vector2(p0[6], p0[7]);\r\n            p2 = new Vector2(p0[4], p0[5]);\r\n            p1 = new Vector2(p0[2], p0[3]);\r\n            p0 = new Vector2(p0[0], p0[1]);\r\n        }\r\n\r\n        /**\r\n         * The start point of this curve.\r\n         *\r\n         * @name Phaser.Curves.CubicBezier#p0\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.0.0\r\n         */\r\n        this.p0 = p0;\r\n\r\n        /**\r\n         * The first control point of this curve.\r\n         *\r\n         * @name Phaser.Curves.CubicBezier#p1\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.0.0\r\n         */\r\n        this.p1 = p1;\r\n\r\n        /**\r\n         * The second control point of this curve.\r\n         *\r\n         * @name Phaser.Curves.CubicBezier#p2\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.0.0\r\n         */\r\n        this.p2 = p2;\r\n\r\n        /**\r\n         * The end point of this curve.\r\n         *\r\n         * @name Phaser.Curves.CubicBezier#p3\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.0.0\r\n         */\r\n        this.p3 = p3;\r\n    },\r\n\r\n    /**\r\n     * Gets the starting point on the curve.\r\n     *\r\n     * @method Phaser.Curves.CubicBezier#getStartPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {Phaser.Math.Vector2} [out] - A Vector2 object to store the result in. If not given will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The coordinates of the point on the curve. If an `out` object was given this will be returned.\r\n     */\r\n    getStartPoint: function (out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        return out.copy(this.p0);\r\n    },\r\n\r\n    /**\r\n     * Returns the resolution of this curve.\r\n     *\r\n     * @method Phaser.Curves.CubicBezier#getResolution\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} divisions - The amount of divisions used by this curve.\r\n     *\r\n     * @return {number} The resolution of the curve.\r\n     */\r\n    getResolution: function (divisions)\r\n    {\r\n        return divisions;\r\n    },\r\n\r\n    /**\r\n     * Get point at relative position in curve according to length.\r\n     *\r\n     * @method Phaser.Curves.CubicBezier#getPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} t - The position along the curve to return. Where 0 is the start and 1 is the end.\r\n     * @param {Phaser.Math.Vector2} [out] - A Vector2 object to store the result in. If not given will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The coordinates of the point on the curve. If an `out` object was given this will be returned.\r\n     */\r\n    getPoint: function (t, out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        var p0 = this.p0;\r\n        var p1 = this.p1;\r\n        var p2 = this.p2;\r\n        var p3 = this.p3;\r\n\r\n        return out.set(CubicBezier(t, p0.x, p1.x, p2.x, p3.x), CubicBezier(t, p0.y, p1.y, p2.y, p3.y));\r\n    },\r\n\r\n    /**\r\n     * Draws this curve to the specified graphics object.\r\n     *\r\n     * @method Phaser.Curves.CubicBezier#draw\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.GameObjects.Graphics} G - [graphics,$return]\r\n     *\r\n     * @param {Phaser.GameObjects.Graphics} graphics - The graphics object this curve should be drawn to.\r\n     * @param {number} [pointsTotal=32] - The number of intermediary points that make up this curve. A higher number of points will result in a smoother curve.\r\n     *\r\n     * @return {Phaser.GameObjects.Graphics} The graphics object this curve was drawn to. Useful for method chaining.\r\n     */\r\n    draw: function (graphics, pointsTotal)\r\n    {\r\n        if (pointsTotal === undefined) { pointsTotal = 32; }\r\n\r\n        var points = this.getPoints(pointsTotal);\r\n\r\n        graphics.beginPath();\r\n        graphics.moveTo(this.p0.x, this.p0.y);\r\n\r\n        for (var i = 1; i < points.length; i++)\r\n        {\r\n            graphics.lineTo(points[i].x, points[i].y);\r\n        }\r\n\r\n        graphics.strokePath();\r\n\r\n        //  So you can chain graphics calls\r\n        return graphics;\r\n    },\r\n\r\n    /**\r\n     * Returns a JSON object that describes this curve.\r\n     *\r\n     * @method Phaser.Curves.CubicBezier#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.Curves.JSONCurve} The JSON object containing this curve data.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        return {\r\n            type: this.type,\r\n            points: [\r\n                this.p0.x, this.p0.y,\r\n                this.p1.x, this.p1.y,\r\n                this.p2.x, this.p2.y,\r\n                this.p3.x, this.p3.y\r\n            ]\r\n        };\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * Generates a curve from a JSON object.\r\n *\r\n * @function Phaser.Curves.CubicBezier.fromJSON\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.Curves.JSONCurve} data - The JSON object containing this curve data.\r\n *\r\n * @return {Phaser.Curves.CubicBezier} The curve generated from the JSON object.\r\n */\r\nCubicBezierCurve.fromJSON = function (data)\r\n{\r\n    var points = data.points;\r\n\r\n    var p0 = new Vector2(points[0], points[1]);\r\n    var p1 = new Vector2(points[2], points[3]);\r\n    var p2 = new Vector2(points[4], points[5]);\r\n    var p3 = new Vector2(points[6], points[7]);\r\n\r\n    return new CubicBezierCurve(p0, p1, p2, p3);\r\n};\r\n\r\nmodule.exports = CubicBezierCurve;\r\n\n\n/***/ }),\n\n/***/ 80021:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar FromPoints = __webpack_require__(19217);\r\nvar Rectangle = __webpack_require__(87841);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * A Base Curve class, which all other curve types extend.\r\n *\r\n * Based on the three.js Curve classes created by [zz85](http://www.lab4games.net/zz85/blog)\r\n *\r\n * @class Curve\r\n * @memberof Phaser.Curves\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {string} type - The curve type.\r\n */\r\nvar Curve = new Class({\r\n\r\n    initialize:\r\n\r\n    function Curve (type)\r\n    {\r\n        /**\r\n         * String based identifier for the type of curve.\r\n         *\r\n         * @name Phaser.Curves.Curve#type\r\n         * @type {string}\r\n         * @since 3.0.0\r\n         */\r\n        this.type = type;\r\n\r\n        /**\r\n         * The default number of divisions within the curve.\r\n         *\r\n         * @name Phaser.Curves.Curve#defaultDivisions\r\n         * @type {number}\r\n         * @default 5\r\n         * @since 3.0.0\r\n         */\r\n        this.defaultDivisions = 5;\r\n\r\n        /**\r\n         * The quantity of arc length divisions within the curve.\r\n         *\r\n         * @name Phaser.Curves.Curve#arcLengthDivisions\r\n         * @type {number}\r\n         * @default 100\r\n         * @since 3.0.0\r\n         */\r\n        this.arcLengthDivisions = 100;\r\n\r\n        /**\r\n         * An array of cached arc length values.\r\n         *\r\n         * @name Phaser.Curves.Curve#cacheArcLengths\r\n         * @type {number[]}\r\n         * @default []\r\n         * @since 3.0.0\r\n         */\r\n        this.cacheArcLengths = [];\r\n\r\n        /**\r\n         * Does the data of this curve need updating?\r\n         *\r\n         * @name Phaser.Curves.Curve#needsUpdate\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         */\r\n        this.needsUpdate = true;\r\n\r\n        /**\r\n         * For a curve on a Path, `false` means the Path will ignore this curve.\r\n         *\r\n         * @name Phaser.Curves.Curve#active\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         */\r\n        this.active = true;\r\n\r\n        /**\r\n         * A temporary calculation Vector.\r\n         *\r\n         * @name Phaser.Curves.Curve#_tmpVec2A\r\n         * @type {Phaser.Math.Vector2}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._tmpVec2A = new Vector2();\r\n\r\n        /**\r\n         * A temporary calculation Vector.\r\n         *\r\n         * @name Phaser.Curves.Curve#_tmpVec2B\r\n         * @type {Phaser.Math.Vector2}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._tmpVec2B = new Vector2();\r\n    },\r\n\r\n    /**\r\n     * Draws this curve on the given Graphics object.\r\n     *\r\n     * The curve is drawn using `Graphics.strokePoints` so will be drawn at whatever the present Graphics stroke color is.\r\n     * The Graphics object is not cleared before the draw, so the curve will appear on-top of anything else already rendered to it.\r\n     *\r\n     * @method Phaser.Curves.Curve#draw\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.GameObjects.Graphics} G - [graphics,$return]\r\n     *\r\n     * @param {Phaser.GameObjects.Graphics} graphics - The Graphics instance onto which this curve will be drawn.\r\n     * @param {number} [pointsTotal=32] - The resolution of the curve. The higher the value the smoother it will render, at the cost of rendering performance.\r\n     *\r\n     * @return {Phaser.GameObjects.Graphics} The Graphics object to which the curve was drawn.\r\n     */\r\n    draw: function (graphics, pointsTotal)\r\n    {\r\n        if (pointsTotal === undefined) { pointsTotal = 32; }\r\n\r\n        //  So you can chain graphics calls\r\n        return graphics.strokePoints(this.getPoints(pointsTotal));\r\n    },\r\n\r\n    /**\r\n     * Returns a Rectangle where the position and dimensions match the bounds of this Curve.\r\n     *\r\n     * You can control the accuracy of the bounds. The value given is used to work out how many points\r\n     * to plot across the curve. Higher values are more accurate at the cost of calculation speed.\r\n     *\r\n     * @method Phaser.Curves.Curve#getBounds\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Geom.Rectangle} [out] - The Rectangle to store the bounds in. If falsey a new object will be created.\r\n     * @param {number} [accuracy=16] - The accuracy of the bounds calculations.\r\n     *\r\n     * @return {Phaser.Geom.Rectangle} A Rectangle object holding the bounds of this curve. If `out` was given it will be this object.\r\n     */\r\n    getBounds: function (out, accuracy)\r\n    {\r\n        if (!out) { out = new Rectangle(); }\r\n        if (accuracy === undefined) { accuracy = 16; }\r\n\r\n        var len = this.getLength();\r\n\r\n        if (accuracy > len)\r\n        {\r\n            accuracy = len / 2;\r\n        }\r\n\r\n        //  The length of the curve in pixels\r\n        //  So we'll have 1 spaced point per 'accuracy' pixels\r\n\r\n        var spaced = Math.max(1, Math.round(len / accuracy));\r\n\r\n        return FromPoints(this.getSpacedPoints(spaced), out);\r\n    },\r\n\r\n    /**\r\n     * Returns an array of points, spaced out X distance pixels apart.\r\n     * The smaller the distance, the larger the array will be.\r\n     *\r\n     * @method Phaser.Curves.Curve#getDistancePoints\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} distance - The distance, in pixels, between each point along the curve.\r\n     *\r\n     * @return {Phaser.Geom.Point[]} An Array of Point objects.\r\n     */\r\n    getDistancePoints: function (distance)\r\n    {\r\n        var len = this.getLength();\r\n\r\n        var spaced = Math.max(1, len / distance);\r\n\r\n        return this.getSpacedPoints(spaced);\r\n    },\r\n\r\n    /**\r\n     * Get a point at the end of the curve.\r\n     *\r\n     * @method Phaser.Curves.Curve#getEndPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Math.Vector2} [out] - Optional Vector object to store the result in.\r\n     *\r\n     * @return {Phaser.Math.Vector2} Vector2 containing the coordinates of the curves end point.\r\n     */\r\n    getEndPoint: function (out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        return this.getPointAt(1, out);\r\n    },\r\n\r\n    /**\r\n     * Get total curve arc length\r\n     *\r\n     * @method Phaser.Curves.Curve#getLength\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The total length of the curve.\r\n     */\r\n    getLength: function ()\r\n    {\r\n        var lengths = this.getLengths();\r\n\r\n        return lengths[lengths.length - 1];\r\n    },\r\n\r\n\r\n    /**\r\n     * Get a list of cumulative segment lengths.\r\n     *\r\n     * These lengths are\r\n     *\r\n     * - [0] 0\r\n     * - [1] The first segment\r\n     * - [2] The first and second segment\r\n     * - ...\r\n     * - [divisions] All segments\r\n     *\r\n     * @method Phaser.Curves.Curve#getLengths\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [divisions] - The number of divisions or segments.\r\n     *\r\n     * @return {number[]} An array of cumulative lengths.\r\n     */\r\n    getLengths: function (divisions)\r\n    {\r\n        if (divisions === undefined) { divisions = this.arcLengthDivisions; }\r\n\r\n        if ((this.cacheArcLengths.length === divisions + 1) && !this.needsUpdate)\r\n        {\r\n            return this.cacheArcLengths;\r\n        }\r\n\r\n        this.needsUpdate = false;\r\n\r\n        var cache = [];\r\n        var current;\r\n        var last = this.getPoint(0, this._tmpVec2A);\r\n        var sum = 0;\r\n\r\n        cache.push(0);\r\n\r\n        for (var p = 1; p <= divisions; p++)\r\n        {\r\n            current = this.getPoint(p / divisions, this._tmpVec2B);\r\n\r\n            sum += current.distance(last);\r\n\r\n            cache.push(sum);\r\n\r\n            last.copy(current);\r\n        }\r\n\r\n        this.cacheArcLengths = cache;\r\n\r\n        return cache; // { sums: cache, sum:sum }; Sum is in the last element.\r\n    },\r\n\r\n    // Get point at relative position in curve according to arc length\r\n\r\n    // - u [0 .. 1]\r\n\r\n    /**\r\n     * Get a point at a relative position on the curve, by arc length.\r\n     *\r\n     * @method Phaser.Curves.Curve#getPointAt\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} u - The relative position, [0..1].\r\n     * @param {Phaser.Math.Vector2} [out] - A point to store the result in.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The point.\r\n     */\r\n    getPointAt: function (u, out)\r\n    {\r\n        var t = this.getUtoTmapping(u);\r\n\r\n        return this.getPoint(t, out);\r\n    },\r\n\r\n    // Get sequence of points using getPoint( t )\r\n\r\n    /**\r\n     * Get a sequence of evenly spaced points from the curve.\r\n     *\r\n     * You can pass `divisions`, `stepRate`, or neither.\r\n     *\r\n     * The number of divisions will be\r\n     *\r\n     * 1. `divisions`, if `divisions` > 0; or\r\n     * 2. `this.getLength / stepRate`, if `stepRate` > 0; or\r\n     * 3. `this.defaultDivisions`\r\n     *\r\n     * `1 + divisions` points will be returned.\r\n     *\r\n     * @method Phaser.Curves.Curve#getPoints\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2[]} O - [out,$return]\r\n     *\r\n     * @param {number} [divisions] - The number of divisions to make.\r\n     * @param {number} [stepRate] - The curve distance between points, implying `divisions`.\r\n     * @param {(array|Phaser.Math.Vector2[])} [out] - An optional array to store the points in.\r\n     *\r\n     * @return {(array|Phaser.Math.Vector2[])} An array of Points from the curve.\r\n     */\r\n    getPoints: function (divisions, stepRate, out)\r\n    {\r\n        if (out === undefined) { out = []; }\r\n\r\n        //  If divisions is a falsey value (false, null, 0, undefined, etc) then we calculate it based on the stepRate instead.\r\n        if (!divisions)\r\n        {\r\n            if (!stepRate)\r\n            {\r\n                divisions = this.defaultDivisions;\r\n            }\r\n            else\r\n            {\r\n                divisions = this.getLength() / stepRate;\r\n            }\r\n        }\r\n\r\n        for (var d = 0; d <= divisions; d++)\r\n        {\r\n            out.push(this.getPoint(d / divisions));\r\n        }\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Get a random point from the curve.\r\n     *\r\n     * @method Phaser.Curves.Curve#getRandomPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {Phaser.Math.Vector2} [out] - A point object to store the result in.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The point.\r\n     */\r\n    getRandomPoint: function (out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        return this.getPoint(Math.random(), out);\r\n    },\r\n\r\n    // Get sequence of points using getPointAt( u )\r\n\r\n    /**\r\n     * Get a sequence of equally spaced points (by arc distance) from the curve.\r\n     *\r\n     * `1 + divisions` points will be returned.\r\n     *\r\n     * @method Phaser.Curves.Curve#getSpacedPoints\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [divisions=this.defaultDivisions] - The number of divisions to make.\r\n     * @param {number} [stepRate] - Step between points. Used to calculate the number of points to return when divisions is falsy. Ignored if divisions is positive.\r\n     * @param {(array|Phaser.Math.Vector2[])} [out] - An optional array to store the points in.\r\n     *\r\n     * @return {Phaser.Math.Vector2[]} An array of points.\r\n     */\r\n    getSpacedPoints: function (divisions, stepRate, out)\r\n    {\r\n        if (out === undefined) { out = []; }\r\n\r\n        //  If divisions is a falsey value (false, null, 0, undefined, etc) then we calculate it based on the stepRate instead.\r\n        if (!divisions)\r\n        {\r\n            if (!stepRate)\r\n            {\r\n                divisions = this.defaultDivisions;\r\n            }\r\n            else\r\n            {\r\n                divisions = this.getLength() / stepRate;\r\n            }\r\n        }\r\n\r\n        for (var d = 0; d <= divisions; d++)\r\n        {\r\n            var t = this.getUtoTmapping(d / divisions, null, divisions);\r\n\r\n            out.push(this.getPoint(t));\r\n        }\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Get a point at the start of the curve.\r\n     *\r\n     * @method Phaser.Curves.Curve#getStartPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {Phaser.Math.Vector2} [out] - A point to store the result in.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The point.\r\n     */\r\n    getStartPoint: function (out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        return this.getPointAt(0, out);\r\n    },\r\n\r\n    /**\r\n     * Get a unit vector tangent at a relative position on the curve.\r\n     * In case any sub curve does not implement its tangent derivation,\r\n     * 2 points a small delta apart will be used to find its gradient\r\n     * which seems to give a reasonable approximation\r\n     *\r\n     * @method Phaser.Curves.Curve#getTangent\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} t - The relative position on the curve, [0..1].\r\n     * @param {Phaser.Math.Vector2} [out] - A vector to store the result in.\r\n     *\r\n     * @return {Phaser.Math.Vector2} Vector approximating the tangent line at the point t (delta +/- 0.0001)\r\n     */\r\n    getTangent: function (t, out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        var delta = 0.0001;\r\n        var t1 = t - delta;\r\n        var t2 = t + delta;\r\n\r\n        // Capping in case of danger\r\n\r\n        if (t1 < 0)\r\n        {\r\n            t1 = 0;\r\n        }\r\n\r\n        if (t2 > 1)\r\n        {\r\n            t2 = 1;\r\n        }\r\n\r\n        this.getPoint(t1, this._tmpVec2A);\r\n        this.getPoint(t2, out);\r\n\r\n        return out.subtract(this._tmpVec2A).normalize();\r\n    },\r\n\r\n    /**\r\n     * Get a unit vector tangent at a relative position on the curve, by arc length.\r\n     *\r\n     * @method Phaser.Curves.Curve#getTangentAt\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} u - The relative position on the curve, [0..1].\r\n     * @param {Phaser.Math.Vector2} [out] - A vector to store the result in.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The tangent vector.\r\n     */\r\n    getTangentAt: function (u, out)\r\n    {\r\n        var t = this.getUtoTmapping(u);\r\n\r\n        return this.getTangent(t, out);\r\n    },\r\n\r\n    /**\r\n     * Given a distance in pixels, get a t to find p.\r\n     *\r\n     * @method Phaser.Curves.Curve#getTFromDistance\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} distance - The distance, in pixels.\r\n     * @param {number} [divisions] - Optional amount of divisions.\r\n     *\r\n     * @return {number} The distance.\r\n     */\r\n    getTFromDistance: function (distance, divisions)\r\n    {\r\n        if (distance <= 0)\r\n        {\r\n            return 0;\r\n        }\r\n\r\n        return this.getUtoTmapping(0, distance, divisions);\r\n    },\r\n\r\n    /**\r\n     * Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant.\r\n     *\r\n     * @method Phaser.Curves.Curve#getUtoTmapping\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} u - A float between 0 and 1.\r\n     * @param {number} distance - The distance, in pixels.\r\n     * @param {number} [divisions] - Optional amount of divisions.\r\n     *\r\n     * @return {number} The equidistant value.\r\n     */\r\n    getUtoTmapping: function (u, distance, divisions)\r\n    {\r\n        var arcLengths = this.getLengths(divisions);\r\n\r\n        var i = 0;\r\n        var il = arcLengths.length;\r\n\r\n        var targetArcLength; // The targeted u distance value to get\r\n\r\n        if (distance)\r\n        {\r\n            //  Cannot overshoot the curve\r\n            targetArcLength = Math.min(distance, arcLengths[il - 1]);\r\n        }\r\n        else\r\n        {\r\n            targetArcLength = u * arcLengths[il - 1];\r\n        }\r\n\r\n        // binary search for the index with largest value smaller than target u distance\r\n\r\n        var low = 0;\r\n        var high = il - 1;\r\n        var comparison;\r\n\r\n        while (low <= high)\r\n        {\r\n            i = Math.floor(low + (high - low) / 2); // less likely to overflow, though probably not issue here, JS doesn't really have integers, all numbers are floats\r\n\r\n            comparison = arcLengths[i] - targetArcLength;\r\n\r\n            if (comparison < 0)\r\n            {\r\n                low = i + 1;\r\n            }\r\n            else if (comparison > 0)\r\n            {\r\n                high = i - 1;\r\n            }\r\n            else\r\n            {\r\n                high = i;\r\n                break;\r\n            }\r\n        }\r\n\r\n        i = high;\r\n\r\n        if (arcLengths[i] === targetArcLength)\r\n        {\r\n            return i / (il - 1);\r\n        }\r\n\r\n        // we could get finer grain at lengths, or use simple interpolation between two points\r\n\r\n        var lengthBefore = arcLengths[i];\r\n        var lengthAfter = arcLengths[i + 1];\r\n\r\n        var segmentLength = lengthAfter - lengthBefore;\r\n\r\n        // determine where we are between the 'before' and 'after' points\r\n\r\n        var segmentFraction = (targetArcLength - lengthBefore) / segmentLength;\r\n\r\n        // add that fractional amount to t\r\n\r\n        return (i + segmentFraction) / (il - 1);\r\n    },\r\n\r\n    /**\r\n     * Calculate and cache the arc lengths.\r\n     *\r\n     * @method Phaser.Curves.Curve#updateArcLengths\r\n     * @since 3.0.0\r\n     *\r\n     * @see Phaser.Curves.Curve#getLengths()\r\n     */\r\n    updateArcLengths: function ()\r\n    {\r\n        this.needsUpdate = true;\r\n\r\n        this.getLengths();\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Curve;\r\n\n\n/***/ }),\n\n/***/ 73825:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n//  Based on the three.js Curve classes created by [zz85](http://www.lab4games.net/zz85/blog)\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Curve = __webpack_require__(80021);\r\nvar DegToRad = __webpack_require__(39506);\r\nvar GetValue = __webpack_require__(35154);\r\nvar RadToDeg = __webpack_require__(43396);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * An Elliptical Curve derived from the Base Curve class.\r\n * \r\n * See https://en.wikipedia.org/wiki/Elliptic_curve for more details.\r\n *\r\n * @class Ellipse\r\n * @extends Phaser.Curves.Curve\r\n * @memberof Phaser.Curves\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {(number|Phaser.Types.Curves.EllipseCurveConfig)} [x=0] - The x coordinate of the ellipse, or an Ellipse Curve configuration object.\r\n * @param {number} [y=0] - The y coordinate of the ellipse.\r\n * @param {number} [xRadius=0] - The horizontal radius of ellipse.\r\n * @param {number} [yRadius=0] - The vertical radius of ellipse.\r\n * @param {number} [startAngle=0] - The start angle of the ellipse, in degrees.\r\n * @param {number} [endAngle=360] - The end angle of the ellipse, in degrees.\r\n * @param {boolean} [clockwise=false] - Whether the ellipse angles are given as clockwise (`true`) or counter-clockwise (`false`).\r\n * @param {number} [rotation=0] - The rotation of the ellipse, in degrees.\r\n */\r\nvar EllipseCurve = new Class({\r\n\r\n    Extends: Curve,\r\n\r\n    initialize:\r\n\r\n    function EllipseCurve (x, y, xRadius, yRadius, startAngle, endAngle, clockwise, rotation)\r\n    {\r\n        if (typeof x === 'object')\r\n        {\r\n            var config = x;\r\n\r\n            x = GetValue(config, 'x', 0);\r\n            y = GetValue(config, 'y', 0);\r\n            xRadius = GetValue(config, 'xRadius', 0);\r\n            yRadius = GetValue(config, 'yRadius', xRadius);\r\n            startAngle = GetValue(config, 'startAngle', 0);\r\n            endAngle = GetValue(config, 'endAngle', 360);\r\n            clockwise = GetValue(config, 'clockwise', false);\r\n            rotation = GetValue(config, 'rotation', 0);\r\n        }\r\n        else\r\n        {\r\n            if (yRadius === undefined) { yRadius = xRadius; }\r\n            if (startAngle === undefined) { startAngle = 0; }\r\n            if (endAngle === undefined) { endAngle = 360; }\r\n            if (clockwise === undefined) { clockwise = false; }\r\n            if (rotation === undefined) { rotation = 0; }\r\n        }\r\n\r\n        Curve.call(this, 'EllipseCurve');\r\n\r\n        //  Center point\r\n\r\n        /**\r\n         * The center point of the ellipse. Used for calculating rotation.\r\n         *\r\n         * @name Phaser.Curves.Ellipse#p0\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.0.0\r\n         */\r\n        this.p0 = new Vector2(x, y);\r\n\r\n        /**\r\n         * The horizontal radius of the ellipse.\r\n         *\r\n         * @name Phaser.Curves.Ellipse#_xRadius\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._xRadius = xRadius;\r\n\r\n        /**\r\n         * The vertical radius of the ellipse.\r\n         *\r\n         * @name Phaser.Curves.Ellipse#_yRadius\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._yRadius = yRadius;\r\n\r\n        //  Radians\r\n\r\n        /**\r\n         * The starting angle of the ellipse in radians.\r\n         *\r\n         * @name Phaser.Curves.Ellipse#_startAngle\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._startAngle = DegToRad(startAngle);\r\n\r\n        /**\r\n         * The end angle of the ellipse in radians.\r\n         *\r\n         * @name Phaser.Curves.Ellipse#_endAngle\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._endAngle = DegToRad(endAngle);\r\n\r\n        /**\r\n         * Anti-clockwise direction.\r\n         *\r\n         * @name Phaser.Curves.Ellipse#_clockwise\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._clockwise = clockwise;\r\n\r\n        /**\r\n         * The rotation of the arc.\r\n         *\r\n         * @name Phaser.Curves.Ellipse#_rotation\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._rotation = DegToRad(rotation);\r\n    },\r\n\r\n    /**\r\n     * Gets the starting point on the curve.\r\n     *\r\n     * @method Phaser.Curves.Ellipse#getStartPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {Phaser.Math.Vector2} [out] - A Vector2 object to store the result in. If not given will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The coordinates of the point on the curve. If an `out` object was given this will be returned.\r\n     */\r\n    getStartPoint: function (out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        return this.getPoint(0, out);\r\n    },\r\n\r\n    /**\r\n     * Get the resolution of the curve.\r\n     *\r\n     * @method Phaser.Curves.Ellipse#getResolution\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} divisions - Optional divisions value.\r\n     *\r\n     * @return {number} The curve resolution.\r\n     */\r\n    getResolution: function (divisions)\r\n    {\r\n        return divisions * 2;\r\n    },\r\n\r\n    /**\r\n     * Get point at relative position in curve according to length.\r\n     *\r\n     * @method Phaser.Curves.Ellipse#getPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} t - The position along the curve to return. Where 0 is the start and 1 is the end.\r\n     * @param {Phaser.Math.Vector2} [out] - A Vector2 object to store the result in. If not given will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The coordinates of the point on the curve. If an `out` object was given this will be returned.\r\n     */\r\n    getPoint: function (t, out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        var twoPi = Math.PI * 2;\r\n        var deltaAngle = this._endAngle - this._startAngle;\r\n        var samePoints = Math.abs(deltaAngle) < Number.EPSILON;\r\n\r\n        // ensures that deltaAngle is 0 .. 2 PI\r\n        while (deltaAngle < 0)\r\n        {\r\n            deltaAngle += twoPi;\r\n        }\r\n\r\n        while (deltaAngle > twoPi)\r\n        {\r\n            deltaAngle -= twoPi;\r\n        }\r\n\r\n        if (deltaAngle < Number.EPSILON)\r\n        {\r\n            if (samePoints)\r\n            {\r\n                deltaAngle = 0;\r\n            }\r\n            else\r\n            {\r\n                deltaAngle = twoPi;\r\n            }\r\n        }\r\n\r\n        if (this._clockwise && !samePoints)\r\n        {\r\n            if (deltaAngle === twoPi)\r\n            {\r\n                deltaAngle = - twoPi;\r\n            }\r\n            else\r\n            {\r\n                deltaAngle = deltaAngle - twoPi;\r\n            }\r\n        }\r\n\r\n        var angle = this._startAngle + t * deltaAngle;\r\n        var x = this.p0.x + this._xRadius * Math.cos(angle);\r\n        var y = this.p0.y + this._yRadius * Math.sin(angle);\r\n\r\n        if (this._rotation !== 0)\r\n        {\r\n            var cos = Math.cos(this._rotation);\r\n            var sin = Math.sin(this._rotation);\r\n\r\n            var tx = x - this.p0.x;\r\n            var ty = y - this.p0.y;\r\n\r\n            // Rotate the point about the center of the ellipse.\r\n            x = tx * cos - ty * sin + this.p0.x;\r\n            y = tx * sin + ty * cos + this.p0.y;\r\n        }\r\n\r\n        return out.set(x, y);\r\n    },\r\n\r\n    /**\r\n     * Sets the horizontal radius of this curve.\r\n     *\r\n     * @method Phaser.Curves.Ellipse#setXRadius\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} value - The horizontal radius of this curve.\r\n     *\r\n     * @return {this} This curve object.\r\n     */\r\n    setXRadius: function (value)\r\n    {\r\n        this.xRadius = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the vertical radius of this curve.\r\n     *\r\n     * @method Phaser.Curves.Ellipse#setYRadius\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} value - The vertical radius of this curve.\r\n     *\r\n     * @return {this} This curve object.\r\n     */\r\n    setYRadius: function (value)\r\n    {\r\n        this.yRadius = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the width of this curve.\r\n     *\r\n     * @method Phaser.Curves.Ellipse#setWidth\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} value - The width of this curve.\r\n     *\r\n     * @return {this} This curve object.\r\n     */\r\n    setWidth: function (value)\r\n    {\r\n        this.xRadius = value / 2;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the height of this curve.\r\n     *\r\n     * @method Phaser.Curves.Ellipse#setHeight\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} value - The height of this curve.\r\n     *\r\n     * @return {this} This curve object.\r\n     */\r\n    setHeight: function (value)\r\n    {\r\n        this.yRadius = value / 2;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the start angle of this curve.\r\n     *\r\n     * @method Phaser.Curves.Ellipse#setStartAngle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} value - The start angle of this curve, in radians.\r\n     *\r\n     * @return {this} This curve object.\r\n     */\r\n    setStartAngle: function (value)\r\n    {\r\n        this.startAngle = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the end angle of this curve.\r\n     *\r\n     * @method Phaser.Curves.Ellipse#setEndAngle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} value - The end angle of this curve, in radians.\r\n     *\r\n     * @return {this} This curve object.\r\n     */\r\n    setEndAngle: function (value)\r\n    {\r\n        this.endAngle = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets if this curve extends clockwise or anti-clockwise.\r\n     *\r\n     * @method Phaser.Curves.Ellipse#setClockwise\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} value - The clockwise state of this curve.\r\n     *\r\n     * @return {this} This curve object.\r\n     */\r\n    setClockwise: function (value)\r\n    {\r\n        this.clockwise = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the rotation of this curve.\r\n     *\r\n     * @method Phaser.Curves.Ellipse#setRotation\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} value - The rotation of this curve, in radians.\r\n     *\r\n     * @return {this} This curve object.\r\n     */\r\n    setRotation: function (value)\r\n    {\r\n        this.rotation = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * The x coordinate of the center of the ellipse.\r\n     *\r\n     * @name Phaser.Curves.Ellipse#x\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    x: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.p0.x;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.p0.x = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The y coordinate of the center of the ellipse.\r\n     *\r\n     * @name Phaser.Curves.Ellipse#y\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    y: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.p0.y;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.p0.y = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The horizontal radius of the ellipse.\r\n     *\r\n     * @name Phaser.Curves.Ellipse#xRadius\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    xRadius: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._xRadius;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._xRadius = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The vertical radius of the ellipse.\r\n     *\r\n     * @name Phaser.Curves.Ellipse#yRadius\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    yRadius: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._yRadius;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._yRadius = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The start angle of the ellipse in degrees.\r\n     *\r\n     * @name Phaser.Curves.Ellipse#startAngle\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    startAngle: {\r\n\r\n        get: function ()\r\n        {\r\n            return RadToDeg(this._startAngle);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._startAngle = DegToRad(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The end angle of the ellipse in degrees.\r\n     *\r\n     * @name Phaser.Curves.Ellipse#endAngle\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    endAngle: {\r\n\r\n        get: function ()\r\n        {\r\n            return RadToDeg(this._endAngle);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._endAngle = DegToRad(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * `true` if the ellipse rotation is clockwise or `false` if anti-clockwise.\r\n     *\r\n     * @name Phaser.Curves.Ellipse#clockwise\r\n     * @type {boolean}\r\n     * @since 3.0.0\r\n     */\r\n    clockwise: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._clockwise;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._clockwise = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The rotation of the ellipse, relative to the center, in degrees.\r\n     *\r\n     * @name Phaser.Curves.Ellipse#angle\r\n     * @type {number}\r\n     * @since 3.14.0\r\n     */\r\n    angle: {\r\n\r\n        get: function ()\r\n        {\r\n            return RadToDeg(this._rotation);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._rotation = DegToRad(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The rotation of the ellipse, relative to the center, in radians.\r\n     *\r\n     * @name Phaser.Curves.Ellipse#rotation\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    rotation: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._rotation;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._rotation = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * JSON serialization of the curve.\r\n     *\r\n     * @method Phaser.Curves.Ellipse#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.Curves.JSONEllipseCurve} The JSON object containing this curve data.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        return {\r\n            type: this.type,\r\n            x: this.p0.x,\r\n            y: this.p0.y,\r\n            xRadius: this._xRadius,\r\n            yRadius: this._yRadius,\r\n            startAngle: RadToDeg(this._startAngle),\r\n            endAngle: RadToDeg(this._endAngle),\r\n            clockwise: this._clockwise,\r\n            rotation: RadToDeg(this._rotation)\r\n        };\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * Creates a curve from the provided Ellipse Curve Configuration object.\r\n *\r\n * @function Phaser.Curves.Ellipse.fromJSON\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.Curves.JSONEllipseCurve} data - The JSON object containing this curve data.\r\n *\r\n * @return {Phaser.Curves.Ellipse} The ellipse curve constructed from the configuration object.\r\n */\r\nEllipseCurve.fromJSON = function (data)\r\n{\r\n    return new EllipseCurve(data);\r\n};\r\n\r\nmodule.exports = EllipseCurve;\r\n\n\n/***/ }),\n\n/***/ 33951:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n//  Based on the three.js Curve classes created by [zz85](http://www.lab4games.net/zz85/blog)\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Curve = __webpack_require__(80021);\r\nvar FromPoints = __webpack_require__(19217);\r\nvar Rectangle = __webpack_require__(87841);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * A LineCurve is a \"curve\" comprising exactly two points (a line segment).\r\n *\r\n * @class Line\r\n * @extends Phaser.Curves.Curve\r\n * @memberof Phaser.Curves\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {(Phaser.Math.Vector2|number[])} p0 - The first endpoint.\r\n * @param {Phaser.Math.Vector2} [p1] - The second endpoint.\r\n */\r\nvar LineCurve = new Class({\r\n\r\n    Extends: Curve,\r\n\r\n    initialize:\r\n\r\n    //  vec2s or array\r\n    function LineCurve (p0, p1)\r\n    {\r\n        Curve.call(this, 'LineCurve');\r\n\r\n        if (Array.isArray(p0))\r\n        {\r\n            p1 = new Vector2(p0[2], p0[3]);\r\n            p0 = new Vector2(p0[0], p0[1]);\r\n        }\r\n\r\n        /**\r\n         * The first endpoint.\r\n         *\r\n         * @name Phaser.Curves.Line#p0\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.0.0\r\n         */\r\n        this.p0 = p0;\r\n\r\n        /**\r\n         * The second endpoint.\r\n         *\r\n         * @name Phaser.Curves.Line#p1\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.0.0\r\n         */\r\n        this.p1 = p1;\r\n\r\n        //  Override default Curve.arcLengthDivisions\r\n\r\n        /**\r\n         * The quantity of arc length divisions within the curve.\r\n         *\r\n         * @name Phaser.Curves.Line#arcLengthDivisions\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.0.0\r\n         */\r\n        this.arcLengthDivisions = 1;\r\n    },\r\n\r\n    /**\r\n     * Returns a Rectangle where the position and dimensions match the bounds of this Curve.\r\n     *\r\n     * @method Phaser.Curves.Line#getBounds\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Geom.Rectangle} O - [out,$return]\r\n     *\r\n     * @param {Phaser.Geom.Rectangle} [out] - A Rectangle object to store the bounds in. If not given a new Rectangle will be created.\r\n     *\r\n     * @return {Phaser.Geom.Rectangle} A Rectangle object holding the bounds of this curve. If `out` was given it will be this object.\r\n     */\r\n    getBounds: function (out)\r\n    {\r\n        if (out === undefined) { out = new Rectangle(); }\r\n\r\n        return FromPoints([ this.p0, this.p1 ], out);\r\n    },\r\n\r\n    /**\r\n     * Gets the starting point on the curve.\r\n     *\r\n     * @method Phaser.Curves.Line#getStartPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {Phaser.Math.Vector2} [out] - A Vector2 object to store the result in. If not given will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The coordinates of the point on the curve. If an `out` object was given this will be returned.\r\n     */\r\n    getStartPoint: function (out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        return out.copy(this.p0);\r\n    },\r\n\r\n    /**\r\n     * Gets the resolution of the line.\r\n     *\r\n     * @method Phaser.Curves.Line#getResolution\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [divisions=1] - The number of divisions to consider.\r\n     *\r\n     * @return {number} The resolution. Equal to the number of divisions.\r\n     */\r\n    getResolution: function (divisions)\r\n    {\r\n        if (divisions === undefined) { divisions = 1; }\r\n\r\n        return divisions;\r\n    },\r\n\r\n    /**\r\n     * Get point at relative position in curve according to length.\r\n     *\r\n     * @method Phaser.Curves.Line#getPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} t - The position along the curve to return. Where 0 is the start and 1 is the end.\r\n     * @param {Phaser.Math.Vector2} [out] - A Vector2 object to store the result in. If not given will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The coordinates of the point on the curve. If an `out` object was given this will be returned.\r\n     */\r\n    getPoint: function (t, out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        if (t === 1)\r\n        {\r\n            return out.copy(this.p1);\r\n        }\r\n\r\n        out.copy(this.p1).subtract(this.p0).scale(t).add(this.p0);\r\n\r\n        return out;\r\n    },\r\n\r\n    // Line curve is linear, so we can overwrite default getPointAt\r\n\r\n    /**\r\n     * Gets a point at a given position on the line.\r\n     *\r\n     * @method Phaser.Curves.Line#getPointAt\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} u - The position along the curve to return. Where 0 is the start and 1 is the end.\r\n     * @param {Phaser.Math.Vector2} [out] - A Vector2 object to store the result in. If not given will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The coordinates of the point on the curve. If an `out` object was given this will be returned.\r\n     */\r\n    getPointAt: function (u, out)\r\n    {\r\n        return this.getPoint(u, out);\r\n    },\r\n\r\n    /**\r\n     * Gets the slope of the line as a unit vector.\r\n     *\r\n     * @method Phaser.Curves.Line#getTangent\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} [t] - The relative position on the line, [0..1].\r\n     * @param {Phaser.Math.Vector2} [out] - A vector to store the result in.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The tangent vector.\r\n     */\r\n    getTangent: function (t, out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        out.copy(this.p1).subtract(this.p0).normalize();\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Given u ( 0 .. 1 ), get a t to find p. This gives you points which are equidistant.\r\n     *\r\n     * @method Phaser.Curves.Line#getUtoTmapping\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} u - A float between 0 and 1.\r\n     * @param {number} distance - The distance, in pixels.\r\n     * @param {number} [divisions] - Optional amount of divisions.\r\n     *\r\n     * @return {number} The equidistant value.\r\n     */\r\n    getUtoTmapping: function (u, distance, divisions)\r\n    {\r\n        var t;\r\n\r\n        if (distance)\r\n        {\r\n            var arcLengths = this.getLengths(divisions);\r\n            var lineLength = arcLengths[arcLengths.length - 1];\r\n\r\n            //  Cannot overshoot the curve\r\n            var targetLineLength = Math.min(distance, lineLength);\r\n\r\n            t = targetLineLength / lineLength;\r\n        }\r\n        else\r\n        {\r\n            t = u;\r\n        }\r\n\r\n        return t;\r\n    },\r\n\r\n    //  Override default Curve.draw because this is better than calling getPoints on a line!\r\n\r\n    /**\r\n     * Draws this curve on the given Graphics object.\r\n     *\r\n     * The curve is drawn using `Graphics.lineBetween` so will be drawn at whatever the present Graphics line color is.\r\n     * The Graphics object is not cleared before the draw, so the curve will appear on-top of anything else already rendered to it.\r\n     *\r\n     * @method Phaser.Curves.Line#draw\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.GameObjects.Graphics} G - [graphics,$return]\r\n     *\r\n     * @param {Phaser.GameObjects.Graphics} graphics - The Graphics instance onto which this curve will be drawn.\r\n     *\r\n     * @return {Phaser.GameObjects.Graphics} The Graphics object to which the curve was drawn.\r\n     */\r\n    draw: function (graphics)\r\n    {\r\n        graphics.lineBetween(this.p0.x, this.p0.y, this.p1.x, this.p1.y);\r\n\r\n        //  So you can chain graphics calls\r\n        return graphics;\r\n    },\r\n\r\n    /**\r\n     * Gets a JSON representation of the line.\r\n     *\r\n     * @method Phaser.Curves.Line#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.Curves.JSONCurve} The JSON object containing this curve data.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        return {\r\n            type: this.type,\r\n            points: [\r\n                this.p0.x, this.p0.y,\r\n                this.p1.x, this.p1.y\r\n            ]\r\n        };\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * Configures this line from a JSON representation.\r\n *\r\n * @function Phaser.Curves.Line.fromJSON\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.Curves.JSONCurve} data - The JSON object containing this curve data.\r\n *\r\n * @return {Phaser.Curves.Line} A new LineCurve object.\r\n */\r\nLineCurve.fromJSON = function (data)\r\n{\r\n    var points = data.points;\r\n\r\n    var p0 = new Vector2(points[0], points[1]);\r\n    var p1 = new Vector2(points[2], points[3]);\r\n\r\n    return new LineCurve(p0, p1);\r\n};\r\n\r\nmodule.exports = LineCurve;\r\n\n\n/***/ }),\n\n/***/ 14744:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Curve = __webpack_require__(80021);\r\nvar QuadraticBezierInterpolation = __webpack_require__(32112);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * A quadratic Bézier curve constructed from two control points.\r\n *\r\n * @class QuadraticBezier\r\n * @extends Phaser.Curves.Curve\r\n * @memberof Phaser.Curves\r\n * @constructor\r\n * @since 3.2.0\r\n *\r\n * @param {(Phaser.Math.Vector2|number[])} p0 - Start point, or an array of point pairs.\r\n * @param {Phaser.Math.Vector2} p1 - Control Point 1.\r\n * @param {Phaser.Math.Vector2} p2 - Control Point 2.\r\n */\r\nvar QuadraticBezier = new Class({\r\n\r\n    Extends: Curve,\r\n\r\n    initialize:\r\n\r\n    function QuadraticBezier (p0, p1, p2)\r\n    {\r\n        Curve.call(this, 'QuadraticBezierCurve');\r\n\r\n        if (Array.isArray(p0))\r\n        {\r\n            p2 = new Vector2(p0[4], p0[5]);\r\n            p1 = new Vector2(p0[2], p0[3]);\r\n            p0 = new Vector2(p0[0], p0[1]);\r\n        }\r\n\r\n        /**\r\n         * The start point.\r\n         *\r\n         * @name Phaser.Curves.QuadraticBezier#p0\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.2.0\r\n         */\r\n        this.p0 = p0;\r\n\r\n        /**\r\n         * The first control point.\r\n         *\r\n         * @name Phaser.Curves.QuadraticBezier#p1\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.2.0\r\n         */\r\n        this.p1 = p1;\r\n\r\n        /**\r\n         * The second control point.\r\n         *\r\n         * @name Phaser.Curves.QuadraticBezier#p2\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.2.0\r\n         */\r\n        this.p2 = p2;\r\n    },\r\n\r\n    /**\r\n     * Gets the starting point on the curve.\r\n     *\r\n     * @method Phaser.Curves.QuadraticBezier#getStartPoint\r\n     * @since 3.2.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {Phaser.Math.Vector2} [out] - A Vector2 object to store the result in. If not given will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The coordinates of the point on the curve. If an `out` object was given this will be returned.\r\n     */\r\n    getStartPoint: function (out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        return out.copy(this.p0);\r\n    },\r\n\r\n    /**\r\n     * Get the resolution of the curve.\r\n     *\r\n     * @method Phaser.Curves.QuadraticBezier#getResolution\r\n     * @since 3.2.0\r\n     *\r\n     * @param {number} divisions - Optional divisions value.\r\n     *\r\n     * @return {number} The curve resolution.\r\n     */\r\n    getResolution: function (divisions)\r\n    {\r\n        return divisions;\r\n    },\r\n\r\n    /**\r\n     * Get point at relative position in curve according to length.\r\n     *\r\n     * @method Phaser.Curves.QuadraticBezier#getPoint\r\n     * @since 3.2.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} t - The position along the curve to return. Where 0 is the start and 1 is the end.\r\n     * @param {Phaser.Math.Vector2} [out] - A Vector2 object to store the result in. If not given will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The coordinates of the point on the curve. If an `out` object was given this will be returned.\r\n     */\r\n    getPoint: function (t, out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        var p0 = this.p0;\r\n        var p1 = this.p1;\r\n        var p2 = this.p2;\r\n\r\n        return out.set(\r\n            QuadraticBezierInterpolation(t, p0.x, p1.x, p2.x),\r\n            QuadraticBezierInterpolation(t, p0.y, p1.y, p2.y)\r\n        );\r\n    },\r\n\r\n    /**\r\n     * Draws this curve on the given Graphics object.\r\n     *\r\n     * The curve is drawn using `Graphics.strokePoints` so will be drawn at whatever the present Graphics stroke color is.\r\n     * The Graphics object is not cleared before the draw, so the curve will appear on-top of anything else already rendered to it.\r\n     *\r\n     * @method Phaser.Curves.QuadraticBezier#draw\r\n     * @since 3.2.0\r\n     *\r\n     * @generic {Phaser.GameObjects.Graphics} G - [graphics,$return]\r\n     *\r\n     * @param {Phaser.GameObjects.Graphics} graphics - `Graphics` object to draw onto.\r\n     * @param {number} [pointsTotal=32] - Number of points to be used for drawing the curve. Higher numbers result in smoother curve but require more processing.\r\n     *\r\n     * @return {Phaser.GameObjects.Graphics} `Graphics` object that was drawn to.\r\n     */\r\n    draw: function (graphics, pointsTotal)\r\n    {\r\n        if (pointsTotal === undefined) { pointsTotal = 32; }\r\n\r\n        var points = this.getPoints(pointsTotal);\r\n\r\n        graphics.beginPath();\r\n        graphics.moveTo(this.p0.x, this.p0.y);\r\n\r\n        for (var i = 1; i < points.length; i++)\r\n        {\r\n            graphics.lineTo(points[i].x, points[i].y);\r\n        }\r\n\r\n        graphics.strokePath();\r\n\r\n        //  So you can chain graphics calls\r\n        return graphics;\r\n    },\r\n\r\n    /**\r\n     * Converts the curve into a JSON compatible object.\r\n     *\r\n     * @method Phaser.Curves.QuadraticBezier#toJSON\r\n     * @since 3.2.0\r\n     *\r\n     * @return {Phaser.Types.Curves.JSONCurve} The JSON object containing this curve data.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        return {\r\n            type: this.type,\r\n            points: [\r\n                this.p0.x, this.p0.y,\r\n                this.p1.x, this.p1.y,\r\n                this.p2.x, this.p2.y\r\n            ]\r\n        };\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * Creates a curve from a JSON object, e. g. created by `toJSON`.\r\n *\r\n * @function Phaser.Curves.QuadraticBezier.fromJSON\r\n * @since 3.2.0\r\n *\r\n * @param {Phaser.Types.Curves.JSONCurve} data - The JSON object containing this curve data.\r\n *\r\n * @return {Phaser.Curves.QuadraticBezier} The created curve instance.\r\n */\r\nQuadraticBezier.fromJSON = function (data)\r\n{\r\n    var points = data.points;\r\n\r\n    var p0 = new Vector2(points[0], points[1]);\r\n    var p1 = new Vector2(points[2], points[3]);\r\n    var p2 = new Vector2(points[4], points[5]);\r\n\r\n    return new QuadraticBezier(p0, p1, p2);\r\n};\r\n\r\nmodule.exports = QuadraticBezier;\r\n\n\n/***/ }),\n\n/***/ 42534:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n//  Based on the three.js Curve classes created by [zz85](http://www.lab4games.net/zz85/blog)\r\n\r\nvar CatmullRom = __webpack_require__(87842);\r\nvar Class = __webpack_require__(83419);\r\nvar Curve = __webpack_require__(80021);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * Create a smooth 2d spline curve from a series of points.\r\n *\r\n * @class Spline\r\n * @extends Phaser.Curves.Curve\r\n * @memberof Phaser.Curves\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {(Phaser.Math.Vector2[]|number[]|number[][])} [points] - The points that configure the curve.\r\n */\r\nvar SplineCurve = new Class({\r\n\r\n    Extends: Curve,\r\n\r\n    initialize:\r\n\r\n    function SplineCurve (points)\r\n    {\r\n        if (points === undefined) { points = []; }\r\n\r\n        Curve.call(this, 'SplineCurve');\r\n\r\n        /**\r\n         * The Vector2 points that configure the curve.\r\n         *\r\n         * @name Phaser.Curves.Spline#points\r\n         * @type {Phaser.Math.Vector2[]}\r\n         * @default []\r\n         * @since 3.0.0\r\n         */\r\n        this.points = [];\r\n\r\n        this.addPoints(points);\r\n    },\r\n\r\n    /**\r\n     * Add a list of points to the current list of Vector2 points of the curve.\r\n     *\r\n     * @method Phaser.Curves.Spline#addPoints\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(Phaser.Math.Vector2[]|number[]|number[][])} points - The points that configure the curve.\r\n     *\r\n     * @return {this} This curve object.\r\n     */\r\n    addPoints: function (points)\r\n    {\r\n        for (var i = 0; i < points.length; i++)\r\n        {\r\n            var p = new Vector2();\r\n\r\n            if (typeof points[i] === 'number')\r\n            {\r\n                p.x = points[i];\r\n                p.y = points[i + 1];\r\n                i++;\r\n            }\r\n            else if (Array.isArray(points[i]))\r\n            {\r\n                //  An array of arrays?\r\n                p.x = points[i][0];\r\n                p.y = points[i][1];\r\n            }\r\n            else\r\n            {\r\n                p.x = points[i].x;\r\n                p.y = points[i].y;\r\n            }\r\n\r\n            this.points.push(p);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Add a point to the current list of Vector2 points of the curve.\r\n     *\r\n     * @method Phaser.Curves.Spline#addPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate of this curve\r\n     * @param {number} y - The y coordinate of this curve\r\n     *\r\n     * @return {Phaser.Math.Vector2} The new Vector2 added to the curve\r\n     */\r\n    addPoint: function (x, y)\r\n    {\r\n        var vec = new Vector2(x, y);\r\n\r\n        this.points.push(vec);\r\n\r\n        return vec;\r\n    },\r\n\r\n    /**\r\n     * Gets the starting point on the curve.\r\n     *\r\n     * @method Phaser.Curves.Spline#getStartPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {Phaser.Math.Vector2} [out] - A Vector2 object to store the result in. If not given will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The coordinates of the point on the curve. If an `out` object was given this will be returned.\r\n     */\r\n    getStartPoint: function (out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        return out.copy(this.points[0]);\r\n    },\r\n\r\n    /**\r\n     * Get the resolution of the curve.\r\n     *\r\n     * @method Phaser.Curves.Spline#getResolution\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} divisions - Optional divisions value.\r\n     *\r\n     * @return {number} The curve resolution.\r\n     */\r\n    getResolution: function (divisions)\r\n    {\r\n        return divisions * this.points.length;\r\n    },\r\n\r\n    /**\r\n     * Get point at relative position in curve according to length.\r\n     *\r\n     * @method Phaser.Curves.Spline#getPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} t - The position along the curve to return. Where 0 is the start and 1 is the end.\r\n     * @param {Phaser.Math.Vector2} [out] - A Vector2 object to store the result in. If not given will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The coordinates of the point on the curve. If an `out` object was given this will be returned.\r\n     */\r\n    getPoint: function (t, out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        var points = this.points;\r\n\r\n        var point = (points.length - 1) * t;\r\n\r\n        var intPoint = Math.floor(point);\r\n\r\n        var weight = point - intPoint;\r\n\r\n        var p0 = points[(intPoint === 0) ? intPoint : intPoint - 1];\r\n        var p1 = points[intPoint];\r\n        var p2 = points[(intPoint > points.length - 2) ? points.length - 1 : intPoint + 1];\r\n        var p3 = points[(intPoint > points.length - 3) ? points.length - 1 : intPoint + 2];\r\n\r\n        return out.set(CatmullRom(weight, p0.x, p1.x, p2.x, p3.x), CatmullRom(weight, p0.y, p1.y, p2.y, p3.y));\r\n    },\r\n\r\n    /**\r\n     * Exports a JSON object containing this curve data.\r\n     *\r\n     * @method Phaser.Curves.Spline#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.Curves.JSONCurve} The JSON object containing this curve data.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        var points = [];\r\n\r\n        for (var i = 0; i < this.points.length; i++)\r\n        {\r\n            points.push(this.points[i].x);\r\n            points.push(this.points[i].y);\r\n        }\r\n\r\n        return {\r\n            type: this.type,\r\n            points: points\r\n        };\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * Imports a JSON object containing this curve data.\r\n *\r\n * @function Phaser.Curves.Spline.fromJSON\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.Curves.JSONCurve} data - The JSON object containing this curve data.\r\n *\r\n * @return {Phaser.Curves.Spline} The spline curve created.\r\n */\r\nSplineCurve.fromJSON = function (data)\r\n{\r\n    return new SplineCurve(data.points);\r\n};\r\n\r\nmodule.exports = SplineCurve;\r\n\n\n/***/ }),\n\n/***/ 25410:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Curves\r\n */\r\n\r\nmodule.exports = {\r\n    Path: __webpack_require__(46669),\r\n    MoveTo: __webpack_require__(68618),\r\n\r\n    CubicBezier: __webpack_require__(46728),\r\n    Curve: __webpack_require__(80021),\r\n    Ellipse: __webpack_require__(73825),\r\n    Line: __webpack_require__(33951),\r\n    QuadraticBezier: __webpack_require__(14744),\r\n    Spline: __webpack_require__(42534)\r\n};\r\n\n\n/***/ }),\n\n/***/ 68618:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * A MoveTo Curve is a very simple curve consisting of only a single point.\r\n * Its intended use is to move the ending point in a Path.\r\n *\r\n * @class MoveTo\r\n * @memberof Phaser.Curves\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {number} [x=0] - `x` pixel coordinate.\r\n * @param {number} [y=0] - `y` pixel coordinate.\r\n */\r\nvar MoveTo = new Class({\r\n\r\n    initialize:\r\n\r\n    function MoveTo (x, y)\r\n    {\r\n        /**\r\n         * Denotes that this Curve does not influence the bounds, points, and drawing of its parent Path. Must be `false` or some methods in the parent Path will throw errors.\r\n         *\r\n         * @name Phaser.Curves.MoveTo#active\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.active = false;\r\n\r\n        /**\r\n         * The lone point which this curve consists of.\r\n         *\r\n         * @name Phaser.Curves.MoveTo#p0\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.0.0\r\n         */\r\n        this.p0 = new Vector2(x, y);\r\n    },\r\n\r\n    /**\r\n     * Get point at relative position in curve according to length.\r\n     *\r\n     * @method Phaser.Curves.MoveTo#getPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} t - The position along the curve to return. Where 0 is the start and 1 is the end.\r\n     * @param {Phaser.Math.Vector2} [out] - A Vector2 object to store the result in. If not given will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The coordinates of the point on the curve. If an `out` object was given this will be returned.\r\n     */\r\n    getPoint: function (t, out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        return out.copy(this.p0);\r\n    },\r\n\r\n    /**\r\n     * Retrieves the point at given position in the curve. This will always return this curve's only point.\r\n     *\r\n     * @method Phaser.Curves.MoveTo#getPointAt\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} u - The position in the path to retrieve, between 0 and 1. Not used.\r\n     * @param {Phaser.Math.Vector2} [out] - An optional vector in which to store the point.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The modified `out` vector, or a new `Vector2` if none was provided.\r\n     */\r\n    getPointAt: function (u, out)\r\n    {\r\n        return this.getPoint(u, out);\r\n    },\r\n\r\n    /**\r\n     * Gets the resolution of this curve.\r\n     *\r\n     * @method Phaser.Curves.MoveTo#getResolution\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The resolution of this curve. For a MoveTo the value is always 1.\r\n     */\r\n    getResolution: function ()\r\n    {\r\n        return 1;\r\n    },\r\n\r\n    /**\r\n     * Gets the length of this curve.\r\n     *\r\n     * @method Phaser.Curves.MoveTo#getLength\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The length of this curve. For a MoveTo the value is always 0.\r\n     */\r\n    getLength: function ()\r\n    {\r\n        return 0;\r\n    },\r\n\r\n    /**\r\n     * Converts this curve into a JSON-serializable object.\r\n     *\r\n     * @method Phaser.Curves.MoveTo#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.Curves.JSONCurve} A primitive object with the curve's type and only point.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        return {\r\n            type: 'MoveTo',\r\n            points: [\r\n                this.p0.x, this.p0.y\r\n            ]\r\n        };\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = MoveTo;\r\n\n\n/***/ }),\n\n/***/ 46669:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n//  Based on the three.js Curve classes created by [zz85](http://www.lab4games.net/zz85/blog)\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar CubicBezierCurve = __webpack_require__(46728);\r\nvar EllipseCurve = __webpack_require__(73825);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar LineCurve = __webpack_require__(33951);\r\nvar MovePathTo = __webpack_require__(68618);\r\nvar QuadraticBezierCurve = __webpack_require__(14744);\r\nvar Rectangle = __webpack_require__(87841);\r\nvar SplineCurve = __webpack_require__(42534);\r\nvar Vector2 = __webpack_require__(26099);\r\nvar MATH_CONST = __webpack_require__(36383);\r\n\r\n/**\r\n * @classdesc\r\n * A Path combines multiple Curves into one continuous compound curve.\r\n * It does not matter how many Curves are in the Path or what type they are.\r\n *\r\n * A Curve in a Path does not have to start where the previous Curve ends - that is to say, a Path does not\r\n * have to be an uninterrupted curve. Only the order of the Curves influences the actual points on the Path.\r\n *\r\n * @class Path\r\n * @memberof Phaser.Curves\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {number} [x=0] - The X coordinate of the Path's starting point or a {@link Phaser.Types.Curves.JSONPath}.\r\n * @param {number} [y=0] - The Y coordinate of the Path's starting point.\r\n */\r\nvar Path = new Class({\r\n\r\n    initialize:\r\n\r\n    function Path (x, y)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n\r\n        /**\r\n         * The name of this Path.\r\n         * Empty by default and never populated by Phaser, this is left for developers to use.\r\n         *\r\n         * @name Phaser.Curves.Path#name\r\n         * @type {string}\r\n         * @default ''\r\n         * @since 3.0.0\r\n         */\r\n        this.name = '';\r\n\t\t\r\n        /**\r\n         * The default number of divisions within a curve.\r\n         *\r\n         * @name Phaser.Curves.Path#defaultDivisions\r\n         * @type {number}\r\n         * @default 12\r\n         * @since 3.70.0\r\n         */\r\n        this.defaultDivisions = 12;\r\n\r\n        /**\r\n         * The list of Curves which make up this Path.\r\n         *\r\n         * @name Phaser.Curves.Path#curves\r\n         * @type {Phaser.Curves.Curve[]}\r\n         * @default []\r\n         * @since 3.0.0\r\n         */\r\n        this.curves = [];\r\n\r\n        /**\r\n         * The cached length of each Curve in the Path.\r\n         *\r\n         * Used internally by {@link #getCurveLengths}.\r\n         *\r\n         * @name Phaser.Curves.Path#cacheLengths\r\n         * @type {number[]}\r\n         * @default []\r\n         * @since 3.0.0\r\n         */\r\n        this.cacheLengths = [];\r\n\r\n        /**\r\n         * Automatically closes the path.\r\n         *\r\n         * @name Phaser.Curves.Path#autoClose\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.autoClose = false;\r\n\r\n        /**\r\n         * The starting point of the Path.\r\n         *\r\n         * This is not necessarily equivalent to the starting point of the first Curve in the Path. In an empty Path, it's also treated as the ending point.\r\n         *\r\n         * @name Phaser.Curves.Path#startPoint\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.0.0\r\n         */\r\n        this.startPoint = new Vector2();\r\n\r\n        /**\r\n         * A temporary vector used to avoid object creation when adding a Curve to the Path.\r\n         *\r\n         * @name Phaser.Curves.Path#_tmpVec2A\r\n         * @type {Phaser.Math.Vector2}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._tmpVec2A = new Vector2();\r\n\r\n        /**\r\n         * A temporary vector used to avoid object creation when adding a Curve to the Path.\r\n         *\r\n         * @name Phaser.Curves.Path#_tmpVec2B\r\n         * @type {Phaser.Math.Vector2}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._tmpVec2B = new Vector2();\r\n\r\n        if (typeof x === 'object')\r\n        {\r\n            this.fromJSON(x);\r\n        }\r\n        else\r\n        {\r\n            this.startPoint.set(x, y);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Appends a Curve to the end of the Path.\r\n     *\r\n     * The Curve does not have to start where the Path ends or, for an empty Path, at its defined starting point.\r\n     *\r\n     * @method Phaser.Curves.Path#add\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Curves.Curve} curve - The Curve to append.\r\n     *\r\n     * @return {this} This Path object.\r\n     */\r\n    add: function (curve)\r\n    {\r\n        this.curves.push(curve);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Creates a circular Ellipse Curve positioned at the end of the Path.\r\n     *\r\n     * @method Phaser.Curves.Path#circleTo\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} radius - The radius of the circle.\r\n     * @param {boolean} [clockwise=false] - `true` to create a clockwise circle as opposed to a counter-clockwise circle.\r\n     * @param {number} [rotation=0] - The rotation of the circle in degrees.\r\n     *\r\n     * @return {this} This Path object.\r\n     */\r\n    circleTo: function (radius, clockwise, rotation)\r\n    {\r\n        if (clockwise === undefined) { clockwise = false; }\r\n\r\n        return this.ellipseTo(radius, radius, 0, 360, clockwise, rotation);\r\n    },\r\n\r\n    /**\r\n     * Ensures that the Path is closed.\r\n     *\r\n     * A closed Path starts and ends at the same point. If the Path is not closed, a straight Line Curve will be created from the ending point directly to the starting point. During the check, the actual starting point of the Path, i.e. the starting point of the first Curve, will be used as opposed to the Path's defined {@link startPoint}, which could differ.\r\n     *\r\n     * Calling this method on an empty Path will result in an error.\r\n     *\r\n     * @method Phaser.Curves.Path#closePath\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Path object.\r\n     */\r\n    closePath: function ()\r\n    {\r\n        // Add a line curve if start and end of lines are not connected\r\n        var startPoint = this.curves[0].getPoint(0);\r\n        var endPoint = this.curves[this.curves.length - 1].getPoint(1);\r\n\r\n        if (!startPoint.equals(endPoint))\r\n        {\r\n            //  This will copy a reference to the vectors, which probably isn't sensible\r\n            this.curves.push(new LineCurve(endPoint, startPoint));\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Creates a cubic bezier curve starting at the previous end point and ending at p3, using p1 and p2 as control points.\r\n     *\r\n     * @method Phaser.Curves.Path#cubicBezierTo\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(number|Phaser.Math.Vector2)} x - The x coordinate of the end point. Or, if a Vector2, the p1 value.\r\n     * @param {(number|Phaser.Math.Vector2)} y - The y coordinate of the end point. Or, if a Vector2, the p2 value.\r\n     * @param {(number|Phaser.Math.Vector2)} control1X - The x coordinate of the first control point. Or, if a Vector2, the p3 value.\r\n     * @param {number} [control1Y] - The y coordinate of the first control point. Not used if Vector2s are provided as the first 3 arguments.\r\n     * @param {number} [control2X] - The x coordinate of the second control point. Not used if Vector2s are provided as the first 3 arguments.\r\n     * @param {number} [control2Y] - The y coordinate of the second control point. Not used if Vector2s are provided as the first 3 arguments.\r\n     *\r\n     * @return {this} This Path object.\r\n     */\r\n    cubicBezierTo: function (x, y, control1X, control1Y, control2X, control2Y)\r\n    {\r\n        var p0 = this.getEndPoint();\r\n        var p1;\r\n        var p2;\r\n        var p3;\r\n\r\n        //  Assume they're all Vector2s\r\n        if (x instanceof Vector2)\r\n        {\r\n            p1 = x;\r\n            p2 = y;\r\n            p3 = control1X;\r\n        }\r\n        else\r\n        {\r\n            p1 = new Vector2(control1X, control1Y);\r\n            p2 = new Vector2(control2X, control2Y);\r\n            p3 = new Vector2(x, y);\r\n        }\r\n\r\n        return this.add(new CubicBezierCurve(p0, p1, p2, p3));\r\n    },\r\n\r\n    //  Creates a quadratic bezier curve starting at the previous end point and ending at p2, using p1 as a control point\r\n\r\n    /**\r\n     * Creates a Quadratic Bezier Curve starting at the ending point of the Path.\r\n     *\r\n     * @method Phaser.Curves.Path#quadraticBezierTo\r\n     * @since 3.2.0\r\n     *\r\n     * @param {(number|Phaser.Math.Vector2[])} x - The X coordinate of the second control point or, if it's a `Vector2`, the first control point.\r\n     * @param {number} [y] - The Y coordinate of the second control point or, if `x` is a `Vector2`, the second control point.\r\n     * @param {number} [controlX] - If `x` is not a `Vector2`, the X coordinate of the first control point.\r\n     * @param {number} [controlY] - If `x` is not a `Vector2`, the Y coordinate of the first control point.\r\n     *\r\n     * @return {this} This Path object.\r\n     */\r\n    quadraticBezierTo: function (x, y, controlX, controlY)\r\n    {\r\n        var p0 = this.getEndPoint();\r\n        var p1;\r\n        var p2;\r\n\r\n        //  Assume they're all Vector2s\r\n        if (x instanceof Vector2)\r\n        {\r\n            p1 = x;\r\n            p2 = y;\r\n        }\r\n        else\r\n        {\r\n            p1 = new Vector2(controlX, controlY);\r\n            p2 = new Vector2(x, y);\r\n        }\r\n\r\n        return this.add(new QuadraticBezierCurve(p0, p1, p2));\r\n    },\r\n\r\n    /**\r\n     * Draws all Curves in the Path to a Graphics Game Object.\r\n     *\r\n     * @method Phaser.Curves.Path#draw\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.GameObjects.Graphics} G - [out,$return]\r\n     *\r\n     * @param {Phaser.GameObjects.Graphics} graphics - The Graphics Game Object to draw to.\r\n     * @param {number} [pointsTotal=32] - The number of points to draw for each Curve. Higher numbers result in a smoother curve but require more processing.\r\n     *\r\n     * @return {Phaser.GameObjects.Graphics} The Graphics object which was drawn to.\r\n     */\r\n    draw: function (graphics, pointsTotal)\r\n    {\r\n        for (var i = 0; i < this.curves.length; i++)\r\n        {\r\n            var curve = this.curves[i];\r\n\r\n            if (!curve.active)\r\n            {\r\n                continue;\r\n            }\r\n\r\n            curve.draw(graphics, pointsTotal);\r\n        }\r\n\r\n        return graphics;\r\n    },\r\n\r\n    /**\r\n     * Creates an ellipse curve positioned at the previous end point, using the given parameters.\r\n     *\r\n     * @method Phaser.Curves.Path#ellipseTo\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [xRadius=0] - The horizontal radius of ellipse.\r\n     * @param {number} [yRadius=0] - The vertical radius of ellipse.\r\n     * @param {number} [startAngle=0] - The start angle of the ellipse, in degrees.\r\n     * @param {number} [endAngle=360] - The end angle of the ellipse, in degrees.\r\n     * @param {boolean} [clockwise=false] - Whether the ellipse angles are given as clockwise (`true`) or counter-clockwise (`false`).\r\n     * @param {number} [rotation=0] - The rotation of the ellipse, in degrees.\r\n     *\r\n     * @return {this} This Path object.\r\n     */\r\n    ellipseTo: function (xRadius, yRadius, startAngle, endAngle, clockwise, rotation)\r\n    {\r\n        var ellipse = new EllipseCurve(0, 0, xRadius, yRadius, startAngle, endAngle, clockwise, rotation);\r\n\r\n        var end = this.getEndPoint(this._tmpVec2A);\r\n\r\n        //  Calculate where to center the ellipse\r\n        var start = ellipse.getStartPoint(this._tmpVec2B);\r\n\r\n        end.subtract(start);\r\n\r\n        ellipse.x = end.x;\r\n        ellipse.y = end.y;\r\n\r\n        return this.add(ellipse);\r\n    },\r\n\r\n    /**\r\n     * Creates a Path from a Path Configuration object.\r\n     *\r\n     * The provided object should be a {@link Phaser.Types.Curves.JSONPath}, as returned by {@link #toJSON}. Providing a malformed object may cause errors.\r\n     *\r\n     * @method Phaser.Curves.Path#fromJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.Curves.JSONPath} data - The JSON object containing the Path data.\r\n     *\r\n     * @return {this} This Path object.\r\n     */\r\n    fromJSON: function (data)\r\n    {\r\n        //  data should be an object matching the Path.toJSON object structure.\r\n\r\n        this.curves = [];\r\n        this.cacheLengths = [];\r\n\r\n        this.startPoint.set(data.x, data.y);\r\n\r\n        this.autoClose = data.autoClose;\r\n\r\n        for (var i = 0; i < data.curves.length; i++)\r\n        {\r\n            var curve = data.curves[i];\r\n\r\n            switch (curve.type)\r\n            {\r\n                case 'LineCurve':\r\n                    this.add(LineCurve.fromJSON(curve));\r\n                    break;\r\n\r\n                case 'EllipseCurve':\r\n                    this.add(EllipseCurve.fromJSON(curve));\r\n                    break;\r\n\r\n                case 'SplineCurve':\r\n                    this.add(SplineCurve.fromJSON(curve));\r\n                    break;\r\n\r\n                case 'CubicBezierCurve':\r\n                    this.add(CubicBezierCurve.fromJSON(curve));\r\n                    break;\r\n\r\n                case 'QuadraticBezierCurve':\r\n                    this.add(QuadraticBezierCurve.fromJSON(curve));\r\n                    break;\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns a Rectangle with a position and size matching the bounds of this Path.\r\n     *\r\n     * @method Phaser.Curves.Path#getBounds\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {Phaser.Geom.Rectangle} [out] - The Rectangle to store the bounds in.\r\n     * @param {number} [accuracy=16] - The accuracy of the bounds calculations. Higher values are more accurate at the cost of calculation speed.\r\n     *\r\n     * @return {Phaser.Geom.Rectangle} The modified `out` Rectangle, or a new Rectangle if none was provided.\r\n     */\r\n    getBounds: function (out, accuracy)\r\n    {\r\n        if (out === undefined) { out = new Rectangle(); }\r\n        if (accuracy === undefined) { accuracy = 16; }\r\n\r\n        out.x = Number.MAX_VALUE;\r\n        out.y = Number.MAX_VALUE;\r\n\r\n        var bounds = new Rectangle();\r\n        var maxRight = MATH_CONST.MIN_SAFE_INTEGER;\r\n        var maxBottom = MATH_CONST.MIN_SAFE_INTEGER;\r\n\r\n        for (var i = 0; i < this.curves.length; i++)\r\n        {\r\n            var curve = this.curves[i];\r\n\r\n            if (!curve.active)\r\n            {\r\n                continue;\r\n            }\r\n\r\n            curve.getBounds(bounds, accuracy);\r\n\r\n            out.x = Math.min(out.x, bounds.x);\r\n            out.y = Math.min(out.y, bounds.y);\r\n\r\n            maxRight = Math.max(maxRight, bounds.right);\r\n            maxBottom = Math.max(maxBottom, bounds.bottom);\r\n        }\r\n\r\n        out.right = maxRight;\r\n        out.bottom = maxBottom;\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Returns an array containing the length of the Path at the end of each Curve.\r\n     *\r\n     * The result of this method will be cached to avoid recalculating it in subsequent calls. The cache is only invalidated when the {@link #curves} array changes in length, leading to potential inaccuracies if a Curve in the Path is changed, or if a Curve is removed and another is added in its place.\r\n     *\r\n     * @method Phaser.Curves.Path#getCurveLengths\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number[]} An array containing the length of the Path at the end of each one of its Curves.\r\n     */\r\n    getCurveLengths: function ()\r\n    {\r\n        // We use cache values if curves and cache array are same length\r\n\r\n        if (this.cacheLengths.length === this.curves.length)\r\n        {\r\n            return this.cacheLengths;\r\n        }\r\n\r\n        // Get length of sub-curve\r\n        // Push sums into cached array\r\n\r\n        var lengths = [];\r\n        var sums = 0;\r\n\r\n        for (var i = 0; i < this.curves.length; i++)\r\n        {\r\n            sums += this.curves[i].getLength();\r\n\r\n            lengths.push(sums);\r\n        }\r\n\r\n        this.cacheLengths = lengths;\r\n\r\n        return lengths;\r\n    },\r\n\r\n    /**\r\n     * Returns the Curve that forms the Path at the given normalized location (between 0 and 1).\r\n     *\r\n     * @method Phaser.Curves.Path#getCurveAt\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} t - The normalized location on the Path, between 0 and 1.\r\n     *\r\n     * @return {?Phaser.Curves.Curve} The Curve that is part of this Path at a given location, or `null` if no curve was found.\r\n     */\r\n    getCurveAt: function (t)\r\n    {\r\n        var d = t * this.getLength();\r\n        var curveLengths = this.getCurveLengths();\r\n        var i = 0;\r\n\r\n        while (i < curveLengths.length)\r\n        {\r\n            if (curveLengths[i] >= d)\r\n            {\r\n                return this.curves[i];\r\n            }\r\n\r\n            i++;\r\n        }\r\n\r\n        return null;\r\n    },\r\n\r\n    /**\r\n     * Returns the ending point of the Path.\r\n     *\r\n     * A Path's ending point is equivalent to the ending point of the last Curve in the Path. For an empty Path, the ending point is at the Path's defined {@link #startPoint}.\r\n     *\r\n     * @method Phaser.Curves.Path#getEndPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {Phaser.Math.Vector2} [out] - The object to store the point in.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The modified `out` object, or a new Vector2 if none was provided.\r\n     */\r\n    getEndPoint: function (out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        if (this.curves.length > 0)\r\n        {\r\n            this.curves[this.curves.length - 1].getPoint(1, out);\r\n        }\r\n        else\r\n        {\r\n            out.copy(this.startPoint);\r\n        }\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Returns the total length of the Path.\r\n     *\r\n     * @see {@link #getCurveLengths}\r\n     *\r\n     * @method Phaser.Curves.Path#getLength\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The total length of the Path.\r\n     */\r\n    getLength: function ()\r\n    {\r\n        var lens = this.getCurveLengths();\r\n\r\n        return lens[lens.length - 1];\r\n    },\r\n\r\n    // To get accurate point with reference to\r\n    // entire path distance at time t,\r\n    // following has to be done:\r\n\r\n    // 1. Length of each sub path have to be known\r\n    // 2. Locate and identify type of curve\r\n    // 3. Get t for the curve\r\n    // 4. Return curve.getPointAt(t')\r\n\r\n    /**\r\n     * Calculates the coordinates of the point at the given normalized location (between 0 and 1) on the Path.\r\n     *\r\n     * The location is relative to the entire Path, not to an individual Curve. A location of 0.5 is always in the middle of the Path and is thus an equal distance away from both its starting and ending points. In a Path with one Curve, it would be in the middle of the Curve; in a Path with two Curves, it could be anywhere on either one of them depending on their lengths.\r\n     *\r\n     * @method Phaser.Curves.Path#getPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} t - The location of the point to return, between 0 and 1.\r\n     * @param {Phaser.Math.Vector2} [out] - The object in which to store the calculated point.\r\n     *\r\n     * @return {?Phaser.Math.Vector2} The modified `out` object, or a new `Vector2` if none was provided.\r\n     */\r\n    getPoint: function (t, out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        var d = t * this.getLength();\r\n        var curveLengths = this.getCurveLengths();\r\n        var i = 0;\r\n\r\n        while (i < curveLengths.length)\r\n        {\r\n            if (curveLengths[i] >= d)\r\n            {\r\n                var diff = curveLengths[i] - d;\r\n                var curve = this.curves[i];\r\n\r\n                var segmentLength = curve.getLength();\r\n                var u = (segmentLength === 0) ? 0 : 1 - diff / segmentLength;\r\n\r\n                return curve.getPointAt(u, out);\r\n            }\r\n\r\n            i++;\r\n        }\r\n\r\n        // loop where sum != 0, sum > d , sum+1 <d\r\n        return null;\r\n    },\r\n\r\n    /**\r\n     * Get a sequence of points on the path.\r\n     *\r\n     * @method Phaser.Curves.Path#getPoints\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [divisions] - The number of divisions to make per resolution per curve.\r\n     * @param {number} [stepRate] - The curve distance between points per curve, implying `divisions`.\r\n     *\r\n     * @return {Phaser.Math.Vector2[]} An array of Vector2 objects that containing the points along the Path.\r\n     */\r\n    getPoints: function (divisions, stepRate)\r\n    {\r\n        //  If divisions and stepRate are falsey values (false, null, 0, undefined, etc) then we use the default divisions value.\r\n        if (!divisions && !stepRate)\r\n        {\r\n            divisions = this.defaultDivisions;\r\n        }\r\n\r\n        var points = [];\r\n        var last;\r\n\r\n        for (var i = 0; i < this.curves.length; i++)\r\n        {\r\n            var curve = this.curves[i];\r\n\r\n            if (!curve.active)\r\n            {\r\n                continue;\r\n            }\r\n\r\n            var resolution = curve.getResolution(divisions);\r\n\r\n            var pts = curve.getPoints(resolution, stepRate);\r\n\r\n            for (var j = 0; j < pts.length; j++)\r\n            {\r\n                var point = pts[j];\r\n\r\n                if (last && last.equals(point))\r\n                {\r\n                    // ensures no consecutive points are duplicates\r\n                    continue;\r\n                }\r\n\r\n                points.push(point);\r\n\r\n                last = point;\r\n            }\r\n        }\r\n\r\n        if (this.autoClose && points.length > 1 && !points[points.length - 1].equals(points[0]))\r\n        {\r\n            points.push(points[0]);\r\n        }\r\n\r\n        return points;\r\n    },\r\n\r\n    /**\r\n     * Returns a randomly chosen point anywhere on the path. This follows the same rules as `getPoint` in that it may return a point on any Curve inside this path.\r\n     *\r\n     * When calling this method multiple times, the points are not guaranteed to be equally spaced spatially.\r\n     *\r\n     * @method Phaser.Curves.Path#getRandomPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {Phaser.Math.Vector2} [out] - `Vector2` instance that should be used for storing the result. If `undefined` a new `Vector2` will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The modified `out` object, or a new `Vector2` if none was provided.\r\n     */\r\n    getRandomPoint: function (out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        return this.getPoint(Math.random(), out);\r\n    },\r\n\r\n    /**\r\n     * Divides this Path into a set of equally spaced points,\r\n     *\r\n     * The resulting points are equally spaced with respect to the points' position on the path, but not necessarily equally spaced spatially.\r\n     *\r\n     * @method Phaser.Curves.Path#getSpacedPoints\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [divisions=40] - The amount of points to divide this Path into.\r\n     *\r\n     * @return {Phaser.Math.Vector2[]} A list of the points this path was subdivided into.\r\n     */\r\n    getSpacedPoints: function (divisions)\r\n    {\r\n        if (divisions === undefined) { divisions = 40; }\r\n\r\n        var points = [];\r\n\r\n        for (var i = 0; i <= divisions; i++)\r\n        {\r\n            points.push(this.getPoint(i / divisions));\r\n        }\r\n\r\n        if (this.autoClose)\r\n        {\r\n            points.push(points[0]);\r\n        }\r\n\r\n        return points;\r\n    },\r\n\r\n    /**\r\n     * Returns the starting point of the Path.\r\n     *\r\n     * @method Phaser.Curves.Path#getStartPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {Phaser.Math.Vector2} [out] - `Vector2` instance that should be used for storing the result. If `undefined` a new `Vector2` will be created.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The modified `out` object, or a new Vector2 if none was provided.\r\n     */\r\n    getStartPoint: function (out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        return out.copy(this.startPoint);\r\n    },\r\n\r\n    /**\r\n     * Gets a unit vector tangent at a relative position on the path.\r\n     *\r\n     * @method Phaser.Curves.Path#getTangent\r\n     * @since 3.23.0\r\n     *\r\n     * @generic {Phaser.Math.Vector2} O - [out,$return]\r\n     *\r\n     * @param {number} t - The relative position on the path, [0..1].\r\n     * @param {Phaser.Math.Vector2} [out] - A vector to store the result in.\r\n     *\r\n     * @return {Phaser.Math.Vector2} Vector approximating the tangent line at the point t (delta +/- 0.0001)\r\n     */\r\n    getTangent: function (t, out)\r\n    {\r\n        if (out === undefined) { out = new Vector2(); }\r\n\r\n        var d = t * this.getLength();\r\n        var curveLengths = this.getCurveLengths();\r\n        var i = 0;\r\n\r\n        while (i < curveLengths.length)\r\n        {\r\n            if (curveLengths[i] >= d)\r\n            {\r\n                var diff = curveLengths[i] - d;\r\n                var curve = this.curves[i];\r\n\r\n                var segmentLength = curve.getLength();\r\n                var u = (segmentLength === 0) ? 0 : 1 - diff / segmentLength;\r\n\r\n                return curve.getTangentAt(u, out);\r\n            }\r\n\r\n            i++;\r\n        }\r\n\r\n        return null;\r\n    },\r\n\r\n    /**\r\n     * Creates a line curve from the previous end point to x/y.\r\n     *\r\n     * @method Phaser.Curves.Path#lineTo\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(number|Phaser.Math.Vector2|Phaser.Types.Math.Vector2Like)} x - The X coordinate of the line's end point, or a `Vector2` / `Vector2Like` containing the entire end point.\r\n     * @param {number} [y] - The Y coordinate of the line's end point, if a number was passed as the X parameter.\r\n     *\r\n     * @return {this} This Path object.\r\n     */\r\n    lineTo: function (x, y)\r\n    {\r\n        if (x instanceof Vector2)\r\n        {\r\n            this._tmpVec2B.copy(x);\r\n        }\r\n        else if (typeof x === 'object')\r\n        {\r\n            this._tmpVec2B.setFromObject(x);\r\n        }\r\n        else\r\n        {\r\n            this._tmpVec2B.set(x, y);\r\n        }\r\n\r\n        var end = this.getEndPoint(this._tmpVec2A);\r\n\r\n        return this.add(new LineCurve([ end.x, end.y, this._tmpVec2B.x, this._tmpVec2B.y ]));\r\n    },\r\n\r\n    /**\r\n     * Creates a spline curve starting at the previous end point, using the given points on the curve.\r\n     *\r\n     * @method Phaser.Curves.Path#splineTo\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Math.Vector2[]} points - The points the newly created spline curve should consist of.\r\n     *\r\n     * @return {this} This Path object.\r\n     */\r\n    splineTo: function (points)\r\n    {\r\n        points.unshift(this.getEndPoint());\r\n\r\n        return this.add(new SplineCurve(points));\r\n    },\r\n\r\n    /**\r\n     * Creates a \"gap\" in this path from the path's current end point to the given coordinates.\r\n     *\r\n     * After calling this function, this Path's end point will be equal to the given coordinates\r\n     *\r\n     * @method Phaser.Curves.Path#moveTo\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(number|Phaser.Math.Vector2|Phaser.Types.Math.Vector2Like)} x - The X coordinate of the position to move the path's end point to, or a `Vector2` / `Vector2Like` containing the entire new end point.\r\n     * @param {number} [y] - The Y coordinate of the position to move the path's end point to, if a number was passed as the X coordinate.\r\n     *\r\n     * @return {this} This Path object.\r\n     */\r\n    moveTo: function (x, y)\r\n    {\r\n        if (x instanceof Vector2)\r\n        {\r\n            return this.add(new MovePathTo(x.x, x.y));\r\n        }\r\n        else\r\n        {\r\n            return this.add(new MovePathTo(x, y));\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Converts this Path to a JSON object containing the path information and its constituent curves.\r\n     *\r\n     * @method Phaser.Curves.Path#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.Curves.JSONPath} The JSON object containing this path's data.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        var out = [];\r\n\r\n        for (var i = 0; i < this.curves.length; i++)\r\n        {\r\n            out.push(this.curves[i].toJSON());\r\n        }\r\n\r\n        return {\r\n            type: 'Path',\r\n            x: this.startPoint.x,\r\n            y: this.startPoint.y,\r\n            autoClose: this.autoClose,\r\n            curves: out\r\n        };\r\n    },\r\n\r\n    /**\r\n     * cacheLengths must be recalculated.\r\n     *\r\n     * @method Phaser.Curves.Path#updateArcLengths\r\n     * @since 3.0.0\r\n     */\r\n    updateArcLengths: function ()\r\n    {\r\n        this.cacheLengths = [];\r\n\r\n        this.getCurveLengths();\r\n    },\r\n\r\n    /**\r\n     * Disposes of this Path, clearing its internal references to objects so they can be garbage-collected.\r\n     *\r\n     * @method Phaser.Curves.Path#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.curves.length = 0;\r\n        this.cacheLengths.length = 0;\r\n        this.startPoint = undefined;\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * Creates a new Path Object.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#path\r\n * @since 3.0.0\r\n *\r\n * @param {number} x - The horizontal position of this Path.\r\n * @param {number} y - The vertical position of this Path.\r\n *\r\n * @return {Phaser.Curves.Path} The Path Object that was created.\r\n */\r\nGameObjectFactory.register('path', function (x, y)\r\n{\r\n    return new Path(x, y);\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectFactory context.\r\n//\r\n//  There are several properties available to use:\r\n//\r\n//  this.scene - a reference to the Scene that owns the GameObjectFactory\r\n//  this.displayList - a reference to the Display List the Scene owns\r\n//  this.updateList - a reference to the Update List the Scene owns\r\n\r\nmodule.exports = Path;\r\n\n\n/***/ }),\n\n/***/ 45893:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Events = __webpack_require__(24882);\r\n\r\n/**\r\n * @callback DataEachCallback\r\n *\r\n * @param {*} parent - The parent object of the DataManager.\r\n * @param {string} key - The key of the value.\r\n * @param {*} value - The value.\r\n * @param {...*} [args] - Additional arguments that will be passed to the callback, after the game object, key, and data.\r\n */\r\n\r\n/**\r\n * @classdesc\r\n * The Data Manager Component features a means to store pieces of data specific to a Game Object, System or Plugin.\r\n * You can then search, query it, and retrieve the data. The parent must either extend EventEmitter,\r\n * or have a property called `events` that is an instance of it.\r\n *\r\n * @class DataManager\r\n * @memberof Phaser.Data\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {object} parent - The object that this DataManager belongs to.\r\n * @param {Phaser.Events.EventEmitter} [eventEmitter] - The DataManager's event emitter.\r\n */\r\nvar DataManager = new Class({\r\n\r\n    initialize:\r\n\r\n    function DataManager (parent, eventEmitter)\r\n    {\r\n        /**\r\n         * The object that this DataManager belongs to.\r\n         *\r\n         * @name Phaser.Data.DataManager#parent\r\n         * @type {*}\r\n         * @since 3.0.0\r\n         */\r\n        this.parent = parent;\r\n\r\n        /**\r\n         * The DataManager's event emitter.\r\n         *\r\n         * @name Phaser.Data.DataManager#events\r\n         * @type {Phaser.Events.EventEmitter}\r\n         * @since 3.0.0\r\n         */\r\n        this.events = eventEmitter;\r\n\r\n        if (!eventEmitter)\r\n        {\r\n            this.events = (parent.events) ? parent.events : parent;\r\n        }\r\n\r\n        /**\r\n         * The data list.\r\n         *\r\n         * @name Phaser.Data.DataManager#list\r\n         * @type {Object.<string, *>}\r\n         * @default {}\r\n         * @since 3.0.0\r\n         */\r\n        this.list = {};\r\n\r\n        /**\r\n         * The public values list. You can use this to access anything you have stored\r\n         * in this Data Manager. For example, if you set a value called `gold` you can\r\n         * access it via:\r\n         *\r\n         * ```javascript\r\n         * this.data.values.gold;\r\n         * ```\r\n         *\r\n         * You can also modify it directly:\r\n         *\r\n         * ```javascript\r\n         * this.data.values.gold += 1000;\r\n         * ```\r\n         *\r\n         * Doing so will emit a `setdata` event from the parent of this Data Manager.\r\n         *\r\n         * Do not modify this object directly. Adding properties directly to this object will not\r\n         * emit any events. Always use `DataManager.set` to create new items the first time around.\r\n         *\r\n         * @name Phaser.Data.DataManager#values\r\n         * @type {Object.<string, *>}\r\n         * @default {}\r\n         * @since 3.10.0\r\n         */\r\n        this.values = {};\r\n\r\n        /**\r\n         * Whether setting data is frozen for this DataManager.\r\n         *\r\n         * @name Phaser.Data.DataManager#_frozen\r\n         * @type {boolean}\r\n         * @private\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this._frozen = false;\r\n\r\n        if (!parent.hasOwnProperty('sys') && this.events)\r\n        {\r\n            this.events.once(Events.DESTROY, this.destroy, this);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Retrieves the value for the given key, or undefined if it doesn't exist.\r\n     *\r\n     * You can also access values via the `values` object. For example, if you had a key called `gold` you can do either:\r\n     *\r\n     * ```javascript\r\n     * this.data.get('gold');\r\n     * ```\r\n     *\r\n     * Or access the value directly:\r\n     *\r\n     * ```javascript\r\n     * this.data.values.gold;\r\n     * ```\r\n     *\r\n     * You can also pass in an array of keys, in which case an array of values will be returned:\r\n     *\r\n     * ```javascript\r\n     * this.data.get([ 'gold', 'armor', 'health' ]);\r\n     * ```\r\n     *\r\n     * This approach is useful for destructuring arrays in ES6.\r\n     *\r\n     * @method Phaser.Data.DataManager#get\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|string[])} key - The key of the value to retrieve, or an array of keys.\r\n     *\r\n     * @return {*} The value belonging to the given key, or an array of values, the order of which will match the input array.\r\n     */\r\n    get: function (key)\r\n    {\r\n        var list = this.list;\r\n\r\n        if (Array.isArray(key))\r\n        {\r\n            var output = [];\r\n\r\n            for (var i = 0; i < key.length; i++)\r\n            {\r\n                output.push(list[key[i]]);\r\n            }\r\n\r\n            return output;\r\n        }\r\n        else\r\n        {\r\n            return list[key];\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Retrieves all data values in a new object.\r\n     *\r\n     * @method Phaser.Data.DataManager#getAll\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Object.<string, *>} All data values.\r\n     */\r\n    getAll: function ()\r\n    {\r\n        var results = {};\r\n\r\n        for (var key in this.list)\r\n        {\r\n            if (this.list.hasOwnProperty(key))\r\n            {\r\n                results[key] = this.list[key];\r\n            }\r\n        }\r\n\r\n        return results;\r\n    },\r\n\r\n    /**\r\n     * Queries the DataManager for the values of keys matching the given regular expression.\r\n     *\r\n     * @method Phaser.Data.DataManager#query\r\n     * @since 3.0.0\r\n     *\r\n     * @param {RegExp} search - A regular expression object. If a non-RegExp object obj is passed, it is implicitly converted to a RegExp by using new RegExp(obj).\r\n     *\r\n     * @return {Object.<string, *>} The values of the keys matching the search string.\r\n     */\r\n    query: function (search)\r\n    {\r\n        var results = {};\r\n\r\n        for (var key in this.list)\r\n        {\r\n            if (this.list.hasOwnProperty(key) && key.match(search))\r\n            {\r\n                results[key] = this.list[key];\r\n            }\r\n        }\r\n\r\n        return results;\r\n    },\r\n\r\n    /**\r\n     * Sets a value for the given key. If the key doesn't already exist in the Data Manager then it is created.\r\n     *\r\n     * ```javascript\r\n     * data.set('name', 'Red Gem Stone');\r\n     * ```\r\n     *\r\n     * You can also pass in an object of key value pairs as the first argument:\r\n     *\r\n     * ```javascript\r\n     * data.set({ name: 'Red Gem Stone', level: 2, owner: 'Link', gold: 50 });\r\n     * ```\r\n     *\r\n     * To get a value back again you can call `get`:\r\n     *\r\n     * ```javascript\r\n     * data.get('gold');\r\n     * ```\r\n     *\r\n     * Or you can access the value directly via the `values` property, where it works like any other variable:\r\n     *\r\n     * ```javascript\r\n     * data.values.gold += 50;\r\n     * ```\r\n     *\r\n     * When the value is first set, a `setdata` event is emitted.\r\n     *\r\n     * If the key already exists, a `changedata` event is emitted instead, along an event named after the key.\r\n     * For example, if you updated an existing key called `PlayerLives` then it would emit the event `changedata-PlayerLives`.\r\n     * These events will be emitted regardless if you use this method to set the value, or the direct `values` setter.\r\n     *\r\n     * Please note that the data keys are case-sensitive and must be valid JavaScript Object property strings.\r\n     * This means the keys `gold` and `Gold` are treated as two unique values within the Data Manager.\r\n     *\r\n     * @method Phaser.Data.DataManager#set\r\n     * @fires Phaser.Data.Events#SET_DATA\r\n     * @fires Phaser.Data.Events#CHANGE_DATA\r\n     * @fires Phaser.Data.Events#CHANGE_DATA_KEY\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {any} T\r\n     * @genericUse {(string|T)} - [key]\r\n     *\r\n     * @param {(string|object)} key - The key to set the value for. Or an object of key value pairs. If an object the `data` argument is ignored.\r\n     * @param {*} [data] - The value to set for the given key. If an object is provided as the key this argument is ignored.\r\n     *\r\n     * @return {this} This Data Manager instance.\r\n     */\r\n    set: function (key, data)\r\n    {\r\n        if (this._frozen)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        if (typeof key === 'string')\r\n        {\r\n            return this.setValue(key, data);\r\n        }\r\n        else\r\n        {\r\n            for (var entry in key)\r\n            {\r\n                this.setValue(entry, key[entry]);\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Increase a value for the given key. If the key doesn't already exist in the Data Manager then it is increased from 0.\r\n     *\r\n     * When the value is first set, a `setdata` event is emitted.\r\n     *\r\n     * @method Phaser.Data.DataManager#inc\r\n     * @fires Phaser.Data.Events#SET_DATA\r\n     * @fires Phaser.Data.Events#CHANGE_DATA\r\n     * @fires Phaser.Data.Events#CHANGE_DATA_KEY\r\n     * @since 3.23.0\r\n     *\r\n     * @param {string} key - The key to change the value for.\r\n     * @param {number} [amount=1] - The amount to increase the given key by. Pass a negative value to decrease the key.\r\n     *\r\n     * @return {this} This Data Manager instance.\r\n     */\r\n    inc: function (key, amount)\r\n    {\r\n        if (this._frozen)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        if (amount === undefined)\r\n        {\r\n            amount = 1;\r\n        }\r\n\r\n        var value = this.get(key);\r\n\r\n        if (value === undefined)\r\n        {\r\n            value = 0;\r\n        }\r\n\r\n        this.set(key, (value + amount));\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Toggle a boolean value for the given key. If the key doesn't already exist in the Data Manager then it is toggled from false.\r\n     *\r\n     * When the value is first set, a `setdata` event is emitted.\r\n     *\r\n     * @method Phaser.Data.DataManager#toggle\r\n     * @fires Phaser.Data.Events#SET_DATA\r\n     * @fires Phaser.Data.Events#CHANGE_DATA\r\n     * @fires Phaser.Data.Events#CHANGE_DATA_KEY\r\n     * @since 3.23.0\r\n     *\r\n     * @param {string} key - The key to toggle the value for.\r\n     *\r\n     * @return {this} This Data Manager instance.\r\n     */\r\n    toggle: function (key)\r\n    {\r\n        if (this._frozen)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        this.set(key, !this.get(key));\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Internal value setter, called automatically by the `set` method.\r\n     *\r\n     * @method Phaser.Data.DataManager#setValue\r\n     * @fires Phaser.Data.Events#SET_DATA\r\n     * @fires Phaser.Data.Events#CHANGE_DATA\r\n     * @fires Phaser.Data.Events#CHANGE_DATA_KEY\r\n     * @private\r\n     * @since 3.10.0\r\n     *\r\n     * @param {string} key - The key to set the value for.\r\n     * @param {*} data - The value to set.\r\n     *\r\n     * @return {this} This Data Manager instance.\r\n     */\r\n    setValue: function (key, data)\r\n    {\r\n        if (this._frozen)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        if (this.has(key))\r\n        {\r\n            //  Hit the key getter, which will in turn emit the events.\r\n            this.values[key] = data;\r\n        }\r\n        else\r\n        {\r\n            var _this = this;\r\n            var list = this.list;\r\n            var events = this.events;\r\n            var parent = this.parent;\r\n\r\n            Object.defineProperty(this.values, key, {\r\n\r\n                enumerable: true,\r\n\r\n                configurable: true,\r\n\r\n                get: function ()\r\n                {\r\n                    return list[key];\r\n                },\r\n\r\n                set: function (value)\r\n                {\r\n                    if (!_this._frozen)\r\n                    {\r\n                        var previousValue = list[key];\r\n                        list[key] = value;\r\n\r\n                        events.emit(Events.CHANGE_DATA, parent, key, value, previousValue);\r\n                        events.emit(Events.CHANGE_DATA_KEY + key, parent, value, previousValue);\r\n                    }\r\n                }\r\n\r\n            });\r\n\r\n            list[key] = data;\r\n\r\n            events.emit(Events.SET_DATA, parent, key, data);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Passes all data entries to the given callback.\r\n     *\r\n     * @method Phaser.Data.DataManager#each\r\n     * @since 3.0.0\r\n     *\r\n     * @param {DataEachCallback} callback - The function to call.\r\n     * @param {*} [context] - Value to use as `this` when executing callback.\r\n     * @param {...*} [args] - Additional arguments that will be passed to the callback, after the game object, key, and data.\r\n     *\r\n     * @return {this} This Data Manager instance.\r\n     */\r\n    each: function (callback, context)\r\n    {\r\n        var args = [ this.parent, null, undefined ];\r\n\r\n        for (var i = 1; i < arguments.length; i++)\r\n        {\r\n            args.push(arguments[i]);\r\n        }\r\n\r\n        for (var key in this.list)\r\n        {\r\n            args[1] = key;\r\n            args[2] = this.list[key];\r\n\r\n            callback.apply(context, args);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Merge the given object of key value pairs into this DataManager.\r\n     *\r\n     * Any newly created values will emit a `setdata` event. Any updated values (see the `overwrite` argument)\r\n     * will emit a `changedata` event.\r\n     *\r\n     * @method Phaser.Data.DataManager#merge\r\n     * @fires Phaser.Data.Events#SET_DATA\r\n     * @fires Phaser.Data.Events#CHANGE_DATA\r\n     * @fires Phaser.Data.Events#CHANGE_DATA_KEY\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Object.<string, *>} data - The data to merge.\r\n     * @param {boolean} [overwrite=true] - Whether to overwrite existing data. Defaults to true.\r\n     *\r\n     * @return {this} This Data Manager instance.\r\n     */\r\n    merge: function (data, overwrite)\r\n    {\r\n        if (overwrite === undefined) { overwrite = true; }\r\n\r\n        //  Merge data from another component into this one\r\n        for (var key in data)\r\n        {\r\n            if (data.hasOwnProperty(key) && (overwrite || (!overwrite && !this.has(key))))\r\n            {\r\n                this.setValue(key, data[key]);\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Remove the value for the given key.\r\n     *\r\n     * If the key is found in this Data Manager it is removed from the internal lists and a\r\n     * `removedata` event is emitted.\r\n     *\r\n     * You can also pass in an array of keys, in which case all keys in the array will be removed:\r\n     *\r\n     * ```javascript\r\n     * this.data.remove([ 'gold', 'armor', 'health' ]);\r\n     * ```\r\n     *\r\n     * @method Phaser.Data.DataManager#remove\r\n     * @fires Phaser.Data.Events#REMOVE_DATA\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|string[])} key - The key to remove, or an array of keys to remove.\r\n     *\r\n     * @return {this} This Data Manager instance.\r\n     */\r\n    remove: function (key)\r\n    {\r\n        if (this._frozen)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        if (Array.isArray(key))\r\n        {\r\n            for (var i = 0; i < key.length; i++)\r\n            {\r\n                this.removeValue(key[i]);\r\n            }\r\n        }\r\n        else\r\n        {\r\n            return this.removeValue(key);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Internal value remover, called automatically by the `remove` method.\r\n     *\r\n     * @method Phaser.Data.DataManager#removeValue\r\n     * @private\r\n     * @fires Phaser.Data.Events#REMOVE_DATA\r\n     * @since 3.10.0\r\n     *\r\n     * @param {string} key - The key to set the value for.\r\n     *\r\n     * @return {this} This Data Manager instance.\r\n     */\r\n    removeValue: function (key)\r\n    {\r\n        if (this.has(key))\r\n        {\r\n            var data = this.list[key];\r\n\r\n            delete this.list[key];\r\n            delete this.values[key];\r\n\r\n            this.events.emit(Events.REMOVE_DATA, this.parent, key, data);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Retrieves the data associated with the given 'key', deletes it from this Data Manager, then returns it.\r\n     *\r\n     * @method Phaser.Data.DataManager#pop\r\n     * @fires Phaser.Data.Events#REMOVE_DATA\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The key of the value to retrieve and delete.\r\n     *\r\n     * @return {*} The value of the given key.\r\n     */\r\n    pop: function (key)\r\n    {\r\n        var data = undefined;\r\n\r\n        if (!this._frozen && this.has(key))\r\n        {\r\n            data = this.list[key];\r\n\r\n            delete this.list[key];\r\n            delete this.values[key];\r\n\r\n            this.events.emit(Events.REMOVE_DATA, this.parent, key, data);\r\n        }\r\n\r\n        return data;\r\n    },\r\n\r\n    /**\r\n     * Determines whether the given key is set in this Data Manager.\r\n     *\r\n     * Please note that the keys are case-sensitive and must be valid JavaScript Object property strings.\r\n     * This means the keys `gold` and `Gold` are treated as two unique values within the Data Manager.\r\n     *\r\n     * @method Phaser.Data.DataManager#has\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The key to check.\r\n     *\r\n     * @return {boolean} Returns `true` if the key exists, otherwise `false`.\r\n     */\r\n    has: function (key)\r\n    {\r\n        return this.list.hasOwnProperty(key);\r\n    },\r\n\r\n    /**\r\n     * Freeze or unfreeze this Data Manager. A frozen Data Manager will block all attempts\r\n     * to create new values or update existing ones.\r\n     *\r\n     * @method Phaser.Data.DataManager#setFreeze\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} value - Whether to freeze or unfreeze the Data Manager.\r\n     *\r\n     * @return {this} This Data Manager instance.\r\n     */\r\n    setFreeze: function (value)\r\n    {\r\n        this._frozen = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Delete all data in this Data Manager and unfreeze it.\r\n     *\r\n     * @method Phaser.Data.DataManager#reset\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Data Manager instance.\r\n     */\r\n    reset: function ()\r\n    {\r\n        for (var key in this.list)\r\n        {\r\n            delete this.list[key];\r\n            delete this.values[key];\r\n        }\r\n\r\n        this._frozen = false;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Destroy this data manager.\r\n     *\r\n     * @method Phaser.Data.DataManager#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.reset();\r\n\r\n        this.events.off(Events.CHANGE_DATA);\r\n        this.events.off(Events.SET_DATA);\r\n        this.events.off(Events.REMOVE_DATA);\r\n\r\n        this.parent = null;\r\n    },\r\n\r\n    /**\r\n     * Gets or sets the frozen state of this Data Manager.\r\n     * A frozen Data Manager will block all attempts to create new values or update existing ones.\r\n     *\r\n     * @name Phaser.Data.DataManager#freeze\r\n     * @type {boolean}\r\n     * @since 3.0.0\r\n     */\r\n    freeze: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._frozen;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._frozen = (value) ? true : false;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Return the total number of entries in this Data Manager.\r\n     *\r\n     * @name Phaser.Data.DataManager#count\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    count: {\r\n\r\n        get: function ()\r\n        {\r\n            var i = 0;\r\n\r\n            for (var key in this.list)\r\n            {\r\n                if (this.list[key] !== undefined)\r\n                {\r\n                    i++;\r\n                }\r\n            }\r\n\r\n            return i;\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = DataManager;\r\n\n\n/***/ }),\n\n/***/ 63646:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar DataManager = __webpack_require__(45893);\r\nvar PluginCache = __webpack_require__(37277);\r\nvar SceneEvents = __webpack_require__(44594);\r\n\r\n/**\r\n * @classdesc\r\n * The Data Component features a means to store pieces of data specific to a Game Object, System or Plugin.\r\n * You can then search, query it, and retrieve the data. The parent must either extend EventEmitter,\r\n * or have a property called `events` that is an instance of it.\r\n *\r\n * @class DataManagerPlugin\r\n * @extends Phaser.Data.DataManager\r\n * @memberof Phaser.Data\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - A reference to the Scene that this DataManager belongs to.\r\n */\r\nvar DataManagerPlugin = new Class({\r\n\r\n    Extends: DataManager,\r\n\r\n    initialize:\r\n\r\n    function DataManagerPlugin (scene)\r\n    {\r\n        DataManager.call(this, scene, scene.sys.events);\r\n\r\n        /**\r\n         * A reference to the Scene that this DataManager belongs to.\r\n         *\r\n         * @name Phaser.Data.DataManagerPlugin#scene\r\n         * @type {Phaser.Scene}\r\n         * @since 3.0.0\r\n         */\r\n        this.scene = scene;\r\n\r\n        /**\r\n         * A reference to the Scene's Systems.\r\n         *\r\n         * @name Phaser.Data.DataManagerPlugin#systems\r\n         * @type {Phaser.Scenes.Systems}\r\n         * @since 3.0.0\r\n         */\r\n        this.systems = scene.sys;\r\n\r\n        scene.sys.events.once(SceneEvents.BOOT, this.boot, this);\r\n        scene.sys.events.on(SceneEvents.START, this.start, this);\r\n    },\r\n\r\n    /**\r\n     * This method is called automatically, only once, when the Scene is first created.\r\n     * Do not invoke it directly.\r\n     *\r\n     * @method Phaser.Data.DataManagerPlugin#boot\r\n     * @private\r\n     * @since 3.5.1\r\n     */\r\n    boot: function ()\r\n    {\r\n        this.events = this.systems.events;\r\n\r\n        this.events.once(SceneEvents.DESTROY, this.destroy, this);\r\n    },\r\n\r\n    /**\r\n     * This method is called automatically by the Scene when it is starting up.\r\n     * It is responsible for creating local systems, properties and listening for Scene events.\r\n     * Do not invoke it directly.\r\n     *\r\n     * @method Phaser.Data.DataManagerPlugin#start\r\n     * @private\r\n     * @since 3.5.0\r\n     */\r\n    start: function ()\r\n    {\r\n        this.events.once(SceneEvents.SHUTDOWN, this.shutdown, this);\r\n    },\r\n\r\n    /**\r\n     * The Scene that owns this plugin is shutting down.\r\n     * We need to kill and reset all internal properties as well as stop listening to Scene events.\r\n     *\r\n     * @method Phaser.Data.DataManagerPlugin#shutdown\r\n     * @private\r\n     * @since 3.5.0\r\n     */\r\n    shutdown: function ()\r\n    {\r\n        this.systems.events.off(SceneEvents.SHUTDOWN, this.shutdown, this);\r\n    },\r\n\r\n    /**\r\n     * The Scene that owns this plugin is being destroyed.\r\n     * We need to shutdown and then kill off all external references.\r\n     *\r\n     * @method Phaser.Data.DataManagerPlugin#destroy\r\n     * @since 3.5.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        DataManager.prototype.destroy.call(this);\r\n\r\n        this.events.off(SceneEvents.START, this.start, this);\r\n\r\n        this.scene = null;\r\n        this.systems = null;\r\n    }\r\n\r\n});\r\n\r\nPluginCache.register('DataManagerPlugin', DataManagerPlugin, 'data');\r\n\r\nmodule.exports = DataManagerPlugin;\r\n\n\n/***/ }),\n\n/***/ 10700:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Change Data Event.\r\n *\r\n * This event is dispatched by a Data Manager when an item in the data store is changed.\r\n *\r\n * Game Objects with data enabled have an instance of a Data Manager under the `data` property. So, to listen for\r\n * a change data event from a Game Object you would use: `sprite.on('changedata', listener)`.\r\n *\r\n * This event is dispatched for all items that change in the Data Manager.\r\n * To listen for the change of a specific item, use the `CHANGE_DATA_KEY_EVENT` event.\r\n *\r\n * @event Phaser.Data.Events#CHANGE_DATA\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {any} parent - A reference to the object that the Data Manager responsible for this event belongs to.\r\n * @param {string} key - The unique key of the data item within the Data Manager.\r\n * @param {any} value - The new value of the item in the Data Manager.\r\n * @param {any} previousValue - The previous value of the item in the Data Manager.\r\n */\r\nmodule.exports = 'changedata';\r\n\n\n/***/ }),\n\n/***/ 93608:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Change Data Key Event.\r\n *\r\n * This event is dispatched by a Data Manager when an item in the data store is changed.\r\n *\r\n * Game Objects with data enabled have an instance of a Data Manager under the `data` property. So, to listen for\r\n * the change of a specific data item from a Game Object you would use: `sprite.on('changedata-key', listener)`,\r\n * where `key` is the unique string key of the data item. For example, if you have a data item stored called `gold`\r\n * then you can listen for `sprite.on('changedata-gold')`.\r\n *\r\n * @event Phaser.Data.Events#CHANGE_DATA_KEY\r\n * @type {string}\r\n * @since 3.16.1\r\n *\r\n * @param {any} parent - A reference to the object that owns the instance of the Data Manager responsible for this event.\r\n * @param {any} value - The item that was updated in the Data Manager. This can be of any data type, i.e. a string, boolean, number, object or instance.\r\n * @param {any} previousValue - The previous item that was updated in the Data Manager. This can be of any data type, i.e. a string, boolean, number, object or instance.\r\n */\r\nmodule.exports = 'changedata-';\r\n\n\n/***/ }),\n\n/***/ 60883:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Data Manager Destroy Event.\r\n *\r\n * The Data Manager will listen for the destroy event from its parent, and then close itself down.\r\n *\r\n * @event Phaser.Data.Events#DESTROY\r\n * @type {string}\r\n * @since 3.50.0\r\n */\r\nmodule.exports = 'destroy';\r\n\n\n/***/ }),\n\n/***/ 69780:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Remove Data Event.\r\n *\r\n * This event is dispatched by a Data Manager when an item is removed from it.\r\n *\r\n * Game Objects with data enabled have an instance of a Data Manager under the `data` property. So, to listen for\r\n * the removal of a data item on a Game Object you would use: `sprite.on('removedata', listener)`.\r\n *\r\n * @event Phaser.Data.Events#REMOVE_DATA\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {any} parent - A reference to the object that owns the instance of the Data Manager responsible for this event.\r\n * @param {string} key - The unique key of the data item within the Data Manager.\r\n * @param {any} data - The item that was removed from the Data Manager. This can be of any data type, i.e. a string, boolean, number, object or instance.\r\n */\r\nmodule.exports = 'removedata';\r\n\n\n/***/ }),\n\n/***/ 22166:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Set Data Event.\r\n *\r\n * This event is dispatched by a Data Manager when a new item is added to the data store.\r\n *\r\n * Game Objects with data enabled have an instance of a Data Manager under the `data` property. So, to listen for\r\n * the addition of a new data item on a Game Object you would use: `sprite.on('setdata', listener)`.\r\n *\r\n * @event Phaser.Data.Events#SET_DATA\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {any} parent - A reference to the object that owns the instance of the Data Manager responsible for this event.\r\n * @param {string} key - The unique key of the data item within the Data Manager.\r\n * @param {any} data - The item that was added to the Data Manager. This can be of any data type, i.e. a string, boolean, number, object or instance.\r\n */\r\nmodule.exports = 'setdata';\r\n\n\n/***/ }),\n\n/***/ 24882:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Data.Events\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    CHANGE_DATA: __webpack_require__(10700),\r\n    CHANGE_DATA_KEY: __webpack_require__(93608),\r\n    DESTROY: __webpack_require__(60883),\r\n    REMOVE_DATA: __webpack_require__(69780),\r\n    SET_DATA: __webpack_require__(22166)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 44965:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Data\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    DataManager: __webpack_require__(45893),\r\n    DataManagerPlugin: __webpack_require__(63646),\r\n    Events: __webpack_require__(24882)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 7098:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Browser = __webpack_require__(84148);\r\n\r\n/**\r\n * Determines the audio playback capabilities of the device running this Phaser Game instance.\r\n * These values are read-only and populated during the boot sequence of the game.\r\n * They are then referenced by internal game systems and are available for you to access\r\n * via `this.sys.game.device.audio` from within any Scene.\r\n *\r\n * @typedef {object} Phaser.Device.Audio\r\n * @since 3.0.0\r\n *\r\n * @property {boolean} audioData - Can this device play HTML Audio tags?\r\n * @property {boolean} dolby - Can this device play EC-3 Dolby Digital Plus files?\r\n * @property {boolean} m4a - Can this device can play m4a files.\r\n * @property {boolean} aac - Can this device can play aac files.\r\n * @property {boolean} flac - Can this device can play flac files.\r\n * @property {boolean} mp3 - Can this device play mp3 files?\r\n * @property {boolean} ogg - Can this device play ogg files?\r\n * @property {boolean} opus - Can this device play opus files?\r\n * @property {boolean} wav - Can this device play wav files?\r\n * @property {boolean} webAudio - Does this device have the Web Audio API?\r\n * @property {boolean} webm - Can this device play webm files?\r\n */\r\nvar Audio = {\r\n\r\n    flac: false,\r\n    aac: false,\r\n    audioData: false,\r\n    dolby: false,\r\n    m4a: false,\r\n    mp3: false,\r\n    ogg: false,\r\n    opus: false,\r\n    wav: false,\r\n    webAudio: false,\r\n    webm: false\r\n\r\n};\r\n\r\nfunction init ()\r\n{\r\n    if (typeof importScripts === 'function')\r\n    {\r\n        return Audio;\r\n    }\r\n\r\n    Audio.audioData = !!(window['Audio']);\r\n\r\n    Audio.webAudio = !!(window['AudioContext'] || window['webkitAudioContext']);\r\n\r\n    var audioElement = document.createElement('audio');\r\n    var result = !!audioElement.canPlayType;\r\n\r\n    try\r\n    {\r\n        if (result)\r\n        {\r\n            var CanPlay = function (type1, type2)\r\n            {\r\n                var canPlayType1 = audioElement.canPlayType('audio/' + type1).replace(/^no$/, '');\r\n\r\n                if (type2)\r\n                {\r\n                    return Boolean(canPlayType1 || audioElement.canPlayType('audio/' + type2).replace(/^no$/, ''));\r\n                }\r\n                else\r\n                {\r\n                    return Boolean(canPlayType1);\r\n                }\r\n            };\r\n\r\n            //  wav Mimetypes accepted:\r\n            //  developer.mozilla.org/En/Media_formats_supported_by_the_audio_and_video_elements\r\n\r\n            Audio.ogg = CanPlay('ogg; codecs=\"vorbis\"');\r\n            Audio.opus = CanPlay('ogg; codecs=\"opus\"', 'opus');\r\n            Audio.mp3 = CanPlay('mpeg');\r\n            Audio.wav = CanPlay('wav');\r\n            Audio.m4a = CanPlay('x-m4a');\r\n            Audio.aac = CanPlay('aac');\r\n            Audio.flac = CanPlay('flac', 'x-flac');\r\n            Audio.webm = CanPlay('webm; codecs=\"vorbis\"');\r\n\r\n            if (audioElement.canPlayType('audio/mp4; codecs=\"ec-3\"') !== '')\r\n            {\r\n                if (Browser.edge)\r\n                {\r\n                    Audio.dolby = true;\r\n                }\r\n                else if (Browser.safari && Browser.safariVersion >= 9)\r\n                {\r\n                    if ((/Mac OS X (\\d+)_(\\d+)/).test(navigator.userAgent))\r\n                    {\r\n                        var major = parseInt(RegExp.$1, 10);\r\n                        var minor = parseInt(RegExp.$2, 10);\r\n\r\n                        if ((major === 10 && minor >= 11) || major > 10)\r\n                        {\r\n                            Audio.dolby = true;\r\n                        }\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    }\r\n    catch (e)\r\n    {\r\n        //  Nothing to do here\r\n    }\r\n\r\n    return Audio;\r\n}\r\n\r\nmodule.exports = init();\r\n\n\n/***/ }),\n\n/***/ 84148:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar OS = __webpack_require__(25892);\r\n\r\n/**\r\n * Determines the browser type and version running this Phaser Game instance.\r\n * These values are read-only and populated during the boot sequence of the game.\r\n * They are then referenced by internal game systems and are available for you to access\r\n * via `this.sys.game.device.browser` from within any Scene.\r\n *\r\n * @typedef {object} Phaser.Device.Browser\r\n * @since 3.0.0\r\n *\r\n * @property {boolean} chrome - Set to true if running in Chrome.\r\n * @property {boolean} edge - Set to true if running in Microsoft Edge browser.\r\n * @property {boolean} firefox - Set to true if running in Firefox.\r\n * @property {boolean} ie - Set to true if running in Internet Explorer 11 or less (not Edge).\r\n * @property {boolean} mobileSafari - Set to true if running in Mobile Safari.\r\n * @property {boolean} opera - Set to true if running in Opera.\r\n * @property {boolean} safari - Set to true if running in Safari.\r\n * @property {boolean} silk - Set to true if running in the Silk browser (as used on the Amazon Kindle)\r\n * @property {boolean} trident - Set to true if running a Trident version of Internet Explorer (IE11+)\r\n * @property {number} chromeVersion - If running in Chrome this will contain the major version number.\r\n * @property {number} firefoxVersion - If running in Firefox this will contain the major version number.\r\n * @property {number} ieVersion - If running in Internet Explorer this will contain the major version number. Beyond IE10 you should use Browser.trident and Browser.tridentVersion.\r\n * @property {number} safariVersion - If running in Safari this will contain the major version number.\r\n * @property {number} tridentVersion - If running in Internet Explorer 11 this will contain the major version number. See {@link http://msdn.microsoft.com/en-us/library/ie/ms537503(v=vs.85).aspx}\r\n */\r\nvar Browser = {\r\n\r\n    chrome: false,\r\n    chromeVersion: 0,\r\n    edge: false,\r\n    firefox: false,\r\n    firefoxVersion: 0,\r\n    ie: false,\r\n    ieVersion: 0,\r\n    mobileSafari: false,\r\n    opera: false,\r\n    safari: false,\r\n    safariVersion: 0,\r\n    silk: false,\r\n    trident: false,\r\n    tridentVersion: 0,\r\n    es2019: false\r\n\r\n};\r\n\r\nfunction init ()\r\n{\r\n    var ua = navigator.userAgent;\r\n\r\n    if ((/Edg\\/\\d+/).test(ua))\r\n    {\r\n        Browser.edge = true;\r\n        Browser.es2019 = true;\r\n    }\r\n    else if ((/OPR/).test(ua))\r\n    {\r\n        Browser.opera = true;\r\n        Browser.es2019 = true;\r\n    }\r\n    else if ((/Chrome\\/(\\d+)/).test(ua) && !OS.windowsPhone)\r\n    {\r\n        Browser.chrome = true;\r\n        Browser.chromeVersion = parseInt(RegExp.$1, 10);\r\n        Browser.es2019 = (Browser.chromeVersion > 69);\r\n    }\r\n    else if ((/Firefox\\D+(\\d+)/).test(ua))\r\n    {\r\n        Browser.firefox = true;\r\n        Browser.firefoxVersion = parseInt(RegExp.$1, 10);\r\n        Browser.es2019 = (Browser.firefoxVersion > 10);\r\n    }\r\n    else if ((/AppleWebKit\\/(?!.*CriOS)/).test(ua) && OS.iOS)\r\n    {\r\n        Browser.mobileSafari = true;\r\n        Browser.es2019 = true;\r\n    }\r\n    else if ((/MSIE (\\d+\\.\\d+);/).test(ua))\r\n    {\r\n        Browser.ie = true;\r\n        Browser.ieVersion = parseInt(RegExp.$1, 10);\r\n    }\r\n    else if ((/Version\\/(\\d+\\.\\d+(\\.\\d+)?) Safari/).test(ua) && !OS.windowsPhone)\r\n    {\r\n        Browser.safari = true;\r\n        Browser.safariVersion = parseInt(RegExp.$1, 10);\r\n        Browser.es2019 = (Browser.safariVersion > 10);\r\n    }\r\n    else if ((/Trident\\/(\\d+\\.\\d+)(.*)rv:(\\d+\\.\\d+)/).test(ua))\r\n    {\r\n        Browser.ie = true;\r\n        Browser.trident = true;\r\n        Browser.tridentVersion = parseInt(RegExp.$1, 10);\r\n        Browser.ieVersion = parseInt(RegExp.$3, 10);\r\n    }\r\n\r\n    //  Silk gets its own if clause because its ua also contains 'Safari'\r\n    if ((/Silk/).test(ua))\r\n    {\r\n        Browser.silk = true;\r\n    }\r\n\r\n    return Browser;\r\n}\r\n\r\nmodule.exports = init();\r\n\n\n/***/ }),\n\n/***/ 89289:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CanvasPool = __webpack_require__(27919);\r\n\r\n/**\r\n * Determines the canvas features of the browser running this Phaser Game instance.\r\n * These values are read-only and populated during the boot sequence of the game.\r\n * They are then referenced by internal game systems and are available for you to access\r\n * via `this.sys.game.device.canvasFeatures` from within any Scene.\r\n *\r\n * @typedef {object} Phaser.Device.CanvasFeatures\r\n * @since 3.0.0\r\n *\r\n * @property {boolean} supportInverseAlpha - Set to true if the browser supports inversed alpha.\r\n * @property {boolean} supportNewBlendModes - Set to true if the browser supports new canvas blend modes.\r\n */\r\nvar CanvasFeatures = {\r\n\r\n    supportInverseAlpha: false,\r\n    supportNewBlendModes: false\r\n\r\n};\r\n\r\nfunction checkBlendMode ()\r\n{\r\n    var pngHead = 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABAQMAAADD8p2OAAAAA1BMVEX/';\r\n    var pngEnd = 'AAAACklEQVQI12NgAAAAAgAB4iG8MwAAAABJRU5ErkJggg==';\r\n\r\n    var magenta = new Image();\r\n\r\n    magenta.onload = function ()\r\n    {\r\n        var yellow = new Image();\r\n\r\n        yellow.onload = function ()\r\n        {\r\n            var canvas = CanvasPool.create2D(yellow, 6);\r\n            var context = canvas.getContext('2d', { willReadFrequently: true });\r\n\r\n            context.globalCompositeOperation = 'multiply';\r\n\r\n            context.drawImage(magenta, 0, 0);\r\n            context.drawImage(yellow, 2, 0);\r\n\r\n            if (!context.getImageData(2, 0, 1, 1))\r\n            {\r\n                return false;\r\n            }\r\n\r\n            var data = context.getImageData(2, 0, 1, 1).data;\r\n\r\n            CanvasPool.remove(yellow);\r\n\r\n            CanvasFeatures.supportNewBlendModes = (data[0] === 255 && data[1] === 0 && data[2] === 0);\r\n        };\r\n\r\n        yellow.src = pngHead + '/wCKxvRF' + pngEnd;\r\n    };\r\n\r\n    magenta.src = pngHead + 'AP804Oa6' + pngEnd;\r\n\r\n    return false;\r\n}\r\n\r\nfunction checkInverseAlpha ()\r\n{\r\n    var canvas = CanvasPool.create2D(this, 2);\r\n    var context = canvas.getContext('2d', { willReadFrequently: true });\r\n\r\n    context.fillStyle = 'rgba(10, 20, 30, 0.5)';\r\n\r\n    //  Draw a single pixel\r\n    context.fillRect(0, 0, 1, 1);\r\n\r\n    //  Get the color values\r\n    var s1 = context.getImageData(0, 0, 1, 1);\r\n\r\n    if (s1 === null)\r\n    {\r\n        return false;\r\n    }\r\n\r\n    //  Plot them to x2\r\n    context.putImageData(s1, 1, 0);\r\n\r\n    //  Get those values\r\n    var s2 = context.getImageData(1, 0, 1, 1);\r\n\r\n    var result = (s2.data[0] === s1.data[0] && s2.data[1] === s1.data[1] && s2.data[2] === s1.data[2] && s2.data[3] === s1.data[3]);\r\n\r\n    CanvasPool.remove(this);\r\n\r\n    //  Compare and return\r\n    return result;\r\n}\r\n\r\nfunction init ()\r\n{\r\n    if (typeof importScripts !== 'function' && document !== undefined)\r\n    {\r\n        CanvasFeatures.supportNewBlendModes = checkBlendMode();\r\n        CanvasFeatures.supportInverseAlpha = checkInverseAlpha();\r\n    }\r\n\r\n    return CanvasFeatures;\r\n}\r\n\r\nmodule.exports = init();\r\n\n\n/***/ }),\n\n/***/ 89357:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar OS = __webpack_require__(25892);\r\nvar Browser = __webpack_require__(84148);\r\nvar CanvasPool = __webpack_require__(27919);\r\n\r\n/**\r\n * Determines the features of the browser running this Phaser Game instance.\r\n * These values are read-only and populated during the boot sequence of the game.\r\n * They are then referenced by internal game systems and are available for you to access\r\n * via `this.sys.game.device.features` from within any Scene.\r\n *\r\n * @typedef {object} Phaser.Device.Features\r\n * @since 3.0.0\r\n *\r\n * @property {boolean} canvas - Is canvas available?\r\n * @property {?boolean} canvasBitBltShift - True if canvas supports a 'copy' bitblt onto itself when the source and destination regions overlap.\r\n * @property {boolean} file - Is file available?\r\n * @property {boolean} fileSystem - Is fileSystem available?\r\n * @property {boolean} getUserMedia - Does the device support the getUserMedia API?\r\n * @property {boolean} littleEndian - Is the device big or little endian? (only detected if the browser supports TypedArrays)\r\n * @property {boolean} localStorage - Is localStorage available?\r\n * @property {boolean} pointerLock - Is Pointer Lock available?\r\n * @property {boolean} stableSort - Is Array.sort stable?\r\n * @property {boolean} support32bit - Does the device context support 32bit pixel manipulation using array buffer views?\r\n * @property {boolean} vibration - Does the device support the Vibration API?\r\n * @property {boolean} webGL - Is webGL available?\r\n * @property {boolean} worker - Is worker available?\r\n */\r\nvar Features = {\r\n\r\n    canvas: false,\r\n    canvasBitBltShift: null,\r\n    file: false,\r\n    fileSystem: false,\r\n    getUserMedia: true,\r\n    littleEndian: false,\r\n    localStorage: false,\r\n    pointerLock: false,\r\n    stableSort: false,\r\n    support32bit: false,\r\n    vibration: false,\r\n    webGL: false,\r\n    worker: false\r\n\r\n};\r\n\r\n// Check Little or Big Endian system.\r\n// @author Matt DesLauriers (@mattdesl)\r\nfunction checkIsLittleEndian ()\r\n{\r\n    var a = new ArrayBuffer(4);\r\n    var b = new Uint8Array(a);\r\n    var c = new Uint32Array(a);\r\n\r\n    b[0] = 0xa1;\r\n    b[1] = 0xb2;\r\n    b[2] = 0xc3;\r\n    b[3] = 0xd4;\r\n\r\n    if (c[0] === 0xd4c3b2a1)\r\n    {\r\n        return true;\r\n    }\r\n\r\n    if (c[0] === 0xa1b2c3d4)\r\n    {\r\n        return false;\r\n    }\r\n    else\r\n    {\r\n        //  Could not determine endianness\r\n        return null;\r\n    }\r\n}\r\n\r\nfunction init ()\r\n{\r\n    if (typeof importScripts === 'function')\r\n    {\r\n        return Features;\r\n    }\r\n\r\n    Features.canvas = !!window['CanvasRenderingContext2D'];\r\n\r\n    try\r\n    {\r\n        Features.localStorage = !!localStorage.getItem;\r\n    }\r\n    catch (error)\r\n    {\r\n        Features.localStorage = false;\r\n    }\r\n\r\n    Features.file = !!window['File'] && !!window['FileReader'] && !!window['FileList'] && !!window['Blob'];\r\n    Features.fileSystem = !!window['requestFileSystem'];\r\n\r\n    var isUint8 = false;\r\n\r\n    var testWebGL = function ()\r\n    {\r\n        if (window['WebGLRenderingContext'])\r\n        {\r\n            try\r\n            {\r\n                var canvas = CanvasPool.createWebGL(this);\r\n\r\n                var ctx = canvas.getContext('webgl') || canvas.getContext('experimental-webgl');\r\n\r\n                var canvas2D = CanvasPool.create2D(this);\r\n\r\n                var ctx2D = canvas2D.getContext('2d', { willReadFrequently: true });\r\n\r\n                //  Can't be done on a webgl context\r\n                var image = ctx2D.createImageData(1, 1);\r\n\r\n                //  Test to see if ImageData uses CanvasPixelArray or Uint8ClampedArray.\r\n                //  @author Matt DesLauriers (@mattdesl)\r\n                isUint8 = image.data instanceof Uint8ClampedArray;\r\n\r\n                CanvasPool.remove(canvas);\r\n                CanvasPool.remove(canvas2D);\r\n\r\n                return !!ctx;\r\n            }\r\n            catch (e)\r\n            {\r\n                return false;\r\n            }\r\n        }\r\n\r\n        return false;\r\n    };\r\n\r\n    Features.webGL = testWebGL();\r\n\r\n    Features.worker = !!window['Worker'];\r\n\r\n    Features.pointerLock = 'pointerLockElement' in document || 'mozPointerLockElement' in document || 'webkitPointerLockElement' in document;\r\n\r\n    navigator.getUserMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia || navigator.oGetUserMedia;\r\n\r\n    window.URL = window.URL || window.webkitURL || window.mozURL || window.msURL;\r\n\r\n    Features.getUserMedia = Features.getUserMedia && !!navigator.getUserMedia && !!window.URL;\r\n\r\n    // Older versions of firefox (< 21) apparently claim support but user media does not actually work\r\n    if (Browser.firefox && Browser.firefoxVersion < 21)\r\n    {\r\n        Features.getUserMedia = false;\r\n    }\r\n\r\n    // Excludes iOS versions as they generally wrap UIWebView (eg. Safari WebKit) and it\r\n    // is safer to not try and use the fast copy-over method.\r\n    if (!OS.iOS && (Browser.ie || Browser.firefox || Browser.chrome))\r\n    {\r\n        Features.canvasBitBltShift = true;\r\n    }\r\n\r\n    // Known not to work\r\n    if (Browser.safari || Browser.mobileSafari)\r\n    {\r\n        Features.canvasBitBltShift = false;\r\n    }\r\n\r\n    navigator.vibrate = navigator.vibrate || navigator.webkitVibrate || navigator.mozVibrate || navigator.msVibrate;\r\n\r\n    if (navigator.vibrate)\r\n    {\r\n        Features.vibration = true;\r\n    }\r\n\r\n    if (typeof ArrayBuffer !== 'undefined' && typeof Uint8Array !== 'undefined' && typeof Uint32Array !== 'undefined')\r\n    {\r\n        Features.littleEndian = checkIsLittleEndian();\r\n    }\r\n\r\n    Features.support32bit = (\r\n        typeof ArrayBuffer !== 'undefined' &&\r\n        typeof Uint8ClampedArray !== 'undefined' &&\r\n        typeof Int32Array !== 'undefined' &&\r\n        Features.littleEndian !== null &&\r\n        isUint8\r\n    );\r\n\r\n    return Features;\r\n}\r\n\r\nmodule.exports = init();\r\n\n\n/***/ }),\n\n/***/ 91639:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Determines the full screen support of the browser running this Phaser Game instance.\r\n * These values are read-only and populated during the boot sequence of the game.\r\n * They are then referenced by internal game systems and are available for you to access\r\n * via `this.sys.game.device.fullscreen` from within any Scene.\r\n *\r\n * @typedef {object} Phaser.Device.Fullscreen\r\n * @since 3.0.0\r\n *\r\n * @property {boolean} available - Does the browser support the Full Screen API?\r\n * @property {boolean} keyboard - Does the browser support access to the Keyboard during Full Screen mode?\r\n * @property {string} cancel - If the browser supports the Full Screen API this holds the call you need to use to cancel it.\r\n * @property {string} request - If the browser supports the Full Screen API this holds the call you need to use to activate it.\r\n */\r\nvar Fullscreen = {\r\n\r\n    available: false,\r\n    cancel: '',\r\n    keyboard: false,\r\n    request: ''\r\n\r\n};\r\n\r\n/**\r\n* Checks for support of the Full Screen API.\r\n*\r\n* @ignore\r\n*/\r\nfunction init ()\r\n{\r\n    if (typeof importScripts === 'function')\r\n    {\r\n        return Fullscreen;\r\n    }\r\n\r\n    var i;\r\n\r\n    var suffix1 = 'Fullscreen';\r\n    var suffix2 = 'FullScreen';\r\n\r\n    var fs = [\r\n        'request' + suffix1,\r\n        'request' + suffix2,\r\n        'webkitRequest' + suffix1,\r\n        'webkitRequest' + suffix2,\r\n        'msRequest' + suffix1,\r\n        'msRequest' + suffix2,\r\n        'mozRequest' + suffix2,\r\n        'mozRequest' + suffix1\r\n    ];\r\n\r\n    for (i = 0; i < fs.length; i++)\r\n    {\r\n        if (document.documentElement[fs[i]])\r\n        {\r\n            Fullscreen.available = true;\r\n            Fullscreen.request = fs[i];\r\n            break;\r\n        }\r\n    }\r\n\r\n    var cfs = [\r\n        'cancel' + suffix2,\r\n        'exit' + suffix1,\r\n        'webkitCancel' + suffix2,\r\n        'webkitExit' + suffix1,\r\n        'msCancel' + suffix2,\r\n        'msExit' + suffix1,\r\n        'mozCancel' + suffix2,\r\n        'mozExit' + suffix1\r\n    ];\r\n\r\n    if (Fullscreen.available)\r\n    {\r\n        for (i = 0; i < cfs.length; i++)\r\n        {\r\n            if (document[cfs[i]])\r\n            {\r\n                Fullscreen.cancel = cfs[i];\r\n                break;\r\n            }\r\n        }\r\n    }\r\n\r\n    //  Keyboard Input?\r\n    //  Safari 5.1 says it supports fullscreen keyboard, but is lying.\r\n    if (window['Element'] && Element['ALLOW_KEYBOARD_INPUT'] && !(/ Version\\/5\\.1(?:\\.\\d+)? Safari\\//).test(navigator.userAgent))\r\n    {\r\n        Fullscreen.keyboard = true;\r\n    }\r\n\r\n    Object.defineProperty(Fullscreen, 'active', { get: function () { return !!(document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement); } });\r\n\r\n    return Fullscreen;\r\n}\r\n\r\nmodule.exports = init();\r\n\n\n/***/ }),\n\n/***/ 31784:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Browser = __webpack_require__(84148);\r\n\r\n/**\r\n * Determines the input support of the browser running this Phaser Game instance.\r\n * These values are read-only and populated during the boot sequence of the game.\r\n * They are then referenced by internal game systems and are available for you to access\r\n * via `this.sys.game.device.input` from within any Scene.\r\n *\r\n * @typedef {object} Phaser.Device.Input\r\n * @since 3.0.0\r\n *\r\n * @property {?string} wheelType - The newest type of Wheel/Scroll event supported: 'wheel', 'mousewheel', 'DOMMouseScroll'\r\n * @property {boolean} gamepads - Is navigator.getGamepads available?\r\n * @property {boolean} mspointer - Is mspointer available?\r\n * @property {boolean} touch - Is touch available?\r\n */\r\nvar Input = {\r\n\r\n    gamepads: false,\r\n    mspointer: false,\r\n    touch: false,\r\n    wheelEvent: null\r\n\r\n};\r\n\r\nfunction init ()\r\n{\r\n    if (typeof importScripts === 'function')\r\n    {\r\n        return Input;\r\n    }\r\n\r\n    if ('ontouchstart' in document.documentElement || (navigator.maxTouchPoints && navigator.maxTouchPoints >= 1))\r\n    {\r\n        Input.touch = true;\r\n    }\r\n\r\n    if (navigator.msPointerEnabled || navigator.pointerEnabled)\r\n    {\r\n        Input.mspointer = true;\r\n    }\r\n\r\n    if (navigator.getGamepads)\r\n    {\r\n        Input.gamepads = true;\r\n    }\r\n\r\n    // See https://developer.mozilla.org/en-US/docs/Web/Events/wheel\r\n    if ('onwheel' in window || (Browser.ie && 'WheelEvent' in window))\r\n    {\r\n        // DOM3 Wheel Event: FF 17+, IE 9+, Chrome 31+, Safari 7+\r\n        Input.wheelEvent = 'wheel';\r\n    }\r\n    else if ('onmousewheel' in window)\r\n    {\r\n        // Non-FF legacy: IE 6-9, Chrome 1-31, Safari 5-7.\r\n        Input.wheelEvent = 'mousewheel';\r\n    }\r\n    else if (Browser.firefox && 'MouseScrollEvent' in window)\r\n    {\r\n        // FF prior to 17. This should probably be scrubbed.\r\n        Input.wheelEvent = 'DOMMouseScroll';\r\n    }\r\n\r\n    return Input;\r\n}\r\n\r\nmodule.exports = init();\r\n\n\n/***/ }),\n\n/***/ 25892:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Determines the operating system of the device running this Phaser Game instance.\r\n * These values are read-only and populated during the boot sequence of the game.\r\n * They are then referenced by internal game systems and are available for you to access\r\n * via `this.sys.game.device.os` from within any Scene.\r\n *\r\n * @typedef {object} Phaser.Device.OS\r\n * @since 3.0.0\r\n *\r\n * @property {boolean} android - Is running on android?\r\n * @property {boolean} chromeOS - Is running on chromeOS?\r\n * @property {boolean} cordova - Is the game running under Apache Cordova?\r\n * @property {boolean} crosswalk - Is the game running under the Intel Crosswalk XDK?\r\n * @property {boolean} desktop - Is running on a desktop?\r\n * @property {boolean} ejecta - Is the game running under Ejecta?\r\n * @property {boolean} electron - Is the game running under GitHub Electron?\r\n * @property {boolean} iOS - Is running on iOS?\r\n * @property {boolean} iPad - Is running on iPad?\r\n * @property {boolean} iPhone - Is running on iPhone?\r\n * @property {boolean} kindle - Is running on an Amazon Kindle?\r\n * @property {boolean} linux - Is running on linux?\r\n * @property {boolean} macOS - Is running on macOS?\r\n * @property {boolean} node - Is the game running under Node.js?\r\n * @property {boolean} nodeWebkit - Is the game running under Node-Webkit?\r\n * @property {boolean} webApp - Set to true if running as a WebApp, i.e. within a WebView\r\n * @property {boolean} windows - Is running on windows?\r\n * @property {boolean} windowsPhone - Is running on a Windows Phone?\r\n * @property {number} iOSVersion - If running in iOS this will contain the major version number.\r\n * @property {number} pixelRatio - PixelRatio of the host device?\r\n */\r\nvar OS = {\r\n\r\n    android: false,\r\n    chromeOS: false,\r\n    cordova: false,\r\n    crosswalk: false,\r\n    desktop: false,\r\n    ejecta: false,\r\n    electron: false,\r\n    iOS: false,\r\n    iOSVersion: 0,\r\n    iPad: false,\r\n    iPhone: false,\r\n    kindle: false,\r\n    linux: false,\r\n    macOS: false,\r\n    node: false,\r\n    nodeWebkit: false,\r\n    pixelRatio: 1,\r\n    webApp: false,\r\n    windows: false,\r\n    windowsPhone: false\r\n\r\n};\r\n\r\nfunction init ()\r\n{\r\n    if (typeof importScripts === 'function')\r\n    {\r\n        return OS;\r\n    }\r\n\r\n    var ua = navigator.userAgent;\r\n\r\n    if ((/Windows/).test(ua))\r\n    {\r\n        OS.windows = true;\r\n    }\r\n    else if ((/Mac OS/).test(ua) && !((/like Mac OS/).test(ua)))\r\n    {\r\n        //  Because iOS 13 identifies as Mac OS:\r\n        if (navigator.maxTouchPoints && navigator.maxTouchPoints > 2)\r\n        {\r\n            OS.iOS = true;\r\n            OS.iPad = true;\r\n\r\n            (navigator.appVersion).match(/Version\\/(\\d+)/);\r\n\r\n            OS.iOSVersion = parseInt(RegExp.$1, 10);\r\n        }\r\n        else\r\n        {\r\n            OS.macOS = true;\r\n        }\r\n    }\r\n    else if ((/Android/).test(ua))\r\n    {\r\n        OS.android = true;\r\n    }\r\n    else if ((/Linux/).test(ua))\r\n    {\r\n        OS.linux = true;\r\n    }\r\n    else if ((/iP[ao]d|iPhone/i).test(ua))\r\n    {\r\n        OS.iOS = true;\r\n\r\n        (navigator.appVersion).match(/OS (\\d+)/);\r\n\r\n        OS.iOSVersion = parseInt(RegExp.$1, 10);\r\n\r\n        OS.iPhone = ua.toLowerCase().indexOf('iphone') !== -1;\r\n        OS.iPad = ua.toLowerCase().indexOf('ipad') !== -1;\r\n    }\r\n    else if ((/Kindle/).test(ua) || (/\\bKF[A-Z][A-Z]+/).test(ua) || (/Silk.*Mobile Safari/).test(ua))\r\n    {\r\n        OS.kindle = true;\r\n\r\n        // This will NOT detect early generations of Kindle Fire, I think there is no reliable way...\r\n        // E.g. \"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.1.0-80) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=true\"\r\n    }\r\n    else if ((/CrOS/).test(ua))\r\n    {\r\n        OS.chromeOS = true;\r\n    }\r\n\r\n    if ((/Windows Phone/i).test(ua) || (/IEMobile/i).test(ua))\r\n    {\r\n        OS.android = false;\r\n        OS.iOS = false;\r\n        OS.macOS = false;\r\n        OS.windows = true;\r\n        OS.windowsPhone = true;\r\n    }\r\n\r\n    var silk = (/Silk/).test(ua);\r\n\r\n    if (OS.windows || OS.macOS || (OS.linux && !silk) || OS.chromeOS)\r\n    {\r\n        OS.desktop = true;\r\n    }\r\n\r\n    //  Windows Phone / Table reset\r\n    if (OS.windowsPhone || (((/Windows NT/i).test(ua)) && ((/Touch/i).test(ua))))\r\n    {\r\n        OS.desktop = false;\r\n    }\r\n\r\n    //  WebApp mode in iOS\r\n    if (navigator.standalone)\r\n    {\r\n        OS.webApp = true;\r\n    }\r\n\r\n    if (typeof importScripts !== 'function')\r\n    {\r\n        if (window.cordova !== undefined)\r\n        {\r\n            OS.cordova = true;\r\n        }\r\n\r\n        if (window.ejecta !== undefined)\r\n        {\r\n            OS.ejecta = true;\r\n        }\r\n    }\r\n\r\n    if (typeof process !== 'undefined' && process.versions && process.versions.node)\r\n    {\r\n        OS.node = true;\r\n    }\r\n\r\n    if (OS.node && typeof process.versions === 'object')\r\n    {\r\n        OS.nodeWebkit = !!process.versions['node-webkit'];\r\n\r\n        OS.electron = !!process.versions.electron;\r\n    }\r\n\r\n    if ((/Crosswalk/).test(ua))\r\n    {\r\n        OS.crosswalk = true;\r\n    }\r\n\r\n    OS.pixelRatio = window['devicePixelRatio'] || 1;\r\n\r\n    return OS;\r\n}\r\n\r\nmodule.exports = init();\r\n\n\n/***/ }),\n\n/***/ 43267:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetFastValue = __webpack_require__(95540);\r\n\r\n/**\r\n * Determines the video support of the browser running this Phaser Game instance.\r\n *\r\n * These values are read-only and populated during the boot sequence of the game.\r\n *\r\n * They are then referenced by internal game systems and are available for you to access\r\n * via `this.sys.game.device.video` from within any Scene.\r\n *\r\n * In Phaser 3.20 the properties were renamed to drop the 'Video' suffix.\r\n *\r\n * @typedef {object} Phaser.Device.Video\r\n * @since 3.0.0\r\n *\r\n * @property {boolean} h264 - Can this device play h264 mp4 video files?\r\n * @property {boolean} hls - Can this device play hls video files?\r\n * @property {boolean} mp4 - Can this device play h264 mp4 video files?\r\n * @property {boolean} m4v - Can this device play m4v (typically mp4) video files?\r\n * @property {boolean} ogg - Can this device play ogg video files?\r\n * @property {boolean} vp9 - Can this device play vp9 video files?\r\n * @property {boolean} webm - Can this device play webm video files?\r\n * @property {function} getVideoURL - Returns the first video URL that can be played by this browser.\r\n */\r\nvar Video = {\r\n\r\n    h264: false,\r\n    hls: false,\r\n    mp4: false,\r\n    m4v: false,\r\n    ogg: false,\r\n    vp9: false,\r\n    webm: false,\r\n    hasRequestVideoFrame: false\r\n\r\n};\r\n\r\nfunction init ()\r\n{\r\n    if (typeof importScripts === 'function')\r\n    {\r\n        return Video;\r\n    }\r\n\r\n    var videoElement = document.createElement('video');\r\n    var result = !!videoElement.canPlayType;\r\n    var no = /^no$/;\r\n\r\n    try\r\n    {\r\n        if (result)\r\n        {\r\n            if (videoElement.canPlayType('video/ogg; codecs=\"theora\"').replace(no, ''))\r\n            {\r\n                Video.ogg = true;\r\n            }\r\n\r\n            if (videoElement.canPlayType('video/mp4; codecs=\"avc1.42E01E\"').replace(no, ''))\r\n            {\r\n                // Without QuickTime, this value will be `undefined`. github.com/Modernizr/Modernizr/issues/546\r\n                Video.h264 = true;\r\n                Video.mp4 = true;\r\n            }\r\n\r\n            if (videoElement.canPlayType('video/x-m4v').replace(no, ''))\r\n            {\r\n                Video.m4v = true;\r\n            }\r\n\r\n            if (videoElement.canPlayType('video/webm; codecs=\"vp8, vorbis\"').replace(no, ''))\r\n            {\r\n                Video.webm = true;\r\n            }\r\n\r\n            if (videoElement.canPlayType('video/webm; codecs=\"vp9\"').replace(no, ''))\r\n            {\r\n                Video.vp9 = true;\r\n            }\r\n\r\n            if (videoElement.canPlayType('application/x-mpegURL; codecs=\"avc1.42E01E\"').replace(no, ''))\r\n            {\r\n                Video.hls = true;\r\n            }\r\n        }\r\n    }\r\n    catch (e)\r\n    {\r\n        //  Nothing to do\r\n    }\r\n\r\n    if (videoElement.parentNode)\r\n    {\r\n        videoElement.parentNode.removeChild(videoElement);\r\n    }\r\n\r\n    Video.getVideoURL = function (urls)\r\n    {\r\n        if (!Array.isArray(urls))\r\n        {\r\n            urls = [ urls ];\r\n        }\r\n\r\n        for (var i = 0; i < urls.length; i++)\r\n        {\r\n            var url = GetFastValue(urls[i], 'url', urls[i]);\r\n\r\n            if (url.indexOf('blob:') === 0)\r\n            {\r\n                return {\r\n                    url: url,\r\n                    type: ''\r\n                };\r\n            }\r\n\r\n            var videoType;\r\n\r\n            if (url.indexOf('data:') === 0)\r\n            {\r\n                videoType = url.split(',')[0].match(/\\/(.*?);/);\r\n            }\r\n            else\r\n            {\r\n                videoType = url.match(/\\.([a-zA-Z0-9]+)($|\\?)/);\r\n            }\r\n\r\n            videoType = GetFastValue(urls[i], 'type', (videoType) ? videoType[1] : '').toLowerCase();\r\n\r\n            if (Video[videoType])\r\n            {\r\n                return {\r\n                    url: url,\r\n                    type: videoType\r\n                };\r\n            }\r\n        }\r\n\r\n        return null;\r\n    };\r\n\r\n    return Video;\r\n}\r\n\r\nmodule.exports = init();\r\n\n\n/***/ }),\n\n/***/ 82264:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n//  This singleton is instantiated as soon as Phaser loads,\r\n//  before a Phaser.Game instance has even been created.\r\n//  Which means all instances of Phaser Games can share it,\r\n//  without having to re-poll the device all over again\r\n\r\n/**\r\n * @namespace Phaser.Device\r\n * @since 3.0.0\r\n */\r\n\r\n/**\r\n * @typedef {object} Phaser.DeviceConf\r\n *\r\n * @property {Phaser.Device.OS} os - The OS Device functions.\r\n * @property {Phaser.Device.Browser} browser - The Browser Device functions.\r\n * @property {Phaser.Device.Features} features - The Features Device functions.\r\n * @property {Phaser.Device.Input} input - The Input Device functions.\r\n * @property {Phaser.Device.Audio} audio - The Audio Device functions.\r\n * @property {Phaser.Device.Video} video - The Video Device functions.\r\n * @property {Phaser.Device.Fullscreen} fullscreen - The Fullscreen Device functions.\r\n * @property {Phaser.Device.CanvasFeatures} canvasFeatures - The Canvas Device functions.\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    os: __webpack_require__(25892),\r\n    browser: __webpack_require__(84148),\r\n    features: __webpack_require__(89357),\r\n    input: __webpack_require__(31784),\r\n    audio: __webpack_require__(7098),\r\n    video: __webpack_require__(43267),\r\n    fullscreen: __webpack_require__(91639),\r\n    canvasFeatures: __webpack_require__(89289)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 89422:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\n\r\nvar tempMatrix = new Float32Array(20);\r\n\r\n/**\r\n * @classdesc\r\n * The ColorMatrix class creates a 5x4 matrix that can be used in shaders and graphics\r\n * operations. It provides methods required to modify the color values, such as adjusting\r\n * the brightness, setting a sepia tone, hue rotation and more.\r\n *\r\n * Use the method `getData` to return a Float32Array containing the current color values.\r\n *\r\n * @class ColorMatrix\r\n * @memberof Phaser.Display\r\n * @constructor\r\n * @since 3.50.0\r\n */\r\nvar ColorMatrix = new Class({\r\n\r\n    initialize:\r\n\r\n    function ColorMatrix ()\r\n    {\r\n        /**\r\n         * Internal ColorMatrix array.\r\n         *\r\n         * @name Phaser.Display.ColorMatrix#_matrix\r\n         * @type {Float32Array}\r\n         * @private\r\n         * @since 3.50.0\r\n         */\r\n        this._matrix = new Float32Array(20);\r\n\r\n        /**\r\n         * The value that determines how much of the original color is used\r\n         * when mixing the colors. A value between 0 (all original) and 1 (all final)\r\n         *\r\n         * @name Phaser.Display.ColorMatrix#alpha\r\n         * @type {number}\r\n         * @since 3.50.0\r\n         */\r\n        this.alpha = 1;\r\n\r\n        /**\r\n         * Is the ColorMatrix array dirty?\r\n         *\r\n         * @name Phaser.Display.ColorMatrix#_dirty\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.50.0\r\n         */\r\n        this._dirty = true;\r\n\r\n        /**\r\n         * The matrix data as a Float32Array.\r\n         *\r\n         * Returned by the `getData` method.\r\n         *\r\n         * @name Phaser.Display.ColorMatrix#data\r\n         * @type {Float32Array}\r\n         * @private\r\n         * @since 3.50.0\r\n         */\r\n        this._data = new Float32Array(20);\r\n\r\n        this.reset();\r\n    },\r\n\r\n    /**\r\n     * Sets this ColorMatrix from the given array of color values.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#set\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(number[]|Float32Array)} value - The ColorMatrix values to set. Must have 20 elements.\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    set: function (value)\r\n    {\r\n        this._matrix.set(value);\r\n\r\n        this._dirty = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Resets the ColorMatrix to default values and also resets\r\n     * the `alpha` property back to 1.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#reset\r\n     * @since 3.50.0\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    reset: function ()\r\n    {\r\n        var m = this._matrix;\r\n\r\n        m.fill(0);\r\n\r\n        m[0] = 1;\r\n        m[6] = 1;\r\n        m[12] = 1;\r\n        m[18] = 1;\r\n\r\n        this.alpha = 1;\r\n\r\n        this._dirty = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Gets the ColorMatrix as a Float32Array.\r\n     *\r\n     * Can be used directly as a 1fv shader uniform value.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#getData\r\n     * @since 3.50.0\r\n     *\r\n     * @return {Float32Array} The ColorMatrix as a Float32Array.\r\n     */\r\n    getData: function ()\r\n    {\r\n        var data = this._data;\r\n\r\n        if (this._dirty)\r\n        {\r\n            data.set(this._matrix);\r\n\r\n            data[4] /= 255;\r\n            data[9] /= 255;\r\n            data[14] /= 255;\r\n            data[19] /= 255;\r\n\r\n            this._dirty = false;\r\n        }\r\n\r\n        return data;\r\n    },\r\n\r\n    /**\r\n     * Changes the brightness of this ColorMatrix by the given amount.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#brightness\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} [value=0] - The amount of brightness to apply to this ColorMatrix. Between 0 (black) and 1.\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    brightness: function (value, multiply)\r\n    {\r\n        if (value === undefined) { value = 0; }\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        var b = value;\r\n\r\n        return this.multiply([\r\n            b, 0, 0, 0, 0,\r\n            0, b, 0, 0, 0,\r\n            0, 0, b, 0, 0,\r\n            0, 0, 0, 1, 0\r\n        ], multiply);\r\n    },\r\n\r\n    /**\r\n     * Changes the saturation of this ColorMatrix by the given amount.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#saturate\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} [value=0] - The amount of saturation to apply to this ColorMatrix.\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    saturate: function (value, multiply)\r\n    {\r\n        if (value === undefined) { value = 0; }\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        var x = (value * 2 / 3) + 1;\r\n        var y = ((x - 1) * -0.5);\r\n\r\n        return this.multiply([\r\n            x, y, y, 0, 0,\r\n            y, x, y, 0, 0,\r\n            y, y, x, 0, 0,\r\n            0, 0, 0, 1, 0\r\n        ], multiply);\r\n    },\r\n\r\n    /**\r\n     * Desaturates this ColorMatrix (removes color from it).\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#saturation\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    desaturate: function (multiply)\r\n    {\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.saturate(-1, multiply);\r\n    },\r\n\r\n    /**\r\n     * Rotates the hues of this ColorMatrix by the value given.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#hue\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} [rotation=0] - The amount of hue rotation to apply to this ColorMatrix, in degrees.\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    hue: function (rotation, multiply)\r\n    {\r\n        if (rotation === undefined) { rotation = 0; }\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        rotation = rotation / 180 * Math.PI;\r\n\r\n        var cos = Math.cos(rotation);\r\n        var sin = Math.sin(rotation);\r\n        var lumR = 0.213;\r\n        var lumG = 0.715;\r\n        var lumB = 0.072;\r\n\r\n        return this.multiply([\r\n            lumR + cos * (1 - lumR) + sin * (-lumR),lumG + cos * (-lumG) + sin * (-lumG),lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\r\n            lumR + cos * (-lumR) + sin * (0.143),lumG + cos * (1 - lumG) + sin * (0.140),lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\r\n            lumR + cos * (-lumR) + sin * (-(1 - lumR)),lumG + cos * (-lumG) + sin * (lumG),lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\r\n            0, 0, 0, 1, 0\r\n        ], multiply);\r\n    },\r\n\r\n    /**\r\n     * Sets this ColorMatrix to be grayscale.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#grayscale\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} [value=1] - The grayscale scale (0 is black).\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    grayscale: function (value, multiply)\r\n    {\r\n        if (value === undefined) { value = 1; }\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.saturate(-value, multiply);\r\n    },\r\n\r\n    /**\r\n     * Sets this ColorMatrix to be black and white.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#blackWhite\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    blackWhite: function (multiply)\r\n    {\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.multiply(ColorMatrix.BLACK_WHITE, multiply);\r\n    },\r\n\r\n    /**\r\n     * Change the contrast of this ColorMatrix by the amount given.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#contrast\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} [value=0] - The amount of contrast to apply to this ColorMatrix.\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    contrast: function (value, multiply)\r\n    {\r\n        if (value === undefined) { value = 0; }\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        var v = value + 1;\r\n        var o = -0.5 * (v - 1);\r\n\r\n        return this.multiply([\r\n            v, 0, 0, 0, o,\r\n            0, v, 0, 0, o,\r\n            0, 0, v, 0, o,\r\n            0, 0, 0, 1, 0\r\n        ], multiply);\r\n    },\r\n\r\n    /**\r\n     * Converts this ColorMatrix to have negative values.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#negative\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    negative: function (multiply)\r\n    {\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.multiply(ColorMatrix.NEGATIVE, multiply);\r\n    },\r\n\r\n    /**\r\n     * Apply a desaturated luminance to this ColorMatrix.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#desaturateLuminance\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    desaturateLuminance: function (multiply)\r\n    {\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.multiply(ColorMatrix.DESATURATE_LUMINANCE, multiply);\r\n    },\r\n\r\n    /**\r\n     * Applies a sepia tone to this ColorMatrix.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#sepia\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    sepia: function (multiply)\r\n    {\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.multiply(ColorMatrix.SEPIA, multiply);\r\n    },\r\n\r\n    /**\r\n     * Applies a night vision tone to this ColorMatrix.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#night\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} [intensity=0.1] - The intensity of this effect.\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    night: function (intensity, multiply)\r\n    {\r\n        if (intensity === undefined) { intensity = 0.1; }\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.multiply([\r\n            intensity * (-2.0), -intensity, 0, 0, 0,\r\n            -intensity, 0, intensity, 0, 0,\r\n            0, intensity, intensity * 2.0, 0, 0,\r\n            0, 0, 0, 1, 0\r\n        ], multiply);\r\n    },\r\n\r\n    /**\r\n     * Applies a trippy color tone to this ColorMatrix.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#lsd\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    lsd: function (multiply)\r\n    {\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.multiply(ColorMatrix.LSD, multiply);\r\n    },\r\n\r\n    /**\r\n     * Applies a brown tone to this ColorMatrix.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#brown\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    brown: function (multiply)\r\n    {\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.multiply(ColorMatrix.BROWN, multiply);\r\n    },\r\n\r\n    /**\r\n     * Applies a vintage pinhole color effect to this ColorMatrix.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#vintagePinhole\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    vintagePinhole: function (multiply)\r\n    {\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.multiply(ColorMatrix.VINTAGE, multiply);\r\n    },\r\n\r\n    /**\r\n     * Applies a kodachrome color effect to this ColorMatrix.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#kodachrome\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    kodachrome: function (multiply)\r\n    {\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.multiply(ColorMatrix.KODACHROME, multiply);\r\n    },\r\n\r\n    /**\r\n     * Applies a technicolor color effect to this ColorMatrix.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#technicolor\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    technicolor: function (multiply)\r\n    {\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.multiply(ColorMatrix.TECHNICOLOR, multiply);\r\n    },\r\n\r\n    /**\r\n     * Applies a polaroid color effect to this ColorMatrix.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#polaroid\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    polaroid: function (multiply)\r\n    {\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.multiply(ColorMatrix.POLAROID, multiply);\r\n    },\r\n\r\n    /**\r\n     * Shifts the values of this ColorMatrix into BGR order.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#shiftToBGR\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    shiftToBGR: function (multiply)\r\n    {\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        return this.multiply(ColorMatrix.SHIFT_BGR, multiply);\r\n    },\r\n\r\n    /**\r\n     * Multiplies the two given matrices.\r\n     *\r\n     * @method Phaser.Display.ColorMatrix#multiply\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number[]} a - The 5x4 array to multiply with ColorMatrix._matrix.\r\n     * @param {boolean} [multiply=false] - Multiply the resulting ColorMatrix (`true`), or set it (`false`) ?\r\n     *\r\n     * @return {this} This ColorMatrix instance.\r\n     */\r\n    multiply: function (a, multiply)\r\n    {\r\n        if (multiply === undefined) { multiply = false; }\r\n\r\n        //  Duplicate _matrix into c\r\n\r\n        if (!multiply)\r\n        {\r\n            this.reset();\r\n        }\r\n\r\n        var m = this._matrix;\r\n        var c = tempMatrix;\r\n\r\n        //  copy _matrix to tempMatrox\r\n        c.set(m);\r\n\r\n        m.set([\r\n            //  R\r\n            (c[0] * a[0]) + (c[1] * a[5]) + (c[2] * a[10]) + (c[3] * a[15]),\r\n            (c[0] * a[1]) + (c[1] * a[6]) + (c[2] * a[11]) + (c[3] * a[16]),\r\n            (c[0] * a[2]) + (c[1] * a[7]) + (c[2] * a[12]) + (c[3] * a[17]),\r\n            (c[0] * a[3]) + (c[1] * a[8]) + (c[2] * a[13]) + (c[3] * a[18]),\r\n            (c[0] * a[4]) + (c[1] * a[9]) + (c[2] * a[14]) + (c[3] * a[19]) + c[4],\r\n\r\n            //  G\r\n            (c[5] * a[0]) + (c[6] * a[5]) + (c[7] * a[10]) + (c[8] * a[15]),\r\n            (c[5] * a[1]) + (c[6] * a[6]) + (c[7] * a[11]) + (c[8] * a[16]),\r\n            (c[5] * a[2]) + (c[6] * a[7]) + (c[7] * a[12]) + (c[8] * a[17]),\r\n            (c[5] * a[3]) + (c[6] * a[8]) + (c[7] * a[13]) + (c[8] * a[18]),\r\n            (c[5] * a[4]) + (c[6] * a[9]) + (c[7] * a[14]) + (c[8] * a[19]) + c[9],\r\n\r\n            //  B\r\n            (c[10] * a[0]) + (c[11] * a[5]) + (c[12] * a[10]) + (c[13] * a[15]),\r\n            (c[10] * a[1]) + (c[11] * a[6]) + (c[12] * a[11]) + (c[13] * a[16]),\r\n            (c[10] * a[2]) + (c[11] * a[7]) + (c[12] * a[12]) + (c[13] * a[17]),\r\n            (c[10] * a[3]) + (c[11] * a[8]) + (c[12] * a[13]) + (c[13] * a[18]),\r\n            (c[10] * a[4]) + (c[11] * a[9]) + (c[12] * a[14]) + (c[13] * a[19]) + c[14],\r\n\r\n            //  A\r\n            (c[15] * a[0]) + (c[16] * a[5]) + (c[17] * a[10]) + (c[18] * a[15]),\r\n            (c[15] * a[1]) + (c[16] * a[6]) + (c[17] * a[11]) + (c[18] * a[16]),\r\n            (c[15] * a[2]) + (c[16] * a[7]) + (c[17] * a[12]) + (c[18] * a[17]),\r\n            (c[15] * a[3]) + (c[16] * a[8]) + (c[17] * a[13]) + (c[18] * a[18]),\r\n            (c[15] * a[4]) + (c[16] * a[9]) + (c[17] * a[14]) + (c[18] * a[19]) + c[19]\r\n\r\n        ]);\r\n\r\n        this._dirty = true;\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * A constant array used by the ColorMatrix class for black_white operations.\r\n *\r\n * @name Phaser.Display.ColorMatrix.BLACK_WHITE\r\n * @const\r\n * @type {number[]}\r\n * @since 3.60.0\r\n */\r\nColorMatrix.BLACK_WHITE = [ 0.3, 0.6, 0.1, 0, 0, 0.3, 0.6, 0.1, 0, 0, 0.3, 0.6, 0.1, 0, 0, 0, 0, 0, 1, 0 ];\r\n\r\n/**\r\n * A constant array used by the ColorMatrix class for negative operations.\r\n *\r\n * @name Phaser.Display.ColorMatrix.NEGATIVE\r\n * @const\r\n * @type {number[]}\r\n * @since 3.60.0\r\n */\r\nColorMatrix.NEGATIVE = [ -1, 0, 0, 1, 0, 0, -1, 0, 1, 0, 0, 0, -1, 1, 0, 0, 0, 0, 1, 0 ];\r\n\r\n/**\r\n * A constant array used by the ColorMatrix class for desatured luminance operations.\r\n *\r\n * @name Phaser.Display.ColorMatrix.DESATURATE_LUMINANCE\r\n * @const\r\n * @type {number[]}\r\n * @since 3.60.0\r\n */\r\nColorMatrix.DESATURATE_LUMINANCE = [ 0.2764723, 0.9297080, 0.0938197, 0, -37.1, 0.2764723, 0.9297080, 0.0938197, 0, -37.1, 0.2764723, 0.9297080, 0.0938197, 0, -37.1, 0, 0, 0, 1, 0 ];\r\n\r\n/**\r\n * A constant array used by the ColorMatrix class for sepia operations.\r\n *\r\n * @name Phaser.Display.ColorMatrix.SEPIA\r\n * @const\r\n * @type {number[]}\r\n * @since 3.60.0\r\n */\r\nColorMatrix.SEPIA = [ 0.393, 0.7689999, 0.18899999, 0, 0, 0.349, 0.6859999, 0.16799999, 0, 0, 0.272, 0.5339999, 0.13099999, 0, 0, 0, 0, 0, 1, 0 ];\r\n\r\n/**\r\n * A constant array used by the ColorMatrix class for lsd operations.\r\n *\r\n * @name Phaser.Display.ColorMatrix.LSD\r\n * @const\r\n * @type {number[]}\r\n * @since 3.60.0\r\n */\r\nColorMatrix.LSD = [ 2, -0.4, 0.5, 0, 0, -0.5, 2, -0.4, 0, 0, -0.4, -0.5, 3, 0, 0, 0, 0, 0, 1, 0 ];\r\n\r\n/**\r\n * A constant array used by the ColorMatrix class for brown operations.\r\n *\r\n * @name Phaser.Display.ColorMatrix.BROWN\r\n * @const\r\n * @type {number[]}\r\n * @since 3.60.0\r\n */\r\nColorMatrix.BROWN = [ 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873, -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127, 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283, 0, 0, 0, 1, 0 ];\r\n\r\n/**\r\n * A constant array used by the ColorMatrix class for vintage pinhole operations.\r\n *\r\n * @name Phaser.Display.ColorMatrix.VINTAGE\r\n * @const\r\n * @type {number[]}\r\n * @since 3.60.0\r\n */\r\nColorMatrix.VINTAGE = [ 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123, 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591, 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296, 0, 0, 0, 1, 0 ];\r\n\r\n/**\r\n * A constant array used by the ColorMatrix class for kodachrome operations.\r\n *\r\n * @name Phaser.Display.ColorMatrix.KODACHROME\r\n * @const\r\n * @type {number[]}\r\n * @since 3.60.0\r\n */\r\nColorMatrix.KODACHROME = [ 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502, -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203, -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946, 0, 0, 0, 1, 0 ];\r\n\r\n/**\r\n * A constant array used by the ColorMatrix class for technicolor operations.\r\n *\r\n * @name Phaser.Display.ColorMatrix.TECHNICOLOR\r\n * @const\r\n * @type {number[]}\r\n * @since 3.60.0\r\n */\r\nColorMatrix.TECHNICOLOR = [ 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337, -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398, -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138, 0, 0, 0, 1, 0 ];\r\n\r\n/**\r\n * A constant array used by the ColorMatrix class for polaroid shift operations.\r\n *\r\n * @name Phaser.Display.ColorMatrix.POLAROID\r\n * @const\r\n * @type {number[]}\r\n * @since 3.60.0\r\n */\r\nColorMatrix.POLAROID = [ 1.438, -0.062, -0.062, 0, 0, -0.122, 1.378, -0.122, 0, 0, -0.016, -0.016, 1.483, 0, 0, 0, 0, 0, 1, 0 ];\r\n\r\n/**\r\n * A constant array used by the ColorMatrix class for shift BGR operations.\r\n *\r\n * @name Phaser.Display.ColorMatrix.SHIFT_BGR\r\n * @const\r\n * @type {number[]}\r\n * @since 3.60.0\r\n */\r\nColorMatrix.SHIFT_BGR = [ 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 1, 0 ];\r\n\r\nmodule.exports = ColorMatrix;\r\n\n\n/***/ }),\n\n/***/ 51767:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar NOOP = __webpack_require__(29747);\r\n\r\n/**\r\n * @classdesc\r\n * The RGB class holds a single color value and allows for easy modification and reading of it,\r\n * with optional on-change callback notification and a dirty flag.\r\n *\r\n * @class RGB\r\n * @memberof Phaser.Display\r\n * @constructor\r\n * @since 3.50.0\r\n *\r\n * @param {number} [red=0] - The red color value. A number between 0 and 1.\r\n * @param {number} [green=0] - The green color value. A number between 0 and 1.\r\n * @param {number} [blue=0] - The blue color value. A number between 0 and 1.\r\n */\r\nvar RGB = new Class({\r\n\r\n    initialize:\r\n\r\n    function RGB (red, green, blue)\r\n    {\r\n        /**\r\n         * Cached RGB values.\r\n         *\r\n         * @name Phaser.Display.RGB#_rgb\r\n         * @type {number[]}\r\n         * @private\r\n         * @since 3.50.0\r\n         */\r\n        this._rgb = [ 0, 0, 0 ];\r\n\r\n        /**\r\n         * This callback will be invoked each time one of the RGB color values change.\r\n         *\r\n         * The callback is sent the new color values as the parameters.\r\n         *\r\n         * @name Phaser.Display.RGB#onChangeCallback\r\n         * @type {function}\r\n         * @since 3.50.0\r\n         */\r\n        this.onChangeCallback = NOOP;\r\n\r\n        /**\r\n         * Is this color dirty?\r\n         *\r\n         * @name Phaser.Display.RGB#dirty\r\n         * @type {boolean}\r\n         * @since 3.50.0\r\n         */\r\n        this.dirty = false;\r\n\r\n        this.set(red, green, blue);\r\n    },\r\n\r\n    /**\r\n     * Sets the red, green and blue values of this RGB object, flags it as being\r\n     * dirty and then invokes the `onChangeCallback`, if set.\r\n     *\r\n     * @method Phaser.Display.RGB#set\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} [red=0] - The red color value. A number between 0 and 1.\r\n     * @param {number} [green=0] - The green color value. A number between 0 and 1.\r\n     * @param {number} [blue=0] - The blue color value. A number between 0 and 1.\r\n     *\r\n     * @return {this} This RGB instance.\r\n     */\r\n    set: function (red, green, blue)\r\n    {\r\n        if (red === undefined) { red = 0; }\r\n        if (green === undefined) { green = 0; }\r\n        if (blue === undefined) { blue = 0; }\r\n\r\n        this._rgb = [ red, green, blue ];\r\n\r\n        this.onChange();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Compares the given rgb parameters with those in this object and returns\r\n     * a boolean `true` value if they are equal, otherwise it returns `false`.\r\n     *\r\n     * @method Phaser.Display.RGB#equals\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} red - The red value to compare with this object.\r\n     * @param {number} green - The green value to compare with this object.\r\n     * @param {number} blue - The blue value to compare with this object.\r\n     *\r\n     * @return {boolean} `true` if the given values match those in this object, otherwise `false`.\r\n     */\r\n    equals: function (red, green, blue)\r\n    {\r\n        var rgb = this._rgb;\r\n\r\n        return (rgb[0] === red && rgb[1] === green && rgb[2] === blue);\r\n    },\r\n\r\n    /**\r\n     * Internal on change handler. Sets this object as being dirty and\r\n     * then invokes the `onChangeCallback`, if set, passing in the\r\n     * new RGB values.\r\n     *\r\n     * @method Phaser.Display.RGB#onChange\r\n     * @since 3.50.0\r\n     */\r\n    onChange: function ()\r\n    {\r\n        this.dirty = true;\r\n\r\n        var rgb = this._rgb;\r\n\r\n        this.onChangeCallback.call(this, rgb[0], rgb[1], rgb[2]);\r\n    },\r\n\r\n    /**\r\n     * The red color value. Between 0 and 1.\r\n     *\r\n     * Changing this property will flag this RGB object as being dirty\r\n     * and invoke the `onChangeCallback` , if set.\r\n     *\r\n     * @name Phaser.Display.RGB#r\r\n     * @type {number}\r\n     * @since 3.50.0\r\n     */\r\n    r: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._rgb[0];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._rgb[0] = value;\r\n            this.onChange();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The green color value. Between 0 and 1.\r\n     *\r\n     * Changing this property will flag this RGB object as being dirty\r\n     * and invoke the `onChangeCallback` , if set.\r\n     *\r\n     * @name Phaser.Display.RGB#g\r\n     * @type {number}\r\n     * @since 3.50.0\r\n     */\r\n    g: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._rgb[1];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._rgb[1] = value;\r\n            this.onChange();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The blue color value. Between 0 and 1.\r\n     *\r\n     * Changing this property will flag this RGB object as being dirty\r\n     * and invoke the `onChangeCallback` , if set.\r\n     *\r\n     * @name Phaser.Display.RGB#b\r\n     * @type {number}\r\n     * @since 3.50.0\r\n     */\r\n    b: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._rgb[2];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._rgb[2] = value;\r\n            this.onChange();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Nulls any external references this object contains.\r\n     *\r\n     * @method Phaser.Display.RGB#destroy\r\n     * @since 3.50.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.onChangeCallback = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = RGB;\r\n\n\n/***/ }),\n\n/***/ 60461:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar ALIGN_CONST = {\r\n\r\n    /**\r\n    * A constant representing a top-left alignment or position.\r\n    * @constant\r\n    * @name Phaser.Display.Align.TOP_LEFT\r\n    * @since 3.0.0\r\n    * @type {number}\r\n    */\r\n    TOP_LEFT: 0,\r\n\r\n    /**\r\n    * A constant representing a top-center alignment or position.\r\n    * @constant\r\n    * @name Phaser.Display.Align.TOP_CENTER\r\n    * @since 3.0.0\r\n    * @type {number}\r\n    */\r\n    TOP_CENTER: 1,\r\n\r\n    /**\r\n    * A constant representing a top-right alignment or position.\r\n    * @constant\r\n    * @name Phaser.Display.Align.TOP_RIGHT\r\n    * @since 3.0.0\r\n    * @type {number}\r\n    */\r\n    TOP_RIGHT: 2,\r\n\r\n    /**\r\n    * A constant representing a left-top alignment or position.\r\n    * @constant\r\n    * @name Phaser.Display.Align.LEFT_TOP\r\n    * @since 3.0.0\r\n    * @type {number}\r\n    */\r\n    LEFT_TOP: 3,\r\n\r\n    /**\r\n    * A constant representing a left-center alignment or position.\r\n    * @constant\r\n    * @name Phaser.Display.Align.LEFT_CENTER\r\n    * @since 3.0.0\r\n    * @type {number}\r\n    */\r\n    LEFT_CENTER: 4,\r\n\r\n    /**\r\n    * A constant representing a left-bottom alignment or position.\r\n    * @constant\r\n    * @name Phaser.Display.Align.LEFT_BOTTOM\r\n    * @since 3.0.0\r\n    * @type {number}\r\n    */\r\n    LEFT_BOTTOM: 5,\r\n\r\n    /**\r\n    * A constant representing a center alignment or position.\r\n    * @constant\r\n    * @name Phaser.Display.Align.CENTER\r\n    * @since 3.0.0\r\n    * @type {number}\r\n    */\r\n    CENTER: 6,\r\n\r\n    /**\r\n    * A constant representing a right-top alignment or position.\r\n    * @constant\r\n    * @name Phaser.Display.Align.RIGHT_TOP\r\n    * @since 3.0.0\r\n    * @type {number}\r\n    */\r\n    RIGHT_TOP: 7,\r\n\r\n    /**\r\n    * A constant representing a right-center alignment or position.\r\n    * @constant\r\n    * @name Phaser.Display.Align.RIGHT_CENTER\r\n    * @since 3.0.0\r\n    * @type {number}\r\n    */\r\n    RIGHT_CENTER: 8,\r\n\r\n    /**\r\n    * A constant representing a right-bottom alignment or position.\r\n    * @constant\r\n    * @name Phaser.Display.Align.RIGHT_BOTTOM\r\n    * @since 3.0.0\r\n    * @type {number}\r\n    */\r\n    RIGHT_BOTTOM: 9,\r\n\r\n    /**\r\n    * A constant representing a bottom-left alignment or position.\r\n    * @constant\r\n    * @name Phaser.Display.Align.BOTTOM_LEFT\r\n    * @since 3.0.0\r\n    * @type {number}\r\n    */\r\n    BOTTOM_LEFT: 10,\r\n\r\n    /**\r\n    * A constant representing a bottom-center alignment or position.\r\n    * @constant\r\n    * @name Phaser.Display.Align.BOTTOM_CENTER\r\n    * @since 3.0.0\r\n    * @type {number}\r\n    */\r\n    BOTTOM_CENTER: 11,\r\n\r\n    /**\r\n    * A constant representing a bottom-right alignment or position.\r\n    * @constant\r\n    * @name Phaser.Display.Align.BOTTOM_RIGHT\r\n    * @since 3.0.0\r\n    * @type {number}\r\n    */\r\n    BOTTOM_RIGHT: 12\r\n\r\n};\r\n\r\nmodule.exports = ALIGN_CONST;\r\n\n\n/***/ }),\n\n/***/ 54312:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetBottom = __webpack_require__(62235);\r\nvar GetCenterX = __webpack_require__(35893);\r\nvar SetBottom = __webpack_require__(86327);\r\nvar SetCenterX = __webpack_require__(88417);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned in the bottom center of the other.\r\n *\r\n * @function Phaser.Display.Align.In.BottomCenter\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignIn - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar BottomCenter = function (gameObject, alignIn, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetCenterX(gameObject, GetCenterX(alignIn) + offsetX);\r\n    SetBottom(gameObject, GetBottom(alignIn) + offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = BottomCenter;\r\n\n\n/***/ }),\n\n/***/ 46768:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetBottom = __webpack_require__(62235);\r\nvar GetLeft = __webpack_require__(26541);\r\nvar SetBottom = __webpack_require__(86327);\r\nvar SetLeft = __webpack_require__(385);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned in the bottom left of the other.\r\n *\r\n * @function Phaser.Display.Align.In.BottomLeft\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignIn - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar BottomLeft = function (gameObject, alignIn, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetLeft(gameObject, GetLeft(alignIn) - offsetX);\r\n    SetBottom(gameObject, GetBottom(alignIn) + offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = BottomLeft;\r\n\n\n/***/ }),\n\n/***/ 35827:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetBottom = __webpack_require__(62235);\r\nvar GetRight = __webpack_require__(54380);\r\nvar SetBottom = __webpack_require__(86327);\r\nvar SetRight = __webpack_require__(40136);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned in the bottom right of the other.\r\n *\r\n * @function Phaser.Display.Align.In.BottomRight\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignIn - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar BottomRight = function (gameObject, alignIn, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetRight(gameObject, GetRight(alignIn) + offsetX);\r\n    SetBottom(gameObject, GetBottom(alignIn) + offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = BottomRight;\r\n\n\n/***/ }),\n\n/***/ 46871:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CenterOn = __webpack_require__(66786);\r\nvar GetCenterX = __webpack_require__(35893);\r\nvar GetCenterY = __webpack_require__(7702);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned in the center of the other.\r\n *\r\n * @function Phaser.Display.Align.In.Center\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignIn - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar Center = function (gameObject, alignIn, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    CenterOn(gameObject, GetCenterX(alignIn) + offsetX, GetCenterY(alignIn) + offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = Center;\r\n\n\n/***/ }),\n\n/***/ 5198:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCenterY = __webpack_require__(7702);\r\nvar GetLeft = __webpack_require__(26541);\r\nvar SetCenterY = __webpack_require__(20786);\r\nvar SetLeft = __webpack_require__(385);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned in the left center of the other.\r\n *\r\n * @function Phaser.Display.Align.In.LeftCenter\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignIn - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar LeftCenter = function (gameObject, alignIn, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetLeft(gameObject, GetLeft(alignIn) - offsetX);\r\n    SetCenterY(gameObject, GetCenterY(alignIn) + offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = LeftCenter;\r\n\n\n/***/ }),\n\n/***/ 11879:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar ALIGN_CONST = __webpack_require__(60461);\r\n\r\nvar AlignInMap = [];\r\n\r\nAlignInMap[ALIGN_CONST.BOTTOM_CENTER] = __webpack_require__(54312);\r\nAlignInMap[ALIGN_CONST.BOTTOM_LEFT] = __webpack_require__(46768);\r\nAlignInMap[ALIGN_CONST.BOTTOM_RIGHT] = __webpack_require__(35827);\r\nAlignInMap[ALIGN_CONST.CENTER] = __webpack_require__(46871);\r\nAlignInMap[ALIGN_CONST.LEFT_CENTER] = __webpack_require__(5198);\r\nAlignInMap[ALIGN_CONST.RIGHT_CENTER] = __webpack_require__(80503);\r\nAlignInMap[ALIGN_CONST.TOP_CENTER] = __webpack_require__(89698);\r\nAlignInMap[ALIGN_CONST.TOP_LEFT] = __webpack_require__(922);\r\nAlignInMap[ALIGN_CONST.TOP_RIGHT] = __webpack_require__(21373);\r\nAlignInMap[ALIGN_CONST.LEFT_BOTTOM] = AlignInMap[ALIGN_CONST.BOTTOM_LEFT];\r\nAlignInMap[ALIGN_CONST.LEFT_TOP] = AlignInMap[ALIGN_CONST.TOP_LEFT];\r\nAlignInMap[ALIGN_CONST.RIGHT_BOTTOM] = AlignInMap[ALIGN_CONST.BOTTOM_RIGHT];\r\nAlignInMap[ALIGN_CONST.RIGHT_TOP] = AlignInMap[ALIGN_CONST.TOP_RIGHT];\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned relative to the other.\r\n * The alignment used is based on the `position` argument, which is an `ALIGN_CONST` value, such as `LEFT_CENTER` or `TOP_RIGHT`.\r\n *\r\n * @function Phaser.Display.Align.In.QuickSet\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [child,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} child - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignIn - The Game Object to base the alignment position on.\r\n * @param {number} position - The position to align the Game Object with. This is an align constant, such as `ALIGN_CONST.LEFT_CENTER`.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar QuickSet = function (child, alignIn, position, offsetX, offsetY)\r\n{\r\n    return AlignInMap[position](child, alignIn, offsetX, offsetY);\r\n};\r\n\r\nmodule.exports = QuickSet;\r\n\n\n/***/ }),\n\n/***/ 80503:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCenterY = __webpack_require__(7702);\r\nvar GetRight = __webpack_require__(54380);\r\nvar SetCenterY = __webpack_require__(20786);\r\nvar SetRight = __webpack_require__(40136);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned in the right center of the other.\r\n *\r\n * @function Phaser.Display.Align.In.RightCenter\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignIn - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar RightCenter = function (gameObject, alignIn, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetRight(gameObject, GetRight(alignIn) + offsetX);\r\n    SetCenterY(gameObject, GetCenterY(alignIn) + offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = RightCenter;\r\n\n\n/***/ }),\n\n/***/ 89698:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCenterX = __webpack_require__(35893);\r\nvar GetTop = __webpack_require__(17717);\r\nvar SetCenterX = __webpack_require__(88417);\r\nvar SetTop = __webpack_require__(66737);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned in the top center of the other.\r\n *\r\n * @function Phaser.Display.Align.In.TopCenter\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignIn - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar TopCenter = function (gameObject, alignIn, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetCenterX(gameObject, GetCenterX(alignIn) + offsetX);\r\n    SetTop(gameObject, GetTop(alignIn) - offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = TopCenter;\r\n\n\n/***/ }),\n\n/***/ 922:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetLeft = __webpack_require__(26541);\r\nvar GetTop = __webpack_require__(17717);\r\nvar SetLeft = __webpack_require__(385);\r\nvar SetTop = __webpack_require__(66737);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned in the top left of the other.\r\n *\r\n * @function Phaser.Display.Align.In.TopLeft\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignIn - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar TopLeft = function (gameObject, alignIn, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetLeft(gameObject, GetLeft(alignIn) - offsetX);\r\n    SetTop(gameObject, GetTop(alignIn) - offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = TopLeft;\r\n\n\n/***/ }),\n\n/***/ 21373:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetRight = __webpack_require__(54380);\r\nvar GetTop = __webpack_require__(17717);\r\nvar SetRight = __webpack_require__(40136);\r\nvar SetTop = __webpack_require__(66737);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned in the top right of the other.\r\n *\r\n * @function Phaser.Display.Align.In.TopRight\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignIn - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar TopRight = function (gameObject, alignIn, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetRight(gameObject, GetRight(alignIn) + offsetX);\r\n    SetTop(gameObject, GetTop(alignIn) - offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = TopRight;\r\n\n\n/***/ }),\n\n/***/ 91660:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Display.Align.In\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    BottomCenter: __webpack_require__(54312),\r\n    BottomLeft: __webpack_require__(46768),\r\n    BottomRight: __webpack_require__(35827),\r\n    Center: __webpack_require__(46871),\r\n    LeftCenter: __webpack_require__(5198),\r\n    QuickSet: __webpack_require__(11879),\r\n    RightCenter: __webpack_require__(80503),\r\n    TopCenter: __webpack_require__(89698),\r\n    TopLeft: __webpack_require__(922),\r\n    TopRight: __webpack_require__(21373)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 71926:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CONST = __webpack_require__(60461);\r\nvar Extend = __webpack_require__(79291);\r\n\r\n/**\r\n * @namespace Phaser.Display.Align\r\n */\r\n\r\nvar Align = {\r\n\r\n    In: __webpack_require__(91660),\r\n    To: __webpack_require__(16694)\r\n\r\n};\r\n\r\n//   Merge in the consts\r\nAlign = Extend(false, Align, CONST);\r\n\r\nmodule.exports = Align;\r\n\n\n/***/ }),\n\n/***/ 21578:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetBottom = __webpack_require__(62235);\r\nvar GetCenterX = __webpack_require__(35893);\r\nvar SetCenterX = __webpack_require__(88417);\r\nvar SetTop = __webpack_require__(66737);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned next to the bottom center position of the other.\r\n *\r\n * @function Phaser.Display.Align.To.BottomCenter\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignTo - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar BottomCenter = function (gameObject, alignTo, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetCenterX(gameObject, GetCenterX(alignTo) + offsetX);\r\n    SetTop(gameObject, GetBottom(alignTo) + offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = BottomCenter;\r\n\n\n/***/ }),\n\n/***/ 10210:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetBottom = __webpack_require__(62235);\r\nvar GetLeft = __webpack_require__(26541);\r\nvar SetLeft = __webpack_require__(385);\r\nvar SetTop = __webpack_require__(66737);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned next to the bottom left position of the other.\r\n *\r\n * @function Phaser.Display.Align.To.BottomLeft\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignTo - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar BottomLeft = function (gameObject, alignTo, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetLeft(gameObject, GetLeft(alignTo) - offsetX);\r\n    SetTop(gameObject, GetBottom(alignTo) + offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = BottomLeft;\r\n\n\n/***/ }),\n\n/***/ 82341:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetBottom = __webpack_require__(62235);\r\nvar GetRight = __webpack_require__(54380);\r\nvar SetRight = __webpack_require__(40136);\r\nvar SetTop = __webpack_require__(66737);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned next to the bottom right position of the other.\r\n *\r\n * @function Phaser.Display.Align.To.BottomRight\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignTo - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar BottomRight = function (gameObject, alignTo, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetRight(gameObject, GetRight(alignTo) + offsetX);\r\n    SetTop(gameObject, GetBottom(alignTo) + offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = BottomRight;\r\n\n\n/***/ }),\n\n/***/ 87958:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetBottom = __webpack_require__(62235);\r\nvar GetLeft = __webpack_require__(26541);\r\nvar SetBottom = __webpack_require__(86327);\r\nvar SetRight = __webpack_require__(40136);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned next to the left bottom position of the other.\r\n *\r\n * @function Phaser.Display.Align.To.LeftBottom\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignTo - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar LeftBottom = function (gameObject, alignTo, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetRight(gameObject, GetLeft(alignTo) - offsetX);\r\n    SetBottom(gameObject, GetBottom(alignTo) + offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = LeftBottom;\r\n\n\n/***/ }),\n\n/***/ 40080:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCenterY = __webpack_require__(7702);\r\nvar GetLeft = __webpack_require__(26541);\r\nvar SetCenterY = __webpack_require__(20786);\r\nvar SetRight = __webpack_require__(40136);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned next to the left center position of the other.\r\n *\r\n * @function Phaser.Display.Align.To.LeftCenter\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignTo - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar LeftCenter = function (gameObject, alignTo, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetRight(gameObject, GetLeft(alignTo) - offsetX);\r\n    SetCenterY(gameObject, GetCenterY(alignTo) + offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = LeftCenter;\r\n\n\n/***/ }),\n\n/***/ 88466:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetLeft = __webpack_require__(26541);\r\nvar GetTop = __webpack_require__(17717);\r\nvar SetRight = __webpack_require__(40136);\r\nvar SetTop = __webpack_require__(66737);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned next to the left top position of the other.\r\n *\r\n * @function Phaser.Display.Align.To.LeftTop\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignTo - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar LeftTop = function (gameObject, alignTo, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetRight(gameObject, GetLeft(alignTo) - offsetX);\r\n    SetTop(gameObject, GetTop(alignTo) - offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = LeftTop;\r\n\n\n/***/ }),\n\n/***/ 38829:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       samme\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar ALIGN_CONST = __webpack_require__(60461);\r\n\r\nvar AlignToMap = [];\r\n\r\nAlignToMap[ALIGN_CONST.BOTTOM_CENTER] = __webpack_require__(21578);\r\nAlignToMap[ALIGN_CONST.BOTTOM_LEFT] = __webpack_require__(10210);\r\nAlignToMap[ALIGN_CONST.BOTTOM_RIGHT] = __webpack_require__(82341);\r\nAlignToMap[ALIGN_CONST.LEFT_BOTTOM] = __webpack_require__(87958);\r\nAlignToMap[ALIGN_CONST.LEFT_CENTER] = __webpack_require__(40080);\r\nAlignToMap[ALIGN_CONST.LEFT_TOP] = __webpack_require__(88466);\r\nAlignToMap[ALIGN_CONST.RIGHT_BOTTOM] = __webpack_require__(19211);\r\nAlignToMap[ALIGN_CONST.RIGHT_CENTER] = __webpack_require__(34609);\r\nAlignToMap[ALIGN_CONST.RIGHT_TOP] = __webpack_require__(48741);\r\nAlignToMap[ALIGN_CONST.TOP_CENTER] = __webpack_require__(49440);\r\nAlignToMap[ALIGN_CONST.TOP_LEFT] = __webpack_require__(81288);\r\nAlignToMap[ALIGN_CONST.TOP_RIGHT] = __webpack_require__(61323);\r\n\r\n/**\r\n * Takes a Game Object and aligns it next to another, at the given position.\r\n * The alignment used is based on the `position` argument, which is a `Phaser.Display.Align` property such as `LEFT_CENTER` or `TOP_RIGHT`.\r\n *\r\n * @function Phaser.Display.Align.To.QuickSet\r\n * @since 3.22.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [child,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} child - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignTo - The Game Object to base the alignment position on.\r\n * @param {number} position - The position to align the Game Object with. This is an align constant, such as `Phaser.Display.Align.LEFT_CENTER`.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar QuickSet = function (child, alignTo, position, offsetX, offsetY)\r\n{\r\n    return AlignToMap[position](child, alignTo, offsetX, offsetY);\r\n};\r\n\r\nmodule.exports = QuickSet;\r\n\n\n/***/ }),\n\n/***/ 19211:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetBottom = __webpack_require__(62235);\r\nvar GetRight = __webpack_require__(54380);\r\nvar SetBottom = __webpack_require__(86327);\r\nvar SetLeft = __webpack_require__(385);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned next to the right bottom position of the other.\r\n *\r\n * @function Phaser.Display.Align.To.RightBottom\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignTo - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar RightBottom = function (gameObject, alignTo, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetLeft(gameObject, GetRight(alignTo) + offsetX);\r\n    SetBottom(gameObject, GetBottom(alignTo) + offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = RightBottom;\r\n\n\n/***/ }),\n\n/***/ 34609:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCenterY = __webpack_require__(7702);\r\nvar GetRight = __webpack_require__(54380);\r\nvar SetCenterY = __webpack_require__(20786);\r\nvar SetLeft = __webpack_require__(385);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned next to the right center position of the other.\r\n *\r\n * @function Phaser.Display.Align.To.RightCenter\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignTo - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar RightCenter = function (gameObject, alignTo, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetLeft(gameObject, GetRight(alignTo) + offsetX);\r\n    SetCenterY(gameObject, GetCenterY(alignTo) + offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = RightCenter;\r\n\n\n/***/ }),\n\n/***/ 48741:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetRight = __webpack_require__(54380);\r\nvar GetTop = __webpack_require__(17717);\r\nvar SetLeft = __webpack_require__(385);\r\nvar SetTop = __webpack_require__(66737);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned next to the right top position of the other.\r\n *\r\n * @function Phaser.Display.Align.To.RightTop\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignTo - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar RightTop = function (gameObject, alignTo, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetLeft(gameObject, GetRight(alignTo) + offsetX);\r\n    SetTop(gameObject, GetTop(alignTo) - offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = RightTop;\r\n\n\n/***/ }),\n\n/***/ 49440:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCenterX = __webpack_require__(35893);\r\nvar GetTop = __webpack_require__(17717);\r\nvar SetBottom = __webpack_require__(86327);\r\nvar SetCenterX = __webpack_require__(88417);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned next to the top center position of the other.\r\n *\r\n * @function Phaser.Display.Align.To.TopCenter\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignTo - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar TopCenter = function (gameObject, alignTo, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetCenterX(gameObject, GetCenterX(alignTo) + offsetX);\r\n    SetBottom(gameObject, GetTop(alignTo) - offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = TopCenter;\r\n\n\n/***/ }),\n\n/***/ 81288:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetLeft = __webpack_require__(26541);\r\nvar GetTop = __webpack_require__(17717);\r\nvar SetBottom = __webpack_require__(86327);\r\nvar SetLeft = __webpack_require__(385);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned next to the top left position of the other.\r\n *\r\n * @function Phaser.Display.Align.To.TopLeft\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignTo - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar TopLeft = function (gameObject, alignTo, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetLeft(gameObject, GetLeft(alignTo) - offsetX);\r\n    SetBottom(gameObject, GetTop(alignTo) - offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = TopLeft;\r\n\n\n/***/ }),\n\n/***/ 61323:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetRight = __webpack_require__(54380);\r\nvar GetTop = __webpack_require__(17717);\r\nvar SetBottom = __webpack_require__(86327);\r\nvar SetRight = __webpack_require__(40136);\r\n\r\n/**\r\n * Takes given Game Object and aligns it so that it is positioned next to the top right position of the other.\r\n *\r\n * @function Phaser.Display.Align.To.TopRight\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be positioned.\r\n * @param {Phaser.GameObjects.GameObject} alignTo - The Game Object to base the alignment position on.\r\n * @param {number} [offsetX=0] - Optional horizontal offset from the position.\r\n * @param {number} [offsetY=0] - Optional vertical offset from the position.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was aligned.\r\n */\r\nvar TopRight = function (gameObject, alignTo, offsetX, offsetY)\r\n{\r\n    if (offsetX === undefined) { offsetX = 0; }\r\n    if (offsetY === undefined) { offsetY = 0; }\r\n\r\n    SetRight(gameObject, GetRight(alignTo) + offsetX);\r\n    SetBottom(gameObject, GetTop(alignTo) - offsetY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = TopRight;\r\n\n\n/***/ }),\n\n/***/ 16694:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Display.Align.To\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    BottomCenter: __webpack_require__(21578),\r\n    BottomLeft: __webpack_require__(10210),\r\n    BottomRight: __webpack_require__(82341),\r\n    LeftBottom: __webpack_require__(87958),\r\n    LeftCenter: __webpack_require__(40080),\r\n    LeftTop: __webpack_require__(88466),\r\n    QuickSet: __webpack_require__(38829),\r\n    RightBottom: __webpack_require__(19211),\r\n    RightCenter: __webpack_require__(34609),\r\n    RightTop: __webpack_require__(48741),\r\n    TopCenter: __webpack_require__(49440),\r\n    TopLeft: __webpack_require__(81288),\r\n    TopRight: __webpack_require__(61323)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 66786:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar SetCenterX = __webpack_require__(88417);\r\nvar SetCenterY = __webpack_require__(20786);\r\n\r\n/**\r\n * Positions the Game Object so that it is centered on the given coordinates.\r\n *\r\n * @function Phaser.Display.Bounds.CenterOn\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be re-positioned.\r\n * @param {number} x - The horizontal coordinate to position the Game Object on.\r\n * @param {number} y - The vertical coordinate to position the Game Object on.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was positioned.\r\n */\r\nvar CenterOn = function (gameObject, x, y)\r\n{\r\n    SetCenterX(gameObject, x);\r\n\r\n    return SetCenterY(gameObject, y);\r\n};\r\n\r\nmodule.exports = CenterOn;\r\n\n\n/***/ }),\n\n/***/ 62235:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Returns the bottom coordinate from the bounds of the Game Object.\r\n *\r\n * @function Phaser.Display.Bounds.GetBottom\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object to get the bounds value from.\r\n *\r\n * @return {number} The bottom coordinate of the bounds of the Game Object.\r\n */\r\nvar GetBottom = function (gameObject)\r\n{\r\n    return (gameObject.y + gameObject.height) - (gameObject.height * gameObject.originY);\r\n};\r\n\r\nmodule.exports = GetBottom;\r\n\n\n/***/ }),\n\n/***/ 72873:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       samme\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetBottom = __webpack_require__(62235);\r\nvar GetLeft = __webpack_require__(26541);\r\nvar GetRight = __webpack_require__(54380);\r\nvar GetTop = __webpack_require__(17717);\r\nvar Rectangle = __webpack_require__(87841);\r\n\r\n/**\r\n * Returns the unrotated bounds of the Game Object as a rectangle.\r\n *\r\n * @function Phaser.Display.Bounds.GetBounds\r\n * @since 3.24.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object to get the bounds value from.\r\n * @param {(Phaser.Geom.Rectangle|object)} [output] - An object to store the values in. If not provided a new Rectangle will be created.\r\n *\r\n * @return {(Phaser.Geom.Rectangle|object)} - The bounds of the Game Object.\r\n */\r\nvar GetBounds = function (gameObject, output)\r\n{\r\n    if (output === undefined) { output = new Rectangle(); }\r\n\r\n    var left = GetLeft(gameObject);\r\n    var top = GetTop(gameObject);\r\n\r\n    output.x = left;\r\n    output.y = top;\r\n    output.width = GetRight(gameObject) - left;\r\n    output.height = GetBottom(gameObject) - top;\r\n\r\n    return output;\r\n};\r\n\r\nmodule.exports = GetBounds;\r\n\n\n/***/ }),\n\n/***/ 35893:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Returns the center x coordinate from the bounds of the Game Object.\r\n *\r\n * @function Phaser.Display.Bounds.GetCenterX\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object to get the bounds value from.\r\n *\r\n * @return {number} The center x coordinate of the bounds of the Game Object.\r\n */\r\nvar GetCenterX = function (gameObject)\r\n{\r\n    return gameObject.x - (gameObject.width * gameObject.originX) + (gameObject.width * 0.5);\r\n};\r\n\r\nmodule.exports = GetCenterX;\r\n\n\n/***/ }),\n\n/***/ 7702:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Returns the center y coordinate from the bounds of the Game Object.\r\n *\r\n * @function Phaser.Display.Bounds.GetCenterY\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object to get the bounds value from.\r\n *\r\n * @return {number} The center y coordinate of the bounds of the Game Object.\r\n */\r\nvar GetCenterY = function (gameObject)\r\n{\r\n    return gameObject.y - (gameObject.height * gameObject.originY) + (gameObject.height * 0.5);\r\n};\r\n\r\nmodule.exports = GetCenterY;\r\n\n\n/***/ }),\n\n/***/ 26541:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Returns the left coordinate from the bounds of the Game Object.\r\n *\r\n * @function Phaser.Display.Bounds.GetLeft\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object to get the bounds value from.\r\n *\r\n * @return {number} The left coordinate of the bounds of the Game Object.\r\n */\r\nvar GetLeft = function (gameObject)\r\n{\r\n    return gameObject.x - (gameObject.width * gameObject.originX);\r\n};\r\n\r\nmodule.exports = GetLeft;\r\n\n\n/***/ }),\n\n/***/ 87431:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Returns the amount the Game Object is visually offset from its x coordinate.\r\n * This is the same as `width * origin.x`.\r\n * This value will only be > 0 if `origin.x` is not equal to zero.\r\n *\r\n * @function Phaser.Display.Bounds.GetOffsetX\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object to get the bounds value from.\r\n *\r\n * @return {number} The horizontal offset of the Game Object.\r\n */\r\nvar GetOffsetX = function (gameObject)\r\n{\r\n    return gameObject.width * gameObject.originX;\r\n};\r\n\r\nmodule.exports = GetOffsetX;\r\n\n\n/***/ }),\n\n/***/ 46928:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Returns the amount the Game Object is visually offset from its y coordinate.\r\n * This is the same as `width * origin.y`.\r\n * This value will only be > 0 if `origin.y` is not equal to zero.\r\n *\r\n * @function Phaser.Display.Bounds.GetOffsetY\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object to get the bounds value from.\r\n *\r\n * @return {number} The vertical offset of the Game Object.\r\n */\r\nvar GetOffsetY = function (gameObject)\r\n{\r\n    return gameObject.height * gameObject.originY;\r\n};\r\n\r\nmodule.exports = GetOffsetY;\r\n\n\n/***/ }),\n\n/***/ 54380:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Returns the right coordinate from the bounds of the Game Object.\r\n *\r\n * @function Phaser.Display.Bounds.GetRight\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object to get the bounds value from.\r\n *\r\n * @return {number} The right coordinate of the bounds of the Game Object.\r\n */\r\nvar GetRight = function (gameObject)\r\n{\r\n    return (gameObject.x + gameObject.width) - (gameObject.width * gameObject.originX);\r\n};\r\n\r\nmodule.exports = GetRight;\r\n\n\n/***/ }),\n\n/***/ 17717:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Returns the top coordinate from the bounds of the Game Object.\r\n *\r\n * @function Phaser.Display.Bounds.GetTop\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object to get the bounds value from.\r\n *\r\n * @return {number} The top coordinate of the bounds of the Game Object.\r\n */\r\nvar GetTop = function (gameObject)\r\n{\r\n    return gameObject.y - (gameObject.height * gameObject.originY);\r\n};\r\n\r\nmodule.exports = GetTop;\r\n\n\n/***/ }),\n\n/***/ 86327:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Positions the Game Object so that the bottom of its bounds aligns with the given coordinate.\r\n *\r\n * @function Phaser.Display.Bounds.SetBottom\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be re-positioned.\r\n * @param {number} value - The coordinate to position the Game Object bounds on.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was positioned.\r\n */\r\nvar SetBottom = function (gameObject, value)\r\n{\r\n    gameObject.y = (value - gameObject.height) + (gameObject.height * gameObject.originY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = SetBottom;\r\n\n\n/***/ }),\n\n/***/ 88417:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Positions the Game Object so that the center top of its bounds aligns with the given coordinate.\r\n *\r\n * @function Phaser.Display.Bounds.SetCenterX\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be re-positioned.\r\n * @param {number} x - The coordinate to position the Game Object bounds on.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was positioned.\r\n */\r\nvar SetCenterX = function (gameObject, x)\r\n{\r\n    var offsetX = gameObject.width * gameObject.originX;\r\n\r\n    gameObject.x = (x + offsetX) - (gameObject.width * 0.5);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = SetCenterX;\r\n\n\n/***/ }),\n\n/***/ 20786:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Positions the Game Object so that the center top of its bounds aligns with the given coordinate.\r\n *\r\n * @function Phaser.Display.Bounds.SetCenterY\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be re-positioned.\r\n * @param {number} y - The coordinate to position the Game Object bounds on.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was positioned.\r\n */\r\nvar SetCenterY = function (gameObject, y)\r\n{\r\n    var offsetY = gameObject.height * gameObject.originY;\r\n\r\n    gameObject.y = (y + offsetY) - (gameObject.height * 0.5);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = SetCenterY;\r\n\n\n/***/ }),\n\n/***/ 385:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Positions the Game Object so that the left of its bounds aligns with the given coordinate.\r\n *\r\n * @function Phaser.Display.Bounds.SetLeft\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be re-positioned.\r\n * @param {number} value - The coordinate to position the Game Object bounds on.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was positioned.\r\n */\r\nvar SetLeft = function (gameObject, value)\r\n{\r\n    gameObject.x = value + (gameObject.width * gameObject.originX);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = SetLeft;\r\n\n\n/***/ }),\n\n/***/ 40136:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Positions the Game Object so that the left of its bounds aligns with the given coordinate.\r\n *\r\n * @function Phaser.Display.Bounds.SetRight\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be re-positioned.\r\n * @param {number} value - The coordinate to position the Game Object bounds on.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was positioned.\r\n */\r\nvar SetRight = function (gameObject, value)\r\n{\r\n    gameObject.x = (value - gameObject.width) + (gameObject.width * gameObject.originX);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = SetRight;\r\n\n\n/***/ }),\n\n/***/ 66737:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Positions the Game Object so that the top of its bounds aligns with the given coordinate.\r\n *\r\n * @function Phaser.Display.Bounds.SetTop\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.GameObjects.GameObject} G - [gameObject,$return]\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that will be re-positioned.\r\n * @param {number} value - The coordinate to position the Game Object bounds on.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The Game Object that was positioned.\r\n */\r\nvar SetTop = function (gameObject, value)\r\n{\r\n    gameObject.y = value + (gameObject.height * gameObject.originY);\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = SetTop;\r\n\n\n/***/ }),\n\n/***/ 58724:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Display.Bounds\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    CenterOn: __webpack_require__(66786),\r\n    GetBottom: __webpack_require__(62235),\r\n    GetBounds: __webpack_require__(72873),\r\n    GetCenterX: __webpack_require__(35893),\r\n    GetCenterY: __webpack_require__(7702),\r\n    GetLeft: __webpack_require__(26541),\r\n    GetOffsetX: __webpack_require__(87431),\r\n    GetOffsetY: __webpack_require__(46928),\r\n    GetRight: __webpack_require__(54380),\r\n    GetTop: __webpack_require__(17717),\r\n    SetBottom: __webpack_require__(86327),\r\n    SetCenterX: __webpack_require__(88417),\r\n    SetCenterY: __webpack_require__(20786),\r\n    SetLeft: __webpack_require__(385),\r\n    SetRight: __webpack_require__(40136),\r\n    SetTop: __webpack_require__(66737)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 20623:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Display.Canvas.CanvasInterpolation\r\n * @since 3.0.0\r\n */\r\nvar CanvasInterpolation = {\r\n\r\n    /**\r\n     * Sets the CSS image-rendering property on the given canvas to be 'crisp' (aka 'optimize contrast' on webkit).\r\n     *\r\n     * @function Phaser.Display.Canvas.CanvasInterpolation.setCrisp\r\n     * @since 3.0.0\r\n     * \r\n     * @param {HTMLCanvasElement} canvas - The canvas object to have the style set on.\r\n     * \r\n     * @return {HTMLCanvasElement} The canvas.\r\n     */\r\n    setCrisp: function (canvas)\r\n    {\r\n        var types = [ 'optimizeSpeed', '-moz-crisp-edges', '-o-crisp-edges', '-webkit-optimize-contrast', 'optimize-contrast', 'crisp-edges', 'pixelated' ];\r\n\r\n        types.forEach(function (type)\r\n        {\r\n            canvas.style['image-rendering'] = type;\r\n        });\r\n\r\n        canvas.style.msInterpolationMode = 'nearest-neighbor';\r\n\r\n        return canvas;\r\n    },\r\n\r\n    /**\r\n     * Sets the CSS image-rendering property on the given canvas to be 'bicubic' (aka 'auto').\r\n     *\r\n     * @function Phaser.Display.Canvas.CanvasInterpolation.setBicubic\r\n     * @since 3.0.0\r\n     * \r\n     * @param {HTMLCanvasElement} canvas - The canvas object to have the style set on.\r\n     * \r\n     * @return {HTMLCanvasElement} The canvas.\r\n     */\r\n    setBicubic: function (canvas)\r\n    {\r\n        canvas.style['image-rendering'] = 'auto';\r\n        canvas.style.msInterpolationMode = 'bicubic';\r\n\r\n        return canvas;\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = CanvasInterpolation;\r\n\n\n/***/ }),\n\n/***/ 27919:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CONST = __webpack_require__(8054);\r\nvar Smoothing = __webpack_require__(68703);\r\n\r\n// The pool into which the canvas elements are placed.\r\nvar pool = [];\r\n\r\n//  Automatically apply smoothing(false) to created Canvas elements\r\nvar _disableContextSmoothing = false;\r\n\r\n/**\r\n * The CanvasPool is a global static object, that allows Phaser to recycle and pool 2D Context Canvas DOM elements.\r\n * It does not pool WebGL Contexts, because once the context options are set they cannot be modified again,\r\n * which is useless for some of the Phaser pipelines / renderer.\r\n *\r\n * This singleton is instantiated as soon as Phaser loads, before a Phaser.Game instance has even been created.\r\n * Which means all instances of Phaser Games on the same page can share the one single pool.\r\n *\r\n * @namespace Phaser.Display.Canvas.CanvasPool\r\n * @since 3.0.0\r\n */\r\nvar CanvasPool = function ()\r\n{\r\n    /**\r\n     * Creates a new Canvas DOM element, or pulls one from the pool if free.\r\n     *\r\n     * @function Phaser.Display.Canvas.CanvasPool.create\r\n     * @since 3.0.0\r\n     *\r\n     * @param {*} parent - The parent of the Canvas object.\r\n     * @param {number} [width=1] - The width of the Canvas.\r\n     * @param {number} [height=1] - The height of the Canvas.\r\n     * @param {number} [canvasType=Phaser.CANVAS] - The type of the Canvas. Either `Phaser.CANVAS` or `Phaser.WEBGL`.\r\n     * @param {boolean} [selfParent=false] - Use the generated Canvas element as the parent?\r\n     *\r\n     * @return {HTMLCanvasElement} The canvas element that was created or pulled from the pool\r\n     */\r\n    var create = function (parent, width, height, canvasType, selfParent)\r\n    {\r\n        if (width === undefined) { width = 1; }\r\n        if (height === undefined) { height = 1; }\r\n        if (canvasType === undefined) { canvasType = CONST.CANVAS; }\r\n        if (selfParent === undefined) { selfParent = false; }\r\n\r\n        var canvas;\r\n        var container = first(canvasType);\r\n\r\n        if (container === null)\r\n        {\r\n            container = {\r\n                parent: parent,\r\n                canvas: document.createElement('canvas'),\r\n                type: canvasType\r\n            };\r\n\r\n            if (canvasType === CONST.CANVAS)\r\n            {\r\n                pool.push(container);\r\n            }\r\n\r\n            canvas = container.canvas;\r\n        }\r\n        else\r\n        {\r\n            container.parent = parent;\r\n\r\n            canvas = container.canvas;\r\n        }\r\n\r\n        if (selfParent)\r\n        {\r\n            container.parent = canvas;\r\n        }\r\n\r\n        canvas.width = width;\r\n        canvas.height = height;\r\n\r\n        if (_disableContextSmoothing && canvasType === CONST.CANVAS)\r\n        {\r\n            Smoothing.disable(canvas.getContext('2d', { willReadFrequently: false }));\r\n        }\r\n\r\n        return canvas;\r\n    };\r\n\r\n    /**\r\n     * Creates a new Canvas DOM element, or pulls one from the pool if free.\r\n     *\r\n     * @function Phaser.Display.Canvas.CanvasPool.create2D\r\n     * @since 3.0.0\r\n     *\r\n     * @param {*} parent - The parent of the Canvas object.\r\n     * @param {number} [width=1] - The width of the Canvas.\r\n     * @param {number} [height=1] - The height of the Canvas.\r\n     *\r\n     * @return {HTMLCanvasElement} The created canvas.\r\n     */\r\n    var create2D = function (parent, width, height)\r\n    {\r\n        return create(parent, width, height, CONST.CANVAS);\r\n    };\r\n\r\n    /**\r\n     * Creates a new Canvas DOM element, or pulls one from the pool if free.\r\n     *\r\n     * @function Phaser.Display.Canvas.CanvasPool.createWebGL\r\n     * @since 3.0.0\r\n     *\r\n     * @param {*} parent - The parent of the Canvas object.\r\n     * @param {number} [width=1] - The width of the Canvas.\r\n     * @param {number} [height=1] - The height of the Canvas.\r\n     *\r\n     * @return {HTMLCanvasElement} The created WebGL canvas.\r\n     */\r\n    var createWebGL = function (parent, width, height)\r\n    {\r\n        return create(parent, width, height, CONST.WEBGL);\r\n    };\r\n\r\n    /**\r\n     * Gets the first free canvas index from the pool.\r\n     *\r\n     * @function Phaser.Display.Canvas.CanvasPool.first\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [canvasType=Phaser.CANVAS] - The type of the Canvas. Either `Phaser.CANVAS` or `Phaser.WEBGL`.\r\n     *\r\n     * @return {HTMLCanvasElement} The first free canvas, or `null` if a WebGL canvas was requested or if the pool doesn't have free canvases.\r\n     */\r\n    var first = function (canvasType)\r\n    {\r\n        if (canvasType === undefined) { canvasType = CONST.CANVAS; }\r\n\r\n        if (canvasType === CONST.WEBGL)\r\n        {\r\n            return null;\r\n        }\r\n\r\n        for (var i = 0; i < pool.length; i++)\r\n        {\r\n            var container = pool[i];\r\n\r\n            if (!container.parent && container.type === canvasType)\r\n            {\r\n                return container;\r\n            }\r\n        }\r\n\r\n        return null;\r\n    };\r\n\r\n    /**\r\n     * Looks up a canvas based on its parent, and if found puts it back in the pool, freeing it up for re-use.\r\n     * The canvas has its width and height set to 1, and its parent attribute nulled.\r\n     *\r\n     * @function Phaser.Display.Canvas.CanvasPool.remove\r\n     * @since 3.0.0\r\n     *\r\n     * @param {*} parent - The canvas or the parent of the canvas to free.\r\n     */\r\n    var remove = function (parent)\r\n    {\r\n        //  Check to see if the parent is a canvas object\r\n        var isCanvas = parent instanceof HTMLCanvasElement;\r\n\r\n        pool.forEach(function (container)\r\n        {\r\n            if ((isCanvas && container.canvas === parent) || (!isCanvas && container.parent === parent))\r\n            {\r\n                container.parent = null;\r\n                container.canvas.width = 1;\r\n                container.canvas.height = 1;\r\n            }\r\n        });\r\n    };\r\n\r\n    /**\r\n     * Gets the total number of used canvas elements in the pool.\r\n     *\r\n     * @function Phaser.Display.Canvas.CanvasPool.total\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The number of used canvases.\r\n     */\r\n    var total = function ()\r\n    {\r\n        var c = 0;\r\n\r\n        pool.forEach(function (container)\r\n        {\r\n            if (container.parent)\r\n            {\r\n                c++;\r\n            }\r\n        });\r\n\r\n        return c;\r\n    };\r\n\r\n    /**\r\n     * Gets the total number of free canvas elements in the pool.\r\n     *\r\n     * @function Phaser.Display.Canvas.CanvasPool.free\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The number of free canvases.\r\n     */\r\n    var free = function ()\r\n    {\r\n        return pool.length - total();\r\n    };\r\n\r\n    /**\r\n     * Disable context smoothing on any new Canvas element created.\r\n     *\r\n     * @function Phaser.Display.Canvas.CanvasPool.disableSmoothing\r\n     * @since 3.0.0\r\n     */\r\n    var disableSmoothing = function ()\r\n    {\r\n        _disableContextSmoothing = true;\r\n    };\r\n\r\n    /**\r\n     * Enable context smoothing on any new Canvas element created.\r\n     *\r\n     * @function Phaser.Display.Canvas.CanvasPool.enableSmoothing\r\n     * @since 3.0.0\r\n     */\r\n    var enableSmoothing = function ()\r\n    {\r\n        _disableContextSmoothing = false;\r\n    };\r\n\r\n    return {\r\n        create2D: create2D,\r\n        create: create,\r\n        createWebGL: createWebGL,\r\n        disableSmoothing: disableSmoothing,\r\n        enableSmoothing: enableSmoothing,\r\n        first: first,\r\n        free: free,\r\n        pool: pool,\r\n        remove: remove,\r\n        total: total\r\n    };\r\n};\r\n\r\n//  If we export the called function here, it'll only be invoked once (not every time it's required).\r\nmodule.exports = CanvasPool();\r\n\n\n/***/ }),\n\n/***/ 68703:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n//  Browser specific prefix, so not going to change between contexts, only between browsers\r\nvar prefix = '';\r\n\r\n/**\r\n * @namespace Phaser.Display.Canvas.Smoothing\r\n * @since 3.0.0\r\n */\r\nvar Smoothing = function ()\r\n{\r\n    /**\r\n     * Gets the Smoothing Enabled vendor prefix being used on the given context, or null if not set.\r\n     *\r\n     * @function Phaser.Display.Canvas.Smoothing.getPrefix\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(CanvasRenderingContext2D|WebGLRenderingContext)} context - The canvas context to check.\r\n     *\r\n     * @return {string} The name of the property on the context which controls image smoothing (either `imageSmoothingEnabled` or a vendor-prefixed version thereof), or `null` if not supported.\r\n     */\r\n    var getPrefix = function (context)\r\n    {\r\n        var vendors = [ 'i', 'webkitI', 'msI', 'mozI', 'oI' ];\r\n\r\n        for (var i = 0; i < vendors.length; i++)\r\n        {\r\n            var s = vendors[i] + 'mageSmoothingEnabled';\r\n\r\n            if (s in context)\r\n            {\r\n                return s;\r\n            }\r\n        }\r\n\r\n        return null;\r\n    };\r\n\r\n    /**\r\n     * Sets the Image Smoothing property on the given context. Set to false to disable image smoothing.\r\n     * By default browsers have image smoothing enabled, which isn't always what you visually want, especially\r\n     * when using pixel art in a game. Note that this sets the property on the context itself, so that any image\r\n     * drawn to the context will be affected. This sets the property across all current browsers but support is\r\n     * patchy on earlier browsers, especially on mobile.\r\n     *\r\n     * @function Phaser.Display.Canvas.Smoothing.enable\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(CanvasRenderingContext2D|WebGLRenderingContext)} context - The context on which to enable smoothing.\r\n     *\r\n     * @return {(CanvasRenderingContext2D|WebGLRenderingContext)} The provided context.\r\n     */\r\n    var enable = function (context)\r\n    {\r\n        if (prefix === '')\r\n        {\r\n            prefix = getPrefix(context);\r\n        }\r\n\r\n        if (prefix)\r\n        {\r\n            context[prefix] = true;\r\n        }\r\n\r\n        return context;\r\n    };\r\n\r\n    /**\r\n     * Sets the Image Smoothing property on the given context. Set to false to disable image smoothing.\r\n     * By default browsers have image smoothing enabled, which isn't always what you visually want, especially\r\n     * when using pixel art in a game. Note that this sets the property on the context itself, so that any image\r\n     * drawn to the context will be affected. This sets the property across all current browsers but support is\r\n     * patchy on earlier browsers, especially on mobile.\r\n     *\r\n     * @function Phaser.Display.Canvas.Smoothing.disable\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(CanvasRenderingContext2D|WebGLRenderingContext)} context - The context on which to disable smoothing.\r\n     *\r\n     * @return {(CanvasRenderingContext2D|WebGLRenderingContext)} The provided context.\r\n     */\r\n    var disable = function (context)\r\n    {\r\n        if (prefix === '')\r\n        {\r\n            prefix = getPrefix(context);\r\n        }\r\n\r\n        if (prefix)\r\n        {\r\n            context[prefix] = false;\r\n        }\r\n\r\n        return context;\r\n    };\r\n\r\n    /**\r\n     * Returns `true` if the given context has image smoothing enabled, otherwise returns `false`.\r\n     * Returns null if no smoothing prefix is available.\r\n     *\r\n     * @function Phaser.Display.Canvas.Smoothing.isEnabled\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(CanvasRenderingContext2D|WebGLRenderingContext)} context - The context to check.\r\n     *\r\n     * @return {?boolean} `true` if smoothing is enabled on the context, otherwise `false`. `null` if not supported.\r\n     */\r\n    var isEnabled = function (context)\r\n    {\r\n        return (prefix !== null) ? context[prefix] : null;\r\n    };\r\n\r\n    return {\r\n        disable: disable,\r\n        enable: enable,\r\n        getPrefix: getPrefix,\r\n        isEnabled: isEnabled\r\n    };\r\n\r\n};\r\n\r\nmodule.exports = Smoothing();\r\n\n\n/***/ }),\n\n/***/ 65208:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Sets the touch-action property on the canvas style. Can be used to disable default browser touch actions.\r\n *\r\n * @function Phaser.Display.Canvas.TouchAction\r\n * @since 3.0.0\r\n *\r\n * @param {HTMLCanvasElement} canvas - The canvas element to have the style applied to.\r\n * @param {string} [value='none'] - The touch action value to set on the canvas. Set to `none` to disable touch actions.\r\n *\r\n * @return {HTMLCanvasElement} The canvas element.\r\n */\r\nvar TouchAction = function (canvas, value)\r\n{\r\n    if (value === undefined) { value = 'none'; }\r\n\r\n    canvas.style['msTouchAction'] = value;\r\n    canvas.style['ms-touch-action'] = value;\r\n    canvas.style['touch-action'] = value;\r\n\r\n    return canvas;\r\n};\r\n\r\nmodule.exports = TouchAction;\r\n\n\n/***/ }),\n\n/***/ 91610:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Sets the user-select property on the canvas style. Can be used to disable default browser selection actions.\r\n *\r\n * @function Phaser.Display.Canvas.UserSelect\r\n * @since 3.0.0\r\n *\r\n * @param {HTMLCanvasElement} canvas - The canvas element to have the style applied to.\r\n * @param {string} [value='none'] - The touch callout value to set on the canvas. Set to `none` to disable touch callouts.\r\n *\r\n * @return {HTMLCanvasElement} The canvas element.\r\n */\r\nvar UserSelect = function (canvas, value)\r\n{\r\n    if (value === undefined) { value = 'none'; }\r\n\r\n    var vendors = [\r\n        '-webkit-',\r\n        '-khtml-',\r\n        '-moz-',\r\n        '-ms-',\r\n        ''\r\n    ];\r\n\r\n    vendors.forEach(function (vendor)\r\n    {\r\n        canvas.style[vendor + 'user-select'] = value;\r\n    });\r\n\r\n    canvas.style['-webkit-touch-callout'] = value;\r\n    canvas.style['-webkit-tap-highlight-color'] = 'rgba(0, 0, 0, 0)';\r\n\r\n    return canvas;\r\n};\r\n\r\nmodule.exports = UserSelect;\r\n\n\n/***/ }),\n\n/***/ 26253:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Display.Canvas\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    CanvasInterpolation: __webpack_require__(20623),\r\n    CanvasPool: __webpack_require__(27919),\r\n    Smoothing: __webpack_require__(68703),\r\n    TouchAction: __webpack_require__(65208),\r\n    UserSelect: __webpack_require__(91610)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 40987:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar GetColor = __webpack_require__(37589);\r\nvar GetColor32 = __webpack_require__(1000);\r\nvar HSVToRGB = __webpack_require__(7537);\r\nvar RGBToHSV = __webpack_require__(87837);\r\n\r\n/**\r\n * @namespace Phaser.Display.Color\r\n */\r\n\r\n/**\r\n * @classdesc\r\n * The Color class holds a single color value and allows for easy modification and reading of it.\r\n *\r\n * @class Color\r\n * @memberof Phaser.Display\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {number} [red=0] - The red color value. A number between 0 and 255.\r\n * @param {number} [green=0] - The green color value. A number between 0 and 255.\r\n * @param {number} [blue=0] - The blue color value. A number between 0 and 255.\r\n * @param {number} [alpha=255] - The alpha value. A number between 0 and 255.\r\n */\r\nvar Color = new Class({\r\n\r\n    initialize:\r\n\r\n    function Color (red, green, blue, alpha)\r\n    {\r\n        if (red === undefined) { red = 0; }\r\n        if (green === undefined) { green = 0; }\r\n        if (blue === undefined) { blue = 0; }\r\n        if (alpha === undefined) { alpha = 255; }\r\n\r\n        /**\r\n         * The internal red color value.\r\n         *\r\n         * @name Phaser.Display.Color#r\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.r = 0;\r\n\r\n        /**\r\n         * The internal green color value.\r\n         *\r\n         * @name Phaser.Display.Color#g\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.g = 0;\r\n\r\n        /**\r\n         * The internal blue color value.\r\n         *\r\n         * @name Phaser.Display.Color#b\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.b = 0;\r\n\r\n        /**\r\n         * The internal alpha color value.\r\n         *\r\n         * @name Phaser.Display.Color#a\r\n         * @type {number}\r\n         * @private\r\n         * @default 255\r\n         * @since 3.0.0\r\n         */\r\n        this.a = 255;\r\n\r\n        /**\r\n         * The hue color value. A number between 0 and 1.\r\n         * This is the base color.\r\n         *\r\n         * @name Phaser.Display.Color#_h\r\n         * @type {number}\r\n         * @default 0\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._h = 0;\r\n\r\n        /**\r\n         * The saturation color value. A number between 0 and 1.\r\n         * This controls how much of the hue will be in the final color, where 1 is fully saturated and 0 will give you white.\r\n         *\r\n         * @name Phaser.Display.Color#_s\r\n         * @type {number}\r\n         * @default 0\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._s = 0;\r\n\r\n        /**\r\n         * The lightness color value. A number between 0 and 1.\r\n         * This controls how dark the color is. Where 1 is as bright as possible and 0 is black.\r\n         *\r\n         * @name Phaser.Display.Color#_v\r\n         * @type {number}\r\n         * @default 0\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._v = 0;\r\n\r\n        /**\r\n         * Is this color update locked?\r\n         *\r\n         * @name Phaser.Display.Color#_locked\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._locked = false;\r\n\r\n        /**\r\n         * An array containing the calculated color values for WebGL use.\r\n         *\r\n         * @name Phaser.Display.Color#gl\r\n         * @type {number[]}\r\n         * @since 3.0.0\r\n         */\r\n        this.gl = [ 0, 0, 0, 1 ];\r\n\r\n        /**\r\n         * Pre-calculated internal color value.\r\n         *\r\n         * @name Phaser.Display.Color#_color\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._color = 0;\r\n\r\n        /**\r\n         * Pre-calculated internal color32 value.\r\n         *\r\n         * @name Phaser.Display.Color#_color32\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._color32 = 0;\r\n\r\n        /**\r\n         * Pre-calculated internal color rgb string value.\r\n         *\r\n         * @name Phaser.Display.Color#_rgba\r\n         * @type {string}\r\n         * @private\r\n         * @default ''\r\n         * @since 3.0.0\r\n         */\r\n        this._rgba = '';\r\n\r\n        this.setTo(red, green, blue, alpha);\r\n    },\r\n\r\n    /**\r\n     * Sets this color to be transparent. Sets all values to zero.\r\n     *\r\n     * @method Phaser.Display.Color#transparent\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    transparent: function ()\r\n    {\r\n        this._locked = true;\r\n\r\n        this.red = 0;\r\n        this.green = 0;\r\n        this.blue = 0;\r\n        this.alpha = 0;\r\n\r\n        this._locked = false;\r\n\r\n        return this.update(true);\r\n    },\r\n\r\n    /**\r\n     * Sets the color of this Color component.\r\n     *\r\n     * @method Phaser.Display.Color#setTo\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} red - The red color value. A number between 0 and 255.\r\n     * @param {number} green - The green color value. A number between 0 and 255.\r\n     * @param {number} blue - The blue color value. A number between 0 and 255.\r\n     * @param {number} [alpha=255] - The alpha value. A number between 0 and 255.\r\n     * @param {boolean} [updateHSV=true] - Update the HSV values after setting the RGB values?\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    setTo: function (red, green, blue, alpha, updateHSV)\r\n    {\r\n        if (alpha === undefined) { alpha = 255; }\r\n        if (updateHSV === undefined) { updateHSV = true; }\r\n\r\n        this._locked = true;\r\n\r\n        this.red = red;\r\n        this.green = green;\r\n        this.blue = blue;\r\n        this.alpha = alpha;\r\n\r\n        this._locked = false;\r\n\r\n        return this.update(updateHSV);\r\n    },\r\n\r\n    /**\r\n     * Sets the red, green, blue and alpha GL values of this Color component.\r\n     *\r\n     * @method Phaser.Display.Color#setGLTo\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} red - The red color value. A number between 0 and 1.\r\n     * @param {number} green - The green color value. A number between 0 and 1.\r\n     * @param {number} blue - The blue color value. A number between 0 and 1.\r\n     * @param {number} [alpha=1] - The alpha value. A number between 0 and 1.\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    setGLTo: function (red, green, blue, alpha)\r\n    {\r\n        if (alpha === undefined) { alpha = 1; }\r\n\r\n        this._locked = true;\r\n\r\n        this.redGL = red;\r\n        this.greenGL = green;\r\n        this.blueGL = blue;\r\n        this.alphaGL = alpha;\r\n\r\n        this._locked = false;\r\n\r\n        return this.update(true);\r\n    },\r\n\r\n    /**\r\n     * Sets the color based on the color object given.\r\n     *\r\n     * @method Phaser.Display.Color#setFromRGB\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.Display.InputColorObject} color - An object containing `r`, `g`, `b` and optionally `a` values in the range 0 to 255.\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    setFromRGB: function (color)\r\n    {\r\n        this._locked = true;\r\n\r\n        this.red = color.r;\r\n        this.green = color.g;\r\n        this.blue = color.b;\r\n\r\n        if (color.hasOwnProperty('a'))\r\n        {\r\n            this.alpha = color.a;\r\n        }\r\n\r\n        this._locked = false;\r\n\r\n        return this.update(true);\r\n    },\r\n\r\n    /**\r\n     * Sets the color based on the hue, saturation and lightness values given.\r\n     *\r\n     * @method Phaser.Display.Color#setFromHSV\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} h - The hue, in the range 0 - 1. This is the base color.\r\n     * @param {number} s - The saturation, in the range 0 - 1. This controls how much of the hue will be in the final color, where 1 is fully saturated and 0 will give you white.\r\n     * @param {number} v - The value, in the range 0 - 1. This controls how dark the color is. Where 1 is as bright as possible and 0 is black.\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    setFromHSV: function (h, s, v)\r\n    {\r\n        return HSVToRGB(h, s, v, this);\r\n    },\r\n\r\n    /**\r\n     * Updates the internal cache values.\r\n     *\r\n     * @method Phaser.Display.Color#update\r\n     * @private\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    update: function (updateHSV)\r\n    {\r\n        if (updateHSV === undefined) { updateHSV = false; }\r\n\r\n        if (this._locked)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        var r = this.r;\r\n        var g = this.g;\r\n        var b = this.b;\r\n        var a = this.a;\r\n\r\n        this._color = GetColor(r, g, b);\r\n        this._color32 = GetColor32(r, g, b, a);\r\n        this._rgba = 'rgba(' + r + ',' + g + ',' + b + ',' + (a / 255) + ')';\r\n\r\n        if (updateHSV)\r\n        {\r\n            RGBToHSV(r, g, b, this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Updates the internal hsv cache values.\r\n     *\r\n     * @method Phaser.Display.Color#updateHSV\r\n     * @private\r\n     * @since 3.13.0\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    updateHSV: function ()\r\n    {\r\n        var r = this.r;\r\n        var g = this.g;\r\n        var b = this.b;\r\n\r\n        RGBToHSV(r, g, b, this);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns a new Color component using the values from this one.\r\n     *\r\n     * @method Phaser.Display.Color#clone\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Display.Color} A new Color object.\r\n     */\r\n    clone: function ()\r\n    {\r\n        return new Color(this.r, this.g, this.b, this.a);\r\n    },\r\n\r\n    /**\r\n     * Sets this Color object to be grayscaled based on the shade value given.\r\n     *\r\n     * @method Phaser.Display.Color#gray\r\n     * @since 3.13.0\r\n     * \r\n     * @param {number} shade - A value between 0 and 255.\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    gray: function (shade)\r\n    {\r\n        return this.setTo(shade, shade, shade);\r\n    },\r\n\r\n    /**\r\n     * Sets this Color object to be a random color between the `min` and `max` values given.\r\n     *\r\n     * @method Phaser.Display.Color#random\r\n     * @since 3.13.0\r\n     * \r\n     * @param {number} [min=0] - The minimum random color value. Between 0 and 255.\r\n     * @param {number} [max=255] - The maximum random color value. Between 0 and 255.\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    random: function (min, max)\r\n    {\r\n        if (min === undefined) { min = 0; }\r\n        if (max === undefined) { max = 255; }\r\n\r\n        var r = Math.floor(min + Math.random() * (max - min));\r\n        var g = Math.floor(min + Math.random() * (max - min));\r\n        var b = Math.floor(min + Math.random() * (max - min));\r\n\r\n        return this.setTo(r, g, b);\r\n    },\r\n\r\n    /**\r\n     * Sets this Color object to be a random grayscale color between the `min` and `max` values given.\r\n     *\r\n     * @method Phaser.Display.Color#randomGray\r\n     * @since 3.13.0\r\n     * \r\n     * @param {number} [min=0] - The minimum random color value. Between 0 and 255.\r\n     * @param {number} [max=255] - The maximum random color value. Between 0 and 255.\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    randomGray: function (min, max)\r\n    {\r\n        if (min === undefined) { min = 0; }\r\n        if (max === undefined) { max = 255; }\r\n\r\n        var s = Math.floor(min + Math.random() * (max - min));\r\n\r\n        return this.setTo(s, s, s);\r\n    },\r\n\r\n    /**\r\n     * Increase the saturation of this Color by the percentage amount given.\r\n     * The saturation is the amount of the base color in the hue.\r\n     *\r\n     * @method Phaser.Display.Color#saturate\r\n     * @since 3.13.0\r\n     * \r\n     * @param {number} amount - The percentage amount to change this color by. A value between 0 and 100.\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    saturate: function (amount)\r\n    {\r\n        this.s += amount / 100;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Decrease the saturation of this Color by the percentage amount given.\r\n     * The saturation is the amount of the base color in the hue.\r\n     *\r\n     * @method Phaser.Display.Color#desaturate\r\n     * @since 3.13.0\r\n     * \r\n     * @param {number} amount - The percentage amount to change this color by. A value between 0 and 100.\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    desaturate: function (amount)\r\n    {\r\n        this.s -= amount / 100;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Increase the lightness of this Color by the percentage amount given.\r\n     *\r\n     * @method Phaser.Display.Color#lighten\r\n     * @since 3.13.0\r\n     * \r\n     * @param {number} amount - The percentage amount to change this color by. A value between 0 and 100.\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    lighten: function (amount)\r\n    {\r\n        this.v += amount / 100;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Decrease the lightness of this Color by the percentage amount given.\r\n     *\r\n     * @method Phaser.Display.Color#darken\r\n     * @since 3.13.0\r\n     * \r\n     * @param {number} amount - The percentage amount to change this color by. A value between 0 and 100.\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    darken: function (amount)\r\n    {\r\n        this.v -= amount / 100;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Brighten this Color by the percentage amount given.\r\n     *\r\n     * @method Phaser.Display.Color#brighten\r\n     * @since 3.13.0\r\n     * \r\n     * @param {number} amount - The percentage amount to change this color by. A value between 0 and 100.\r\n     *\r\n     * @return {Phaser.Display.Color} This Color object.\r\n     */\r\n    brighten: function (amount)\r\n    {\r\n        var r = this.r;\r\n        var g = this.g;\r\n        var b = this.b;\r\n\r\n        r = Math.max(0, Math.min(255, r - Math.round(255 * - (amount / 100))));\r\n        g = Math.max(0, Math.min(255, g - Math.round(255 * - (amount / 100))));\r\n        b = Math.max(0, Math.min(255, b - Math.round(255 * - (amount / 100))));\r\n\r\n        return this.setTo(r, g, b);\r\n    },\r\n\r\n    /**\r\n     * The color of this Color component, not including the alpha channel.\r\n     *\r\n     * @name Phaser.Display.Color#color\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.0.0\r\n     */\r\n    color: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._color;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The color of this Color component, including the alpha channel.\r\n     *\r\n     * @name Phaser.Display.Color#color32\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.0.0\r\n     */\r\n    color32: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._color32;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The color of this Color component as a string which can be used in CSS color values.\r\n     *\r\n     * @name Phaser.Display.Color#rgba\r\n     * @type {string}\r\n     * @readonly\r\n     * @since 3.0.0\r\n     */\r\n    rgba: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._rgba;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The red color value, normalized to the range 0 to 1.\r\n     *\r\n     * @name Phaser.Display.Color#redGL\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    redGL: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.gl[0];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.gl[0] = Math.min(Math.abs(value), 1);\r\n\r\n            this.r = Math.floor(this.gl[0] * 255);\r\n\r\n            this.update(true);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The green color value, normalized to the range 0 to 1.\r\n     *\r\n     * @name Phaser.Display.Color#greenGL\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    greenGL: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.gl[1];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.gl[1] = Math.min(Math.abs(value), 1);\r\n\r\n            this.g = Math.floor(this.gl[1] * 255);\r\n\r\n            this.update(true);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The blue color value, normalized to the range 0 to 1.\r\n     *\r\n     * @name Phaser.Display.Color#blueGL\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    blueGL: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.gl[2];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.gl[2] = Math.min(Math.abs(value), 1);\r\n\r\n            this.b = Math.floor(this.gl[2] * 255);\r\n\r\n            this.update(true);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The alpha color value, normalized to the range 0 to 1.\r\n     *\r\n     * @name Phaser.Display.Color#alphaGL\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    alphaGL: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.gl[3];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.gl[3] = Math.min(Math.abs(value), 1);\r\n\r\n            this.a = Math.floor(this.gl[3] * 255);\r\n\r\n            this.update();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The red color value, normalized to the range 0 to 255.\r\n     *\r\n     * @name Phaser.Display.Color#red\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    red: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.r;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            value = Math.floor(Math.abs(value));\r\n\r\n            this.r = Math.min(value, 255);\r\n\r\n            this.gl[0] = value / 255;\r\n\r\n            this.update(true);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The green color value, normalized to the range 0 to 255.\r\n     *\r\n     * @name Phaser.Display.Color#green\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    green: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.g;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            value = Math.floor(Math.abs(value));\r\n\r\n            this.g = Math.min(value, 255);\r\n\r\n            this.gl[1] = value / 255;\r\n\r\n            this.update(true);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The blue color value, normalized to the range 0 to 255.\r\n     *\r\n     * @name Phaser.Display.Color#blue\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    blue: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.b;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            value = Math.floor(Math.abs(value));\r\n\r\n            this.b = Math.min(value, 255);\r\n\r\n            this.gl[2] = value / 255;\r\n\r\n            this.update(true);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The alpha color value, normalized to the range 0 to 255.\r\n     *\r\n     * @name Phaser.Display.Color#alpha\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    alpha: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.a;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            value = Math.floor(Math.abs(value));\r\n\r\n            this.a = Math.min(value, 255);\r\n\r\n            this.gl[3] = value / 255;\r\n\r\n            this.update();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The hue color value. A number between 0 and 1.\r\n     * This is the base color.\r\n     *\r\n     * @name Phaser.Display.Color#h\r\n     * @type {number}\r\n     * @since 3.13.0\r\n     */\r\n    h: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._h;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._h = value;\r\n\r\n            HSVToRGB(value, this._s, this._v, this);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The saturation color value. A number between 0 and 1.\r\n     * This controls how much of the hue will be in the final color, where 1 is fully saturated and 0 will give you white.\r\n     *\r\n     * @name Phaser.Display.Color#s\r\n     * @type {number}\r\n     * @since 3.13.0\r\n     */\r\n    s: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._s;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._s = value;\r\n\r\n            HSVToRGB(this._h, value, this._v, this);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The lightness color value. A number between 0 and 1.\r\n     * This controls how dark the color is. Where 1 is as bright as possible and 0 is black.\r\n     *\r\n     * @name Phaser.Display.Color#v\r\n     * @type {number}\r\n     * @since 3.13.0\r\n     */\r\n    v: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._v;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._v = value;\r\n\r\n            HSVToRGB(this._h, this._s, value, this);\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Color;\r\n\n\n/***/ }),\n\n/***/ 92728:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetColor = __webpack_require__(37589);\r\n\r\n/**\r\n * Return an array of Colors in a Color Spectrum.\r\n *\r\n * The spectrum colors flow in the order: red, yellow, green, blue.\r\n *\r\n * By default this function will return an array with 1024 elements in.\r\n *\r\n * However, you can reduce this to a smaller quantity if needed, by specitying the `limit` parameter.\r\n *\r\n * @function Phaser.Display.Color.ColorSpectrum\r\n * @since 3.50.0\r\n *\r\n * @param {number} [limit=1024] - How many colors should be returned? The maximum is 1024 but you can set a smaller quantity if required.\r\n *\r\n * @return {Phaser.Types.Display.ColorObject[]} An array containing `limit` parameter number of elements, where each contains a Color Object.\r\n */\r\nvar ColorSpectrum = function (limit)\r\n{\r\n    if (limit === undefined) { limit = 1024; }\r\n\r\n    var colors = [];\r\n\r\n    var range = 255;\r\n\r\n    var i;\r\n    var r = 255;\r\n    var g = 0;\r\n    var b = 0;\r\n\r\n    //  Red to Yellow\r\n    for (i = 0; i <= range; i++)\r\n    {\r\n        colors.push({ r: r, g: i, b: b, color: GetColor(r, i, b) });\r\n    }\r\n\r\n    g = 255;\r\n\r\n    //  Yellow to Green\r\n    for (i = range; i >= 0; i--)\r\n    {\r\n        colors.push({ r: i, g: g, b: b, color: GetColor(i, g, b) });\r\n    }\r\n\r\n    r = 0;\r\n\r\n    //  Green to Blue\r\n    for (i = 0; i <= range; i++, g--)\r\n    {\r\n        colors.push({ r: r, g: g, b: i, color: GetColor(r, g, i) });\r\n    }\r\n\r\n    g = 0;\r\n    b = 255;\r\n\r\n    //  Blue to Red\r\n    for (i = 0; i <= range; i++, b--, r++)\r\n    {\r\n        colors.push({ r: r, g: g, b: b, color: GetColor(r, g, b) });\r\n    }\r\n\r\n    if (limit === 1024)\r\n    {\r\n        return colors;\r\n    }\r\n    else\r\n    {\r\n        var out = [];\r\n\r\n        var t = 0;\r\n        var inc = 1024 / limit;\r\n\r\n        for (i = 0; i < limit; i++)\r\n        {\r\n            out.push(colors[Math.floor(t)]);\r\n\r\n            t += inc;\r\n        }\r\n\r\n        return out;\r\n    }\r\n};\r\n\r\nmodule.exports = ColorSpectrum;\r\n\n\n/***/ }),\n\n/***/ 91588:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Converts the given color value into an Object containing r,g,b and a properties.\r\n *\r\n * @function Phaser.Display.Color.ColorToRGBA\r\n * @since 3.0.0\r\n *\r\n * @param {number} color - A color value, optionally including the alpha value.\r\n *\r\n * @return {Phaser.Types.Display.ColorObject} An object containing the parsed color values.\r\n */\r\nvar ColorToRGBA = function (color)\r\n{\r\n    var output = {\r\n        r: color >> 16 & 0xFF,\r\n        g: color >> 8 & 0xFF,\r\n        b: color & 0xFF,\r\n        a: 255\r\n    };\r\n\r\n    if (color > 16777215)\r\n    {\r\n        output.a = color >>> 24;\r\n    }\r\n\r\n    return output;\r\n};\r\n\r\nmodule.exports = ColorToRGBA;\r\n\n\n/***/ }),\n\n/***/ 62957:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Returns a string containing a hex representation of the given color component.\r\n *\r\n * @function Phaser.Display.Color.ComponentToHex\r\n * @since 3.0.0\r\n *\r\n * @param {number} color - The color channel to get the hex value for, must be a value between 0 and 255.\r\n *\r\n * @return {string} A string of length 2 characters, i.e. 255 = ff, 100 = 64.\r\n */\r\nvar ComponentToHex = function (color)\r\n{\r\n    var hex = color.toString(16);\r\n\r\n    return (hex.length === 1) ? '0' + hex : hex;\r\n};\r\n\r\nmodule.exports = ComponentToHex;\r\n\n\n/***/ }),\n\n/***/ 37589:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Given 3 separate color values this will return an integer representation of it.\r\n *\r\n * @function Phaser.Display.Color.GetColor\r\n * @since 3.0.0\r\n *\r\n * @param {number} red - The red color value. A number between 0 and 255.\r\n * @param {number} green - The green color value. A number between 0 and 255.\r\n * @param {number} blue - The blue color value. A number between 0 and 255.\r\n *\r\n * @return {number} The combined color value.\r\n */\r\nvar GetColor = function (red, green, blue)\r\n{\r\n    return red << 16 | green << 8 | blue;\r\n};\r\n\r\nmodule.exports = GetColor;\r\n\n\n/***/ }),\n\n/***/ 1000:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Given an alpha and 3 color values this will return an integer representation of it.\r\n *\r\n * @function Phaser.Display.Color.GetColor32\r\n * @since 3.0.0\r\n *\r\n * @param {number} red - The red color value. A number between 0 and 255.\r\n * @param {number} green - The green color value. A number between 0 and 255.\r\n * @param {number} blue - The blue color value. A number between 0 and 255.\r\n * @param {number} alpha - The alpha color value. A number between 0 and 255.\r\n *\r\n * @return {number} The combined color value.\r\n */\r\nvar GetColor32 = function (red, green, blue, alpha)\r\n{\r\n    return alpha << 24 | red << 16 | green << 8 | blue;\r\n};\r\n\r\nmodule.exports = GetColor32;\r\n\n\n/***/ }),\n\n/***/ 62183:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Color = __webpack_require__(40987);\r\nvar HueToComponent = __webpack_require__(89528);\r\n\r\n/**\r\n * Converts HSL (hue, saturation and lightness) values to a Phaser Color object.\r\n *\r\n * @function Phaser.Display.Color.HSLToColor\r\n * @since 3.0.0\r\n *\r\n * @param {number} h - The hue value in the range 0 to 1.\r\n * @param {number} s - The saturation value in the range 0 to 1.\r\n * @param {number} l - The lightness value in the range 0 to 1.\r\n *\r\n * @return {Phaser.Display.Color} A Color object created from the results of the h, s and l values.\r\n */\r\nvar HSLToColor = function (h, s, l)\r\n{\r\n    // achromatic by default\r\n    var r = l;\r\n    var g = l;\r\n    var b = l;\r\n\r\n    if (s !== 0)\r\n    {\r\n        var q = (l < 0.5) ? l * (1 + s) : l + s - l * s;\r\n        var p = 2 * l - q;\r\n\r\n        r = HueToComponent(p, q, h + 1 / 3);\r\n        g = HueToComponent(p, q, h);\r\n        b = HueToComponent(p, q, h - 1 / 3);\r\n    }\r\n\r\n    var color = new Color();\r\n\r\n    return color.setGLTo(r, g, b, 1);\r\n};\r\n\r\nmodule.exports = HSLToColor;\r\n\n\n/***/ }),\n\n/***/ 27939:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar HSVToRGB = __webpack_require__(7537);\r\n\r\n/**\r\n * Generates an HSV color wheel which is an array of 360 Color objects, for each step of the wheel.\r\n *\r\n * @function Phaser.Display.Color.HSVColorWheel\r\n * @since 3.0.0\r\n *\r\n * @param {number} [s=1] - The saturation, in the range 0 - 1.\r\n * @param {number} [v=1] - The value, in the range 0 - 1.\r\n *\r\n * @return {Phaser.Types.Display.ColorObject[]} An array containing 360 ColorObject elements, where each element contains a Color object corresponding to the color at that point in the HSV color wheel.\r\n */\r\nvar HSVColorWheel = function (s, v)\r\n{\r\n    if (s === undefined) { s = 1; }\r\n    if (v === undefined) { v = 1; }\r\n\r\n    var colors = [];\r\n\r\n    for (var c = 0; c <= 359; c++)\r\n    {\r\n        colors.push(HSVToRGB(c / 359, s, v));\r\n    }\r\n\r\n    return colors;\r\n};\r\n\r\nmodule.exports = HSVColorWheel;\r\n\n\n/***/ }),\n\n/***/ 7537:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetColor = __webpack_require__(37589);\r\n\r\n/**\r\n * RGB space conversion.\r\n *\r\n * @ignore\r\n *\r\n * @param {number} n - The value to convert.\r\n * @param {number} h - The h value.\r\n * @param {number} s - The s value.\r\n * @param {number} v - The v value.\r\n *\r\n * @return {number} The converted value.\r\n */\r\nfunction ConvertValue (n, h, s, v)\r\n{\r\n    var k = (n + h * 6) % 6;\r\n\r\n    var min = Math.min(k, 4 - k, 1);\r\n\r\n    return Math.round(255 * (v - v * s * Math.max(0, min)));\r\n}\r\n\r\n/**\r\n * Converts a HSV (hue, saturation and value) color set to RGB.\r\n *\r\n * Conversion formula from https://en.wikipedia.org/wiki/HSL_and_HSV\r\n *\r\n * Assumes HSV values are contained in the set [0, 1].\r\n *\r\n * @function Phaser.Display.Color.HSVToRGB\r\n * @since 3.0.0\r\n *\r\n * @param {number} h - The hue, in the range 0 - 1. This is the base color.\r\n * @param {number} s - The saturation, in the range 0 - 1. This controls how much of the hue will be in the final color, where 1 is fully saturated and 0 will give you white.\r\n * @param {number} v - The value, in the range 0 - 1. This controls how dark the color is. Where 1 is as bright as possible and 0 is black.\r\n * @param {(Phaser.Types.Display.ColorObject|Phaser.Display.Color)} [out] - A Color object to store the results in. If not given a new ColorObject will be created.\r\n *\r\n * @return {(Phaser.Types.Display.ColorObject|Phaser.Display.Color)} An object with the red, green and blue values set in the r, g and b properties.\r\n */\r\nvar HSVToRGB = function (h, s, v, out)\r\n{\r\n    if (s === undefined) { s = 1; }\r\n    if (v === undefined) { v = 1; }\r\n\r\n    var r = ConvertValue(5, h, s, v);\r\n    var g = ConvertValue(3, h, s, v);\r\n    var b = ConvertValue(1, h, s, v);\r\n\r\n    if (!out)\r\n    {\r\n        return { r: r, g: g, b: b, color: GetColor(r, g, b) };\r\n    }\r\n    else if (out.setTo)\r\n    {\r\n        return out.setTo(r, g, b, out.alpha, true);\r\n    }\r\n    else\r\n    {\r\n        out.r = r;\r\n        out.g = g;\r\n        out.b = b;\r\n        out.color = GetColor(r, g, b);\r\n\r\n        return out;\r\n    }\r\n};\r\n\r\nmodule.exports = HSVToRGB;\r\n\n\n/***/ }),\n\n/***/ 70238:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Color = __webpack_require__(40987);\r\n\r\n/**\r\n * Converts a hex string into a Phaser Color object.\r\n * \r\n * The hex string can supplied as `'#0033ff'` or the short-hand format of `'#03f'`; it can begin with an optional \"#\" or \"0x\", or be unprefixed.\r\n *\r\n * An alpha channel is _not_ supported.\r\n *\r\n * @function Phaser.Display.Color.HexStringToColor\r\n * @since 3.0.0\r\n *\r\n * @param {string} hex - The hex color value to convert, such as `#0033ff` or the short-hand format: `#03f`.\r\n *\r\n * @return {Phaser.Display.Color} A Color object populated by the values of the given string.\r\n */\r\nvar HexStringToColor = function (hex)\r\n{\r\n    var color = new Color();\r\n\r\n    // Expand shorthand form (e.g. \"03F\") to full form (e.g. \"0033FF\")\r\n    hex = hex.replace(/^(?:#|0x)?([a-f\\d])([a-f\\d])([a-f\\d])$/i, function (m, r, g, b)\r\n    {\r\n        return r + r + g + g + b + b;\r\n    });\r\n\r\n    var result = (/^(?:#|0x)?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i).exec(hex);\r\n\r\n    if (result)\r\n    {\r\n        var r = parseInt(result[1], 16);\r\n        var g = parseInt(result[2], 16);\r\n        var b = parseInt(result[3], 16);\r\n\r\n        color.setTo(r, g, b);\r\n    }\r\n\r\n    return color;\r\n};\r\n\r\nmodule.exports = HexStringToColor;\r\n\n\n/***/ }),\n\n/***/ 89528:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Converts a hue to an RGB color.\r\n * Based on code by Michael Jackson (https://github.com/mjijackson)\r\n *\r\n * @function Phaser.Display.Color.HueToComponent\r\n * @since 3.0.0\r\n *\r\n * @param {number} p\r\n * @param {number} q\r\n * @param {number} t\r\n *\r\n * @return {number} The combined color value.\r\n */\r\nvar HueToComponent = function (p, q, t)\r\n{\r\n    if (t < 0)\r\n    {\r\n        t += 1;\r\n    }\r\n\r\n    if (t > 1)\r\n    {\r\n        t -= 1;\r\n    }\r\n\r\n    if (t < 1 / 6)\r\n    {\r\n        return p + (q - p) * 6 * t;\r\n    }\r\n\r\n    if (t < 1 / 2)\r\n    {\r\n        return q;\r\n    }\r\n\r\n    if (t < 2 / 3)\r\n    {\r\n        return p + (q - p) * (2 / 3 - t) * 6;\r\n    }\r\n\r\n    return p;\r\n};\r\n\r\nmodule.exports = HueToComponent;\r\n\n\n/***/ }),\n\n/***/ 30100:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Color = __webpack_require__(40987);\r\nvar IntegerToRGB = __webpack_require__(90664);\r\n\r\n/**\r\n * Converts the given color value into an instance of a Color object.\r\n *\r\n * @function Phaser.Display.Color.IntegerToColor\r\n * @since 3.0.0\r\n *\r\n * @param {number} input - The color value to convert into a Color object.\r\n *\r\n * @return {Phaser.Display.Color} A Color object.\r\n */\r\nvar IntegerToColor = function (input)\r\n{\r\n    var rgb = IntegerToRGB(input);\r\n\r\n    return new Color(rgb.r, rgb.g, rgb.b, rgb.a);\r\n};\r\n\r\nmodule.exports = IntegerToColor;\r\n\n\n/***/ }),\n\n/***/ 90664:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Return the component parts of a color as an Object with the properties alpha, red, green, blue.\r\n *\r\n * Alpha will only be set if it exists in the given color (0xAARRGGBB)\r\n *\r\n * @function Phaser.Display.Color.IntegerToRGB\r\n * @since 3.0.0\r\n *\r\n * @param {number} input - The color value to convert into a Color object.\r\n *\r\n * @return {Phaser.Types.Display.ColorObject} An object with the red, green and blue values set in the r, g and b properties.\r\n */\r\nvar IntegerToRGB = function (color)\r\n{\r\n    if (color > 16777215)\r\n    {\r\n        //  The color value has an alpha component\r\n        return {\r\n            a: color >>> 24,\r\n            r: color >> 16 & 0xFF,\r\n            g: color >> 8 & 0xFF,\r\n            b: color & 0xFF\r\n        };\r\n    }\r\n    else\r\n    {\r\n        return {\r\n            a: 255,\r\n            r: color >> 16 & 0xFF,\r\n            g: color >> 8 & 0xFF,\r\n            b: color & 0xFF\r\n        };\r\n    }\r\n};\r\n\r\nmodule.exports = IntegerToRGB;\r\n\n\n/***/ }),\n\n/***/ 13699:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Linear = __webpack_require__(28915);\r\n\r\n/**\r\n * @namespace Phaser.Display.Color.Interpolate\r\n * @memberof Phaser.Display.Color\r\n * @since 3.0.0\r\n */\r\n\r\n/**\r\n * Interpolates between the two given color ranges over the length supplied.\r\n *\r\n * @function Phaser.Display.Color.Interpolate.RGBWithRGB\r\n * @memberof Phaser.Display.Color.Interpolate\r\n * @static\r\n * @since 3.0.0\r\n *\r\n * @param {number} r1 - Red value.\r\n * @param {number} g1 - Blue value.\r\n * @param {number} b1 - Green value.\r\n * @param {number} r2 - Red value.\r\n * @param {number} g2 - Blue value.\r\n * @param {number} b2 - Green value.\r\n * @param {number} [length=100] - Distance to interpolate over.\r\n * @param {number} [index=0] - Index to start from.\r\n *\r\n * @return {Phaser.Types.Display.ColorObject} An object containing the interpolated color values.\r\n */\r\nvar RGBWithRGB = function (r1, g1, b1, r2, g2, b2, length, index)\r\n{\r\n    if (length === undefined) { length = 100; }\r\n    if (index === undefined) { index = 0; }\r\n\r\n    var t = index / length;\r\n\r\n    return {\r\n        r: Linear(r1, r2, t),\r\n        g: Linear(g1, g2, t),\r\n        b: Linear(b1, b2, t)\r\n    };\r\n};\r\n\r\n/**\r\n * Interpolates between the two given color objects over the length supplied.\r\n *\r\n * @function Phaser.Display.Color.Interpolate.ColorWithColor\r\n * @memberof Phaser.Display.Color.Interpolate\r\n * @static\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Display.Color} color1 - The first Color object.\r\n * @param {Phaser.Display.Color} color2 - The second Color object.\r\n * @param {number} [length=100] - Distance to interpolate over.\r\n * @param {number} [index=0] - Index to start from.\r\n *\r\n * @return {Phaser.Types.Display.ColorObject} An object containing the interpolated color values.\r\n */\r\nvar ColorWithColor = function (color1, color2, length, index)\r\n{\r\n    if (length === undefined) { length = 100; }\r\n    if (index === undefined) { index = 0; }\r\n\r\n    return RGBWithRGB(color1.r, color1.g, color1.b, color2.r, color2.g, color2.b, length, index);\r\n};\r\n\r\n/**\r\n * Interpolates between the Color object and color values over the length supplied.\r\n *\r\n * @function Phaser.Display.Color.Interpolate.ColorWithRGB\r\n * @memberof Phaser.Display.Color.Interpolate\r\n * @static\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Display.Color} color1 - The first Color object.\r\n * @param {number} r - Red value.\r\n * @param {number} g - Blue value.\r\n * @param {number} b - Green value.\r\n * @param {number} [length=100] - Distance to interpolate over.\r\n * @param {number} [index=0] - Index to start from.\r\n *\r\n * @return {Phaser.Types.Display.ColorObject} An object containing the interpolated color values.\r\n */\r\nvar ColorWithRGB = function (color, r, g, b, length, index)\r\n{\r\n    if (length === undefined) { length = 100; }\r\n    if (index === undefined) { index = 0; }\r\n\r\n    return RGBWithRGB(color.r, color.g, color.b, r, g, b, length, index);\r\n};\r\n\r\nmodule.exports = {\r\n\r\n    RGBWithRGB: RGBWithRGB,\r\n    ColorWithRGB: ColorWithRGB,\r\n    ColorWithColor: ColorWithColor\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 68957:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Color = __webpack_require__(40987);\r\n\r\n/**\r\n * Converts an object containing `r`, `g`, `b` and `a` properties into a Color class instance.\r\n *\r\n * @function Phaser.Display.Color.ObjectToColor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.Display.InputColorObject} input - An object containing `r`, `g`, `b` and `a` properties in the range 0 to 255.\r\n *\r\n * @return {Phaser.Display.Color} A Color object.\r\n */\r\nvar ObjectToColor = function (input)\r\n{\r\n    return new Color(input.r, input.g, input.b, input.a);\r\n};\r\n\r\nmodule.exports = ObjectToColor;\r\n\n\n/***/ }),\n\n/***/ 87388:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Color = __webpack_require__(40987);\r\n\r\n/**\r\n * Converts a CSS 'web' string into a Phaser Color object.\r\n * \r\n * The web string can be in the format `'rgb(r,g,b)'` or `'rgba(r,g,b,a)'` where r/g/b are in the range [0..255] and a is in the range [0..1].\r\n *\r\n * @function Phaser.Display.Color.RGBStringToColor\r\n * @since 3.0.0\r\n *\r\n * @param {string} rgb - The CSS format color string, using the `rgb` or `rgba` format.\r\n *\r\n * @return {Phaser.Display.Color} A Color object.\r\n */\r\nvar RGBStringToColor = function (rgb)\r\n{\r\n    var color = new Color();\r\n\r\n    var result = (/^rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(?:,\\s*(\\d+(?:\\.\\d+)?))?\\s*\\)$/).exec(rgb.toLowerCase());\r\n\r\n    if (result)\r\n    {\r\n        var r = parseInt(result[1], 10);\r\n        var g = parseInt(result[2], 10);\r\n        var b = parseInt(result[3], 10);\r\n        var a = (result[4] !== undefined) ? parseFloat(result[4]) : 1;\r\n\r\n        color.setTo(r, g, b, a * 255);\r\n    }\r\n\r\n    return color;\r\n};\r\n\r\nmodule.exports = RGBStringToColor;\r\n\n\n/***/ }),\n\n/***/ 87837:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Converts an RGB color value to HSV (hue, saturation and value).\r\n * Conversion formula from http://en.wikipedia.org/wiki/HSL_color_space.\r\n * Assumes RGB values are contained in the set [0, 255] and returns h, s and v in the set [0, 1].\r\n * Based on code by Michael Jackson (https://github.com/mjijackson)\r\n *\r\n * @function Phaser.Display.Color.RGBToHSV\r\n * @since 3.0.0\r\n *\r\n * @param {number} r - The red color value. A number between 0 and 255.\r\n * @param {number} g - The green color value. A number between 0 and 255.\r\n * @param {number} b - The blue color value. A number between 0 and 255.\r\n * @param {(Phaser.Types.Display.HSVColorObject|Phaser.Display.Color)} [out] - An object to store the color values in. If not given an HSV Color Object will be created.\r\n *\r\n * @return {(Phaser.Types.Display.HSVColorObject|Phaser.Display.Color)} An object with the properties `h`, `s` and `v` set.\r\n */\r\nvar RGBToHSV = function (r, g, b, out)\r\n{\r\n    if (out === undefined) { out = { h: 0, s: 0, v: 0 }; }\r\n\r\n    r /= 255;\r\n    g /= 255;\r\n    b /= 255;\r\n\r\n    var min = Math.min(r, g, b);\r\n    var max = Math.max(r, g, b);\r\n    var d = max - min;\r\n\r\n    // achromatic by default\r\n    var h = 0;\r\n    var s = (max === 0) ? 0 : d / max;\r\n    var v = max;\r\n\r\n    if (max !== min)\r\n    {\r\n        if (max === r)\r\n        {\r\n            h = (g - b) / d + ((g < b) ? 6 : 0);\r\n        }\r\n        else if (max === g)\r\n        {\r\n            h = (b - r) / d + 2;\r\n        }\r\n        else if (max === b)\r\n        {\r\n            h = (r - g) / d + 4;\r\n        }\r\n\r\n        h /= 6;\r\n    }\r\n\r\n    if (out.hasOwnProperty('_h'))\r\n    {\r\n        out._h = h;\r\n        out._s = s;\r\n        out._v = v;\r\n    }\r\n    else\r\n    {\r\n        out.h = h;\r\n        out.s = s;\r\n        out.v = v;\r\n    }\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = RGBToHSV;\r\n\n\n/***/ }),\n\n/***/ 75723:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar ComponentToHex = __webpack_require__(62957);\r\n\r\n/**\r\n * Converts the color values into an HTML compatible color string, prefixed with either `#` or `0x`.\r\n *\r\n * @function Phaser.Display.Color.RGBToString\r\n * @since 3.0.0\r\n *\r\n * @param {number} r - The red color value. A number between 0 and 255.\r\n * @param {number} g - The green color value. A number between 0 and 255.\r\n * @param {number} b - The blue color value. A number between 0 and 255.\r\n * @param {number} [a=255] - The alpha value. A number between 0 and 255.\r\n * @param {string} [prefix=#] - The prefix of the string. Either `#` or `0x`.\r\n *\r\n * @return {string} A string-based representation of the color values.\r\n */\r\nvar RGBToString = function (r, g, b, a, prefix)\r\n{\r\n    if (a === undefined) { a = 255; }\r\n    if (prefix === undefined) { prefix = '#'; }\r\n\r\n    if (prefix === '#')\r\n    {\r\n        return '#' + ((1 << 24) + (r << 16) + (g << 8) + b).toString(16).slice(1, 7);\r\n    }\r\n    else\r\n    {\r\n        return '0x' + ComponentToHex(a) + ComponentToHex(r) + ComponentToHex(g) + ComponentToHex(b);\r\n    }\r\n};\r\n\r\nmodule.exports = RGBToString;\r\n\n\n/***/ }),\n\n/***/ 85386:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Between = __webpack_require__(30976);\r\nvar Color = __webpack_require__(40987);\r\n\r\n/**\r\n * Creates a new Color object where the r, g, and b values have been set to random values\r\n * based on the given min max values.\r\n *\r\n * @function Phaser.Display.Color.RandomRGB\r\n * @since 3.0.0\r\n *\r\n * @param {number} [min=0] - The minimum value to set the random range from (between 0 and 255)\r\n * @param {number} [max=255] - The maximum value to set the random range from (between 0 and 255)\r\n *\r\n * @return {Phaser.Display.Color} A Color object.\r\n */\r\nvar RandomRGB = function (min, max)\r\n{\r\n    if (min === undefined) { min = 0; }\r\n    if (max === undefined) { max = 255; }\r\n\r\n    return new Color(Between(min, max), Between(min, max), Between(min, max));\r\n};\r\n\r\nmodule.exports = RandomRGB;\r\n\n\n/***/ }),\n\n/***/ 80333:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar HexStringToColor = __webpack_require__(70238);\r\nvar IntegerToColor = __webpack_require__(30100);\r\nvar ObjectToColor = __webpack_require__(68957);\r\nvar RGBStringToColor = __webpack_require__(87388);\r\n\r\n/**\r\n * Converts the given source color value into an instance of a Color class.\r\n * The value can be either a string, prefixed with `rgb` or a hex string, a number or an Object.\r\n *\r\n * @function Phaser.Display.Color.ValueToColor\r\n * @since 3.0.0\r\n *\r\n * @param {(string|number|Phaser.Types.Display.InputColorObject)} input - The source color value to convert.\r\n *\r\n * @return {Phaser.Display.Color} A Color object.\r\n */\r\nvar ValueToColor = function (input)\r\n{\r\n    var t = typeof input;\r\n\r\n    switch (t)\r\n    {\r\n        case 'string':\r\n\r\n            if (input.substr(0, 3).toLowerCase() === 'rgb')\r\n            {\r\n                return RGBStringToColor(input);\r\n            }\r\n            else\r\n            {\r\n                return HexStringToColor(input);\r\n            }\r\n\r\n        case 'number':\r\n\r\n            return IntegerToColor(input);\r\n\r\n        case 'object':\r\n\r\n            return ObjectToColor(input);\r\n    }\r\n};\r\n\r\nmodule.exports = ValueToColor;\r\n\n\n/***/ }),\n\n/***/ 3956:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Color = __webpack_require__(40987);\r\n\r\nColor.ColorSpectrum = __webpack_require__(92728);\r\nColor.ColorToRGBA = __webpack_require__(91588);\r\nColor.ComponentToHex = __webpack_require__(62957);\r\nColor.GetColor = __webpack_require__(37589);\r\nColor.GetColor32 = __webpack_require__(1000);\r\nColor.HexStringToColor = __webpack_require__(70238);\r\nColor.HSLToColor = __webpack_require__(62183);\r\nColor.HSVColorWheel = __webpack_require__(27939);\r\nColor.HSVToRGB = __webpack_require__(7537);\r\nColor.HueToComponent = __webpack_require__(89528);\r\nColor.IntegerToColor = __webpack_require__(30100);\r\nColor.IntegerToRGB = __webpack_require__(90664);\r\nColor.Interpolate = __webpack_require__(13699);\r\nColor.ObjectToColor = __webpack_require__(68957);\r\nColor.RandomRGB = __webpack_require__(85386);\r\nColor.RGBStringToColor = __webpack_require__(87388);\r\nColor.RGBToHSV = __webpack_require__(87837);\r\nColor.RGBToString = __webpack_require__(75723);\r\nColor.ValueToColor = __webpack_require__(80333);\r\n\r\nmodule.exports = Color;\r\n\n\n/***/ }),\n\n/***/ 27460:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Display\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    Align: __webpack_require__(71926),\r\n    BaseShader: __webpack_require__(73894),\r\n    Bounds: __webpack_require__(58724),\r\n    Canvas: __webpack_require__(26253),\r\n    Color: __webpack_require__(3956),\r\n    ColorMatrix: __webpack_require__(89422),\r\n    Masks: __webpack_require__(69781),\r\n    RGB: __webpack_require__(51767)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 6858:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * @classdesc\r\n * A Bitmap Mask combines the alpha (opacity) of a masked pixel with the alpha of another pixel.\r\n * Unlike the Geometry Mask, which is a clipping path, a Bitmap Mask behaves like an alpha mask,\r\n * not a clipping path. It is only available when using the WebGL Renderer.\r\n *\r\n * A Bitmap Mask can use any Game Object or Dynamic Texture to determine the alpha of each pixel of the masked Game Object(s).\r\n * For any given point of a masked Game Object's texture, the pixel's alpha will be multiplied by the alpha\r\n * of the pixel at the same position in the Bitmap Mask's Game Object. The color of the pixel from the\r\n * Bitmap Mask doesn't matter.\r\n *\r\n * For example, if a pure blue pixel with an alpha of 0.95 is masked with a pure red pixel with an\r\n * alpha of 0.5, the resulting pixel will be pure blue with an alpha of 0.475. Naturally, this means\r\n * that a pixel in the mask with an alpha of 0 will hide the corresponding pixel in all masked Game Objects.\r\n * A pixel with an alpha of 1 in the masked Game Object will receive the same alpha as the\r\n * corresponding pixel in the mask.\r\n *\r\n * Note: You cannot combine Bitmap Masks and Blend Modes on the same Game Object. You can, however,\r\n * combine Geometry Masks and Blend Modes together.\r\n *\r\n * The Bitmap Mask's location matches the location of its Game Object, not the location of the\r\n * masked objects. Moving or transforming the underlying Game Object will change the mask\r\n * (and affect the visibility of any masked objects), whereas moving or transforming a masked object\r\n * will not affect the mask.\r\n *\r\n * The Bitmap Mask will not render its Game Object by itself. If the Game Object is not in a\r\n * Scene's display list, it will only be used for the mask and its full texture will not be directly\r\n * visible. Adding the underlying Game Object to a Scene will not cause any problems - it will\r\n * render as a normal Game Object and will also serve as a mask.\r\n *\r\n * @class BitmapMask\r\n * @memberof Phaser.Display.Masks\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this mask is being added.\r\n * @param {(Phaser.GameObjects.GameObject|Phaser.Textures.DynamicTexture)} [maskObject] - The Game Object or Dynamic Texture that will be used as the mask. If `null` it will generate an Image Game Object using the rest of the arguments.\r\n * @param {number} [x] - If creating a Game Object, the horizontal position in the world.\r\n * @param {number} [y] - If creating a Game Object, the vertical position in the world.\r\n * @param {(string|Phaser.Textures.Texture)} [texture] - If creating a Game Object, the key, or instance of the Texture it will use to render with, as stored in the Texture Manager.\r\n * @param {(string|number|Phaser.Textures.Frame)} [frame] - If creating a Game Object, an optional frame from the Texture this Game Object is rendering with.\r\n */\r\nvar BitmapMask = new Class({\r\n\r\n    initialize:\r\n\r\n    function BitmapMask (scene, maskObject, x, y, texture, frame)\r\n    {\r\n        if (!maskObject)\r\n        {\r\n            maskObject = scene.sys.make.image({ x: x, y: y, key: texture, frame: frame, add: false });\r\n        }\r\n\r\n        /**\r\n         * The Game Object that is used as the mask. Must use a texture, such as a Sprite.\r\n         *\r\n         * @name Phaser.Display.Masks.BitmapMask#bitmapMask\r\n         * @type {(Phaser.GameObjects.GameObject|Phaser.Textures.DynamicTexture)}\r\n         * @since 3.0.0\r\n         */\r\n        this.bitmapMask = maskObject;\r\n\r\n        /**\r\n         * Whether to invert the masks alpha.\r\n         *\r\n         * If `true`, the alpha of the masking pixel will be inverted before it's multiplied with the masked pixel.\r\n         *\r\n         * Essentially, this means that a masked area will be visible only if the corresponding area in the mask is invisible.\r\n         *\r\n         * @name Phaser.Display.Masks.BitmapMask#invertAlpha\r\n         * @type {boolean}\r\n         * @since 3.1.2\r\n         */\r\n        this.invertAlpha = false;\r\n\r\n        /**\r\n         * Is this mask a stencil mask? This is false by default and should not be changed.\r\n         *\r\n         * @name Phaser.Display.Masks.BitmapMask#isStencil\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @since 3.17.0\r\n         */\r\n        this.isStencil = false;\r\n    },\r\n\r\n    /**\r\n     * Sets a new Game Object or Dynamic Texture for this Bitmap Mask to use.\r\n     *\r\n     * If a Game Object it must have a texture, such as a Sprite.\r\n     *\r\n     * You can update the source of the mask as often as you like.\r\n     *\r\n     * @method Phaser.Display.Masks.BitmapMask#setBitmap\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(Phaser.GameObjects.GameObject|Phaser.Textures.DynamicTexture)} maskObject - The Game Object or Dynamic Texture that will be used as the mask. If a Game Object, it must have a texture, such as a Sprite.\r\n     */\r\n    setBitmap: function (maskObject)\r\n    {\r\n        this.bitmapMask = maskObject;\r\n    },\r\n\r\n    /**\r\n     * Prepares the WebGL Renderer to render a Game Object with this mask applied.\r\n     *\r\n     * This renders the masking Game Object to the mask framebuffer and switches to the main framebuffer so that the masked Game Object will be rendered to it instead of being rendered directly to the frame.\r\n     *\r\n     * @method Phaser.Display.Masks.BitmapMask#preRenderWebGL\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer)} renderer - The WebGL Renderer to prepare.\r\n     * @param {Phaser.GameObjects.GameObject} maskedObject - The masked Game Object which will be drawn.\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera to render to.\r\n     */\r\n    preRenderWebGL: function (renderer, maskedObject, camera)\r\n    {\r\n        renderer.pipelines.BITMAPMASK_PIPELINE.beginMask(this, maskedObject, camera);\r\n    },\r\n\r\n    /**\r\n     * Finalizes rendering of a masked Game Object.\r\n     *\r\n     * This resets the previously bound framebuffer and switches the WebGL Renderer to the Bitmap Mask Pipeline, which uses a special fragment shader to apply the masking effect.\r\n     *\r\n     * @method Phaser.Display.Masks.BitmapMask#postRenderWebGL\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer)} renderer - The WebGL Renderer to clean up.\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera to render to.\r\n     * @param {Phaser.Renderer.WebGL.RenderTarget} [renderTarget] - Optional WebGL RenderTarget.\r\n     */\r\n    postRenderWebGL: function (renderer, camera, renderTarget)\r\n    {\r\n        renderer.pipelines.BITMAPMASK_PIPELINE.endMask(this, camera, renderTarget);\r\n    },\r\n\r\n    /**\r\n     * This is a NOOP method. Bitmap Masks are not supported by the Canvas Renderer.\r\n     *\r\n     * @method Phaser.Display.Masks.BitmapMask#preRenderCanvas\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer)} renderer - The Canvas Renderer which would be rendered to.\r\n     * @param {Phaser.GameObjects.GameObject} mask - The masked Game Object which would be rendered.\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera to render to.\r\n     */\r\n    preRenderCanvas: function ()\r\n    {\r\n        // NOOP\r\n    },\r\n\r\n    /**\r\n     * This is a NOOP method. Bitmap Masks are not supported by the Canvas Renderer.\r\n     *\r\n     * @method Phaser.Display.Masks.BitmapMask#postRenderCanvas\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer)} renderer - The Canvas Renderer which would be rendered to.\r\n     */\r\n    postRenderCanvas: function ()\r\n    {\r\n        // NOOP\r\n    },\r\n\r\n    /**\r\n     * Destroys this BitmapMask and nulls any references it holds.\r\n     *\r\n     * Note that if a Game Object is currently using this mask it will _not_ automatically detect you have destroyed it,\r\n     * so be sure to call `clearMask` on any Game Object using it, before destroying it.\r\n     *\r\n     * @method Phaser.Display.Masks.BitmapMask#destroy\r\n     * @since 3.7.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.bitmapMask = null;\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * A Bitmap Mask combines the alpha (opacity) of a masked pixel with the alpha of another pixel.\r\n * Unlike the Geometry Mask, which is a clipping path, a Bitmap Mask behaves like an alpha mask,\r\n * not a clipping path. It is only available when using the WebGL Renderer.\r\n *\r\n * A Bitmap Mask can use any Game Object, or Dynamic Texture, to determine the alpha of each pixel of the masked Game Object(s).\r\n * For any given point of a masked Game Object's texture, the pixel's alpha will be multiplied by the alpha\r\n * of the pixel at the same position in the Bitmap Mask's Game Object. The color of the pixel from the\r\n * Bitmap Mask doesn't matter.\r\n *\r\n * For example, if a pure blue pixel with an alpha of 0.95 is masked with a pure red pixel with an\r\n * alpha of 0.5, the resulting pixel will be pure blue with an alpha of 0.475. Naturally, this means\r\n * that a pixel in the mask with an alpha of 0 will hide the corresponding pixel in all masked Game Objects\r\n *  A pixel with an alpha of 1 in the masked Game Object will receive the same alpha as the\r\n * corresponding pixel in the mask.\r\n *\r\n * Note: You cannot combine Bitmap Masks and Blend Modes on the same Game Object. You can, however,\r\n * combine Geometry Masks and Blend Modes together.\r\n *\r\n * The Bitmap Mask's location matches the location of its Game Object, not the location of the\r\n * masked objects. Moving or transforming the underlying Game Object will change the mask\r\n * (and affect the visibility of any masked objects), whereas moving or transforming a masked object\r\n * will not affect the mask.\r\n *\r\n * The Bitmap Mask will not render its Game Object by itself. If the Game Object is not in a\r\n * Scene's display list, it will only be used for the mask and its full texture will not be directly\r\n * visible. Adding the underlying Game Object to a Scene will not cause any problems - it will\r\n * render as a normal Game Object and will also serve as a mask.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#bitmapMask\r\n * @since 3.60.0\r\n *\r\n * @param {(Phaser.GameObjects.GameObject|Phaser.Textures.DynamicTexture)} [maskObject] - The Game Object or Texture that will be used as the mask. If `null` it will generate an Image Game Object using the rest of the arguments.\r\n * @param {number} [x] - If creating a Game Object, the horizontal position in the world.\r\n * @param {number} [y] - If creating a Game Object, the vertical position in the world.\r\n * @param {(string|Phaser.Textures.Texture)} [texture] - If creating a Game Object, the key, or instance of the Texture it will use to render with, as stored in the Texture Manager.\r\n * @param {(string|number|Phaser.Textures.Frame)} [frame] - If creating a Game Object, an optional frame from the Texture this Game Object is rendering with.\r\n *\r\n * @return {Phaser.Display.Masks.BitmapMask} The Bitmap Mask that was created.\r\n */\r\nGameObjectFactory.register('bitmapMask', function (maskObject, x, y, key, frame)\r\n{\r\n    return new BitmapMask(this.scene, maskObject, x, y, key, frame);\r\n});\r\n\r\nmodule.exports = BitmapMask;\r\n\n\n/***/ }),\n\n/***/ 80661:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\n\r\n/**\r\n * @classdesc\r\n * A Geometry Mask can be applied to a Game Object to hide any pixels of it which don't intersect\r\n * a visible pixel from the geometry mask. The mask is essentially a clipping path which can only\r\n * make a masked pixel fully visible or fully invisible without changing its alpha (opacity).\r\n *\r\n * A Geometry Mask uses a Graphics Game Object to determine which pixels of the masked Game Object(s)\r\n * should be clipped. For any given point of a masked Game Object's texture, the pixel will only be displayed\r\n * if the Graphics Game Object of the Geometry Mask has a visible pixel at the same position. The color and\r\n * alpha of the pixel from the Geometry Mask do not matter.\r\n *\r\n * The Geometry Mask's location matches the location of its Graphics object, not the location of the masked objects.\r\n * Moving or transforming the underlying Graphics object will change the mask (and affect the visibility\r\n * of any masked objects), whereas moving or transforming a masked object will not affect the mask.\r\n * You can think of the Geometry Mask (or rather, of its Graphics object) as an invisible curtain placed\r\n * in front of all masked objects which has its own visual properties and, naturally, respects the camera's\r\n * visual properties, but isn't affected by and doesn't follow the masked objects by itself.\r\n *\r\n * @class GeometryMask\r\n * @memberof Phaser.Display.Masks\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - This parameter is not used.\r\n * @param {Phaser.GameObjects.Graphics} graphicsGeometry - The Graphics Game Object to use for the Geometry Mask. Doesn't have to be in the Display List.\r\n */\r\nvar GeometryMask = new Class({\r\n\r\n    initialize:\r\n\r\n    function GeometryMask (scene, graphicsGeometry)\r\n    {\r\n        /**\r\n         * The Graphics object which describes the Geometry Mask.\r\n         *\r\n         * @name Phaser.Display.Masks.GeometryMask#geometryMask\r\n         * @type {Phaser.GameObjects.Graphics}\r\n         * @since 3.0.0\r\n         */\r\n        this.geometryMask = graphicsGeometry;\r\n\r\n        /**\r\n         * Similar to the BitmapMasks invertAlpha setting this to true will then hide all pixels\r\n         * drawn to the Geometry Mask.\r\n         *\r\n         * This is a WebGL only feature.\r\n         *\r\n         * @name Phaser.Display.Masks.GeometryMask#invertAlpha\r\n         * @type {boolean}\r\n         * @since 3.16.0\r\n         */\r\n        this.invertAlpha = false;\r\n\r\n        /**\r\n         * Is this mask a stencil mask?\r\n         *\r\n         * @name Phaser.Display.Masks.GeometryMask#isStencil\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @since 3.17.0\r\n         */\r\n        this.isStencil = true;\r\n\r\n        /**\r\n         * The current stencil level. This can change dynamically at runtime\r\n         * and is set in the applyStencil method.\r\n         *\r\n         * @name Phaser.Display.Masks.GeometryMask#level\r\n         * @type {boolean}\r\n         * @since 3.17.0\r\n         */\r\n        this.level = 0;\r\n    },\r\n\r\n    /**\r\n     * Sets a new Graphics object for the Geometry Mask.\r\n     *\r\n     * @method Phaser.Display.Masks.GeometryMask#setShape\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Graphics} graphicsGeometry - The Graphics object which will be used for the Geometry Mask.\r\n     *\r\n     * @return {this} This Geometry Mask\r\n     */\r\n    setShape: function (graphicsGeometry)\r\n    {\r\n        this.geometryMask = graphicsGeometry;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the `invertAlpha` property of this Geometry Mask.\r\n     *\r\n     * Inverting the alpha essentially flips the way the mask works.\r\n     *\r\n     * This is a WebGL only feature.\r\n     *\r\n     * @method Phaser.Display.Masks.GeometryMask#setInvertAlpha\r\n     * @since 3.17.0\r\n     *\r\n     * @param {boolean} [value=true] - Invert the alpha of this mask?\r\n     *\r\n     * @return {this} This Geometry Mask\r\n     */\r\n    setInvertAlpha: function (value)\r\n    {\r\n        if (value === undefined) { value = true; }\r\n\r\n        this.invertAlpha = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Renders the Geometry Mask's underlying Graphics object to the OpenGL stencil buffer and enables the stencil test, which clips rendered pixels according to the mask.\r\n     *\r\n     * @method Phaser.Display.Masks.GeometryMask#preRenderWebGL\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - The WebGL Renderer instance to draw to.\r\n     * @param {Phaser.GameObjects.GameObject} child - The Game Object being rendered.\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera the Game Object is being rendered through.\r\n     */\r\n    preRenderWebGL: function (renderer, child, camera)\r\n    {\r\n        var gl = renderer.gl;\r\n\r\n        //  Force flushing before drawing to stencil buffer\r\n        renderer.flush();\r\n\r\n        if (renderer.maskStack.length === 0)\r\n        {\r\n            gl.enable(gl.STENCIL_TEST);\r\n            gl.clear(gl.STENCIL_BUFFER_BIT);\r\n\r\n            renderer.maskCount = 0;\r\n        }\r\n\r\n        if (renderer.currentCameraMask.mask !== this)\r\n        {\r\n            renderer.currentMask.mask = this;\r\n        }\r\n\r\n        renderer.maskStack.push({ mask: this, camera: camera });\r\n\r\n        this.applyStencil(renderer, camera, true);\r\n\r\n        renderer.maskCount++;\r\n    },\r\n\r\n    /**\r\n     * Applies the current stencil mask to the renderer.\r\n     *\r\n     * @method Phaser.Display.Masks.GeometryMask#applyStencil\r\n     * @since 3.17.0\r\n     *\r\n     * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - The WebGL Renderer instance to draw to.\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera the Game Object is being rendered through.\r\n     * @param {boolean} inc - Is this an INCR stencil or a DECR stencil?\r\n     */\r\n    applyStencil: function (renderer, camera, inc)\r\n    {\r\n        var gl = renderer.gl;\r\n        var geometryMask = this.geometryMask;\r\n        var level = renderer.maskCount;\r\n        var mask = 0xff;\r\n\r\n        gl.colorMask(false, false, false, false);\r\n\r\n        if (inc)\r\n        {\r\n            gl.stencilFunc(gl.EQUAL, level, mask);\r\n            gl.stencilOp(gl.KEEP, gl.KEEP, gl.INCR);\r\n\r\n            //  Do this _after_ we set the stencilFunc\r\n            level++;\r\n        }\r\n        else\r\n        {\r\n            gl.stencilFunc(gl.EQUAL, level + 1, mask);\r\n            gl.stencilOp(gl.KEEP, gl.KEEP, gl.DECR);\r\n        }\r\n\r\n        this.level = level;\r\n\r\n        //  Write stencil buffer\r\n        geometryMask.renderWebGL(renderer, geometryMask, camera);\r\n\r\n        renderer.flush();\r\n\r\n        gl.colorMask(true, true, true, true);\r\n        gl.stencilOp(gl.KEEP, gl.KEEP, gl.KEEP);\r\n\r\n        if (this.invertAlpha)\r\n        {\r\n            gl.stencilFunc(gl.NOTEQUAL, level, mask);\r\n        }\r\n        else\r\n        {\r\n            gl.stencilFunc(gl.EQUAL, level, mask);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Flushes all rendered pixels and disables the stencil test of a WebGL context, thus disabling the mask for it.\r\n     *\r\n     * @method Phaser.Display.Masks.GeometryMask#postRenderWebGL\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - The WebGL Renderer instance to draw flush.\r\n     */\r\n    postRenderWebGL: function (renderer)\r\n    {\r\n        var gl = renderer.gl;\r\n\r\n        renderer.maskStack.pop();\r\n\r\n        renderer.maskCount--;\r\n\r\n        //  Force flush before disabling stencil test\r\n        renderer.flush();\r\n\r\n        var current = renderer.currentMask;\r\n\r\n        if (renderer.maskStack.length === 0)\r\n        {\r\n            //  If this is the only mask in the stack, flush and disable\r\n            current.mask = null;\r\n\r\n            gl.disable(gl.STENCIL_TEST);\r\n        }\r\n        else\r\n        {\r\n            var prev = renderer.maskStack[renderer.maskStack.length - 1];\r\n\r\n            prev.mask.applyStencil(renderer, prev.camera, false);\r\n\r\n            if (renderer.currentCameraMask.mask !== prev.mask)\r\n            {\r\n                current.mask = prev.mask;\r\n                current.camera = prev.camera;\r\n            }\r\n            else\r\n            {\r\n                current.mask = null;\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Sets the clipping path of a 2D canvas context to the Geometry Mask's underlying Graphics object.\r\n     *\r\n     * @method Phaser.Display.Masks.GeometryMask#preRenderCanvas\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - The Canvas Renderer instance to set the clipping path on.\r\n     * @param {Phaser.GameObjects.GameObject} mask - The Game Object being rendered.\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera the Game Object is being rendered through.\r\n     */\r\n    preRenderCanvas: function (renderer, mask, camera)\r\n    {\r\n        var geometryMask = this.geometryMask;\r\n\r\n        renderer.currentContext.save();\r\n\r\n        geometryMask.renderCanvas(renderer, geometryMask, camera, null, null, true);\r\n\r\n        renderer.currentContext.clip();\r\n    },\r\n\r\n    /**\r\n     * Restore the canvas context's previous clipping path, thus turning off the mask for it.\r\n     *\r\n     * @method Phaser.Display.Masks.GeometryMask#postRenderCanvas\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - The Canvas Renderer instance being restored.\r\n     */\r\n    postRenderCanvas: function (renderer)\r\n    {\r\n        renderer.currentContext.restore();\r\n    },\r\n\r\n    /**\r\n     * Destroys this GeometryMask and nulls any references it holds.\r\n     *\r\n     * Note that if a Game Object is currently using this mask it will _not_ automatically detect you have destroyed it,\r\n     * so be sure to call `clearMask` on any Game Object using it, before destroying it.\r\n     *\r\n     * @method Phaser.Display.Masks.GeometryMask#destroy\r\n     * @since 3.7.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.geometryMask = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = GeometryMask;\r\n\n\n/***/ }),\n\n/***/ 69781:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Display.Masks\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    BitmapMask: __webpack_require__(6858),\r\n    GeometryMask: __webpack_require__(80661)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 73894:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\n\r\n/**\r\n * @classdesc\r\n * A BaseShader is a small resource class that contains the data required for a WebGL Shader to be created.\r\n *\r\n * It contains the raw source code to the fragment and vertex shader, as well as an object that defines\r\n * the uniforms the shader requires, if any.\r\n *\r\n * BaseShaders are stored in the Shader Cache, available in a Scene via `this.cache.shaders` and are referenced\r\n * by a unique key-based string. Retrieve them via `this.cache.shaders.get(key)`.\r\n *\r\n * BaseShaders are created automatically by the GLSL File Loader when loading an external shader resource.\r\n * They can also be created at runtime, allowing you to use dynamically generated shader source code.\r\n *\r\n * Default fragment and vertex source is used if not provided in the constructor, setting-up a basic shader,\r\n * suitable for debug rendering.\r\n *\r\n * @class BaseShader\r\n * @memberof Phaser.Display\r\n * @constructor\r\n * @since 3.17.0\r\n *\r\n * @param {string} key - The key of this shader. Must be unique within the shader cache.\r\n * @param {string} [fragmentSrc] - The fragment source for the shader.\r\n * @param {string} [vertexSrc] - The vertex source for the shader.\r\n * @param {any} [uniforms] - Optional object defining the uniforms the shader uses.\r\n */\r\nvar BaseShader = new Class({\r\n\r\n    initialize:\r\n\r\n    function BaseShader (key, fragmentSrc, vertexSrc, uniforms)\r\n    {\r\n        if (!fragmentSrc || fragmentSrc === '')\r\n        {\r\n            fragmentSrc = [\r\n                'precision mediump float;',\r\n\r\n                'uniform vec2 resolution;',\r\n\r\n                'varying vec2 fragCoord;',\r\n\r\n                'void main () {',\r\n                '    vec2 uv = fragCoord / resolution.xy;',\r\n                '    gl_FragColor = vec4(uv.xyx, 1.0);',\r\n                '}'\r\n            ].join('\\n');\r\n        }\r\n\r\n        if (!vertexSrc || vertexSrc === '')\r\n        {\r\n            vertexSrc = [\r\n                'precision mediump float;',\r\n\r\n                'uniform mat4 uProjectionMatrix;',\r\n                'uniform mat4 uViewMatrix;',\r\n                'uniform vec2 uResolution;',\r\n\r\n                'attribute vec2 inPosition;',\r\n\r\n                'varying vec2 fragCoord;',\r\n                'varying vec2 outTexCoord;',\r\n\r\n                'void main () {',\r\n                '   gl_Position = uProjectionMatrix * uViewMatrix * vec4(inPosition, 1.0, 1.0);',\r\n                '   fragCoord = vec2(inPosition.x, uResolution.y - inPosition.y);',\r\n                '   outTexCoord = vec2(inPosition.x / uResolution.x, fragCoord.y / uResolution.y);',\r\n                '}'\r\n            ].join('\\n');\r\n        }\r\n\r\n        if (uniforms === undefined) { uniforms = null; }\r\n\r\n        /**\r\n         * The key of this shader, unique within the shader cache of this Phaser game instance.\r\n         *\r\n         * @name Phaser.Display.BaseShader#key\r\n         * @type {string}\r\n         * @since 3.17.0\r\n         */\r\n        this.key = key;\r\n\r\n        /**\r\n         * The source code, as a string, of the fragment shader being used.\r\n         *\r\n         * @name Phaser.Display.BaseShader#fragmentSrc\r\n         * @type {string}\r\n         * @since 3.17.0\r\n         */\r\n        this.fragmentSrc = fragmentSrc;\r\n\r\n        /**\r\n         * The source code, as a string, of the vertex shader being used.\r\n         *\r\n         * @name Phaser.Display.BaseShader#vertexSrc\r\n         * @type {string}\r\n         * @since 3.17.0\r\n         */\r\n        this.vertexSrc = vertexSrc;\r\n\r\n        /**\r\n         * The default uniforms for this shader.\r\n         *\r\n         * @name Phaser.Display.BaseShader#uniforms\r\n         * @type {?any}\r\n         * @since 3.17.0\r\n         */\r\n        this.uniforms = uniforms;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = BaseShader;\r\n\n\n/***/ }),\n\n/***/ 40366:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Adds the given element to the DOM. If a parent is provided the element is added as a child of the parent, providing it was able to access it.\r\n * If no parent was given it falls back to using `document.body`.\r\n *\r\n * @function Phaser.DOM.AddToDOM\r\n * @since 3.0.0\r\n *\r\n * @param {HTMLElement} element - The element to be added to the DOM. Usually a Canvas object.\r\n * @param {(string|HTMLElement)} [parent] - The parent in which to add the element. Can be a string which is passed to `getElementById` or an actual DOM object.\r\n *\r\n * @return {HTMLElement} The element that was added to the DOM.\r\n */\r\nvar AddToDOM = function (element, parent)\r\n{\r\n    var target;\r\n\r\n    if (parent)\r\n    {\r\n        if (typeof parent === 'string')\r\n        {\r\n            //  Hopefully an element ID\r\n            target = document.getElementById(parent);\r\n        }\r\n        else if (typeof parent === 'object' && parent.nodeType === 1)\r\n        {\r\n            //  Quick test for a HTMLElement\r\n            target = parent;\r\n        }\r\n    }\r\n    else if (element.parentElement || parent === null)\r\n    {\r\n        return element;\r\n    }\r\n\r\n    //  Fallback, covers an invalid ID and a non HTMLElement object\r\n    if (!target)\r\n    {\r\n        target = document.body;\r\n    }\r\n\r\n    target.appendChild(element);\r\n\r\n    return element;\r\n};\r\n\r\nmodule.exports = AddToDOM;\r\n\n\n/***/ }),\n\n/***/ 83719:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar AddToDOM = __webpack_require__(40366);\r\n\r\nvar CreateDOMContainer = function (game)\r\n{\r\n    var config = game.config;\r\n\r\n    if (!config.parent || !config.domCreateContainer)\r\n    {\r\n        return;\r\n    }\r\n\r\n    //  DOM Element Container\r\n    var div = document.createElement('div');\r\n\r\n    div.style.cssText = [\r\n        'display: block;',\r\n        'width: ' + game.scale.width + 'px;',\r\n        'height: ' + game.scale.height + 'px;',\r\n        'padding: 0; margin: 0;',\r\n        'position: absolute;',\r\n        'overflow: hidden;',\r\n        'pointer-events: ' + config.domPointerEvents + ';',\r\n        'transform: scale(1);',\r\n        'transform-origin: left top;'\r\n    ].join(' ');\r\n\r\n    game.domContainer = div;\r\n\r\n    AddToDOM(div, config.parent);\r\n};\r\n\r\nmodule.exports = CreateDOMContainer;\r\n\n\n/***/ }),\n\n/***/ 57264:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar OS = __webpack_require__(25892);\r\n\r\n/**\r\n * @callback ContentLoadedCallback\r\n */\r\n\r\n/**\r\n * Inspects the readyState of the document. If the document is already complete then it invokes the given callback.\r\n * If not complete it sets up several event listeners such as `deviceready`, and once those fire, it invokes the callback.\r\n * Called automatically by the Phaser.Game instance. Should not usually be accessed directly.\r\n *\r\n * @function Phaser.DOM.DOMContentLoaded\r\n * @since 3.0.0\r\n *\r\n * @param {ContentLoadedCallback} callback - The callback to be invoked when the device is ready and the DOM content is loaded.\r\n */\r\nvar DOMContentLoaded = function (callback)\r\n{\r\n    if (document.readyState === 'complete' || document.readyState === 'interactive')\r\n    {\r\n        callback();\r\n\r\n        return;\r\n    }\r\n\r\n    var check = function ()\r\n    {\r\n        document.removeEventListener('deviceready', check, true);\r\n        document.removeEventListener('DOMContentLoaded', check, true);\r\n        window.removeEventListener('load', check, true);\r\n\r\n        callback();\r\n    };\r\n\r\n    if (!document.body)\r\n    {\r\n        window.setTimeout(check, 20);\r\n    }\r\n    else if (OS.cordova)\r\n    {\r\n        //  Ref. http://docs.phonegap.com/en/3.5.0/cordova_events_events.md.html#deviceready\r\n        document.addEventListener('deviceready', check, false);\r\n    }\r\n    else\r\n    {\r\n        document.addEventListener('DOMContentLoaded', check, true);\r\n        window.addEventListener('load', check, true);\r\n    }\r\n};\r\n\r\nmodule.exports = DOMContentLoaded;\r\n\n\n/***/ }),\n\n/***/ 57811:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Attempts to determine the document inner height across iOS and standard devices.\r\n * Based on code by @tylerjpeterson\r\n *\r\n * @function Phaser.DOM.GetInnerHeight\r\n * @since 3.16.0\r\n *\r\n * @param {boolean} iOS - Is this running on iOS?\r\n *\r\n * @return {number} The inner height value.\r\n */\r\nvar GetInnerHeight = function (iOS)\r\n{\r\n\r\n    if (!iOS)\r\n    {\r\n        return window.innerHeight;\r\n    }\r\n\r\n    var axis = Math.abs(window.orientation);\r\n\r\n    var size = { w: 0, h: 0 };\r\n\r\n    var ruler = document.createElement('div');\r\n\r\n    ruler.setAttribute('style', 'position: fixed; height: 100vh; width: 0; top: 0');\r\n\r\n    document.documentElement.appendChild(ruler);\r\n\r\n    size.w = (axis === 90) ? ruler.offsetHeight : window.innerWidth;\r\n    size.h = (axis === 90) ? window.innerWidth : ruler.offsetHeight;\r\n\r\n    document.documentElement.removeChild(ruler);\r\n\r\n    ruler = null;\r\n\r\n    if (Math.abs(window.orientation) !== 90)\r\n    {\r\n        return size.h;\r\n    }\r\n    else\r\n    {\r\n        return size.w;\r\n    }\r\n};\r\n\r\nmodule.exports = GetInnerHeight;\r\n\n\n/***/ }),\n\n/***/ 45818:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CONST = __webpack_require__(13560);\r\n\r\n/**\r\n * Attempts to determine the screen orientation using the Orientation API.\r\n *\r\n * @function Phaser.DOM.GetScreenOrientation\r\n * @since 3.16.0\r\n *\r\n * @param {number} width - The width of the viewport.\r\n * @param {number} height - The height of the viewport.\r\n *\r\n * @return {string} The orientation.\r\n */\r\nvar GetScreenOrientation = function (width, height)\r\n{\r\n    var screen = window.screen;\r\n    var orientation = (screen) ? screen.orientation || screen.mozOrientation || screen.msOrientation : false;\r\n\r\n    if (orientation && typeof orientation.type === 'string')\r\n    {\r\n        //  Screen Orientation API specification\r\n        return orientation.type;\r\n    }\r\n    else if (typeof orientation === 'string')\r\n    {\r\n        //  moz / ms-orientation are strings\r\n        return orientation;\r\n    }\r\n\r\n    if (typeof window.orientation === 'number')\r\n    {\r\n        //  Do this check first, as iOS supports this, but also has an incomplete window.screen implementation\r\n        //  This may change by device based on \"natural\" orientation.\r\n        return (window.orientation === 0 || window.orientation === 180) ? CONST.ORIENTATION.PORTRAIT : CONST.ORIENTATION.LANDSCAPE;\r\n    }\r\n    else if (window.matchMedia)\r\n    {\r\n        if (window.matchMedia('(orientation: portrait)').matches)\r\n        {\r\n            return CONST.ORIENTATION.PORTRAIT;\r\n        }\r\n        else if (window.matchMedia('(orientation: landscape)').matches)\r\n        {\r\n            return CONST.ORIENTATION.LANDSCAPE;\r\n        }\r\n    }\r\n    else\r\n    {\r\n        return (height > width) ? CONST.ORIENTATION.PORTRAIT : CONST.ORIENTATION.LANDSCAPE;\r\n    }\r\n};\r\n\r\nmodule.exports = GetScreenOrientation;\r\n\n\n/***/ }),\n\n/***/ 74403:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Attempts to get the target DOM element based on the given value, which can be either\r\n * a string, in which case it will be looked-up by ID, or an element node. If nothing\r\n * can be found it will return a reference to the document.body.\r\n *\r\n * @function Phaser.DOM.GetTarget\r\n * @since 3.16.0\r\n *\r\n * @param {HTMLElement} element - The DOM element to look-up.\r\n */\r\nvar GetTarget = function (element)\r\n{\r\n    var target;\r\n\r\n    if (element !== '')\r\n    {\r\n        if (typeof element === 'string')\r\n        {\r\n            //  Hopefully an element ID\r\n            target = document.getElementById(element);\r\n        }\r\n        else if (element && element.nodeType === 1)\r\n        {\r\n            //  Quick test for a HTMLElement\r\n            target = element;\r\n        }\r\n    }\r\n\r\n    //  Fallback to the document body. Covers an invalid ID and a non HTMLElement object.\r\n    if (!target)\r\n    {\r\n        //  Use the full window\r\n        target = document.body;\r\n    }\r\n\r\n    return target;\r\n};\r\n\r\nmodule.exports = GetTarget;\r\n\n\n/***/ }),\n\n/***/ 56836:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Takes the given data string and parses it as XML.\r\n * First tries to use the window.DOMParser and reverts to the Microsoft.XMLDOM if that fails.\r\n * The parsed XML object is returned, or `null` if there was an error while parsing the data.\r\n *\r\n * @function Phaser.DOM.ParseXML\r\n * @since 3.0.0\r\n *\r\n * @param {string} data - The XML source stored in a string.\r\n *\r\n * @return {?(DOMParser|ActiveXObject)} The parsed XML data, or `null` if the data could not be parsed.\r\n */\r\nvar ParseXML = function (data)\r\n{\r\n    var xml = '';\r\n\r\n    try\r\n    {\r\n        if (window['DOMParser'])\r\n        {\r\n            var domparser = new DOMParser();\r\n            xml = domparser.parseFromString(data, 'text/xml');\r\n        }\r\n        else\r\n        {\r\n            xml = new ActiveXObject('Microsoft.XMLDOM');\r\n            xml.loadXML(data);\r\n        }\r\n    }\r\n    catch (e)\r\n    {\r\n        xml = null;\r\n    }\r\n\r\n    if (!xml || !xml.documentElement || xml.getElementsByTagName('parsererror').length)\r\n    {\r\n        return null;\r\n    }\r\n    else\r\n    {\r\n        return xml;\r\n    }\r\n};\r\n\r\nmodule.exports = ParseXML;\r\n\n\n/***/ }),\n\n/***/ 35846:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Attempts to remove the element from its parentNode in the DOM.\r\n *\r\n * @function Phaser.DOM.RemoveFromDOM\r\n * @since 3.0.0\r\n *\r\n * @param {HTMLElement} element - The DOM element to remove from its parent node.\r\n */\r\nvar RemoveFromDOM = function (element)\r\n{\r\n    if (element.parentNode)\r\n    {\r\n        element.parentNode.removeChild(element);\r\n    }\r\n};\r\n\r\nmodule.exports = RemoveFromDOM;\r\n\n\n/***/ }),\n\n/***/ 43092:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar NOOP = __webpack_require__(29747);\r\n\r\n/**\r\n * @classdesc\r\n * Abstracts away the use of RAF or setTimeOut for the core game update loop.\r\n *\r\n * This is invoked automatically by the Phaser.Game instance.\r\n *\r\n * @class RequestAnimationFrame\r\n * @memberof Phaser.DOM\r\n * @constructor\r\n * @since 3.0.0\r\n */\r\nvar RequestAnimationFrame = new Class({\r\n\r\n    initialize:\r\n\r\n    function RequestAnimationFrame ()\r\n    {\r\n        /**\r\n         * True if RequestAnimationFrame is running, otherwise false.\r\n         *\r\n         * @name Phaser.DOM.RequestAnimationFrame#isRunning\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.isRunning = false;\r\n\r\n        /**\r\n         * The callback to be invoked each step.\r\n         *\r\n         * @name Phaser.DOM.RequestAnimationFrame#callback\r\n         * @type {FrameRequestCallback}\r\n         * @since 3.0.0\r\n         */\r\n        this.callback = NOOP;\r\n\r\n        /**\r\n         * True if the step is using setTimeout instead of RAF.\r\n         *\r\n         * @name Phaser.DOM.RequestAnimationFrame#isSetTimeOut\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.isSetTimeOut = false;\r\n\r\n        /**\r\n         * The setTimeout or RAF callback ID used when canceling them.\r\n         *\r\n         * @name Phaser.DOM.RequestAnimationFrame#timeOutID\r\n         * @type {?number}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.timeOutID = null;\r\n\r\n        /**\r\n         * The delay rate in ms for setTimeOut.\r\n         *\r\n         * @name Phaser.DOM.RequestAnimationFrame#delay\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.60.0\r\n         */\r\n        this.delay = 0;\r\n\r\n        var _this = this;\r\n\r\n        /**\r\n         * The RAF step function.\r\n         *\r\n         * Invokes the callback and schedules another call to requestAnimationFrame.\r\n         *\r\n         * @name Phaser.DOM.RequestAnimationFrame#step\r\n         * @type {FrameRequestCallback}\r\n         * @since 3.0.0\r\n         *\r\n         * @param {number} time - The timestamp passed in from RequestAnimationFrame.\r\n         */\r\n        this.step = function step (time)\r\n        {\r\n            _this.callback(time);\r\n\r\n            if (_this.isRunning)\r\n            {\r\n                _this.timeOutID = window.requestAnimationFrame(step);\r\n            }\r\n        };\r\n\r\n        /**\r\n         * The SetTimeout step function.\r\n         *\r\n         * Invokes the callback and schedules another call to setTimeout.\r\n         *\r\n         * @name Phaser.DOM.RequestAnimationFrame#stepTimeout\r\n         * @type {function}\r\n         * @since 3.0.0\r\n         */\r\n        this.stepTimeout = function stepTimeout ()\r\n        {\r\n            if (_this.isRunning)\r\n            {\r\n                //  Make the next request before the callback, so that timing is maintained\r\n                _this.timeOutID = window.setTimeout(stepTimeout, _this.delay);\r\n            }\r\n\r\n            _this.callback(window.performance.now());\r\n        };\r\n    },\r\n\r\n    /**\r\n     * Starts the requestAnimationFrame or setTimeout process running.\r\n     *\r\n     * @method Phaser.DOM.RequestAnimationFrame#start\r\n     * @since 3.0.0\r\n     *\r\n     * @param {FrameRequestCallback} callback - The callback to invoke each step.\r\n     * @param {boolean} forceSetTimeOut - Should it use SetTimeout, even if RAF is available?\r\n     * @param {number} delay - The setTimeout delay rate in ms.\r\n     */\r\n    start: function (callback, forceSetTimeOut, delay)\r\n    {\r\n        if (this.isRunning)\r\n        {\r\n            return;\r\n        }\r\n\r\n        this.callback = callback;\r\n\r\n        this.isSetTimeOut = forceSetTimeOut;\r\n\r\n        this.delay = delay;\r\n\r\n        this.isRunning = true;\r\n\r\n        this.timeOutID = (forceSetTimeOut) ? window.setTimeout(this.stepTimeout, 0) : window.requestAnimationFrame(this.step);\r\n    },\r\n\r\n    /**\r\n     * Stops the requestAnimationFrame or setTimeout from running.\r\n     *\r\n     * @method Phaser.DOM.RequestAnimationFrame#stop\r\n     * @since 3.0.0\r\n     */\r\n    stop: function ()\r\n    {\r\n        this.isRunning = false;\r\n\r\n        if (this.isSetTimeOut)\r\n        {\r\n            clearTimeout(this.timeOutID);\r\n        }\r\n        else\r\n        {\r\n            window.cancelAnimationFrame(this.timeOutID);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Stops the step from running and clears the callback reference.\r\n     *\r\n     * @method Phaser.DOM.RequestAnimationFrame#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.stop();\r\n\r\n        this.callback = NOOP;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = RequestAnimationFrame;\r\n\n\n/***/ }),\n\n/***/ 84902:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.DOM\r\n */\r\n\r\nvar Dom = {\r\n\r\n    AddToDOM: __webpack_require__(40366),\r\n    DOMContentLoaded: __webpack_require__(57264),\r\n    GetInnerHeight: __webpack_require__(57811),\r\n    GetScreenOrientation: __webpack_require__(45818),\r\n    GetTarget: __webpack_require__(74403),\r\n    ParseXML: __webpack_require__(56836),\r\n    RemoveFromDOM: __webpack_require__(35846),\r\n    RequestAnimationFrame: __webpack_require__(43092)\r\n\r\n};\r\n\r\nmodule.exports = Dom;\r\n\n\n/***/ }),\n\n/***/ 47565:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar EE = __webpack_require__(50792);\r\nvar PluginCache = __webpack_require__(37277);\r\n\r\n/**\r\n * @classdesc\r\n * EventEmitter is a Scene Systems plugin compatible version of eventemitter3.\r\n *\r\n * @class EventEmitter\r\n * @memberof Phaser.Events\r\n * @constructor\r\n * @since 3.0.0\r\n */\r\nvar EventEmitter = new Class({\r\n\r\n    Extends: EE,\r\n\r\n    initialize:\r\n\r\n    function EventEmitter ()\r\n    {\r\n        EE.call(this);\r\n    },\r\n\r\n    /**\r\n     * Removes all listeners.\r\n     *\r\n     * @method Phaser.Events.EventEmitter#shutdown\r\n     * @since 3.0.0\r\n     */\r\n    shutdown: function ()\r\n    {\r\n        this.removeAllListeners();\r\n    },\r\n\r\n    /**\r\n     * Removes all listeners.\r\n     *\r\n     * @method Phaser.Events.EventEmitter#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.removeAllListeners();\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * Return an array listing the events for which the emitter has registered listeners.\r\n *\r\n * @method Phaser.Events.EventEmitter#eventNames\r\n * @since 3.0.0\r\n *\r\n * @return {Array.<string|symbol>}\r\n */\r\n\r\n/**\r\n * Return the listeners registered for a given event.\r\n *\r\n * @method Phaser.Events.EventEmitter#listeners\r\n * @since 3.0.0\r\n *\r\n * @param {(string|symbol)} event - The event name.\r\n *\r\n * @return {Function[]} The registered listeners.\r\n */\r\n\r\n/**\r\n * Return the number of listeners listening to a given event.\r\n *\r\n * @method Phaser.Events.EventEmitter#listenerCount\r\n * @since 3.0.0\r\n *\r\n * @param {(string|symbol)} event - The event name.\r\n *\r\n * @return {number} The number of listeners.\r\n */\r\n\r\n/**\r\n * Calls each of the listeners registered for a given event.\r\n *\r\n * @method Phaser.Events.EventEmitter#emit\r\n * @since 3.0.0\r\n *\r\n * @param {(string|symbol)} event - The event name.\r\n * @param {...*} [args] - Additional arguments that will be passed to the event handler.\r\n *\r\n * @return {boolean} `true` if the event had listeners, else `false`.\r\n */\r\n\r\n/**\r\n * Add a listener for a given event.\r\n *\r\n * @method Phaser.Events.EventEmitter#on\r\n * @since 3.0.0\r\n *\r\n * @param {(string|symbol)} event - The event name.\r\n * @param {function} fn - The listener function.\r\n * @param {*} [context=this] - The context to invoke the listener with.\r\n *\r\n * @return {this} `this`.\r\n */\r\n\r\n/**\r\n * Add a listener for a given event.\r\n *\r\n * @method Phaser.Events.EventEmitter#addListener\r\n * @since 3.0.0\r\n *\r\n * @param {(string|symbol)} event - The event name.\r\n * @param {function} fn - The listener function.\r\n * @param {*} [context=this] - The context to invoke the listener with.\r\n *\r\n * @return {this} `this`.\r\n */\r\n\r\n/**\r\n * Add a one-time listener for a given event.\r\n *\r\n * @method Phaser.Events.EventEmitter#once\r\n * @since 3.0.0\r\n *\r\n * @param {(string|symbol)} event - The event name.\r\n * @param {function} fn - The listener function.\r\n * @param {*} [context=this] - The context to invoke the listener with.\r\n *\r\n * @return {this} `this`.\r\n */\r\n\r\n/**\r\n * Remove the listeners of a given event.\r\n *\r\n * @method Phaser.Events.EventEmitter#removeListener\r\n * @since 3.0.0\r\n *\r\n * @param {(string|symbol)} event - The event name.\r\n * @param {function} [fn] - Only remove the listeners that match this function.\r\n * @param {*} [context] - Only remove the listeners that have this context.\r\n * @param {boolean} [once] - Only remove one-time listeners.\r\n *\r\n * @return {this} `this`.\r\n */\r\n\r\n/**\r\n * Remove the listeners of a given event.\r\n *\r\n * @method Phaser.Events.EventEmitter#off\r\n * @since 3.0.0\r\n *\r\n * @param {(string|symbol)} event - The event name.\r\n * @param {function} [fn] - Only remove the listeners that match this function.\r\n * @param {*} [context] - Only remove the listeners that have this context.\r\n * @param {boolean} [once] - Only remove one-time listeners.\r\n *\r\n * @return {this} `this`.\r\n */\r\n\r\n/**\r\n * Remove all listeners, or those of the specified event.\r\n *\r\n * @method Phaser.Events.EventEmitter#removeAllListeners\r\n * @since 3.0.0\r\n *\r\n * @param {(string|symbol)} [event] - The event name.\r\n *\r\n * @return {this} `this`.\r\n */\r\n\r\nPluginCache.register('EventEmitter', EventEmitter, 'events');\r\n\r\nmodule.exports = EventEmitter;\r\n\n\n/***/ }),\n\n/***/ 93055:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.Events\r\n */\r\n\r\nmodule.exports = { EventEmitter: __webpack_require__(47565) };\r\n\n\n/***/ }),\n\n/***/ 20122:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Controller = __webpack_require__(72898);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The Barrel FX Controller.\r\n *\r\n * This FX controller manages the barrel distortion effect for a Game Object.\r\n *\r\n * A barrel effect allows you to apply either a 'pinch' or 'expand' distortion to\r\n * a Game Object. The amount of the effect can be modified in real-time.\r\n *\r\n * A Barrel effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addBarrel();\r\n * sprite.postFX.addBarrel();\r\n * ```\r\n *\r\n * @class Barrel\r\n * @extends Phaser.FX.Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n * @param {number} [amount=1] - The amount of distortion applied to the barrel effect. A value of 1 is no distortion. Typically keep this within +- 1.\r\n */\r\nvar Barrel = new Class({\r\n\r\n    Extends: Controller,\r\n\r\n    initialize:\r\n\r\n    function Barrel (gameObject, amount)\r\n    {\r\n        if (amount === undefined) { amount = 1; }\r\n\r\n        Controller.call(this, FX_CONST.BARREL, gameObject);\r\n\r\n        /**\r\n         * The amount of distortion applied to the barrel effect.\r\n         *\r\n         * Typically keep this within the range 1 (no distortion) to +- 1.\r\n         *\r\n         * @name Phaser.FX.Barrel#amount\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.amount = amount;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Barrel;\r\n\n\n/***/ }),\n\n/***/ 32251:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Controller = __webpack_require__(72898);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The Bloom FX Controller.\r\n *\r\n * This FX controller manages the bloom effect for a Game Object.\r\n *\r\n * Bloom is an effect used to reproduce an imaging artifact of real-world cameras.\r\n * The effect produces fringes of light extending from the borders of bright areas in an image,\r\n * contributing to the illusion of an extremely bright light overwhelming the\r\n * camera or eye capturing the scene.\r\n *\r\n * A Bloom effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addBloom();\r\n * sprite.postFX.addBloom();\r\n * ```\r\n *\r\n * @class Bloom\r\n * @extends Phaser.FX.Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n * @param {number} [color=0xffffff] - The color of the Bloom, as a hex value.\r\n * @param {number} [offsetX=1] - The horizontal offset of the bloom effect.\r\n * @param {number} [offsetY=1] - The vertical offset of the bloom effect.\r\n * @param {number} [blurStrength=1] - The strength of the blur process of the bloom effect.\r\n * @param {number} [strength=1] - The strength of the blend process of the bloom effect.\r\n * @param {number} [steps=4] - The number of steps to run the Bloom effect for. This value should always be an integer.\r\n */\r\nvar Bloom = new Class({\r\n\r\n    Extends: Controller,\r\n\r\n    initialize:\r\n\r\n    function Bloom (gameObject, color, offsetX, offsetY, blurStrength, strength, steps)\r\n    {\r\n        if (offsetX === undefined) { offsetX = 1; }\r\n        if (offsetY === undefined) { offsetY = 1; }\r\n        if (blurStrength === undefined) { blurStrength = 1; }\r\n        if (strength === undefined) { strength = 1; }\r\n        if (steps === undefined) { steps = 4; }\r\n\r\n        Controller.call(this, FX_CONST.BLOOM, gameObject);\r\n\r\n        /**\r\n         * The number of steps to run the Bloom effect for.\r\n         *\r\n         * This value should always be an integer.\r\n         *\r\n         * It defaults to 4. The higher the value, the smoother the Bloom,\r\n         * but at the cost of exponentially more gl operations.\r\n         *\r\n         * Keep this to the lowest possible number you can have it, while\r\n         * still looking correct for your game.\r\n         *\r\n         * @name Phaser.FX.Bloom#steps\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.steps = steps;\r\n\r\n        /**\r\n         * The horizontal offset of the bloom effect.\r\n         *\r\n         * @name Phaser.FX.Bloom#offsetX\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.offsetX = offsetX;\r\n\r\n        /**\r\n         * The vertical offset of the bloom effect.\r\n         *\r\n         * @name Phaser.FX.Bloom#offsetY\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.offsetY = offsetY;\r\n\r\n        /**\r\n         * The strength of the blur process of the bloom effect.\r\n         *\r\n         * @name Phaser.FX.Bloom#blurStrength\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.blurStrength = blurStrength;\r\n\r\n        /**\r\n         * The strength of the blend process of the bloom effect.\r\n         *\r\n         * @name Phaser.FX.Bloom#strength\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.strength = strength;\r\n\r\n        /**\r\n         * The internal gl color array.\r\n         *\r\n         * @name Phaser.FX.Bloom#glcolor\r\n         * @type {number[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.glcolor = [ 1, 1, 1 ];\r\n\r\n        if (color !== undefined && color !== null)\r\n        {\r\n            this.color = color;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * The color of the bloom as a number value.\r\n     *\r\n     * @name Phaser.FX.Bloom#color\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    color: {\r\n\r\n        get: function ()\r\n        {\r\n            var color = this.glcolor;\r\n\r\n            return (((color[0] * 255) << 16) + ((color[1] * 255) << 8) + (color[2] * 255 | 0));\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var color = this.glcolor;\r\n\r\n            color[0] = ((value >> 16) & 0xFF) / 255;\r\n            color[1] = ((value >> 8) & 0xFF) / 255;\r\n            color[2] = (value & 0xFF) / 255;\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Bloom;\r\n\n\n/***/ }),\n\n/***/ 9047:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Controller = __webpack_require__(72898);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The Blur FX Controller.\r\n *\r\n * This FX controller manages the blur effect for a Game Object.\r\n *\r\n * A Gaussian blur is the result of blurring an image by a Gaussian function. It is a widely used effect,\r\n * typically to reduce image noise and reduce detail. The visual effect of this blurring technique is a\r\n * smooth blur resembling that of viewing the image through a translucent screen, distinctly different\r\n * from the bokeh effect produced by an out-of-focus lens or the shadow of an object under usual illumination.\r\n *\r\n * A Blur effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addBlur();\r\n * sprite.postFX.addBlur();\r\n * ```\r\n *\r\n * @class Blur\r\n * @extends Phaser.FX.Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n * @param {number} [quality=0] - The quality of the blur effect. Can be either 0 for Low Quality, 1 for Medium Quality or 2 for High Quality.\r\n * @param {number} [x=2] - The horizontal offset of the blur effect.\r\n * @param {number} [y=2] - The vertical offset of the blur effect.\r\n * @param {number} [strength=1] - The strength of the blur effect.\r\n * @param {number} [color=0xffffff] - The color of the blur, as a hex value.\r\n * @param {number} [steps=4] - The number of steps to run the blur effect for. This value should always be an integer.\r\n */\r\nvar Blur = new Class({\r\n\r\n    Extends: Controller,\r\n\r\n    initialize:\r\n\r\n    function Blur (gameObject, quality, x, y, strength, color, steps)\r\n    {\r\n        if (quality === undefined) { quality = 0; }\r\n        if (x === undefined) { x = 2; }\r\n        if (y === undefined) { y = 2; }\r\n        if (strength === undefined) { strength = 1; }\r\n        if (steps === undefined) { steps = 4; }\r\n\r\n        Controller.call(this, FX_CONST.BLUR, gameObject);\r\n\r\n        /**\r\n         * The quality of the blur effect.\r\n         *\r\n         * This can be:\r\n         *\r\n         * 0 for Low Quality\r\n         * 1 for Medium Quality\r\n         * 2 for High Quality\r\n         *\r\n         * The higher the quality, the more complex shader is used\r\n         * and the more processing time is spent on the GPU calculating\r\n         * the final blur. This value is used in conjunction with the\r\n         * `steps` value, as one has a direct impact on the other.\r\n         *\r\n         * Keep this value as low as you can, while still achieving the\r\n         * desired effect you need for your game.\r\n         *\r\n         * @name Phaser.FX.Blur#quality\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.quality = quality;\r\n\r\n        /**\r\n         * The horizontal offset of the blur effect.\r\n         *\r\n         * @name Phaser.FX.Blur#x\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.x = x;\r\n\r\n        /**\r\n         * The vertical offset of the blur effect.\r\n         *\r\n         * @name Phaser.FX.Blur#y\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.y = y;\r\n\r\n        /**\r\n         * The number of steps to run the Blur effect for.\r\n         *\r\n         * This value should always be an integer.\r\n         *\r\n         * It defaults to 4. The higher the value, the smoother the blur,\r\n         * but at the cost of exponentially more gl operations.\r\n         *\r\n         * Keep this to the lowest possible number you can have it, while\r\n         * still looking correct for your game.\r\n         *\r\n         * @name Phaser.FX.Blur#steps\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.steps = steps;\r\n\r\n        /**\r\n         * The strength of the blur effect.\r\n         *\r\n         * @name Phaser.FX.Blur#strength\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.strength = strength;\r\n\r\n        /**\r\n         * The internal gl color array.\r\n         *\r\n         * @name Phaser.FX.Blur#glcolor\r\n         * @type {number[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.glcolor = [ 1, 1, 1 ];\r\n\r\n        if (color !== undefined && color !== null)\r\n        {\r\n            this.color = color;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * The color of the blur as a number value.\r\n     *\r\n     * @name Phaser.FX.Blur#color\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    color: {\r\n\r\n        get: function ()\r\n        {\r\n            var color = this.glcolor;\r\n\r\n            return (((color[0] * 255) << 16) + ((color[1] * 255) << 8) + (color[2] * 255 | 0));\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var color = this.glcolor;\r\n\r\n            color[0] = ((value >> 16) & 0xFF) / 255;\r\n            color[1] = ((value >> 8) & 0xFF) / 255;\r\n            color[2] = (value & 0xFF) / 255;\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Blur;\r\n\n\n/***/ }),\n\n/***/ 27885:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Controller = __webpack_require__(72898);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The Bokeh FX Controller.\r\n *\r\n * This FX controller manages the bokeh effect for a Game Object.\r\n *\r\n * Bokeh refers to a visual effect that mimics the photographic technique of creating a shallow depth of field.\r\n * This effect is used to emphasize the game's main subject or action, by blurring the background or foreground\r\n * elements, resulting in a more immersive and visually appealing experience. It is achieved through rendering\r\n * techniques that simulate the out-of-focus areas, giving a sense of depth and realism to the game's graphics.\r\n *\r\n * This effect can also be used to generate a Tilt Shift effect, which is a technique used to create a miniature\r\n * effect by blurring everything except a small area of the image. This effect is achieved by blurring the\r\n * top and bottom elements, while keeping the center area in focus.\r\n *\r\n * A Bokeh effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addBokeh();\r\n * sprite.postFX.addBokeh();\r\n * ```\r\n *\r\n * @class Bokeh\r\n * @extends Phaser.FX.Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n * @param {number} [radius=0.5] - The radius of the bokeh effect.\r\n * @param {number} [amount=1] - The amount of the bokeh effect.\r\n * @param {number} [contrast=0.2] - The color contrast of the bokeh effect.\r\n * @param {boolean} [isTiltShift=false] - Is this a bokeh or Tile Shift effect?\r\n * @param {number} [blurX=1] - If Tilt Shift, the amount of horizontal blur.\r\n * @param {number} [blurY=1] - If Tilt Shift, the amount of vertical blur.\r\n * @param {number} [strength=1] - If Tilt Shift, the strength of the blur.\r\n */\r\nvar Bokeh = new Class({\r\n\r\n    Extends: Controller,\r\n\r\n    initialize:\r\n\r\n    function Bokeh (gameObject, radius, amount, contrast, isTiltShift, blurX, blurY, strength)\r\n    {\r\n        if (radius === undefined) { radius = 0.5; }\r\n        if (amount === undefined) { amount = 1; }\r\n        if (contrast === undefined) { contrast = 0.2; }\r\n        if (isTiltShift === undefined) { isTiltShift = false; }\r\n        if (blurX === undefined) { blurX = 1; }\r\n        if (blurY === undefined) { blurY = 1; }\r\n        if (strength === undefined) { strength = 1; }\r\n\r\n        Controller.call(this, FX_CONST.BOKEH, gameObject);\r\n\r\n        /**\r\n         * The radius of the bokeh effect.\r\n         *\r\n         * This is a float value, where a radius of 0 will result in no effect being applied,\r\n         * and a radius of 1 will result in a strong bokeh. However, you can exceed this value\r\n         * for even stronger effects.\r\n         *\r\n         * @name Phaser.FX.Bokeh#radius\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.radius = radius;\r\n\r\n        /**\r\n         * The amount, or strength, of the bokeh effect. Defaults to 1.\r\n         *\r\n         * @name Phaser.FX.Bokeh#amount\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.amount = amount;\r\n\r\n        /**\r\n         * The color contrast, or brightness, of the bokeh effect. Defaults to 0.2.\r\n         *\r\n         * @name Phaser.FX.Bokeh#contrast\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.contrast = contrast;\r\n\r\n        /**\r\n         * Is this a Tilt Shift effect or a standard bokeh effect?\r\n         *\r\n         * @name Phaser.FX.Bokeh#isTiltShift\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this.isTiltShift = isTiltShift;\r\n\r\n        /**\r\n         * If a Tilt Shift effect this controls the strength of the blur.\r\n         *\r\n         * Setting this value on a non-Tilt Shift effect will have no effect.\r\n         *\r\n         * @name Phaser.FX.Bokeh#strength\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.strength = strength;\r\n\r\n        /**\r\n         * If a Tilt Shift effect this controls the amount of horizontal blur.\r\n         *\r\n         * Setting this value on a non-Tilt Shift effect will have no effect.\r\n         *\r\n         * @name Phaser.FX.Bokeh#blurX\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.blurX = blurX;\r\n\r\n        /**\r\n         * If a Tilt Shift effect this controls the amount of vertical blur.\r\n         *\r\n         * Setting this value on a non-Tilt Shift effect will have no effect.\r\n         *\r\n         * @name Phaser.FX.Bokeh#blurY\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.blurY = blurY;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Bokeh;\r\n\n\n/***/ }),\n\n/***/ 12578:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Controller = __webpack_require__(72898);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The Circle FX Controller.\r\n *\r\n * This FX controller manages the circle effect for a Game Object.\r\n *\r\n * This effect will draw a circle around the texture of the Game Object, effectively masking off\r\n * any area outside of the circle without the need for an actual mask. You can control the thickness\r\n * of the circle, the color of the circle and the color of the background, should the texture be\r\n * transparent. You can also control the feathering applied to the circle, allowing for a harsh or soft edge.\r\n *\r\n * Please note that adding this effect to a Game Object will not change the input area or physics body of\r\n * the Game Object, should it have one.\r\n *\r\n * A Circle effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addCircle();\r\n * sprite.postFX.addCircle();\r\n * ```\r\n *\r\n * @class Circle\r\n * @extends Phaser.FX.Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n * @param {number} [thickness=8] - The width of the circle around the texture, in pixels.\r\n * @param {number} [color=0xfeedb6] - The color of the circular ring, given as a number value.\r\n * @param {number} [backgroundColor=0xff0000] - The color of the background, behind the texture, given as a number value.\r\n * @param {number} [scale=1] - The scale of the circle. The default scale is 1, which is a circle the full size of the underlying texture.\r\n * @param {number} [feather=0.005] - The amount of feathering to apply to the circle from the ring.\r\n */\r\nvar Circle = new Class({\r\n\r\n    Extends: Controller,\r\n\r\n    initialize:\r\n\r\n    function Circle (gameObject, thickness, color, backgroundColor, scale, feather)\r\n    {\r\n        if (thickness === undefined) { thickness = 8; }\r\n        if (scale === undefined) { scale = 1; }\r\n        if (feather === undefined) { feather = 0.005; }\r\n\r\n        Controller.call(this, FX_CONST.CIRCLE, gameObject);\r\n\r\n        /**\r\n         * The scale of the circle. The default scale is 1, which is a circle\r\n         * the full size of the underlying texture. Reduce this value to create\r\n         * a smaller circle, or increase it to create a circle that extends off\r\n         * the edges of the texture.\r\n         *\r\n         * @name Phaser.FX.Circle#scale\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.scale = scale;\r\n\r\n        /**\r\n         * The amount of feathering to apply to the circle from the ring,\r\n         * extending into the middle of the circle. The default is 0.005,\r\n         * which is a very low amount of feathering just making sure the ring\r\n         * has a smooth edge. Increase this amount to a value such as 0.5\r\n         * or 0.025 for larger amounts of feathering.\r\n         *\r\n         * @name Phaser.FX.Circle#feather\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.feather = feather;\r\n\r\n        /**\r\n         * The width of the circle around the texture, in pixels. This value\r\n         * doesn't factor in the feather, which can extend the thickness\r\n         * internally depending on its value.\r\n         *\r\n         * @name Phaser.FX.Circle#thickness\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.thickness = thickness;\r\n\r\n        /**\r\n         * The internal gl color array for the ring color.\r\n         *\r\n         * @name Phaser.FX.Circle#glcolor\r\n         * @type {number[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.glcolor = [ 1, 0.2, 0.7 ];\r\n\r\n        /**\r\n         * The internal gl color array for the background color.\r\n         *\r\n         * @name Phaser.FX.Circle#glcolor2\r\n         * @type {number[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.glcolor2 = [ 1, 0, 0, 0.4 ];\r\n\r\n        if (color !== undefined && color !== null)\r\n        {\r\n            this.color = color;\r\n        }\r\n\r\n        if (backgroundColor !== undefined && backgroundColor !== null)\r\n        {\r\n            this.backgroundColor = backgroundColor;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * The color of the circular ring, given as a number value.\r\n     *\r\n     * @name Phaser.FX.Circle#color\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    color: {\r\n\r\n        get: function ()\r\n        {\r\n            var color = this.glcolor;\r\n\r\n            return (((color[0] * 255) << 16) + ((color[1] * 255) << 8) + (color[2] * 255 | 0));\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var color = this.glcolor;\r\n\r\n            color[0] = ((value >> 16) & 0xFF) / 255;\r\n            color[1] = ((value >> 8) & 0xFF) / 255;\r\n            color[2] = (value & 0xFF) / 255;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The color of the background, behind the texture, given as a number value.\r\n     *\r\n     * @name Phaser.FX.Circle#backgroundColor\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    backgroundColor: {\r\n\r\n        get: function ()\r\n        {\r\n            var color = this.glcolor2;\r\n\r\n            return (((color[0] * 255) << 16) + ((color[1] * 255) << 8) + (color[2] * 255 | 0));\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var color = this.glcolor2;\r\n\r\n            color[0] = ((value >> 16) & 0xFF) / 255;\r\n            color[1] = ((value >> 8) & 0xFF) / 255;\r\n            color[2] = (value & 0xFF) / 255;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The alpha of the background, behind the texture, given as a number value.\r\n     *\r\n     * @name Phaser.FX.Circle#backgroundAlpha\r\n     * @type {number}\r\n     * @since 3.70.0\r\n     */\r\n    backgroundAlpha: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.glcolor2[3];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.glcolor2[3] = value;\r\n        }\r\n\r\n    }\r\n});\r\n\r\nmodule.exports = Circle;\r\n\n\n/***/ }),\n\n/***/ 15802:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar BaseColorMatrix = __webpack_require__(89422);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The ColorMatrix FX Controller.\r\n *\r\n * This FX controller manages the color matrix effect for a Game Object.\r\n *\r\n * The color matrix effect is a visual technique that involves manipulating the colors of an image\r\n * or scene using a mathematical matrix. This process can adjust hue, saturation, brightness, and contrast,\r\n * allowing developers to create various stylistic appearances or mood settings within the game.\r\n * Common applications include simulating different lighting conditions, applying color filters,\r\n * or achieving a specific visual style.\r\n *\r\n * A ColorMatrix effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addColorMatrix();\r\n * sprite.postFX.addColorMatrix();\r\n * ```\r\n *\r\n * @class ColorMatrix\r\n * @extends Phaser.Display.ColorMatrix\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n */\r\nvar ColorMatrix = new Class({\r\n\r\n    Extends: BaseColorMatrix,\r\n\r\n    initialize:\r\n\r\n    function ColorMatrix (gameObject)\r\n    {\r\n        BaseColorMatrix.call(this);\r\n\r\n        /**\r\n         * The FX_CONST type of this effect.\r\n         *\r\n         * @name Phaser.FX.ColorMatrix#type\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.type = FX_CONST.COLOR_MATRIX;\r\n\r\n        /**\r\n         * A reference to the Game Object that owns this effect.\r\n         *\r\n         * @name Phaser.FX.ColorMatrix#gameObject\r\n         * @type {Phaser.GameObjects.GameObject}\r\n         * @since 3.60.0\r\n         */\r\n        this.gameObject = gameObject;\r\n\r\n        /**\r\n         * Toggle this boolean to enable or disable this effect,\r\n         * without removing and adding it from the Game Object.\r\n         *\r\n         * @name Phaser.FX.ColorMatrix#active\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this.active = true;\r\n    },\r\n\r\n    destroy: function ()\r\n    {\r\n        this.gameObject = null;\r\n        this._matrix = null;\r\n        this._data = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = ColorMatrix;\r\n\n\n/***/ }),\n\n/***/ 72898:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\n\r\n/**\r\n * @classdesc\r\n * FX Controller is the base class that all built-in FX use.\r\n *\r\n * You should not normally create an instance of this class directly, but instead use one of the built-in FX that extend it.\r\n *\r\n * @class Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {number} type - The FX Type constant.\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n */\r\nvar Controller = new Class({\r\n\r\n    initialize:\r\n\r\n    function Controller (type, gameObject)\r\n    {\r\n        /**\r\n         * The FX_CONST type of this effect.\r\n         *\r\n         * @name Phaser.FX.Controller#type\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.type = type;\r\n\r\n        /**\r\n         * A reference to the Game Object that owns this effect.\r\n         *\r\n         * @name Phaser.FX.Controller#gameObject\r\n         * @type {Phaser.GameObjects.GameObject}\r\n         * @since 3.60.0\r\n         */\r\n        this.gameObject = gameObject;\r\n\r\n        /**\r\n         * Toggle this boolean to enable or disable this effect,\r\n         * without removing and adding it from the Game Object.\r\n         *\r\n         * Only works for Pre FX.\r\n         *\r\n         * Post FX are always active.\r\n         *\r\n         * @name Phaser.FX.Controller#active\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this.active = true;\r\n    },\r\n\r\n    /**\r\n     * Sets the active state of this FX Controller.\r\n     *\r\n     * A disabled FX Controller will not be updated.\r\n     *\r\n     * @method Phaser.FX.Controller#setActive\r\n     * @since 3.60.0\r\n     *\r\n     * @param {boolean} value - `true` to enable this FX Controller, or `false` to disable it.\r\n     *\r\n     * @return {this} This FX Controller instance.\r\n     */\r\n    setActive: function (value)\r\n    {\r\n        this.active = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Destroys this FX Controller.\r\n     *\r\n     * @method Phaser.FX.Controller#destroy\r\n     * @since 3.60.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.gameObject = null;\r\n        this.active = false;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Controller;\r\n\n\n/***/ }),\n\n/***/ 44553:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Controller = __webpack_require__(72898);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The Displacement FX Controller.\r\n *\r\n * This FX controller manages the displacement effect for a Game Object.\r\n *\r\n * The displacement effect is a visual technique that alters the position of pixels in an image\r\n * or texture based on the values of a displacement map. This effect is used to create the illusion\r\n * of depth, surface irregularities, or distortion in otherwise flat elements. It can be applied to\r\n * characters, objects, or backgrounds to enhance realism, convey movement, or achieve various\r\n * stylistic appearances.\r\n *\r\n * A Displacement effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addDisplacement();\r\n * sprite.postFX.addDisplacement();\r\n * ```\r\n *\r\n * @class Displacement\r\n * @extends Phaser.FX.Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n * @param {string} [texture='__WHITE'] - The unique string-based key of the texture to use for displacement, which must exist in the Texture Manager.\r\n * @param {number} [x=0.005] - The amount of horizontal displacement to apply. A very small float number, such as 0.005.\r\n * @param {number} [y=0.005] - The amount of vertical displacement to apply. A very small float number, such as 0.005.\r\n */\r\nvar Displacement = new Class({\r\n\r\n    Extends: Controller,\r\n\r\n    initialize:\r\n\r\n    function Displacement (gameObject, texture, x, y)\r\n    {\r\n        if (texture === undefined) { texture = '__WHITE'; }\r\n        if (x === undefined) { x = 0.005; }\r\n        if (y === undefined) { y = 0.005; }\r\n\r\n        Controller.call(this, FX_CONST.DISPLACEMENT, gameObject);\r\n\r\n        /**\r\n         * The amount of horizontal displacement to apply.\r\n         *\r\n         * @name Phaser.FX.Displacement#x\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.x = x;\r\n\r\n        /**\r\n         * The amount of vertical displacement to apply.\r\n         *\r\n         * @name Phaser.FX.Displacement#y\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.y = y;\r\n\r\n        /**\r\n         * The underlying texture used for displacement.\r\n         *\r\n         * @name Phaser.FX.Displacement#glTexture\r\n         * @type {Phaser.Renderer.WebGL.Wrappers.WebGLTextureWrapper}\r\n         * @since 3.60.0\r\n         */\r\n        this.glTexture;\r\n\r\n        this.setTexture(texture);\r\n    },\r\n\r\n    /**\r\n     * Sets the Texture to be used for the displacement effect.\r\n     *\r\n     * You can only use a whole texture, not a frame from a texture atlas or sprite sheet.\r\n     *\r\n     * @method Phaser.FX.Displacement#setTexture\r\n     * @since 3.60.0\r\n     *\r\n     * @param {string} [texture='__WHITE'] - The unique string-based key of the texture to use for displacement, which must exist in the Texture Manager.\r\n     *\r\n     * @return {this} This FX Controller.\r\n     */\r\n    setTexture: function (texture)\r\n    {\r\n        var phaserTexture = this.gameObject.scene.sys.textures.getFrame(texture);\r\n\r\n        if (phaserTexture)\r\n        {\r\n            this.glTexture = phaserTexture.glTexture;\r\n        }\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Displacement;\r\n\n\n/***/ }),\n\n/***/ 68531:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Controller = __webpack_require__(72898);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The Glow FX Controller.\r\n *\r\n * This FX controller manages the glow effect for a Game Object.\r\n *\r\n * The glow effect is a visual technique that creates a soft, luminous halo around game objects,\r\n * characters, or UI elements. This effect is used to emphasize importance, enhance visual appeal,\r\n * or convey a sense of energy, magic, or otherworldly presence. The effect can also be set on\r\n * the inside of the Game Object. The color and strength of the glow can be modified.\r\n *\r\n * A Glow effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addGlow();\r\n * sprite.postFX.addGlow();\r\n * ```\r\n *\r\n * @class Glow\r\n * @extends Phaser.FX.Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n * @param {number} [color=0xffffff] - The color of the glow effect as a number value.\r\n * @param {number} [outerStrength=4] - The strength of the glow outward from the edge of the Sprite.\r\n * @param {number} [innerStrength=0] - The strength of the glow inward from the edge of the Sprite.\r\n * @param {boolean} [knockout=false] - If `true` only the glow is drawn, not the texture itself.\r\n */\r\nvar Glow = new Class({\r\n\r\n    Extends: Controller,\r\n\r\n    initialize:\r\n\r\n    function Glow (gameObject, color, outerStrength, innerStrength, knockout)\r\n    {\r\n        if (outerStrength === undefined) { outerStrength = 4; }\r\n        if (innerStrength === undefined) { innerStrength = 0; }\r\n        if (knockout === undefined) { knockout = false; }\r\n\r\n        Controller.call(this, FX_CONST.GLOW, gameObject);\r\n\r\n        /**\r\n         * The strength of the glow outward from the edge of the Sprite.\r\n         *\r\n         * @name Phaser.FX.Glow#outerStrength\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.outerStrength = outerStrength;\r\n\r\n        /**\r\n         * The strength of the glow inward from the edge of the Sprite.\r\n         *\r\n         * @name Phaser.FX.Glow#innerStrength\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.innerStrength = innerStrength;\r\n\r\n        /**\r\n         * If `true` only the glow is drawn, not the texture itself.\r\n         *\r\n         * @name Phaser.FX.Glow#knockout\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.knockout = knockout;\r\n\r\n        /**\r\n         * A 4 element array of gl color values.\r\n         *\r\n         * @name Phaser.FX.Glow#glcolor\r\n         * @type {number[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.glcolor = [ 1, 1, 1, 1 ];\r\n\r\n        if (color !== undefined)\r\n        {\r\n            this.color = color;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * The color of the glow as a number value.\r\n     *\r\n     * @name Phaser.FX.Glow#color\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    color: {\r\n\r\n        get: function ()\r\n        {\r\n            var color = this.glcolor;\r\n\r\n            return (((color[0] * 255) << 16) + ((color[1] * 255) << 8) + (color[2] * 255 | 0));\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var color = this.glcolor;\r\n\r\n            color[0] = ((value >> 16) & 0xFF) / 255;\r\n            color[1] = ((value >> 8) & 0xFF) / 255;\r\n            color[2] = (value & 0xFF) / 255;\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Glow;\r\n\n\n/***/ }),\n\n/***/ 37102:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Controller = __webpack_require__(72898);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The Gradient FX Controller.\r\n *\r\n * This FX controller manages the gradient effect for a Game Object.\r\n *\r\n * The gradient overlay effect is a visual technique where a smooth color transition is applied over Game Objects,\r\n * such as sprites or UI components. This effect is used to enhance visual appeal, emphasize depth, or create\r\n * stylistic and atmospheric variations. It can also be utilized to convey information, such as representing\r\n * progress or health status through color changes.\r\n *\r\n * A Gradient effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addGradient();\r\n * sprite.postFX.addGradient();\r\n * ```\r\n *\r\n * @class Gradient\r\n * @extends Phaser.FX.Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n * @param {number} [color1=0xff0000] - The first gradient color, given as a number value.\r\n * @param {number} [color2=0x00ff00] - The second gradient color, given as a number value.\r\n * @param {number} [alpha=0.2] - The alpha value of the gradient effect.\r\n * @param {number} [fromX=0] - The horizontal position the gradient will start from. This value is normalized, between 0 and 1, and is not in pixels.\r\n * @param {number} [fromY=0] - The vertical position the gradient will start from. This value is normalized, between 0 and 1, and is not in pixels.\r\n * @param {number} [toX=0] - The horizontal position the gradient will end at. This value is normalized, between 0 and 1, and is not in pixels.\r\n * @param {number} [toY=1] - The vertical position the gradient will end at. This value is normalized, between 0 and 1, and is not in pixels.\r\n * @param {number} [size=0] - How many 'chunks' the gradient is divided in to, as spread over the entire height of the texture. Leave this at zero for a smooth gradient, or set higher for a more retro chunky effect.\r\n */\r\nvar Gradient = new Class({\r\n\r\n    Extends: Controller,\r\n\r\n    initialize:\r\n\r\n    function Gradient (gameObject, color1, color2, alpha, fromX, fromY, toX, toY, size)\r\n    {\r\n        if (alpha === undefined) { alpha = 0.2; }\r\n        if (fromX === undefined) { fromX = 0; }\r\n        if (fromY === undefined) { fromY = 0; }\r\n        if (toX === undefined) { toX = 0; }\r\n        if (toY === undefined) { toY = 1; }\r\n        if (size === undefined) { size = 0; }\r\n\r\n        Controller.call(this, FX_CONST.GRADIENT, gameObject);\r\n\r\n        /**\r\n         * The alpha value of the gradient effect.\r\n         *\r\n         * @name Phaser.FX.Gradient#alpha\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.alpha = alpha;\r\n\r\n        /**\r\n         * Sets how many 'chunks' the gradient is divided in to, as spread over the\r\n         * entire height of the texture. Leave this at zero for a smooth gradient,\r\n         * or set to a higher number to split the gradient into that many sections, giving\r\n         * a more banded 'retro' effect.\r\n         *\r\n         * @name Phaser.FX.Gradient#size\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.size = size;\r\n\r\n        /**\r\n         * The horizontal position the gradient will start from. This value is normalized, between 0 and 1 and is not in pixels.\r\n         *\r\n         * @name Phaser.FX.Gradient#fromX\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.fromX = fromX;\r\n\r\n        /**\r\n         * The vertical position the gradient will start from. This value is normalized, between 0 and 1 and is not in pixels.\r\n         *\r\n         * @name Phaser.FX.Gradient#fromY\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.fromY = fromY;\r\n\r\n        /**\r\n         * The horizontal position the gradient will end. This value is normalized, between 0 and 1 and is not in pixels.\r\n         *\r\n         * @name Phaser.FX.Gradient#toX\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.toX = toX;\r\n\r\n        /**\r\n         * The vertical position the gradient will end. This value is normalized, between 0 and 1 and is not in pixels.\r\n         *\r\n         * @name Phaser.FX.Gradient#toY\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.toY = toY;\r\n\r\n        /**\r\n         * The internal gl color array for the starting color.\r\n         *\r\n         * @name Phaser.FX.Gradient#glcolor1\r\n         * @type {number[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.glcolor1 = [ 255, 0, 0 ];\r\n\r\n        /**\r\n         * The internal gl color array for the ending color.\r\n         *\r\n         * @name Phaser.FX.Gradient#glcolor2\r\n         * @type {number[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.glcolor2 = [ 0, 255, 0 ];\r\n\r\n        if (color1 !== undefined && color1 !== null)\r\n        {\r\n            this.color1 = color1;\r\n        }\r\n\r\n        if (color2 !== undefined && color2 !== null)\r\n        {\r\n            this.color2 = color2;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * The first gradient color, given as a number value.\r\n     *\r\n     * @name Phaser.FX.Gradient#color1\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    color1: {\r\n\r\n        get: function ()\r\n        {\r\n            var color = this.glcolor1;\r\n\r\n            return (((color[0]) << 16) + ((color[1]) << 8) + (color[2] | 0));\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var color = this.glcolor1;\r\n\r\n            color[0] = ((value >> 16) & 0xFF);\r\n            color[1] = ((value >> 8) & 0xFF);\r\n            color[2] = (value & 0xFF);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The second gradient color, given as a number value.\r\n     *\r\n     * @name Phaser.FX.Gradient#color2\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    color2: {\r\n\r\n        get: function ()\r\n        {\r\n            var color = this.glcolor2;\r\n\r\n            return (((color[0]) << 16) + ((color[1]) << 8) + (color[2] | 0));\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var color = this.glcolor2;\r\n\r\n            color[0] = ((value >> 16) & 0xFF);\r\n            color[1] = ((value >> 8) & 0xFF);\r\n            color[2] = (value & 0xFF);\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Gradient;\r\n\n\n/***/ }),\n\n/***/ 86886:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Controller = __webpack_require__(72898);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The Pixelate FX Controller.\r\n *\r\n * This FX controller manages the pixelate effect for a Game Object.\r\n *\r\n * The pixelate effect is a visual technique that deliberately reduces the resolution or detail of an image,\r\n * creating a blocky or mosaic appearance composed of large, visible pixels. This effect can be used for stylistic\r\n * purposes, as a homage to retro gaming, or as a means to obscure certain elements within the game, such as\r\n * during a transition or to censor specific content.\r\n *\r\n * A Pixelate effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addPixelate();\r\n * sprite.postFX.addPixelate();\r\n * ```\r\n *\r\n * @class Pixelate\r\n * @extends Phaser.FX.Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n * @param {number} [amount=1] - The amount of pixelation to apply.\r\n */\r\nvar Pixelate = new Class({\r\n\r\n    Extends: Controller,\r\n\r\n    initialize:\r\n\r\n    function Pixelate (gameObject, amount)\r\n    {\r\n        if (amount === undefined) { amount = 1; }\r\n\r\n        Controller.call(this, FX_CONST.PIXELATE, gameObject);\r\n\r\n        /**\r\n         * The amount of pixelation to apply.\r\n         *\r\n         * @name Phaser.FX.Pixelate#amount\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.amount = amount;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Pixelate;\r\n\n\n/***/ }),\n\n/***/ 92322:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Controller = __webpack_require__(72898);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The Shadow FX Controller.\r\n *\r\n * This FX controller manages the shadow effect for a Game Object.\r\n *\r\n * The shadow effect is a visual technique used to create the illusion of depth and realism by adding darker,\r\n * offset silhouettes or shapes beneath game objects, characters, or environments. These simulated shadows\r\n * help to enhance the visual appeal and immersion, making the 2D game world appear more dynamic and three-dimensional.\r\n *\r\n * A Shadow effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addShadow();\r\n * sprite.postFX.addShadow();\r\n * ```\r\n *\r\n * @class Shadow\r\n * @extends Phaser.FX.Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n * @param {number} [x=0] - The horizontal offset of the shadow effect.\r\n * @param {number} [y=0] - The vertical offset of the shadow effect.\r\n * @param {number} [decay=0.1] - The amount of decay for shadow effect.\r\n * @param {number} [power=1] - The power of the shadow effect.\r\n * @param {number} [color=0x000000] - The color of the shadow.\r\n * @param {number} [samples=6] - The number of samples that the shadow effect will run for. An integer between 1 and 12.\r\n * @param {number} [intensity=1] - The intensity of the shadow effect.\r\n */\r\nvar Shadow = new Class({\r\n\r\n    Extends: Controller,\r\n\r\n    initialize:\r\n\r\n    function Shadow (gameObject, x, y, decay, power, color, samples, intensity)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (decay === undefined) { decay = 0.1; }\r\n        if (power === undefined) { power = 1; }\r\n        if (samples === undefined) { samples = 6; }\r\n        if (intensity === undefined) { intensity = 1; }\r\n\r\n        Controller.call(this, FX_CONST.SHADOW, gameObject);\r\n\r\n        /**\r\n         * The horizontal offset of the shadow effect.\r\n         *\r\n         * @name Phaser.FX.Shadow#x\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.x = x;\r\n\r\n        /**\r\n         * The vertical offset of the shadow effect.\r\n         *\r\n         * @name Phaser.FX.Shadow#y\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.y = y;\r\n\r\n        /**\r\n         * The amount of decay for the shadow effect.\r\n         *\r\n         * @name Phaser.FX.Shadow#decay\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.decay = decay;\r\n\r\n        /**\r\n         * The power of the shadow effect.\r\n         *\r\n         * @name Phaser.FX.Shadow#power\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.power = power;\r\n\r\n        /**\r\n         * The internal gl color array.\r\n         *\r\n         * @name Phaser.FX.Shadow#glcolor\r\n         * @type {number[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.glcolor = [ 0, 0, 0, 1 ];\r\n\r\n        /**\r\n         * The number of samples that the shadow effect will run for.\r\n         *\r\n         * This should be an integer with a minimum value of 1 and a maximum of 12.\r\n         *\r\n         * @name Phaser.FX.Shadow#samples\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.samples = samples;\r\n\r\n        /**\r\n         * The intensity of the shadow effect.\r\n         *\r\n         * @name Phaser.FX.Shadow#intensity\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.intensity = intensity;\r\n\r\n        if (color !== undefined)\r\n        {\r\n            this.color = color;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * The color of the shadow.\r\n     *\r\n     * @name Phaser.FX.Shadow#color\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    color: {\r\n\r\n        get: function ()\r\n        {\r\n            var color = this.glcolor;\r\n\r\n            return (((color[0] * 255) << 16) + ((color[1] * 255) << 8) + (color[2] * 255 | 0));\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var color = this.glcolor;\r\n\r\n            color[0] = ((value >> 16) & 0xFF) / 255;\r\n            color[1] = ((value >> 8) & 0xFF) / 255;\r\n            color[2] = (value & 0xFF) / 255;\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Shadow;\r\n\n\n/***/ }),\n\n/***/ 39563:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Controller = __webpack_require__(72898);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The Shine FX Controller.\r\n *\r\n * This FX controller manages the shift effect for a Game Object.\r\n *\r\n * The shine effect is a visual technique that simulates the appearance of reflective\r\n * or glossy surfaces by passing a light beam across a Game Object. This effect is used to\r\n * enhance visual appeal, emphasize certain features, and create a sense of depth or\r\n * material properties.\r\n *\r\n * A Shine effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addShine();\r\n * sprite.postFX.addShine();\r\n * ```\r\n *\r\n * @class Shine\r\n * @extends Phaser.FX.Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n * @param {number} [speed=0.5] - The speed of the Shine effect.\r\n * @param {number} [lineWidth=0.5] - The line width of the Shine effect.\r\n * @param {number} [gradient=3] - The gradient of the Shine effect.\r\n * @param {boolean} [reveal=false] - Does this Shine effect reveal or get added to its target?\r\n */\r\nvar Shine = new Class({\r\n\r\n    Extends: Controller,\r\n\r\n    initialize:\r\n\r\n    function Shine (gameObject, speed, lineWidth, gradient, reveal)\r\n    {\r\n        if (speed === undefined) { speed = 0.5; }\r\n        if (lineWidth === undefined) { lineWidth = 0.5; }\r\n        if (gradient === undefined) { gradient = 3; }\r\n        if (reveal === undefined) { reveal = false; }\r\n\r\n        Controller.call(this, FX_CONST.SHINE, gameObject);\r\n\r\n        /**\r\n         * The speed of the Shine effect.\r\n         *\r\n         * @name Phaser.FX.Shine#speed\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.speed = speed;\r\n\r\n        /**\r\n         * The line width of the Shine effect.\r\n         *\r\n         * @name Phaser.FX.Shine#lineWidth\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.lineWidth = lineWidth;\r\n\r\n        /**\r\n         * The gradient of the Shine effect.\r\n         *\r\n         * @name Phaser.FX.Shine#gradient\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.gradient = gradient;\r\n\r\n        /**\r\n         * Does this Shine effect reveal or get added to its target?\r\n         *\r\n         * @name Phaser.FX.Shine#reveal\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this.reveal = reveal;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Shine;\r\n\n\n/***/ }),\n\n/***/ 56448:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Controller = __webpack_require__(72898);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The Vignette FX Controller.\r\n *\r\n * This FX controller manages the vignette effect for a Game Object.\r\n *\r\n * The vignette effect is a visual technique where the edges of the screen, or a Game Object, gradually darken or blur,\r\n * creating a frame-like appearance. This effect is used to draw the player's focus towards the central action or subject,\r\n * enhance immersion, and provide a cinematic or artistic quality to the game's visuals.\r\n *\r\n * A Vignette effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addVignette();\r\n * sprite.postFX.addVignette();\r\n * ```\r\n *\r\n * @class Vignette\r\n * @extends Phaser.FX.Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n * @param {number} [x=0.5] - The horizontal offset of the vignette effect. This value is normalized to the range 0 to 1.\r\n * @param {number} [y=0.5] - The vertical offset of the vignette effect. This value is normalized to the range 0 to 1.\r\n * @param {number} [radius=0.5] - The radius of the vignette effect. This value is normalized to the range 0 to 1.\r\n * @param {number} [strength=0.5] - The strength of the vignette effect.\r\n */\r\nvar Vignette = new Class({\r\n\r\n    Extends: Controller,\r\n\r\n    initialize:\r\n\r\n    function Vignette (gameObject, x, y, radius, strength)\r\n    {\r\n        if (x === undefined) { x = 0.5; }\r\n        if (y === undefined) { y = 0.5; }\r\n        if (radius === undefined) { radius = 0.5; }\r\n        if (strength === undefined) { strength = 0.5; }\r\n\r\n        Controller.call(this, FX_CONST.VIGNETTE, gameObject);\r\n\r\n        /**\r\n         * The horizontal offset of the vignette effect. This value is normalized to the range 0 to 1.\r\n         *\r\n         * @name Phaser.FX.Vignette#x\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.x = x;\r\n\r\n        /**\r\n         * The vertical offset of the vignette effect. This value is normalized to the range 0 to 1.\r\n         *\r\n         * @name Phaser.FX.Vignette#y\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.y = y;\r\n\r\n        /**\r\n         * The radius of the vignette effect. This value is normalized to the range 0 to 1.\r\n         *\r\n         * @name Phaser.FX.Vignette#radius\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.radius = radius;\r\n\r\n        /**\r\n         * The strength of the vignette effect.\r\n         *\r\n         * @name Phaser.FX.Vignette#strength\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.strength = strength;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Vignette;\r\n\n\n/***/ }),\n\n/***/ 38433:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Controller = __webpack_require__(72898);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @classdesc\r\n * The Wipe FX Controller.\r\n *\r\n * This FX controller manages the wipe effect for a Game Object.\r\n *\r\n * The wipe or reveal effect is a visual technique that gradually uncovers or conceals elements\r\n * in the game, such as images, text, or scene transitions. This effect is often used to create\r\n * a sense of progression, reveal hidden content, or provide a smooth and visually appealing transition\r\n * between game states.\r\n *\r\n * You can set both the direction and the axis of the wipe effect. The following combinations are possible:\r\n *\r\n * * left to right: direction 0, axis 0\r\n * * right to left: direction 1, axis 0\r\n * * top to bottom: direction 1, axis 1\r\n * * bottom to top: direction 1, axis 0\r\n *\r\n * It is up to you to set the `progress` value yourself, i.e. via a Tween, in order to transition the effect.\r\n *\r\n * A Wipe effect is added to a Game Object via the FX component:\r\n *\r\n * ```js\r\n * const sprite = this.add.sprite();\r\n *\r\n * sprite.preFX.addWipe();\r\n * sprite.postFX.addWipe();\r\n * sprite.preFX.addReveal();\r\n * sprite.postFX.addReveal();\r\n * ```\r\n *\r\n * @class Wipe\r\n * @extends Phaser.FX.Controller\r\n * @memberof Phaser.FX\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that has this fx.\r\n * @param {number} [wipeWidth=0.1] - The width of the wipe effect. This value is normalized in the range 0 to 1.\r\n * @param {number} [direction=0] - The direction of the wipe effect. Either 0 or 1. Set in conjunction with the axis property.\r\n * @param {number} [axis=0] - The axis of the wipe effect. Either 0 or 1. Set in conjunction with the direction property.\r\n * @param {boolean} [reveal=false] - Is this a reveal (true) or a fade (false) effect?\r\n */\r\nvar Wipe = new Class({\r\n\r\n    Extends: Controller,\r\n\r\n    initialize:\r\n\r\n    function Wipe (gameObject, wipeWidth, direction, axis, reveal)\r\n    {\r\n        if (wipeWidth === undefined) { wipeWidth = 0.1; }\r\n        if (direction === undefined) { direction = 0; }\r\n        if (axis === undefined) { axis = 0; }\r\n        if (reveal === undefined) { reveal = false; }\r\n\r\n        Controller.call(this, FX_CONST.WIPE, gameObject);\r\n\r\n        /**\r\n         * The progress of the Wipe effect. This value is normalized to the range 0 to 1.\r\n         *\r\n         * Adjust this value to make the wipe transition (i.e. via a Tween)\r\n         *\r\n         * @name Phaser.FX.Wipe#progress\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.progress = 0;\r\n\r\n        /**\r\n         * The width of the wipe effect. This value is normalized in the range 0 to 1.\r\n         *\r\n         * @name Phaser.FX.Wipe#wipeWidth\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.wipeWidth = wipeWidth;\r\n\r\n        /**\r\n         * The direction of the wipe effect. Either 0 or 1. Set in conjunction with the axis property.\r\n         *\r\n         * @name Phaser.FX.Wipe#direction\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.direction = direction;\r\n\r\n        /**\r\n         * The axis of the wipe effect. Either 0 or 1. Set in conjunction with the direction property.\r\n         *\r\n         * @name Phaser.FX.Wipe#axis\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.axis = axis;\r\n\r\n        /**\r\n         * Is this a reveal (true) or a fade (false) effect?\r\n         *\r\n         * @name Phaser.FX.Wipe#reveal\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this.reveal = reveal;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Wipe;\r\n\n\n/***/ }),\n\n/***/ 14811:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FX_CONST = {\r\n\r\n    /**\r\n     * The Glow FX.\r\n     *\r\n     * @name Phaser.FX.GLOW\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    GLOW: 4,\r\n\r\n    /**\r\n     * The Shadow FX.\r\n     *\r\n     * @name Phaser.FX.SHADOW\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    SHADOW: 5,\r\n\r\n    /**\r\n     * The Pixelate FX.\r\n     *\r\n     * @name Phaser.FX.PIXELATE\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    PIXELATE: 6,\r\n\r\n    /**\r\n     * The Vignette FX.\r\n     *\r\n     * @name Phaser.FX.VIGNETTE\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    VIGNETTE: 7,\r\n\r\n    /**\r\n     * The Shine FX.\r\n     *\r\n     * @name Phaser.FX.SHINE\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    SHINE: 8,\r\n\r\n    /**\r\n     * The Blur FX.\r\n     *\r\n     * @name Phaser.FX.BLUR\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    BLUR: 9, // uses 3 shaders, slots 9, 10 and 11\r\n\r\n    /**\r\n     * The Gradient FX.\r\n     *\r\n     * @name Phaser.FX.GRADIENT\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    GRADIENT: 12,\r\n\r\n    /**\r\n     * The Bloom FX.\r\n     *\r\n     * @name Phaser.FX.BLOOM\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    BLOOM: 13,\r\n\r\n    /**\r\n     * The Color Matrix FX.\r\n     *\r\n     * @name Phaser.FX.COLOR_MATRIX\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    COLOR_MATRIX: 14,\r\n\r\n    /**\r\n     * The Circle FX.\r\n     *\r\n     * @name Phaser.FX.CIRCLE\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    CIRCLE: 15,\r\n\r\n    /**\r\n     * The Barrel FX.\r\n     *\r\n     * @name Phaser.FX.BARREL\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    BARREL: 16,\r\n\r\n    /**\r\n     * The Displacement FX.\r\n     *\r\n     * @name Phaser.FX.DISPLACEMENT\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    DISPLACEMENT: 17,\r\n\r\n    /**\r\n     * The Wipe FX.\r\n     *\r\n     * @name Phaser.FX.WIPE\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    WIPE: 18,\r\n\r\n    /**\r\n     * The Bokeh and Tilt Shift FX.\r\n     *\r\n     * @name Phaser.FX.BOKEH\r\n     * @type {number}\r\n     * @const\r\n     * @since 3.60.0\r\n     */\r\n    BOKEH: 19\r\n\r\n};\r\n\r\nmodule.exports = FX_CONST;\r\n\n\n/***/ }),\n\n/***/ 66064:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Extend = __webpack_require__(79291);\r\nvar FX_CONST = __webpack_require__(14811);\r\n\r\n/**\r\n * @namespace Phaser.FX\r\n */\r\n\r\nvar FX = {\r\n\r\n    Barrel: __webpack_require__(20122),\r\n    Controller: __webpack_require__(72898),\r\n    Bloom: __webpack_require__(32251),\r\n    Blur: __webpack_require__(9047),\r\n    Bokeh: __webpack_require__(27885),\r\n    Circle: __webpack_require__(12578),\r\n    ColorMatrix: __webpack_require__(15802),\r\n    Displacement: __webpack_require__(44553),\r\n    Glow: __webpack_require__(68531),\r\n    Gradient: __webpack_require__(37102),\r\n    Pixelate: __webpack_require__(86886),\r\n    Shadow: __webpack_require__(92322),\r\n    Shine: __webpack_require__(39563),\r\n    Vignette: __webpack_require__(56448),\r\n    Wipe: __webpack_require__(38433)\r\n\r\n};\r\n\r\nFX = Extend(false, FX, FX_CONST);\r\n\r\nmodule.exports = FX;\r\n\n\n/***/ }),\n\n/***/ 25305:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BlendModes = __webpack_require__(10312);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\n\r\n/**\r\n * Builds a Game Object using the provided configuration object.\r\n *\r\n * @function Phaser.GameObjects.BuildGameObject\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - A reference to the Scene.\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The initial GameObject.\r\n * @param {Phaser.Types.GameObjects.GameObjectConfig} config - The config to build the GameObject with.\r\n *\r\n * @return {Phaser.GameObjects.GameObject} The built Game Object.\r\n */\r\nvar BuildGameObject = function (scene, gameObject, config)\r\n{\r\n    //  Position\r\n\r\n    gameObject.x = GetAdvancedValue(config, 'x', 0);\r\n    gameObject.y = GetAdvancedValue(config, 'y', 0);\r\n    gameObject.depth = GetAdvancedValue(config, 'depth', 0);\r\n\r\n    //  Flip\r\n\r\n    gameObject.flipX = GetAdvancedValue(config, 'flipX', false);\r\n    gameObject.flipY = GetAdvancedValue(config, 'flipY', false);\r\n\r\n    //  Scale\r\n    //  Either: { scale: 2 } or { scale: { x: 2, y: 2 }}\r\n\r\n    var scale = GetAdvancedValue(config, 'scale', null);\r\n\r\n    if (typeof scale === 'number')\r\n    {\r\n        gameObject.setScale(scale);\r\n    }\r\n    else if (scale !== null)\r\n    {\r\n        gameObject.scaleX = GetAdvancedValue(scale, 'x', 1);\r\n        gameObject.scaleY = GetAdvancedValue(scale, 'y', 1);\r\n    }\r\n\r\n    //  ScrollFactor\r\n    //  Either: { scrollFactor: 2 } or { scrollFactor: { x: 2, y: 2 }}\r\n\r\n    var scrollFactor = GetAdvancedValue(config, 'scrollFactor', null);\r\n\r\n    if (typeof scrollFactor === 'number')\r\n    {\r\n        gameObject.setScrollFactor(scrollFactor);\r\n    }\r\n    else if (scrollFactor !== null)\r\n    {\r\n        gameObject.scrollFactorX = GetAdvancedValue(scrollFactor, 'x', 1);\r\n        gameObject.scrollFactorY = GetAdvancedValue(scrollFactor, 'y', 1);\r\n    }\r\n\r\n    //  Rotation\r\n\r\n    gameObject.rotation = GetAdvancedValue(config, 'rotation', 0);\r\n\r\n    var angle = GetAdvancedValue(config, 'angle', null);\r\n\r\n    if (angle !== null)\r\n    {\r\n        gameObject.angle = angle;\r\n    }\r\n\r\n    //  Alpha\r\n\r\n    gameObject.alpha = GetAdvancedValue(config, 'alpha', 1);\r\n\r\n    //  Origin\r\n    //  Either: { origin: 0.5 } or { origin: { x: 0.5, y: 0.5 }}\r\n\r\n    var origin = GetAdvancedValue(config, 'origin', null);\r\n\r\n    if (typeof origin === 'number')\r\n    {\r\n        gameObject.setOrigin(origin);\r\n    }\r\n    else if (origin !== null)\r\n    {\r\n        var ox = GetAdvancedValue(origin, 'x', 0.5);\r\n        var oy = GetAdvancedValue(origin, 'y', 0.5);\r\n\r\n        gameObject.setOrigin(ox, oy);\r\n    }\r\n\r\n    //  BlendMode\r\n\r\n    gameObject.blendMode = GetAdvancedValue(config, 'blendMode', BlendModes.NORMAL);\r\n\r\n    //  Visible\r\n\r\n    gameObject.visible = GetAdvancedValue(config, 'visible', true);\r\n\r\n    //  Add to Scene\r\n\r\n    var add = GetAdvancedValue(config, 'add', true);\r\n\r\n    if (add)\r\n    {\r\n        scene.sys.displayList.add(gameObject);\r\n    }\r\n\r\n    if (gameObject.preUpdate)\r\n    {\r\n        scene.sys.updateList.add(gameObject);\r\n    }\r\n\r\n    return gameObject;\r\n};\r\n\r\nmodule.exports = BuildGameObject;\r\n\n\n/***/ }),\n\n/***/ 13059:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\n\r\n/**\r\n * Adds an Animation component to a Sprite and populates it based on the given config.\r\n *\r\n * @function Phaser.GameObjects.BuildGameObjectAnimation\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.Sprite} sprite - The sprite to add an Animation component to.\r\n * @param {object} config - The animation config.\r\n *\r\n * @return {Phaser.GameObjects.Sprite} The updated Sprite.\r\n */\r\nvar BuildGameObjectAnimation = function (sprite, config)\r\n{\r\n    var animConfig = GetAdvancedValue(config, 'anims', null);\r\n\r\n    if (animConfig === null)\r\n    {\r\n        return sprite;\r\n    }\r\n\r\n    if (typeof animConfig === 'string')\r\n    {\r\n        //  { anims: 'key' }\r\n        sprite.anims.play(animConfig);\r\n    }\r\n    else if (typeof animConfig === 'object')\r\n    {\r\n        //  { anims: {\r\n        //              key: string\r\n        //              startFrame: [string|number]\r\n        //              delay: [float]\r\n        //              repeat: [integer]\r\n        //              repeatDelay: [float]\r\n        //              yoyo: [boolean]\r\n        //              play: [boolean]\r\n        //              delayedPlay: [boolean]\r\n        //           }\r\n        //  }\r\n\r\n        var anims = sprite.anims;\r\n\r\n        var key = GetAdvancedValue(animConfig, 'key', undefined);\r\n\r\n        if (key)\r\n        {\r\n            var startFrame = GetAdvancedValue(animConfig, 'startFrame', undefined);\r\n\r\n            var delay = GetAdvancedValue(animConfig, 'delay', 0);\r\n            var repeat = GetAdvancedValue(animConfig, 'repeat', 0);\r\n            var repeatDelay = GetAdvancedValue(animConfig, 'repeatDelay', 0);\r\n            var yoyo = GetAdvancedValue(animConfig, 'yoyo', false);\r\n\r\n            var play = GetAdvancedValue(animConfig, 'play', false);\r\n            var delayedPlay = GetAdvancedValue(animConfig, 'delayedPlay', 0);\r\n\r\n            var playConfig = {\r\n                key: key,\r\n                delay: delay,\r\n                repeat: repeat,\r\n                repeatDelay: repeatDelay,\r\n                yoyo: yoyo,\r\n                startFrame: startFrame\r\n            };\r\n\r\n            if (play)\r\n            {\r\n                anims.play(playConfig);\r\n            }\r\n            else if (delayedPlay > 0)\r\n            {\r\n                anims.playAfterDelay(playConfig, delayedPlay);\r\n            }\r\n            else\r\n            {\r\n                anims.load(playConfig);\r\n            }\r\n        }\r\n    }\r\n\r\n    return sprite;\r\n};\r\n\r\nmodule.exports = BuildGameObjectAnimation;\r\n\n\n/***/ }),\n\n/***/ 8050:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar List = __webpack_require__(73162);\r\nvar PluginCache = __webpack_require__(37277);\r\nvar GameObjectEvents = __webpack_require__(51708);\r\nvar SceneEvents = __webpack_require__(44594);\r\nvar StableSort = __webpack_require__(19186);\r\n\r\n/**\r\n * @classdesc\r\n * The Display List plugin.\r\n *\r\n * Display Lists belong to a Scene and maintain the list of Game Objects to render every frame.\r\n *\r\n * Some of these Game Objects may also be part of the Scene's [Update List]{@link Phaser.GameObjects.UpdateList}, for updating.\r\n *\r\n * @class DisplayList\r\n * @extends Phaser.Structs.List.<Phaser.GameObjects.GameObject>\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene that this Display List belongs to.\r\n */\r\nvar DisplayList = new Class({\r\n\r\n    Extends: List,\r\n\r\n    initialize:\r\n\r\n    function DisplayList (scene)\r\n    {\r\n        List.call(this, scene);\r\n\r\n        /**\r\n         * The flag the determines whether Game Objects should be sorted when `depthSort()` is called.\r\n         *\r\n         * @name Phaser.GameObjects.DisplayList#sortChildrenFlag\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.sortChildrenFlag = false;\r\n\r\n        /**\r\n         * The Scene that this Display List belongs to.\r\n         *\r\n         * @name Phaser.GameObjects.DisplayList#scene\r\n         * @type {Phaser.Scene}\r\n         * @since 3.0.0\r\n         */\r\n        this.scene = scene;\r\n\r\n        /**\r\n         * The Scene's Systems.\r\n         *\r\n         * @name Phaser.GameObjects.DisplayList#systems\r\n         * @type {Phaser.Scenes.Systems}\r\n         * @since 3.0.0\r\n         */\r\n        this.systems = scene.sys;\r\n\r\n        /**\r\n         * The Scene's Event Emitter.\r\n         *\r\n         * @name Phaser.GameObjects.DisplayList#events\r\n         * @type {Phaser.Events.EventEmitter}\r\n         * @since 3.50.0\r\n         */\r\n        this.events = scene.sys.events;\r\n\r\n        //  Set the List callbacks\r\n        this.addCallback = this.addChildCallback;\r\n        this.removeCallback = this.removeChildCallback;\r\n\r\n        this.events.once(SceneEvents.BOOT, this.boot, this);\r\n        this.events.on(SceneEvents.START, this.start, this);\r\n    },\r\n\r\n    /**\r\n     * This method is called automatically, only once, when the Scene is first created.\r\n     * Do not invoke it directly.\r\n     *\r\n     * @method Phaser.GameObjects.DisplayList#boot\r\n     * @private\r\n     * @since 3.5.1\r\n     */\r\n    boot: function ()\r\n    {\r\n        this.events.once(SceneEvents.DESTROY, this.destroy, this);\r\n    },\r\n\r\n    /**\r\n     * Internal method called from `List.addCallback`.\r\n     *\r\n     * @method Phaser.GameObjects.DisplayList#addChildCallback\r\n     * @private\r\n     * @fires Phaser.Scenes.Events#ADDED_TO_SCENE\r\n     * @fires Phaser.GameObjects.Events#ADDED_TO_SCENE\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that was added to the list.\r\n     */\r\n    addChildCallback: function (gameObject)\r\n    {\r\n        if (gameObject.displayList && gameObject.displayList !== this)\r\n        {\r\n            gameObject.removeFromDisplayList();\r\n        }\r\n\r\n        if (gameObject.parentContainer)\r\n        {\r\n            gameObject.parentContainer.remove(gameObject);\r\n        }\r\n\r\n        if (!gameObject.displayList)\r\n        {\r\n            this.queueDepthSort();\r\n\r\n            gameObject.displayList = this;\r\n\r\n            gameObject.emit(GameObjectEvents.ADDED_TO_SCENE, gameObject, this.scene);\r\n\r\n            this.events.emit(SceneEvents.ADDED_TO_SCENE, gameObject, this.scene);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Internal method called from `List.removeCallback`.\r\n     *\r\n     * @method Phaser.GameObjects.DisplayList#removeChildCallback\r\n     * @private\r\n     * @fires Phaser.Scenes.Events#REMOVED_FROM_SCENE\r\n     * @fires Phaser.GameObjects.Events#REMOVED_FROM_SCENE\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that was removed from the list.\r\n     */\r\n    removeChildCallback: function (gameObject)\r\n    {\r\n        this.queueDepthSort();\r\n\r\n        gameObject.displayList = null;\r\n\r\n        gameObject.emit(GameObjectEvents.REMOVED_FROM_SCENE, gameObject, this.scene);\r\n\r\n        this.events.emit(SceneEvents.REMOVED_FROM_SCENE, gameObject, this.scene);\r\n    },\r\n\r\n    /**\r\n     * This method is called automatically by the Scene when it is starting up.\r\n     * It is responsible for creating local systems, properties and listening for Scene events.\r\n     * Do not invoke it directly.\r\n     *\r\n     * @method Phaser.GameObjects.DisplayList#start\r\n     * @private\r\n     * @since 3.5.0\r\n     */\r\n    start: function ()\r\n    {\r\n        this.events.once(SceneEvents.SHUTDOWN, this.shutdown, this);\r\n    },\r\n\r\n    /**\r\n     * Force a sort of the display list on the next call to depthSort.\r\n     *\r\n     * @method Phaser.GameObjects.DisplayList#queueDepthSort\r\n     * @since 3.0.0\r\n     */\r\n    queueDepthSort: function ()\r\n    {\r\n        this.sortChildrenFlag = true;\r\n    },\r\n\r\n    /**\r\n     * Immediately sorts the display list if the flag is set.\r\n     *\r\n     * @method Phaser.GameObjects.DisplayList#depthSort\r\n     * @since 3.0.0\r\n     */\r\n    depthSort: function ()\r\n    {\r\n        if (this.sortChildrenFlag)\r\n        {\r\n            StableSort(this.list, this.sortByDepth);\r\n\r\n            this.sortChildrenFlag = false;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Compare the depth of two Game Objects.\r\n     *\r\n     * @method Phaser.GameObjects.DisplayList#sortByDepth\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} childA - The first Game Object.\r\n     * @param {Phaser.GameObjects.GameObject} childB - The second Game Object.\r\n     *\r\n     * @return {number} The difference between the depths of each Game Object.\r\n     */\r\n    sortByDepth: function (childA, childB)\r\n    {\r\n        return childA._depth - childB._depth;\r\n    },\r\n\r\n    /**\r\n     * Returns an array which contains all objects currently on the Display List.\r\n     * This is a reference to the main list array, not a copy of it, so be careful not to modify it.\r\n     *\r\n     * @method Phaser.GameObjects.DisplayList#getChildren\r\n     * @since 3.12.0\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject[]} The group members.\r\n     */\r\n    getChildren: function ()\r\n    {\r\n        return this.list;\r\n    },\r\n\r\n    /**\r\n     * The Scene that owns this plugin is shutting down.\r\n     *\r\n     * We need to kill and reset all internal properties as well as stop listening to Scene events.\r\n     *\r\n     * @method Phaser.GameObjects.DisplayList#shutdown\r\n     * @private\r\n     * @since 3.0.0\r\n     */\r\n    shutdown: function ()\r\n    {\r\n        var list = this.list;\r\n\r\n        while (list.length)\r\n        {\r\n            list[0].destroy(true);\r\n        }\r\n\r\n        this.events.off(SceneEvents.SHUTDOWN, this.shutdown, this);\r\n    },\r\n\r\n    /**\r\n     * The Scene that owns this plugin is being destroyed.\r\n     * We need to shutdown and then kill off all external references.\r\n     *\r\n     * @method Phaser.GameObjects.DisplayList#destroy\r\n     * @private\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.shutdown();\r\n\r\n        this.events.off(SceneEvents.START, this.start, this);\r\n\r\n        this.scene = null;\r\n        this.systems = null;\r\n        this.events = null;\r\n    }\r\n\r\n});\r\n\r\nPluginCache.register('DisplayList', DisplayList, 'displayList');\r\n\r\nmodule.exports = DisplayList;\r\n\n\n/***/ }),\n\n/***/ 95643:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar ComponentsToJSON = __webpack_require__(53774);\r\nvar DataManager = __webpack_require__(45893);\r\nvar EventEmitter = __webpack_require__(50792);\r\nvar Events = __webpack_require__(51708);\r\nvar SceneEvents = __webpack_require__(44594);\r\n\r\n/**\r\n * @classdesc\r\n * The base class that all Game Objects extend.\r\n * You don't create GameObjects directly and they cannot be added to the display list.\r\n * Instead, use them as the base for your own custom classes.\r\n *\r\n * @class GameObject\r\n * @memberof Phaser.GameObjects\r\n * @extends Phaser.Events.EventEmitter\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs.\r\n * @param {string} type - A textual representation of the type of Game Object, i.e. `sprite`.\r\n */\r\nvar GameObject = new Class({\r\n\r\n    Extends: EventEmitter,\r\n\r\n    initialize:\r\n\r\n    function GameObject (scene, type)\r\n    {\r\n        EventEmitter.call(this);\r\n\r\n        /**\r\n         * A reference to the Scene to which this Game Object belongs.\r\n         *\r\n         * Game Objects can only belong to one Scene.\r\n         *\r\n         * You should consider this property as being read-only. You cannot move a\r\n         * Game Object to another Scene by simply changing it.\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#scene\r\n         * @type {Phaser.Scene}\r\n         * @since 3.0.0\r\n         */\r\n        this.scene = scene;\r\n\r\n        /**\r\n         * Holds a reference to the Display List that contains this Game Object.\r\n         *\r\n         * This is set automatically when this Game Object is added to a Scene or Layer.\r\n         *\r\n         * You should treat this property as being read-only.\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#displayList\r\n         * @type {(Phaser.GameObjects.DisplayList|Phaser.GameObjects.Layer)}\r\n         * @default null\r\n         * @since 3.50.0\r\n         */\r\n        this.displayList = null;\r\n\r\n        /**\r\n         * A textual representation of this Game Object, i.e. `sprite`.\r\n         * Used internally by Phaser but is available for your own custom classes to populate.\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#type\r\n         * @type {string}\r\n         * @since 3.0.0\r\n         */\r\n        this.type = type;\r\n\r\n        /**\r\n         * The current state of this Game Object.\r\n         *\r\n         * Phaser itself will never modify this value, although plugins may do so.\r\n         *\r\n         * Use this property to track the state of a Game Object during its lifetime. For example, it could change from\r\n         * a state of 'moving', to 'attacking', to 'dead'. The state value should be an integer (ideally mapped to a constant\r\n         * in your game code), or a string. These are recommended to keep it light and simple, with fast comparisons.\r\n         * If you need to store complex data about your Game Object, look at using the Data Component instead.\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#state\r\n         * @type {(number|string)}\r\n         * @since 3.16.0\r\n         */\r\n        this.state = 0;\r\n\r\n        /**\r\n         * The parent Container of this Game Object, if it has one.\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#parentContainer\r\n         * @type {Phaser.GameObjects.Container}\r\n         * @since 3.4.0\r\n         */\r\n        this.parentContainer = null;\r\n\r\n        /**\r\n         * The name of this Game Object.\r\n         * Empty by default and never populated by Phaser, this is left for developers to use.\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#name\r\n         * @type {string}\r\n         * @default ''\r\n         * @since 3.0.0\r\n         */\r\n        this.name = '';\r\n\r\n        /**\r\n         * The active state of this Game Object.\r\n         * A Game Object with an active state of `true` is processed by the Scenes UpdateList, if added to it.\r\n         * An active object is one which is having its logic and internal systems updated.\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#active\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         */\r\n        this.active = true;\r\n\r\n        /**\r\n         * The Tab Index of the Game Object.\r\n         * Reserved for future use by plugins and the Input Manager.\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#tabIndex\r\n         * @type {number}\r\n         * @default -1\r\n         * @since 3.0.0\r\n         */\r\n        this.tabIndex = -1;\r\n\r\n        /**\r\n         * A Data Manager.\r\n         * It allows you to store, query and get key/value paired information specific to this Game Object.\r\n         * `null` by default. Automatically created if you use `getData` or `setData` or `setDataEnabled`.\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#data\r\n         * @type {Phaser.Data.DataManager}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.data = null;\r\n\r\n        /**\r\n         * The flags that are compared against `RENDER_MASK` to determine if this Game Object will render or not.\r\n         * The bits are 0001 | 0010 | 0100 | 1000 set by the components Visible, Alpha, Transform and Texture respectively.\r\n         * If those components are not used by your custom class then you can use this bitmask as you wish.\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#renderFlags\r\n         * @type {number}\r\n         * @default 15\r\n         * @since 3.0.0\r\n         */\r\n        this.renderFlags = 15;\r\n\r\n        /**\r\n         * A bitmask that controls if this Game Object is drawn by a Camera or not.\r\n         * Not usually set directly, instead call `Camera.ignore`, however you can\r\n         * set this property directly using the Camera.id property:\r\n         *\r\n         * @example\r\n         * this.cameraFilter |= camera.id\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#cameraFilter\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.cameraFilter = 0;\r\n\r\n        /**\r\n         * If this Game Object is enabled for input then this property will contain an InteractiveObject instance.\r\n         * Not usually set directly. Instead call `GameObject.setInteractive()`.\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#input\r\n         * @type {?Phaser.Types.Input.InteractiveObject}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.input = null;\r\n\r\n        /**\r\n         * If this Game Object is enabled for Arcade or Matter Physics then this property will contain a reference to a Physics Body.\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#body\r\n         * @type {?(Phaser.Physics.Arcade.Body|Phaser.Physics.Arcade.StaticBody|MatterJS.BodyType)}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.body = null;\r\n\r\n        /**\r\n         * This Game Object will ignore all calls made to its destroy method if this flag is set to `true`.\r\n         * This includes calls that may come from a Group, Container or the Scene itself.\r\n         * While it allows you to persist a Game Object across Scenes, please understand you are entirely\r\n         * responsible for managing references to and from this Game Object.\r\n         *\r\n         * @name Phaser.GameObjects.GameObject#ignoreDestroy\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.5.0\r\n         */\r\n        this.ignoreDestroy = false;\r\n\r\n        this.on(Events.ADDED_TO_SCENE, this.addedToScene, this);\r\n        this.on(Events.REMOVED_FROM_SCENE, this.removedFromScene, this);\r\n\r\n        //  Tell the Scene to re-sort the children\r\n        scene.sys.queueDepthSort();\r\n    },\r\n\r\n    /**\r\n     * Sets the `active` property of this Game Object and returns this Game Object for further chaining.\r\n     * A Game Object with its `active` property set to `true` will be updated by the Scenes UpdateList.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#setActive\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} value - True if this Game Object should be set as active, false if not.\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    setActive: function (value)\r\n    {\r\n        this.active = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the `name` property of this Game Object and returns this Game Object for further chaining.\r\n     * The `name` property is not populated by Phaser and is presented for your own use.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#setName\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} value - The name to be given to this Game Object.\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    setName: function (value)\r\n    {\r\n        this.name = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the current state of this Game Object.\r\n     *\r\n     * Phaser itself will never modify the State of a Game Object, although plugins may do so.\r\n     *\r\n     * For example, a Game Object could change from a state of 'moving', to 'attacking', to 'dead'.\r\n     * The state value should typically be an integer (ideally mapped to a constant\r\n     * in your game code), but could also be a string. It is recommended to keep it light and simple.\r\n     * If you need to store complex data about your Game Object, look at using the Data Component instead.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#setState\r\n     * @since 3.16.0\r\n     *\r\n     * @param {(number|string)} value - The state of the Game Object.\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    setState: function (value)\r\n    {\r\n        this.state = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds a Data Manager component to this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#setDataEnabled\r\n     * @since 3.0.0\r\n     * @see Phaser.Data.DataManager\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    setDataEnabled: function ()\r\n    {\r\n        if (!this.data)\r\n        {\r\n            this.data = new DataManager(this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Allows you to store a key value pair within this Game Objects Data Manager.\r\n     *\r\n     * If the Game Object has not been enabled for data (via `setDataEnabled`) then it will be enabled\r\n     * before setting the value.\r\n     *\r\n     * If the key doesn't already exist in the Data Manager then it is created.\r\n     *\r\n     * ```javascript\r\n     * sprite.setData('name', 'Red Gem Stone');\r\n     * ```\r\n     *\r\n     * You can also pass in an object of key value pairs as the first argument:\r\n     *\r\n     * ```javascript\r\n     * sprite.setData({ name: 'Red Gem Stone', level: 2, owner: 'Link', gold: 50 });\r\n     * ```\r\n     *\r\n     * To get a value back again you can call `getData`:\r\n     *\r\n     * ```javascript\r\n     * sprite.getData('gold');\r\n     * ```\r\n     *\r\n     * Or you can access the value directly via the `values` property, where it works like any other variable:\r\n     *\r\n     * ```javascript\r\n     * sprite.data.values.gold += 50;\r\n     * ```\r\n     *\r\n     * When the value is first set, a `setdata` event is emitted from this Game Object.\r\n     *\r\n     * If the key already exists, a `changedata` event is emitted instead, along an event named after the key.\r\n     * For example, if you updated an existing key called `PlayerLives` then it would emit the event `changedata-PlayerLives`.\r\n     * These events will be emitted regardless if you use this method to set the value, or the direct `values` setter.\r\n     *\r\n     * Please note that the data keys are case-sensitive and must be valid JavaScript Object property strings.\r\n     * This means the keys `gold` and `Gold` are treated as two unique values within the Data Manager.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#setData\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {any} T\r\n     * @genericUse {(string|T)} - [key]\r\n     *\r\n     * @param {(string|object)} key - The key to set the value for. Or an object of key value pairs. If an object the `data` argument is ignored.\r\n     * @param {*} [data] - The value to set for the given key. If an object is provided as the key this argument is ignored.\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    setData: function (key, value)\r\n    {\r\n        if (!this.data)\r\n        {\r\n            this.data = new DataManager(this);\r\n        }\r\n\r\n        this.data.set(key, value);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Increase a value for the given key within this Game Objects Data Manager. If the key doesn't already exist in the Data Manager then it is increased from 0.\r\n     *\r\n     * If the Game Object has not been enabled for data (via `setDataEnabled`) then it will be enabled\r\n     * before setting the value.\r\n     *\r\n     * If the key doesn't already exist in the Data Manager then it is created.\r\n     *\r\n     * When the value is first set, a `setdata` event is emitted from this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#incData\r\n     * @since 3.23.0\r\n     *\r\n     * @param {string} key - The key to change the value for.\r\n     * @param {number} [amount=1] - The amount to increase the given key by. Pass a negative value to decrease the key.\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    incData: function (key, amount)\r\n    {\r\n        if (!this.data)\r\n        {\r\n            this.data = new DataManager(this);\r\n        }\r\n\r\n        this.data.inc(key, amount);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Toggle a boolean value for the given key within this Game Objects Data Manager. If the key doesn't already exist in the Data Manager then it is toggled from false.\r\n     *\r\n     * If the Game Object has not been enabled for data (via `setDataEnabled`) then it will be enabled\r\n     * before setting the value.\r\n     *\r\n     * If the key doesn't already exist in the Data Manager then it is created.\r\n     *\r\n     * When the value is first set, a `setdata` event is emitted from this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#toggleData\r\n     * @since 3.23.0\r\n     *\r\n     * @param {string} key - The key to toggle the value for.\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    toggleData: function (key)\r\n    {\r\n        if (!this.data)\r\n        {\r\n            this.data = new DataManager(this);\r\n        }\r\n\r\n        this.data.toggle(key);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Retrieves the value for the given key in this Game Objects Data Manager, or undefined if it doesn't exist.\r\n     *\r\n     * You can also access values via the `values` object. For example, if you had a key called `gold` you can do either:\r\n     *\r\n     * ```javascript\r\n     * sprite.getData('gold');\r\n     * ```\r\n     *\r\n     * Or access the value directly:\r\n     *\r\n     * ```javascript\r\n     * sprite.data.values.gold;\r\n     * ```\r\n     *\r\n     * You can also pass in an array of keys, in which case an array of values will be returned:\r\n     *\r\n     * ```javascript\r\n     * sprite.getData([ 'gold', 'armor', 'health' ]);\r\n     * ```\r\n     *\r\n     * This approach is useful for destructuring arrays in ES6.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#getData\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|string[])} key - The key of the value to retrieve, or an array of keys.\r\n     *\r\n     * @return {*} The value belonging to the given key, or an array of values, the order of which will match the input array.\r\n     */\r\n    getData: function (key)\r\n    {\r\n        if (!this.data)\r\n        {\r\n            this.data = new DataManager(this);\r\n        }\r\n\r\n        return this.data.get(key);\r\n    },\r\n\r\n    /**\r\n     * Pass this Game Object to the Input Manager to enable it for Input.\r\n     *\r\n     * Input works by using hit areas, these are nearly always geometric shapes, such as rectangles or circles, that act as the hit area\r\n     * for the Game Object. However, you can provide your own hit area shape and callback, should you wish to handle some more advanced\r\n     * input detection.\r\n     *\r\n     * If no arguments are provided it will try and create a rectangle hit area based on the texture frame the Game Object is using. If\r\n     * this isn't a texture-bound object, such as a Graphics or BitmapText object, this will fail, and you'll need to provide a specific\r\n     * shape for it to use.\r\n     *\r\n     * You can also provide an Input Configuration Object as the only argument to this method.\r\n     *\r\n     * @example\r\n     * sprite.setInteractive();\r\n     *\r\n     * @example\r\n     * sprite.setInteractive(new Phaser.Geom.Circle(45, 46, 45), Phaser.Geom.Circle.Contains);\r\n     *\r\n     * @example\r\n     * graphics.setInteractive(new Phaser.Geom.Rectangle(0, 0, 128, 128), Phaser.Geom.Rectangle.Contains);\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#setInteractive\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(Phaser.Types.Input.InputConfiguration|any)} [hitArea] - Either an input configuration object, or a geometric shape that defines the hit area for the Game Object. If not given it will try to create a Rectangle based on the texture frame.\r\n     * @param {Phaser.Types.Input.HitAreaCallback} [callback] - The callback that determines if the pointer is within the Hit Area shape or not. If you provide a shape you must also provide a callback.\r\n     * @param {boolean} [dropZone=false] - Should this Game Object be treated as a drop zone target?\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    setInteractive: function (hitArea, hitAreaCallback, dropZone)\r\n    {\r\n        this.scene.sys.input.enable(this, hitArea, hitAreaCallback, dropZone);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * If this Game Object has previously been enabled for input, this will disable it.\r\n     *\r\n     * An object that is disabled for input stops processing or being considered for\r\n     * input events, but can be turned back on again at any time by simply calling\r\n     * `setInteractive()` with no arguments provided.\r\n     *\r\n     * If want to completely remove interaction from this Game Object then use `removeInteractive` instead.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#disableInteractive\r\n     * @since 3.7.0\r\n     * \r\n     * @param {boolean} [resetCursor=false] - Should the currently active Input cursor, if any, be reset to the default cursor?\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    disableInteractive: function (resetCursor)\r\n    {\r\n        if (resetCursor === undefined) { resetCursor = false; }\r\n\r\n        this.scene.sys.input.disable(this, resetCursor);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * If this Game Object has previously been enabled for input, this will queue it\r\n     * for removal, causing it to no longer be interactive. The removal happens on\r\n     * the next game step, it is not immediate.\r\n     *\r\n     * The Interactive Object that was assigned to this Game Object will be destroyed,\r\n     * removed from the Input Manager and cleared from this Game Object.\r\n     *\r\n     * If you wish to re-enable this Game Object at a later date you will need to\r\n     * re-create its InteractiveObject by calling `setInteractive` again.\r\n     *\r\n     * If you wish to only temporarily stop an object from receiving input then use\r\n     * `disableInteractive` instead, as that toggles the interactive state, where-as\r\n     * this erases it completely.\r\n     *\r\n     * If you wish to resize a hit area, don't remove and then set it as being\r\n     * interactive. Instead, access the hitarea object directly and resize the shape\r\n     * being used. I.e.: `sprite.input.hitArea.setSize(width, height)` (assuming the\r\n     * shape is a Rectangle, which it is by default.)\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#removeInteractive\r\n     * @since 3.7.0\r\n     * \r\n     * @param {boolean} [resetCursor=false] - Should the currently active Input cursor, if any, be reset to the default cursor?\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    removeInteractive: function (resetCursor)\r\n    {\r\n        if (resetCursor === undefined) { resetCursor = false; }\r\n\r\n        this.scene.sys.input.clear(this);\r\n\r\n        if (resetCursor)\r\n        {\r\n            this.scene.sys.input.resetCursor();\r\n        }\r\n\r\n        this.input = undefined;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * This callback is invoked when this Game Object is added to a Scene.\r\n     *\r\n     * Can be overriden by custom Game Objects, but be aware of some Game Objects that\r\n     * will use this, such as Sprites, to add themselves into the Update List.\r\n     *\r\n     * You can also listen for the `ADDED_TO_SCENE` event from this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#addedToScene\r\n     * @since 3.50.0\r\n     */\r\n    addedToScene: function ()\r\n    {\r\n    },\r\n\r\n    /**\r\n     * This callback is invoked when this Game Object is removed from a Scene.\r\n     *\r\n     * Can be overriden by custom Game Objects, but be aware of some Game Objects that\r\n     * will use this, such as Sprites, to removed themselves from the Update List.\r\n     *\r\n     * You can also listen for the `REMOVED_FROM_SCENE` event from this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#removedFromScene\r\n     * @since 3.50.0\r\n     */\r\n    removedFromScene: function ()\r\n    {\r\n    },\r\n\r\n    /**\r\n     * To be overridden by custom GameObjects. Allows base objects to be used in a Pool.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#update\r\n     * @since 3.0.0\r\n     *\r\n     * @param {...*} [args] - args\r\n     */\r\n    update: function ()\r\n    {\r\n    },\r\n\r\n    /**\r\n     * Returns a JSON representation of the Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.GameObjects.JSONGameObject} A JSON representation of the Game Object.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        return ComponentsToJSON(this);\r\n    },\r\n\r\n    /**\r\n     * Compares the renderMask with the renderFlags to see if this Game Object will render or not.\r\n     * Also checks the Game Object against the given Cameras exclusion list.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#willRender\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera to check against this Game Object.\r\n     *\r\n     * @return {boolean} True if the Game Object should be rendered, otherwise false.\r\n     */\r\n    willRender: function (camera)\r\n    {\r\n        var listWillRender = (this.displayList && this.displayList.active) ? this.displayList.willRender(camera) : true;\r\n\r\n        return !(!listWillRender || GameObject.RENDER_MASK !== this.renderFlags || (this.cameraFilter !== 0 && (this.cameraFilter & camera.id)));\r\n    },\r\n\r\n    /**\r\n     * Returns an array containing the display list index of either this Game Object, or if it has one,\r\n     * its parent Container. It then iterates up through all of the parent containers until it hits the\r\n     * root of the display list (which is index 0 in the returned array).\r\n     *\r\n     * Used internally by the InputPlugin but also useful if you wish to find out the display depth of\r\n     * this Game Object and all of its ancestors.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#getIndexList\r\n     * @since 3.4.0\r\n     *\r\n     * @return {number[]} An array of display list position indexes.\r\n     */\r\n    getIndexList: function ()\r\n    {\r\n        // eslint-disable-next-line consistent-this\r\n        var child = this;\r\n        var parent = this.parentContainer;\r\n\r\n        var indexes = [];\r\n\r\n        while (parent)\r\n        {\r\n            indexes.unshift(parent.getIndex(child));\r\n\r\n            child = parent;\r\n\r\n            if (!parent.parentContainer)\r\n            {\r\n                break;\r\n            }\r\n            else\r\n            {\r\n                parent = parent.parentContainer;\r\n            }\r\n        }\r\n\r\n        if (this.displayList)\r\n        {\r\n            indexes.unshift(this.displayList.getIndex(child));\r\n        }\r\n        else\r\n        {\r\n            indexes.unshift(this.scene.sys.displayList.getIndex(child));\r\n        }\r\n\r\n        return indexes;\r\n    },\r\n\r\n    /**\r\n     * Adds this Game Object to the given Display List.\r\n     *\r\n     * If no Display List is specified, it will default to the Display List owned by the Scene to which\r\n     * this Game Object belongs.\r\n     *\r\n     * A Game Object can only exist on one Display List at any given time, but may move freely between them.\r\n     *\r\n     * If this Game Object is already on another Display List when this method is called, it will first\r\n     * be removed from it, before being added to the new list.\r\n     *\r\n     * You can query which list it is on by looking at the `Phaser.GameObjects.GameObject#displayList` property.\r\n     *\r\n     * If a Game Object isn't on any display list, it will not be rendered. If you just wish to temporarly\r\n     * disable it from rendering, consider using the `setVisible` method, instead.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#addToDisplayList\r\n     * @fires Phaser.Scenes.Events#ADDED_TO_SCENE\r\n     * @fires Phaser.GameObjects.Events#ADDED_TO_SCENE\r\n     * @since 3.53.0\r\n     *\r\n     * @param {(Phaser.GameObjects.DisplayList|Phaser.GameObjects.Layer)} [displayList] - The Display List to add to. Defaults to the Scene Display List.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    addToDisplayList: function (displayList)\r\n    {\r\n        if (displayList === undefined) { displayList = this.scene.sys.displayList; }\r\n\r\n        if (this.displayList && this.displayList !== displayList)\r\n        {\r\n            this.removeFromDisplayList();\r\n        }\r\n\r\n        //  Don't repeat if it's already on this list\r\n        if (!displayList.exists(this))\r\n        {\r\n            this.displayList = displayList;\r\n\r\n            displayList.add(this, true);\r\n\r\n            displayList.queueDepthSort();\r\n\r\n            this.emit(Events.ADDED_TO_SCENE, this, this.scene);\r\n\r\n            displayList.events.emit(SceneEvents.ADDED_TO_SCENE, this, this.scene);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds this Game Object to the Update List belonging to the Scene.\r\n     *\r\n     * When a Game Object is added to the Update List it will have its `preUpdate` method called\r\n     * every game frame. This method is passed two parameters: `delta` and `time`.\r\n     *\r\n     * If you wish to run your own logic within `preUpdate` then you should always call\r\n     * `super.preUpdate(delta, time)` within it, or it may fail to process required operations,\r\n     * such as Sprite animations.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#addToUpdateList\r\n     * @since 3.53.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    addToUpdateList: function ()\r\n    {\r\n        if (this.scene && this.preUpdate)\r\n        {\r\n            this.scene.sys.updateList.add(this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes this Game Object from the Display List it is currently on.\r\n     *\r\n     * A Game Object can only exist on one Display List at any given time, but may move freely removed\r\n     * and added back at a later stage.\r\n     *\r\n     * You can query which list it is on by looking at the `Phaser.GameObjects.GameObject#displayList` property.\r\n     *\r\n     * If a Game Object isn't on any Display List, it will not be rendered. If you just wish to temporarly\r\n     * disable it from rendering, consider using the `setVisible` method, instead.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#removeFromDisplayList\r\n     * @fires Phaser.Scenes.Events#REMOVED_FROM_SCENE\r\n     * @fires Phaser.GameObjects.Events#REMOVED_FROM_SCENE\r\n     * @since 3.53.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    removeFromDisplayList: function ()\r\n    {\r\n        var displayList = this.displayList || this.scene.sys.displayList;\r\n\r\n        if (displayList && displayList.exists(this))\r\n        {\r\n            displayList.remove(this, true);\r\n\r\n            displayList.queueDepthSort();\r\n\r\n            this.displayList = null;\r\n\r\n            this.emit(Events.REMOVED_FROM_SCENE, this, this.scene);\r\n\r\n            displayList.events.emit(SceneEvents.REMOVED_FROM_SCENE, this, this.scene);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes this Game Object from the Scene's Update List.\r\n     *\r\n     * When a Game Object is on the Update List, it will have its `preUpdate` method called\r\n     * every game frame. Calling this method will remove it from the list, preventing this.\r\n     *\r\n     * Removing a Game Object from the Update List will stop most internal functions working.\r\n     * For example, removing a Sprite from the Update List will prevent it from being able to\r\n     * run animations.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#removeFromUpdateList\r\n     * @since 3.53.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    removeFromUpdateList: function ()\r\n    {\r\n        if (this.scene && this.preUpdate)\r\n        {\r\n            this.scene.sys.updateList.remove(this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns a reference to the underlying display list _array_ that contains this Game Object,\r\n     * which will be either the Scene's Display List or the internal list belonging\r\n     * to its parent Container, if it has one.\r\n     * \r\n     * If this Game Object is not on a display list or in a container, it will return `null`.\r\n     * \r\n     * You should be very careful with this method, and understand that it returns a direct reference to the\r\n     * internal array used by the Display List. Mutating this array directly can cause all kinds of subtle\r\n     * and difficult to debug issues in your game.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#getDisplayList\r\n     * @since 3.85.0\r\n     *\r\n     * @return {?Phaser.GameObjects.GameObject[]} The internal Display List array of Game Objects, or `null`.\r\n     */\r\n    getDisplayList: function ()\r\n    {\r\n        var list = null;\r\n\r\n        if (this.parentContainer)\r\n        {\r\n            list = this.parentContainer.list;\r\n        }\r\n        else if (this.displayList)\r\n        {\r\n            list = this.displayList.list;\r\n        }\r\n\r\n        return list;\r\n    },\r\n\r\n    /**\r\n     * Destroys this Game Object removing it from the Display List and Update List and\r\n     * severing all ties to parent resources.\r\n     *\r\n     * Also removes itself from the Input Manager and Physics Manager if previously enabled.\r\n     *\r\n     * Use this to remove a Game Object from your game if you don't ever plan to use it again.\r\n     * As long as no reference to it exists within your own code it should become free for\r\n     * garbage collection by the browser.\r\n     *\r\n     * If you just want to temporarily disable an object then look at using the\r\n     * Game Object Pool instead of destroying it, as destroyed objects cannot be resurrected.\r\n     *\r\n     * @method Phaser.GameObjects.GameObject#destroy\r\n     * @fires Phaser.GameObjects.Events#DESTROY\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} [fromScene=false] - `True` if this Game Object is being destroyed by the Scene, `false` if not.\r\n     */\r\n    destroy: function (fromScene)\r\n    {\r\n        //  This Game Object has already been destroyed\r\n        if (!this.scene || this.ignoreDestroy)\r\n        {\r\n            return;\r\n        }\r\n\r\n        if (fromScene === undefined) { fromScene = false; }\r\n\r\n        if (this.preDestroy)\r\n        {\r\n            this.preDestroy.call(this);\r\n        }\r\n\r\n        this.emit(Events.DESTROY, this, fromScene);\r\n\r\n        this.removeAllListeners();\r\n\r\n        if (this.postPipelines)\r\n        {\r\n            this.resetPostPipeline(true);\r\n        }\r\n\r\n        this.removeFromDisplayList();\r\n        this.removeFromUpdateList();\r\n\r\n        if (this.input)\r\n        {\r\n            this.scene.sys.input.clear(this);\r\n\r\n            this.input = undefined;\r\n        }\r\n\r\n        if (this.data)\r\n        {\r\n            this.data.destroy();\r\n\r\n            this.data = undefined;\r\n        }\r\n\r\n        if (this.body)\r\n        {\r\n            this.body.destroy();\r\n\r\n            this.body = undefined;\r\n        }\r\n\r\n        if (this.preFX)\r\n        {\r\n            this.preFX.destroy();\r\n\r\n            this.preFX = undefined;\r\n        }\r\n\r\n        if (this.postFX)\r\n        {\r\n            this.postFX.destroy();\r\n\r\n            this.postFX = undefined;\r\n        }\r\n\r\n        this.active = false;\r\n        this.visible = false;\r\n\r\n        this.scene = undefined;\r\n        this.parentContainer = undefined;\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * The bitmask that `GameObject.renderFlags` is compared against to determine if the Game Object will render or not.\r\n *\r\n * @constant {number} RENDER_MASK\r\n * @memberof Phaser.GameObjects.GameObject\r\n * @default\r\n */\r\nGameObject.RENDER_MASK = 15;\r\n\r\nmodule.exports = GameObject;\r\n\n\n/***/ }),\n\n/***/ 44603:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar PluginCache = __webpack_require__(37277);\r\nvar SceneEvents = __webpack_require__(44594);\r\n\r\n/**\r\n * @classdesc\r\n * The Game Object Creator is a Scene plugin that allows you to quickly create many common\r\n * types of Game Objects and return them using a configuration object, rather than\r\n * having to specify a limited set of parameters such as with the GameObjectFactory.\r\n *\r\n * Game Objects made via this class are automatically added to the Scene and Update List\r\n * unless you explicitly set the `add` property in the configuration object to `false`.\r\n *\r\n * @class GameObjectCreator\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object Factory belongs.\r\n */\r\nvar GameObjectCreator = new Class({\r\n\r\n    initialize:\r\n\r\n    function GameObjectCreator (scene)\r\n    {\r\n        /**\r\n         * The Scene to which this Game Object Creator belongs.\r\n         *\r\n         * @name Phaser.GameObjects.GameObjectCreator#scene\r\n         * @type {Phaser.Scene}\r\n         * @protected\r\n         * @since 3.0.0\r\n         */\r\n        this.scene = scene;\r\n\r\n        /**\r\n         * A reference to the Scene.Systems.\r\n         *\r\n         * @name Phaser.GameObjects.GameObjectCreator#systems\r\n         * @type {Phaser.Scenes.Systems}\r\n         * @protected\r\n         * @since 3.0.0\r\n         */\r\n        this.systems = scene.sys;\r\n\r\n        /**\r\n         * A reference to the Scene Event Emitter.\r\n         *\r\n         * @name Phaser.GameObjects.GameObjectCreator#events\r\n         * @type {Phaser.Events.EventEmitter}\r\n         * @protected\r\n         * @since 3.50.0\r\n         */\r\n        this.events = scene.sys.events;\r\n\r\n        /**\r\n         * A reference to the Scene Display List.\r\n         *\r\n         * @name Phaser.GameObjects.GameObjectCreator#displayList\r\n         * @type {Phaser.GameObjects.DisplayList}\r\n         * @protected\r\n         * @since 3.0.0\r\n         */\r\n        this.displayList;\r\n\r\n        /**\r\n         * A reference to the Scene Update List.\r\n         *\r\n         * @name Phaser.GameObjects.GameObjectCreator#updateList\r\n         * @type {Phaser.GameObjects.UpdateList}\r\n         * @protected\r\n         * @since 3.0.0\r\n         */\r\n        this.updateList;\r\n\r\n        this.events.once(SceneEvents.BOOT, this.boot, this);\r\n        this.events.on(SceneEvents.START, this.start, this);\r\n    },\r\n\r\n    /**\r\n     * This method is called automatically, only once, when the Scene is first created.\r\n     * Do not invoke it directly.\r\n     *\r\n     * @method Phaser.GameObjects.GameObjectCreator#boot\r\n     * @private\r\n     * @since 3.5.1\r\n     */\r\n    boot: function ()\r\n    {\r\n        this.displayList = this.systems.displayList;\r\n        this.updateList = this.systems.updateList;\r\n\r\n        this.events.once(SceneEvents.DESTROY, this.destroy, this);\r\n    },\r\n\r\n    /**\r\n     * This method is called automatically by the Scene when it is starting up.\r\n     * It is responsible for creating local systems, properties and listening for Scene events.\r\n     * Do not invoke it directly.\r\n     *\r\n     * @method Phaser.GameObjects.GameObjectCreator#start\r\n     * @private\r\n     * @since 3.5.0\r\n     */\r\n    start: function ()\r\n    {\r\n        this.events.once(SceneEvents.SHUTDOWN, this.shutdown, this);\r\n    },\r\n\r\n    /**\r\n     * The Scene that owns this plugin is shutting down.\r\n     * We need to kill and reset all internal properties as well as stop listening to Scene events.\r\n     *\r\n     * @method Phaser.GameObjects.GameObjectCreator#shutdown\r\n     * @private\r\n     * @since 3.0.0\r\n     */\r\n    shutdown: function ()\r\n    {\r\n        this.events.off(SceneEvents.SHUTDOWN, this.shutdown, this);\r\n    },\r\n\r\n    /**\r\n     * The Scene that owns this plugin is being destroyed.\r\n     * We need to shutdown and then kill off all external references.\r\n     *\r\n     * @method Phaser.GameObjects.GameObjectCreator#destroy\r\n     * @private\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.shutdown();\r\n\r\n        this.events.off(SceneEvents.START, this.start, this);\r\n\r\n        this.scene = null;\r\n        this.systems = null;\r\n        this.events = null;\r\n\r\n        this.displayList = null;\r\n        this.updateList = null;\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * Static method called directly by the Game Object creator functions.\r\n * With this method you can register a custom GameObject factory in the GameObjectCreator,\r\n * providing a name (`factoryType`) and the constructor (`factoryFunction`) in order\r\n * to be called when you invoke Phaser.Scene.make[ factoryType ] method.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator.register\r\n * @static\r\n * @since 3.0.0\r\n *\r\n * @param {string} factoryType - The key of the factory that you will use to call to Phaser.Scene.make[ factoryType ] method.\r\n * @param {function} factoryFunction - The constructor function to be called when you invoke to the Phaser.Scene.make method.\r\n */\r\nGameObjectCreator.register = function (factoryType, factoryFunction)\r\n{\r\n    if (!GameObjectCreator.prototype.hasOwnProperty(factoryType))\r\n    {\r\n        GameObjectCreator.prototype[factoryType] = factoryFunction;\r\n    }\r\n};\r\n\r\n/**\r\n * Static method called directly by the Game Object Creator functions.\r\n *\r\n * With this method you can remove a custom Game Object Creator that has been previously\r\n * registered in the Game Object Creator. Pass in its `factoryType` in order to remove it.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator.remove\r\n * @static\r\n * @since 3.0.0\r\n *\r\n * @param {string} factoryType - The key of the factory that you want to remove from the GameObjectCreator.\r\n */\r\nGameObjectCreator.remove = function (factoryType)\r\n{\r\n    if (GameObjectCreator.prototype.hasOwnProperty(factoryType))\r\n    {\r\n        delete GameObjectCreator.prototype[factoryType];\r\n    }\r\n};\r\n\r\nPluginCache.register('GameObjectCreator', GameObjectCreator, 'make');\r\n\r\nmodule.exports = GameObjectCreator;\r\n\n\n/***/ }),\n\n/***/ 39429:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar PluginCache = __webpack_require__(37277);\r\nvar SceneEvents = __webpack_require__(44594);\r\n\r\n/**\r\n * @classdesc\r\n * The Game Object Factory is a Scene plugin that allows you to quickly create many common\r\n * types of Game Objects and have them automatically registered with the Scene.\r\n *\r\n * Game Objects directly register themselves with the Factory and inject their own creation\r\n * methods into the class.\r\n *\r\n * @class GameObjectFactory\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object Factory belongs.\r\n */\r\nvar GameObjectFactory = new Class({\r\n\r\n    initialize:\r\n\r\n    function GameObjectFactory (scene)\r\n    {\r\n        /**\r\n         * The Scene to which this Game Object Factory belongs.\r\n         *\r\n         * @name Phaser.GameObjects.GameObjectFactory#scene\r\n         * @type {Phaser.Scene}\r\n         * @protected\r\n         * @since 3.0.0\r\n         */\r\n        this.scene = scene;\r\n\r\n        /**\r\n         * A reference to the Scene.Systems.\r\n         *\r\n         * @name Phaser.GameObjects.GameObjectFactory#systems\r\n         * @type {Phaser.Scenes.Systems}\r\n         * @protected\r\n         * @since 3.0.0\r\n         */\r\n        this.systems = scene.sys;\r\n\r\n        /**\r\n         * A reference to the Scene Event Emitter.\r\n         *\r\n         * @name Phaser.GameObjects.GameObjectFactory#events\r\n         * @type {Phaser.Events.EventEmitter}\r\n         * @protected\r\n         * @since 3.50.0\r\n         */\r\n        this.events = scene.sys.events;\r\n\r\n        /**\r\n         * A reference to the Scene Display List.\r\n         *\r\n         * @name Phaser.GameObjects.GameObjectFactory#displayList\r\n         * @type {Phaser.GameObjects.DisplayList}\r\n         * @protected\r\n         * @since 3.0.0\r\n         */\r\n        this.displayList;\r\n\r\n        /**\r\n         * A reference to the Scene Update List.\r\n         *\r\n         * @name Phaser.GameObjects.GameObjectFactory#updateList\r\n         * @type {Phaser.GameObjects.UpdateList}\r\n         * @protected\r\n         * @since 3.0.0\r\n         */\r\n        this.updateList;\r\n\r\n        this.events.once(SceneEvents.BOOT, this.boot, this);\r\n        this.events.on(SceneEvents.START, this.start, this);\r\n    },\r\n\r\n    /**\r\n     * This method is called automatically, only once, when the Scene is first created.\r\n     * Do not invoke it directly.\r\n     *\r\n     * @method Phaser.GameObjects.GameObjectFactory#boot\r\n     * @private\r\n     * @since 3.5.1\r\n     */\r\n    boot: function ()\r\n    {\r\n        this.displayList = this.systems.displayList;\r\n        this.updateList = this.systems.updateList;\r\n\r\n        this.events.once(SceneEvents.DESTROY, this.destroy, this);\r\n    },\r\n\r\n    /**\r\n     * This method is called automatically by the Scene when it is starting up.\r\n     * It is responsible for creating local systems, properties and listening for Scene events.\r\n     * Do not invoke it directly.\r\n     *\r\n     * @method Phaser.GameObjects.GameObjectFactory#start\r\n     * @private\r\n     * @since 3.5.0\r\n     */\r\n    start: function ()\r\n    {\r\n        this.events.once(SceneEvents.SHUTDOWN, this.shutdown, this);\r\n    },\r\n\r\n    /**\r\n     * Adds an existing Game Object to this Scene.\r\n     *\r\n     * If the Game Object renders, it will be added to the Display List.\r\n     * If it has a `preUpdate` method, it will be added to the Update List.\r\n     *\r\n     * @method Phaser.GameObjects.GameObjectFactory#existing\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {(Phaser.GameObjects.GameObject|Phaser.GameObjects.Group|Phaser.GameObjects.Layer)} G - [child,$return]\r\n     *\r\n     * @param {(Phaser.GameObjects.GameObject|Phaser.GameObjects.Group|Phaser.GameObjects.Layer)} child - The child to be added to this Scene.\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject} The Game Object that was added.\r\n     */\r\n    existing: function (child)\r\n    {\r\n        if (child.renderCanvas || child.renderWebGL)\r\n        {\r\n            this.displayList.add(child);\r\n        }\r\n\r\n        //  For when custom objects have overridden `preUpdate` but don't hook into the ADDED_TO_SCENE event:\r\n        //  Adding to the list multiple times is safe, as it won't add duplicates into the list anyway.\r\n        if (child.preUpdate)\r\n        {\r\n            this.updateList.add(child);\r\n        }\r\n\r\n        return child;\r\n    },\r\n\r\n    /**\r\n     * The Scene that owns this plugin is shutting down.\r\n     * We need to kill and reset all internal properties as well as stop listening to Scene events.\r\n     *\r\n     * @method Phaser.GameObjects.GameObjectFactory#shutdown\r\n     * @private\r\n     * @since 3.0.0\r\n     */\r\n    shutdown: function ()\r\n    {\r\n        this.events.off(SceneEvents.SHUTDOWN, this.shutdown, this);\r\n    },\r\n\r\n    /**\r\n     * The Scene that owns this plugin is being destroyed.\r\n     * We need to shutdown and then kill off all external references.\r\n     *\r\n     * @method Phaser.GameObjects.GameObjectFactory#destroy\r\n     * @private\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.shutdown();\r\n\r\n        this.events.off(SceneEvents.START, this.start, this);\r\n\r\n        this.scene = null;\r\n        this.systems = null;\r\n        this.events = null;\r\n\r\n        this.displayList = null;\r\n        this.updateList = null;\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * Static method called directly by the Game Object factory functions.\r\n * With this method you can register a custom GameObject factory in the GameObjectFactory,\r\n * providing a name (`factoryType`) and the constructor (`factoryFunction`) in order\r\n * to be called when you call to Phaser.Scene.add[ factoryType ] method.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory.register\r\n * @static\r\n * @since 3.0.0\r\n *\r\n * @param {string} factoryType - The key of the factory that you will use to call to Phaser.Scene.add[ factoryType ] method.\r\n * @param {function} factoryFunction - The constructor function to be called when you invoke to the Phaser.Scene.add method.\r\n */\r\nGameObjectFactory.register = function (factoryType, factoryFunction)\r\n{\r\n    if (!GameObjectFactory.prototype.hasOwnProperty(factoryType))\r\n    {\r\n        GameObjectFactory.prototype[factoryType] = factoryFunction;\r\n    }\r\n};\r\n\r\n/**\r\n * Static method called directly by the Game Object factory functions.\r\n * With this method you can remove a custom GameObject factory registered in the GameObjectFactory,\r\n * providing a its `factoryType`.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory.remove\r\n * @static\r\n * @since 3.0.0\r\n *\r\n * @param {string} factoryType - The key of the factory that you want to remove from the GameObjectFactory.\r\n */\r\nGameObjectFactory.remove = function (factoryType)\r\n{\r\n    if (GameObjectFactory.prototype.hasOwnProperty(factoryType))\r\n    {\r\n        delete GameObjectFactory.prototype[factoryType];\r\n    }\r\n};\r\n\r\nPluginCache.register('GameObjectFactory', GameObjectFactory, 'add');\r\n\r\nmodule.exports = GameObjectFactory;\r\n\n\n/***/ }),\n\n/***/ 91296:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar TransformMatrix = __webpack_require__(61340);\r\n\r\nvar tempMatrix1 = new TransformMatrix();\r\nvar tempMatrix2 = new TransformMatrix();\r\nvar tempMatrix3 = new TransformMatrix();\r\n\r\nvar result = { camera: tempMatrix1, sprite: tempMatrix2, calc: tempMatrix3 };\r\n\r\n/**\r\n * Calculates the Transform Matrix of the given Game Object and Camera, factoring in\r\n * the parent matrix if provided.\r\n *\r\n * Note that the object this results contains _references_ to the Transform Matrices,\r\n * not new instances of them. Therefore, you should use their values immediately, or\r\n * copy them to your own matrix, as they will be replaced as soon as another Game\r\n * Object is rendered.\r\n *\r\n * @function Phaser.GameObjects.GetCalcMatrix\r\n * @memberof Phaser.GameObjects\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} src - The Game Object to calculate the transform matrix for.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The camera being used to render the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} [parentMatrix] - The transform matrix of the parent container, if any.\r\n *\r\n * @return {Phaser.Types.GameObjects.GetCalcMatrixResults} The results object containing the updated transform matrices.\r\n */\r\nvar GetCalcMatrix = function (src, camera, parentMatrix)\r\n{\r\n    var camMatrix = tempMatrix1;\r\n    var spriteMatrix = tempMatrix2;\r\n    var calcMatrix = tempMatrix3;\r\n\r\n    spriteMatrix.applyITRS(src.x, src.y, src.rotation, src.scaleX, src.scaleY);\r\n\r\n    camMatrix.copyFrom(camera.matrix);\r\n\r\n    if (parentMatrix)\r\n    {\r\n        //  Multiply the camera by the parent matrix\r\n        camMatrix.multiplyWithOffset(parentMatrix, -camera.scrollX * src.scrollFactorX, -camera.scrollY * src.scrollFactorY);\r\n\r\n        //  Undo the camera scroll\r\n        spriteMatrix.e = src.x;\r\n        spriteMatrix.f = src.y;\r\n    }\r\n    else\r\n    {\r\n        spriteMatrix.e -= camera.scrollX * src.scrollFactorX;\r\n        spriteMatrix.f -= camera.scrollY * src.scrollFactorY;\r\n    }\r\n\r\n    //  Multiply by the Sprite matrix, store result in calcMatrix\r\n    camMatrix.multiply(spriteMatrix, calcMatrix);\r\n\r\n    return result;\r\n};\r\n\r\nmodule.exports = GetCalcMatrix;\r\n\n\n/***/ }),\n\n/***/ 45027:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar ProcessQueue = __webpack_require__(25774);\r\nvar PluginCache = __webpack_require__(37277);\r\nvar SceneEvents = __webpack_require__(44594);\r\n\r\n/**\r\n * @classdesc\r\n * The Update List plugin.\r\n *\r\n * Update Lists belong to a Scene and maintain the list Game Objects to be updated every frame.\r\n *\r\n * Some or all of these Game Objects may also be part of the Scene's [Display List]{@link Phaser.GameObjects.DisplayList}, for Rendering.\r\n *\r\n * @class UpdateList\r\n * @extends Phaser.Structs.ProcessQueue.<Phaser.GameObjects.GameObject>\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene that the Update List belongs to.\r\n */\r\nvar UpdateList = new Class({\r\n\r\n    Extends: ProcessQueue,\r\n\r\n    initialize:\r\n\r\n    function UpdateList (scene)\r\n    {\r\n        ProcessQueue.call(this);\r\n\r\n        //  No duplicates in this list\r\n        this.checkQueue = true;\r\n\r\n        /**\r\n         * The Scene that the Update List belongs to.\r\n         *\r\n         * @name Phaser.GameObjects.UpdateList#scene\r\n         * @type {Phaser.Scene}\r\n         * @since 3.0.0\r\n         */\r\n        this.scene = scene;\r\n\r\n        /**\r\n         * The Scene's Systems.\r\n         *\r\n         * @name Phaser.GameObjects.UpdateList#systems\r\n         * @type {Phaser.Scenes.Systems}\r\n         * @since 3.0.0\r\n         */\r\n        this.systems = scene.sys;\r\n\r\n        /**\r\n         * The `pending` list is a selection of items which are due to be made 'active' in the next update.\r\n         *\r\n         * @name Phaser.GameObjects.UpdateList#_pending\r\n         * @type {Array.<*>}\r\n         * @private\r\n         * @default []\r\n         * @since 3.20.0\r\n         */\r\n\r\n        /**\r\n         * The `active` list is a selection of items which are considered active and should be updated.\r\n         *\r\n         * @name Phaser.GameObjects.UpdateList#_active\r\n         * @type {Array.<*>}\r\n         * @private\r\n         * @default []\r\n         * @since 3.20.0\r\n         */\r\n\r\n        /**\r\n         * The `destroy` list is a selection of items that were active and are awaiting being destroyed in the next update.\r\n         *\r\n         * @name Phaser.GameObjects.UpdateList#_destroy\r\n         * @type {Array.<*>}\r\n         * @private\r\n         * @default []\r\n         * @since 3.20.0\r\n         */\r\n\r\n        /**\r\n         * The total number of items awaiting processing.\r\n         *\r\n         * @name Phaser.GameObjects.UpdateList#_toProcess\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n\r\n        scene.sys.events.once(SceneEvents.BOOT, this.boot, this);\r\n        scene.sys.events.on(SceneEvents.START, this.start, this);\r\n    },\r\n\r\n    /**\r\n     * This method is called automatically, only once, when the Scene is first created.\r\n     * Do not invoke it directly.\r\n     *\r\n     * @method Phaser.GameObjects.UpdateList#boot\r\n     * @private\r\n     * @since 3.5.1\r\n     */\r\n    boot: function ()\r\n    {\r\n        this.systems.events.once(SceneEvents.DESTROY, this.destroy, this);\r\n    },\r\n\r\n    /**\r\n     * This method is called automatically by the Scene when it is starting up.\r\n     * It is responsible for creating local systems, properties and listening for Scene events.\r\n     * Do not invoke it directly.\r\n     *\r\n     * @method Phaser.GameObjects.UpdateList#start\r\n     * @private\r\n     * @since 3.5.0\r\n     */\r\n    start: function ()\r\n    {\r\n        var eventEmitter = this.systems.events;\r\n\r\n        eventEmitter.on(SceneEvents.PRE_UPDATE, this.update, this);\r\n        eventEmitter.on(SceneEvents.UPDATE, this.sceneUpdate, this);\r\n        eventEmitter.once(SceneEvents.SHUTDOWN, this.shutdown, this);\r\n    },\r\n\r\n    /**\r\n     * The update step.\r\n     *\r\n     * Pre-updates every active Game Object in the list.\r\n     *\r\n     * @method Phaser.GameObjects.UpdateList#sceneUpdate\r\n     * @since 3.20.0\r\n     *\r\n     * @param {number} time - The current timestamp.\r\n     * @param {number} delta - The delta time elapsed since the last frame.\r\n     */\r\n    sceneUpdate: function (time, delta)\r\n    {\r\n        var list = this._active;\r\n        var length = list.length;\r\n\r\n        for (var i = 0; i < length; i++)\r\n        {\r\n            var gameObject = list[i];\r\n\r\n            if (gameObject.active)\r\n            {\r\n                gameObject.preUpdate.call(gameObject, time, delta);\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * The Scene that owns this plugin is shutting down.\r\n     *\r\n     * We need to kill and reset all internal properties as well as stop listening to Scene events.\r\n     *\r\n     * @method Phaser.GameObjects.UpdateList#shutdown\r\n     * @since 3.0.0\r\n     */\r\n    shutdown: function ()\r\n    {\r\n        var i = this._active.length;\r\n\r\n        while (i--)\r\n        {\r\n            this._active[i].destroy(true);\r\n        }\r\n\r\n        i = this._pending.length;\r\n\r\n        while (i--)\r\n        {\r\n            this._pending[i].destroy(true);\r\n        }\r\n\r\n        i = this._destroy.length;\r\n\r\n        while (i--)\r\n        {\r\n            this._destroy[i].destroy(true);\r\n        }\r\n\r\n        this._toProcess = 0;\r\n\r\n        this._pending = [];\r\n        this._active = [];\r\n        this._destroy = [];\r\n\r\n        this.removeAllListeners();\r\n\r\n        var eventEmitter = this.systems.events;\r\n\r\n        eventEmitter.off(SceneEvents.PRE_UPDATE, this.update, this);\r\n        eventEmitter.off(SceneEvents.UPDATE, this.sceneUpdate, this);\r\n        eventEmitter.off(SceneEvents.SHUTDOWN, this.shutdown, this);\r\n    },\r\n\r\n    /**\r\n     * The Scene that owns this plugin is being destroyed.\r\n     *\r\n     * We need to shutdown and then kill off all external references.\r\n     *\r\n     * @method Phaser.GameObjects.UpdateList#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.shutdown();\r\n\r\n        this.systems.events.off(SceneEvents.START, this.start, this);\r\n\r\n        this.scene = null;\r\n        this.systems = null;\r\n    }\r\n\r\n    /**\r\n     * Adds a new item to the Update List.\r\n     *\r\n     * The item is added to the pending list and made active in the next update.\r\n     *\r\n     * @method Phaser.GameObjects.UpdateList#add\r\n     * @since 3.0.0\r\n     *\r\n     * @param {*} item - The item to add to the queue.\r\n     *\r\n     * @return {*} The item that was added.\r\n     */\r\n\r\n    /**\r\n     * Removes an item from the Update List.\r\n     *\r\n     * The item is added to the pending destroy and fully removed in the next update.\r\n     *\r\n     * @method Phaser.GameObjects.UpdateList#remove\r\n     * @since 3.0.0\r\n     *\r\n     * @param {*} item - The item to be removed from the queue.\r\n     *\r\n     * @return {*} The item that was removed.\r\n     */\r\n\r\n    /**\r\n     * Removes all active items from this Update List.\r\n     *\r\n     * All the items are marked as 'pending destroy' and fully removed in the next update.\r\n     *\r\n     * @method Phaser.GameObjects.UpdateList#removeAll\r\n     * @since 3.20.0\r\n     *\r\n     * @return {this} This Update List object.\r\n     */\r\n\r\n    /**\r\n     * Update this queue. First it will process any items awaiting destruction, and remove them.\r\n     *\r\n     * Then it will check to see if there are any items pending insertion, and move them to an\r\n     * active state. Finally, it will return a list of active items for further processing.\r\n     *\r\n     * @method Phaser.GameObjects.UpdateList#update\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Array.<*>} A list of active items.\r\n     */\r\n\r\n    /**\r\n     * Returns the current list of active items.\r\n     *\r\n     * This method returns a reference to the active list array, not a copy of it.\r\n     * Therefore, be careful to not modify this array outside of the ProcessQueue.\r\n     *\r\n     * @method Phaser.GameObjects.UpdateList#getActive\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Array.<*>} A list of active items.\r\n     */\r\n\r\n    /**\r\n     * The number of entries in the active list.\r\n     *\r\n     * @name Phaser.GameObjects.UpdateList#length\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.20.0\r\n     */\r\n});\r\n\r\nPluginCache.register('UpdateList', UpdateList, 'updateList');\r\n\r\nmodule.exports = UpdateList;\r\n\n\n/***/ }),\n\n/***/ 3217:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders one character of the Bitmap Text to the WebGL Pipeline.\r\n *\r\n * @function BatchChar\r\n * @since 3.50.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLPipeline} pipeline - The WebGLPipeline. Must have a `batchQuad` method.\r\n * @param {Phaser.GameObjects.BitmapText} src - The BitmapText Game Object.\r\n * @param {Phaser.Types.GameObjects.BitmapText.BitmapTextCharacter} char - The character to render.\r\n * @param {Phaser.Types.GameObjects.BitmapText.BitmapFontCharacterData} glyph - The character glyph.\r\n * @param {number} offsetX - The x offset.\r\n * @param {number} offsetY - The y offset.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} calcMatrix - The transform matrix.\r\n * @param {boolean} roundPixels - Round the transform values or not?\r\n * @param {number} tintTL - Top-left tint value.\r\n * @param {number} tintTR - Top-right tint value.\r\n * @param {number} tintBL - Bottom-left tint value.\r\n * @param {number} tintBR - Bottom-right tint value.\r\n * @param {number} tintEffect - The tint effect mode.\r\n * @param {Phaser.Renderer.WebGL.Wrappers.WebGLTextureWrapper} texture - The texture.\r\n * @param {number} textureUnit - The texture unit.\r\n */\r\nvar BatchChar = function (pipeline, src, char, glyph, offsetX, offsetY, calcMatrix, roundPixels, tintTL, tintTR, tintBL, tintBR, tintEffect, texture, textureUnit)\r\n{\r\n    var x = (char.x - src.displayOriginX) + offsetX;\r\n    var y = (char.y - src.displayOriginY) + offsetY;\r\n\r\n    var xw = x + char.w;\r\n    var yh = y + char.h;\r\n\r\n    var a = calcMatrix.a;\r\n    var b = calcMatrix.b;\r\n    var c = calcMatrix.c;\r\n    var d = calcMatrix.d;\r\n    var e = calcMatrix.e;\r\n    var f = calcMatrix.f;\r\n\r\n    var tx0 = x * a + y * c + e;\r\n    var ty0 = x * b + y * d + f;\r\n\r\n    var tx1 = x * a + yh * c + e;\r\n    var ty1 = x * b + yh * d + f;\r\n\r\n    var tx2 = xw * a + yh * c + e;\r\n    var ty2 = xw * b + yh * d + f;\r\n\r\n    var tx3 = xw * a + y * c + e;\r\n    var ty3 = xw * b + y * d + f;\r\n\r\n    if (roundPixels)\r\n    {\r\n        tx0 = Math.round(tx0);\r\n        ty0 = Math.round(ty0);\r\n\r\n        tx1 = Math.round(tx1);\r\n        ty1 = Math.round(ty1);\r\n\r\n        tx2 = Math.round(tx2);\r\n        ty2 = Math.round(ty2);\r\n\r\n        tx3 = Math.round(tx3);\r\n        ty3 = Math.round(ty3);\r\n    }\r\n\r\n    pipeline.batchQuad(src, tx0, ty0, tx1, ty1, tx2, ty2, tx3, ty3, glyph.u0, glyph.v0, glyph.u1, glyph.v1, tintTL, tintTR, tintBL, tintBR, tintEffect, texture, textureUnit);\r\n};\r\n\r\nmodule.exports = BatchChar;\r\n\n\n/***/ }),\n\n/***/ 53048:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Calculate the full bounds, in local and world space, of a BitmapText Game Object.\r\n *\r\n * Returns a BitmapTextSize object that contains global and local variants of the Game Objects x and y coordinates and\r\n * its width and height. Also includes an array of the line lengths and all word positions.\r\n *\r\n * The global position and size take into account the Game Object's position and scale.\r\n *\r\n * The local position and size just takes into account the font data.\r\n *\r\n * @function GetBitmapTextSize\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {(Phaser.GameObjects.DynamicBitmapText|Phaser.GameObjects.BitmapText)} src - The BitmapText to calculate the bounds values for.\r\n * @param {boolean} [round=false] - Whether to round the positions to the nearest integer.\r\n * @param {boolean} [updateOrigin=false] - Whether to update the origin of the BitmapText after bounds calculations?\r\n * @param {object} [out] - Object to store the results in, to save constant object creation. If not provided an empty object is returned.\r\n *\r\n * @return {Phaser.Types.GameObjects.BitmapText.BitmapTextSize} The calculated bounds values of the BitmapText.\r\n */\r\nvar GetBitmapTextSize = function (src, round, updateOrigin, out)\r\n{\r\n    if (updateOrigin === undefined) { updateOrigin = false; }\r\n\r\n    if (out === undefined)\r\n    {\r\n        out = {\r\n            local: {\r\n                x: 0,\r\n                y: 0,\r\n                width: 0,\r\n                height: 0\r\n            },\r\n            global: {\r\n                x: 0,\r\n                y: 0,\r\n                width: 0,\r\n                height: 0\r\n            },\r\n            lines: {\r\n                shortest: 0,\r\n                longest: 0,\r\n                lengths: null,\r\n                height: 0\r\n            },\r\n            wrappedText: '',\r\n            words: [],\r\n            characters: [],\r\n            scaleX: 0,\r\n            scaleY: 0\r\n        };\r\n\r\n        return out;\r\n    }\r\n\r\n    var text = src.text;\r\n    var textLength = text.length;\r\n    var maxWidth = src.maxWidth;\r\n    var wordWrapCharCode = src.wordWrapCharCode;\r\n\r\n    var bx = Number.MAX_VALUE;\r\n    var by = Number.MAX_VALUE;\r\n    var bw = 0;\r\n    var bh = 0;\r\n\r\n    var chars = src.fontData.chars;\r\n    var lineHeight = src.fontData.lineHeight;\r\n    var letterSpacing = src.letterSpacing;\r\n    var lineSpacing = src.lineSpacing;\r\n\r\n    var xAdvance = 0;\r\n    var yAdvance = 0;\r\n\r\n    var charCode = 0;\r\n\r\n    var glyph = null;\r\n\r\n    var align = src._align;\r\n\r\n    var x = 0;\r\n    var y = 0;\r\n\r\n    var scale = (src.fontSize / src.fontData.size);\r\n    var sx = scale * src.scaleX;\r\n    var sy = scale * src.scaleY;\r\n\r\n    var lastGlyph = null;\r\n    var lastCharCode = 0;\r\n    var lineWidths = [];\r\n    var shortestLine = Number.MAX_VALUE;\r\n    var longestLine = 0;\r\n    var currentLine = 0;\r\n    var currentLineWidth = 0;\r\n\r\n    var i;\r\n    var j;\r\n    var lines;\r\n    var words = [];\r\n    var characters = [];\r\n    var current = null;\r\n\r\n    // Measure the width of the text\r\n    var measureTextWidth = function (text, fontData)\r\n    {\r\n        var width = 0;\r\n\r\n        for (var i = 0; i < text.length; i++)\r\n        {\r\n            var charCode = text.charCodeAt(i);\r\n            var glyph = fontData.chars[charCode];\r\n\r\n            if (glyph)\r\n            {\r\n                width += glyph.xAdvance;\r\n            }\r\n        }\r\n\r\n        return width * sx;\r\n    };\r\n    \r\n    //  Scan for breach of maxWidth and insert carriage-returns\r\n    if (maxWidth > 0)\r\n    {\r\n        // Split the text into lines\r\n        lines = text.split('\\n');\r\n        var wrappedLines = [];\r\n\r\n        // Loop through each line\r\n        for (i = 0; i < lines.length; i++)\r\n        {\r\n            var line = lines[i];\r\n            var word = '';\r\n            var wrappedLine = '';\r\n            var lineToCheck = '';\r\n            var lineWithWord = '';\r\n\r\n            // Loop through each character in a line\r\n            for (j = 0; j < line.length; j++)\r\n            {\r\n                charCode = line.charCodeAt(j);\r\n\r\n                word += line[j];\r\n\r\n                // White space or end of line?\r\n                if (charCode === wordWrapCharCode || j === line.length - 1)\r\n                {\r\n                    lineWithWord = lineToCheck + word;\r\n                    \r\n                    var textWidth = measureTextWidth(lineWithWord, src.fontData);\r\n\r\n                    if (textWidth <= maxWidth)\r\n                    {\r\n                        lineToCheck = lineWithWord;\r\n                    }\r\n                    else\r\n                    {\r\n                        // If the current word is too long to fit on a line, wrap it\r\n                        wrappedLine += (wrappedLine ? '\\n' : '') + lineToCheck;\r\n                        lineToCheck = word;\r\n                    }\r\n\r\n                    word = '';\r\n                }\r\n            }\r\n\r\n            wrappedLine += (wrappedLine ? '\\n' : '') + lineToCheck;\r\n            wrappedLines.push(wrappedLine);\r\n        }\r\n\r\n        text = wrappedLines.join('\\n');\r\n\r\n        //  Loop through the words array and see if we've got any > maxWidth\r\n        var prev;\r\n        var offset = 0;\r\n        var crs = [];\r\n\r\n        for (i = 0; i < words.length; i++)\r\n        {\r\n            var entry = words[i];\r\n            var left = entry.x;\r\n            var right = entry.x + entry.w;\r\n\r\n            if (left === 0)\r\n            {\r\n                offset = 0;\r\n                prev = null;\r\n            }\r\n\r\n            if (prev)\r\n            {\r\n                var diff = left - (prev.x + prev.w);\r\n\r\n                offset = left - (diff + prev.w);\r\n\r\n                prev = null;\r\n            }\r\n\r\n            var checkLeft = left - offset;\r\n            var checkRight = right - offset;\r\n\r\n            if (checkLeft > maxWidth || checkRight > maxWidth)\r\n            {\r\n                crs.push(entry.i - 1);\r\n\r\n                if (entry.cr)\r\n                {\r\n                    crs.push(entry.i + entry.word.length);\r\n\r\n                    offset = 0;\r\n                    prev = null;\r\n                }\r\n                else\r\n                {\r\n                    prev = entry;\r\n                }\r\n            }\r\n            else if (entry.cr)\r\n            {\r\n                crs.push(entry.i + entry.word.length);\r\n\r\n                offset = 0;\r\n                prev = null;\r\n            }\r\n        }\r\n\r\n        var stringInsert = function (str, index, value)\r\n        {\r\n            return str.substr(0, index) + value + str.substr(index + 1);\r\n        };\r\n\r\n        for (i = crs.length - 1; i >= 0; i--)\r\n        {\r\n            if (crs[i] > -1)\r\n            {\r\n                text = stringInsert(text, crs[i], '\\n');\r\n            }\r\n        }\r\n        \r\n        out.wrappedText = text;\r\n\r\n        textLength = text.length;\r\n\r\n        //  Recalculated in the next loop\r\n        words = [];\r\n        current = null;\r\n    }\r\n\r\n    var charIndex = 0;\r\n\r\n    for (i = 0; i < textLength; i++)\r\n    {\r\n        charCode = text.charCodeAt(i);\r\n\r\n        if (charCode === 10)\r\n        {\r\n            if (current !== null)\r\n            {\r\n                words.push({\r\n                    word: current.word,\r\n                    i: current.i,\r\n                    x: current.x * sx,\r\n                    y: current.y * sy,\r\n                    w: current.w * sx,\r\n                    h: current.h * sy\r\n                });\r\n\r\n                current = null;\r\n            }\r\n\r\n            lastGlyph = null;\r\n\r\n            lineWidths[currentLine] = currentLineWidth;\r\n\r\n            if (currentLineWidth > longestLine)\r\n            {\r\n                longestLine = currentLineWidth;\r\n            }\r\n\r\n            if (currentLineWidth < shortestLine)\r\n            {\r\n                shortestLine = currentLineWidth;\r\n            }\r\n\r\n            currentLine++;\r\n            currentLineWidth = 0;\r\n\r\n            xAdvance = 0;\r\n            yAdvance = (lineHeight + lineSpacing) * currentLine;\r\n\r\n            continue;\r\n        }\r\n\r\n        glyph = chars[charCode];\r\n\r\n        if (!glyph)\r\n        {\r\n            continue;\r\n        }\r\n\r\n        x = xAdvance;\r\n        y = yAdvance;\r\n\r\n        if (lastGlyph !== null)\r\n        {\r\n            var kerningOffset = glyph.kerning[lastCharCode];\r\n\r\n            x += (kerningOffset !== undefined) ? kerningOffset : 0;\r\n        }\r\n\r\n        if (bx > x)\r\n        {\r\n            bx = x;\r\n        }\r\n\r\n        if (by > y)\r\n        {\r\n            by = y;\r\n        }\r\n\r\n        var gw = x + glyph.xAdvance;\r\n        var gh = y + lineHeight;\r\n\r\n        if (bw < gw)\r\n        {\r\n            bw = gw;\r\n        }\r\n\r\n        if (bh < gh)\r\n        {\r\n            bh = gh;\r\n        }\r\n\r\n        var charWidth = glyph.xOffset + glyph.xAdvance + ((kerningOffset !== undefined) ? kerningOffset : 0);\r\n\r\n        if (charCode === wordWrapCharCode)\r\n        {\r\n            if (current !== null)\r\n            {\r\n                words.push({\r\n                    word: current.word,\r\n                    i: current.i,\r\n                    x: current.x * sx,\r\n                    y: current.y * sy,\r\n                    w: current.w * sx,\r\n                    h: current.h * sy\r\n                });\r\n\r\n                current = null;\r\n            }\r\n        }\r\n        else\r\n        {\r\n            if (current === null)\r\n            {\r\n                //  We're starting a new word, recording the starting index, etc\r\n                current = { word: '', i: charIndex, x: xAdvance, y: yAdvance, w: 0, h: lineHeight };\r\n            }\r\n\r\n            current.word = current.word.concat(text[i]);\r\n            current.w += charWidth;\r\n        }\r\n\r\n        characters.push({\r\n            i: charIndex,\r\n            idx: i,\r\n            char: text[i],\r\n            code: charCode,\r\n            x: (glyph.xOffset + x) * scale,\r\n            y: (glyph.yOffset + yAdvance) * scale,\r\n            w: glyph.width * scale,\r\n            h: glyph.height * scale,\r\n            t: yAdvance * scale,\r\n            r: gw * scale,\r\n            b: lineHeight * scale,\r\n            line: currentLine,\r\n            glyph: glyph\r\n        });\r\n\r\n        xAdvance += glyph.xAdvance + letterSpacing + ((kerningOffset !== undefined) ? kerningOffset : 0);\r\n        lastGlyph = glyph;\r\n        lastCharCode = charCode;\r\n        currentLineWidth = gw * scale;\r\n        charIndex++;\r\n    }\r\n\r\n    //  Last word\r\n    if (current !== null)\r\n    {\r\n        words.push({\r\n            word: current.word,\r\n            i: current.i,\r\n            x: current.x * sx,\r\n            y: current.y * sy,\r\n            w: current.w * sx,\r\n            h: current.h * sy\r\n        });\r\n    }\r\n\r\n    lineWidths[currentLine] = currentLineWidth;\r\n\r\n    if (currentLineWidth > longestLine)\r\n    {\r\n        longestLine = currentLineWidth;\r\n    }\r\n\r\n    if (currentLineWidth < shortestLine)\r\n    {\r\n        shortestLine = currentLineWidth;\r\n    }\r\n\r\n    //  Adjust all of the character positions based on alignment\r\n    if (align > 0)\r\n    {\r\n        for (var c = 0; c < characters.length; c++)\r\n        {\r\n            var currentChar = characters[c];\r\n\r\n            if (align === 1)\r\n            {\r\n                var ax1 = ((longestLine - lineWidths[currentChar.line]) / 2);\r\n\r\n                currentChar.x += ax1;\r\n                currentChar.r += ax1;\r\n            }\r\n            else if (align === 2)\r\n            {\r\n                var ax2 = (longestLine - lineWidths[currentChar.line]);\r\n\r\n                currentChar.x += ax2;\r\n                currentChar.r += ax2;\r\n            }\r\n        }\r\n    }\r\n\r\n    var local = out.local;\r\n    var global = out.global;\r\n    \r\n    lines = out.lines;\r\n\r\n    local.x = bx * scale;\r\n    local.y = by * scale;\r\n    local.width = bw * scale;\r\n    local.height = bh * scale;\r\n\r\n    global.x = (src.x - src._displayOriginX) + (bx * sx);\r\n    global.y = (src.y - src._displayOriginY) + (by * sy);\r\n\r\n    global.width = bw * sx;\r\n    global.height = bh * sy;\r\n\r\n    lines.shortest = shortestLine;\r\n    lines.longest = longestLine;\r\n    lines.lengths = lineWidths;\r\n\r\n    if (round)\r\n    {\r\n        local.x = Math.ceil(local.x);\r\n        local.y = Math.ceil(local.y);\r\n        local.width = Math.ceil(local.width);\r\n        local.height = Math.ceil(local.height);\r\n\r\n        global.x = Math.ceil(global.x);\r\n        global.y = Math.ceil(global.y);\r\n        global.width = Math.ceil(global.width);\r\n        global.height = Math.ceil(global.height);\r\n\r\n        lines.shortest = Math.ceil(shortestLine);\r\n        lines.longest = Math.ceil(longestLine);\r\n    }\r\n\r\n    if (updateOrigin)\r\n    {\r\n        src._displayOriginX = (src.originX * local.width);\r\n        src._displayOriginY = (src.originY * local.height);\r\n\r\n        global.x = src.x - (src._displayOriginX * src.scaleX);\r\n        global.y = src.y - (src._displayOriginY * src.scaleY);\r\n\r\n        if (round)\r\n        {\r\n            global.x = Math.ceil(global.x);\r\n            global.y = Math.ceil(global.y);\r\n        }\r\n    }\r\n\r\n    out.words = words;\r\n    out.characters = characters;\r\n    out.lines.height = lineHeight;\r\n    out.scale = scale;\r\n    out.scaleX = src.scaleX;\r\n    out.scaleY = src.scaleY;\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetBitmapTextSize;\r\n\n\n/***/ }),\n\n/***/ 61327:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar ParseXMLBitmapFont = __webpack_require__(21859);\r\n\r\n/**\r\n * Parse an XML Bitmap Font from an Atlas.\r\n *\r\n * Adds the parsed Bitmap Font data to the cache with the `fontName` key.\r\n *\r\n * @function ParseFromAtlas\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to parse the Bitmap Font for.\r\n * @param {string} fontName - The key of the font to add to the Bitmap Font cache.\r\n * @param {string} textureKey - The key of the BitmapFont's texture.\r\n * @param {string} frameKey - The key of the BitmapFont texture's frame.\r\n * @param {string} xmlKey - The key of the XML data of the font to parse.\r\n * @param {number} [xSpacing] - The x-axis spacing to add between each letter.\r\n * @param {number} [ySpacing] - The y-axis spacing to add to the line height.\r\n *\r\n * @return {boolean} Whether the parsing was successful or not.\r\n */\r\nvar ParseFromAtlas = function (scene, fontName, textureKey, frameKey, xmlKey, xSpacing, ySpacing)\r\n{\r\n    var texture = scene.sys.textures.get(textureKey);\r\n    var frame = texture.get(frameKey);\r\n    var xml = scene.sys.cache.xml.get(xmlKey);\r\n\r\n    if (frame && xml)\r\n    {\r\n        var data = ParseXMLBitmapFont(xml, frame, xSpacing, ySpacing, texture);\r\n\r\n        scene.sys.cache.bitmapFont.add(fontName, { data: data, texture: textureKey, frame: frameKey, fromAtlas: true });\r\n\r\n        return true;\r\n    }\r\n    else\r\n    {\r\n        return false;\r\n    }\r\n};\r\n\r\nmodule.exports = ParseFromAtlas;\r\n\n\n/***/ }),\n\n/***/ 6925:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetValue = __webpack_require__(35154);\r\n\r\n/**\r\n * Parses a Retro Font configuration object so you can pass it to the BitmapText constructor\r\n * and create a BitmapText object using a fixed-width retro font.\r\n *\r\n * @function Phaser.GameObjects.RetroFont.Parse\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - A reference to the Phaser Scene.\r\n * @param {Phaser.Types.GameObjects.BitmapText.RetroFontConfig} config - The font configuration object.\r\n *\r\n * @return {Phaser.Types.GameObjects.BitmapText.BitmapFontData} A parsed Bitmap Font data entry for the Bitmap Font cache.\r\n */\r\nvar ParseRetroFont = function (scene, config)\r\n{\r\n    var w = config.width;\r\n    var h = config.height;\r\n\r\n    var cx = Math.floor(w / 2);\r\n    var cy = Math.floor(h / 2);\r\n\r\n    var letters = GetValue(config, 'chars', '');\r\n\r\n    if (letters === '')\r\n    {\r\n        return;\r\n    }\r\n\r\n    var key = GetValue(config, 'image', '');\r\n\r\n    var frame = scene.sys.textures.getFrame(key);\r\n    var textureX = frame.cutX;\r\n    var textureY = frame.cutY;\r\n    var textureWidth = frame.source.width;\r\n    var textureHeight = frame.source.height;\r\n\r\n    var offsetX = GetValue(config, 'offset.x', 0);\r\n    var offsetY = GetValue(config, 'offset.y', 0);\r\n    var spacingX = GetValue(config, 'spacing.x', 0);\r\n    var spacingY = GetValue(config, 'spacing.y', 0);\r\n    var lineSpacing = GetValue(config, 'lineSpacing', 0);\r\n\r\n    var charsPerRow = GetValue(config, 'charsPerRow', null);\r\n\r\n    if (charsPerRow === null)\r\n    {\r\n        charsPerRow = textureWidth / w;\r\n\r\n        if (charsPerRow > letters.length)\r\n        {\r\n            charsPerRow = letters.length;\r\n        }\r\n    }\r\n\r\n    var x = offsetX;\r\n    var y = offsetY;\r\n\r\n    var data = {\r\n        retroFont: true,\r\n        font: key,\r\n        size: w,\r\n        lineHeight: h + lineSpacing,\r\n        chars: {}\r\n    };\r\n\r\n    var r = 0;\r\n\r\n    for (var i = 0; i < letters.length; i++)\r\n    {\r\n        var charCode = letters.charCodeAt(i);\r\n\r\n        var u0 = (textureX + x) / textureWidth;\r\n        var v0 = (textureY + y) / textureHeight;\r\n        var u1 = (textureX + x + w) / textureWidth;\r\n        var v1 = (textureY + y + h) / textureHeight;\r\n\r\n        data.chars[charCode] =\r\n        {\r\n            x: x,\r\n            y: y,\r\n            width: w,\r\n            height: h,\r\n            centerX: cx,\r\n            centerY: cy,\r\n            xOffset: 0,\r\n            yOffset: 0,\r\n            xAdvance: w,\r\n            data: {},\r\n            kerning: {},\r\n            u0: u0,\r\n            v0: v0,\r\n            u1: u1,\r\n            v1: v1\r\n        };\r\n\r\n        r++;\r\n\r\n        if (r === charsPerRow)\r\n        {\r\n            r = 0;\r\n            x = offsetX;\r\n            y += h + spacingY;\r\n        }\r\n        else\r\n        {\r\n            x += w + spacingX;\r\n        }\r\n    }\r\n\r\n    var entry = {\r\n        data: data,\r\n        frame: null,\r\n        texture: key\r\n    };\r\n\r\n    return entry;\r\n};\r\n\r\nmodule.exports = ParseRetroFont;\r\n\n\n/***/ }),\n\n/***/ 21859:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Read an integer value from an XML Node.\r\n *\r\n * @function getValue\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Node} node - The XML Node.\r\n * @param {string} attribute - The attribute to read.\r\n *\r\n * @return {number} The parsed value.\r\n */\r\nfunction getValue (node, attribute)\r\n{\r\n    return parseInt(node.getAttribute(attribute), 10);\r\n}\r\n\r\n/**\r\n * Parse an XML font to Bitmap Font data for the Bitmap Font cache.\r\n *\r\n * @function ParseXMLBitmapFont\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {XMLDocument} xml - The XML Document to parse the font from.\r\n * @param {Phaser.Textures.Frame} frame - The texture frame to take into account when creating the uv data.\r\n * @param {number} [xSpacing=0] - The x-axis spacing to add between each letter.\r\n * @param {number} [ySpacing=0] - The y-axis spacing to add to the line height.\r\n * @param {Phaser.Textures.Texture} [texture] - If provided, each glyph in the Bitmap Font will be added to this texture as a frame.\r\n *\r\n * @return {Phaser.Types.GameObjects.BitmapText.BitmapFontData} The parsed Bitmap Font data.\r\n */\r\nvar ParseXMLBitmapFont = function (xml, frame, xSpacing, ySpacing, texture)\r\n{\r\n    if (xSpacing === undefined) { xSpacing = 0; }\r\n    if (ySpacing === undefined) { ySpacing = 0; }\r\n\r\n    var textureX = frame.cutX;\r\n    var textureY = frame.cutY;\r\n    var textureWidth = frame.source.width;\r\n    var textureHeight = frame.source.height;\r\n    var sourceIndex = frame.sourceIndex;\r\n\r\n    var data = {};\r\n    var info = xml.getElementsByTagName('info')[0];\r\n    var common = xml.getElementsByTagName('common')[0];\r\n\r\n    data.font = info.getAttribute('face');\r\n    data.size = getValue(info, 'size');\r\n    data.lineHeight = getValue(common, 'lineHeight') + ySpacing;\r\n    data.chars = {};\r\n\r\n    var letters = xml.getElementsByTagName('char');\r\n\r\n    var adjustForTrim = (frame !== undefined && frame.trimmed);\r\n\r\n    if (adjustForTrim)\r\n    {\r\n        var top = frame.height;\r\n        var left = frame.width;\r\n    }\r\n\r\n    for (var i = 0; i < letters.length; i++)\r\n    {\r\n        var node = letters[i];\r\n\r\n        var charCode = getValue(node, 'id');\r\n        var letter = String.fromCharCode(charCode);\r\n        var gx = getValue(node, 'x');\r\n        var gy = getValue(node, 'y');\r\n        var gw = getValue(node, 'width');\r\n        var gh = getValue(node, 'height');\r\n\r\n        //  Handle frame trim issues\r\n\r\n        if (adjustForTrim)\r\n        {\r\n            if (gx < left)\r\n            {\r\n                left = gx;\r\n            }\r\n\r\n            if (gy < top)\r\n            {\r\n                top = gy;\r\n            }\r\n        }\r\n\r\n        if (adjustForTrim && top !== 0 && left !== 0)\r\n        {\r\n            //  Now we know the top and left coordinates of the glyphs in the original data\r\n            //  so we can work out how much to adjust the glyphs by\r\n\r\n            gx -= frame.x;\r\n            gy -= frame.y;\r\n        }\r\n\r\n        var u0 = (textureX + gx) / textureWidth;\r\n        var v0 = (textureY + gy) / textureHeight;\r\n        var u1 = (textureX + gx + gw) / textureWidth;\r\n        var v1 = (textureY + gy + gh) / textureHeight;\r\n\r\n        data.chars[charCode] =\r\n        {\r\n            x: gx,\r\n            y: gy,\r\n            width: gw,\r\n            height: gh,\r\n            centerX: Math.floor(gw / 2),\r\n            centerY: Math.floor(gh / 2),\r\n            xOffset: getValue(node, 'xoffset'),\r\n            yOffset: getValue(node, 'yoffset'),\r\n            xAdvance: getValue(node, 'xadvance') + xSpacing,\r\n            data: {},\r\n            kerning: {},\r\n            u0: u0,\r\n            v0: v0,\r\n            u1: u1,\r\n            v1: v1\r\n        };\r\n\r\n        if (texture && gw !== 0 && gh !== 0)\r\n        {\r\n            var charFrame = texture.add(letter, sourceIndex, gx, gy, gw, gh);\r\n\r\n            if (charFrame)\r\n            {\r\n                charFrame.setUVs(gw, gh, u0, v0, u1, v1);\r\n            }\r\n        }\r\n    }\r\n\r\n    var kernings = xml.getElementsByTagName('kerning');\r\n\r\n    for (i = 0; i < kernings.length; i++)\r\n    {\r\n        var kern = kernings[i];\r\n\r\n        var first = getValue(kern, 'first');\r\n        var second = getValue(kern, 'second');\r\n        var amount = getValue(kern, 'amount');\r\n\r\n        data.chars[second].kerning[first] = amount;\r\n    }\r\n\r\n    return data;\r\n};\r\n\r\nmodule.exports = ParseXMLBitmapFont;\r\n\n\n/***/ }),\n\n/***/ 196:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar RETRO_FONT_CONST = __webpack_require__(87662);\r\nvar Extend = __webpack_require__(79291);\r\n\r\n/**\r\n * @namespace Phaser.GameObjects.RetroFont\r\n * @since 3.6.0\r\n */\r\n\r\nvar RetroFont = { Parse: __webpack_require__(6925) };\r\n\r\n//   Merge in the consts\r\nRetroFont = Extend(false, RetroFont, RETRO_FONT_CONST);\r\n\r\nmodule.exports = RetroFont;\r\n\n\n/***/ }),\n\n/***/ 87662:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar RETRO_FONT_CONST = {\r\n\r\n    /**\r\n     * Text Set 1 =  !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\r\n     * \r\n     * @name Phaser.GameObjects.RetroFont.TEXT_SET1\r\n     * @type {string}\r\n     * @since 3.6.0\r\n     */\r\n    TEXT_SET1: ' !\"#$%&\\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~',\r\n\r\n    /**\r\n     * Text Set 2 =  !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n     * \r\n     * @name Phaser.GameObjects.RetroFont.TEXT_SET2\r\n     * @type {string}\r\n     * @since 3.6.0\r\n     */\r\n    TEXT_SET2: ' !\"#$%&\\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ',\r\n\r\n    /**\r\n     * Text Set 3 = ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 \r\n     * \r\n     * @name Phaser.GameObjects.RetroFont.TEXT_SET3\r\n     * @type {string}\r\n     * @since 3.6.0\r\n     */\r\n    TEXT_SET3: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ',\r\n\r\n    /**\r\n     * Text Set 4 = ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789\r\n     * \r\n     * @name Phaser.GameObjects.RetroFont.TEXT_SET4\r\n     * @type {string}\r\n     * @since 3.6.0\r\n     */\r\n    TEXT_SET4: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ 0123456789',\r\n\r\n    /**\r\n     * Text Set 5 = ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() '!?-*:0123456789\r\n     * \r\n     * @name Phaser.GameObjects.RetroFont.TEXT_SET5\r\n     * @type {string}\r\n     * @since 3.6.0\r\n     */\r\n    TEXT_SET5: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ.,/() \\'!?-*:0123456789',\r\n\r\n    /**\r\n     * Text Set 6 = ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.' \r\n     * \r\n     * @name Phaser.GameObjects.RetroFont.TEXT_SET6\r\n     * @type {string}\r\n     * @since 3.6.0\r\n     */\r\n    TEXT_SET6: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ!?:;0123456789\"(),-.\\' ',\r\n\r\n    /**\r\n     * Text Set 7 = AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-'39\r\n     * \r\n     * @name Phaser.GameObjects.RetroFont.TEXT_SET7\r\n     * @type {string}\r\n     * @since 3.6.0\r\n     */\r\n    TEXT_SET7: 'AGMSY+:4BHNTZ!;5CIOU.?06DJPV,(17EKQW\")28FLRX-\\'39',\r\n\r\n    /**\r\n     * Text Set 8 = 0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n     * \r\n     * @name Phaser.GameObjects.RetroFont.TEXT_SET8\r\n     * @type {string}\r\n     * @since 3.6.0\r\n     */\r\n    TEXT_SET8: '0123456789 .ABCDEFGHIJKLMNOPQRSTUVWXYZ',\r\n\r\n    /**\r\n     * Text Set 9 = ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,'\"?!\r\n     * \r\n     * @name Phaser.GameObjects.RetroFont.TEXT_SET9\r\n     * @type {string}\r\n     * @since 3.6.0\r\n     */\r\n    TEXT_SET9: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ()-0123456789.:,\\'\"?!',\r\n\r\n    /**\r\n     * Text Set 10 = ABCDEFGHIJKLMNOPQRSTUVWXYZ\r\n     * \r\n     * @name Phaser.GameObjects.RetroFont.TEXT_SET10\r\n     * @type {string}\r\n     * @since 3.6.0\r\n     */\r\n    TEXT_SET10: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ',\r\n\r\n    /**\r\n     * Text Set 11 = ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()':;0123456789\r\n     * \r\n     * @name Phaser.GameObjects.RetroFont.TEXT_SET11\r\n     * @since 3.6.0\r\n     * @type {string}\r\n     */\r\n    TEXT_SET11: 'ABCDEFGHIJKLMNOPQRSTUVWXYZ.,\"-+!?()\\':;0123456789'\r\n\r\n};\r\n\r\nmodule.exports = RETRO_FONT_CONST;\r\n\n\n/***/ }),\n\n/***/ 2638:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BitmapText = __webpack_require__(22186);\r\nvar Class = __webpack_require__(83419);\r\nvar Render = __webpack_require__(12310);\r\n\r\n/**\r\n * @classdesc\r\n * BitmapText objects work by taking a texture file and an XML or JSON file that describes the font structure.\r\n *\r\n * During rendering for each letter of the text is rendered to the display, proportionally spaced out and aligned to\r\n * match the font structure.\r\n *\r\n * Dynamic Bitmap Text objects are different from Static Bitmap Text in that they invoke a callback for each\r\n * letter being rendered during the render pass. This callback allows you to manipulate the properties of\r\n * each letter being rendered, such as its position, scale or tint, allowing you to create interesting effects\r\n * like jiggling text, which can't be done with Static text. This means that Dynamic Text takes more processing\r\n * time, so only use them if you require the callback ability they have.\r\n *\r\n * BitmapText objects are less flexible than Text objects, in that they have less features such as shadows, fills and the ability\r\n * to use Web Fonts, however you trade this flexibility for rendering speed. You can also create visually compelling BitmapTexts by\r\n * processing the font texture in an image editor, applying fills and any other effects required.\r\n *\r\n * To create multi-line text insert \\r, \\n or \\r\\n escape codes into the text string.\r\n *\r\n * To create a BitmapText data files you need a 3rd party app such as:\r\n *\r\n * BMFont (Windows, free): {@link http://www.angelcode.com/products/bmfont/|http://www.angelcode.com/products/bmfont/}\r\n * Glyph Designer (OS X, commercial): {@link http://www.71squared.com/en/glyphdesigner|http://www.71squared.com/en/glyphdesigner}\r\n * Snow BMF (Web-based, free): {@link https://snowb.org//|https://snowb.org/}\r\n * Littera (Flash-based, free): {@link http://kvazars.com/littera/|http://kvazars.com/littera/}\r\n *\r\n * For most use cases it is recommended to use XML. If you wish to use JSON, the formatting should be equal to the result of\r\n * converting a valid XML file through the popular X2JS library. An online tool for conversion can be found here: {@link http://codebeautify.org/xmltojson|http://codebeautify.org/xmltojson}\r\n *\r\n * @class DynamicBitmapText\r\n * @extends Phaser.GameObjects.BitmapText\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. It can only belong to one Scene at any given time.\r\n * @param {number} x - The x coordinate of this Game Object in world space.\r\n * @param {number} y - The y coordinate of this Game Object in world space.\r\n * @param {string} font - The key of the font to use from the Bitmap Font cache.\r\n * @param {(string|string[])} [text] - The string, or array of strings, to be set as the content of this Bitmap Text.\r\n * @param {number} [size] - The font size of this Bitmap Text.\r\n * @param {number} [align=0] - The alignment of the text in a multi-line BitmapText object.\r\n */\r\nvar DynamicBitmapText = new Class({\r\n\r\n    Extends: BitmapText,\r\n\r\n    Mixins: [\r\n        Render\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function DynamicBitmapText (scene, x, y, font, text, size, align)\r\n    {\r\n        BitmapText.call(this, scene, x, y, font, text, size, align);\r\n\r\n        this.type = 'DynamicBitmapText';\r\n\r\n        /**\r\n         * The horizontal scroll position of the Bitmap Text.\r\n         *\r\n         * @name Phaser.GameObjects.DynamicBitmapText#scrollX\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.scrollX = 0;\r\n\r\n        /**\r\n         * The vertical scroll position of the Bitmap Text.\r\n         *\r\n         * @name Phaser.GameObjects.DynamicBitmapText#scrollY\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.scrollY = 0;\r\n\r\n        /**\r\n         * The crop width of the Bitmap Text.\r\n         *\r\n         * @name Phaser.GameObjects.DynamicBitmapText#cropWidth\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.cropWidth = 0;\r\n\r\n        /**\r\n         * The crop height of the Bitmap Text.\r\n         *\r\n         * @name Phaser.GameObjects.DynamicBitmapText#cropHeight\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.cropHeight = 0;\r\n\r\n        /**\r\n         * A callback that alters how each character of the Bitmap Text is rendered.\r\n         *\r\n         * @name Phaser.GameObjects.DynamicBitmapText#displayCallback\r\n         * @type {Phaser.Types.GameObjects.BitmapText.DisplayCallback}\r\n         * @since 3.0.0\r\n         */\r\n        this.displayCallback;\r\n\r\n        /**\r\n         * The data object that is populated during rendering, then passed to the displayCallback.\r\n         * You should modify this object then return it back from the callback. It's updated values\r\n         * will be used to render the specific glyph.\r\n         *\r\n         * Please note that if you need a reference to this object locally in your game code then you\r\n         * should shallow copy it, as it's updated and re-used for every glyph in the text.\r\n         *\r\n         * @name Phaser.GameObjects.DynamicBitmapText#callbackData\r\n         * @type {Phaser.Types.GameObjects.BitmapText.DisplayCallbackConfig}\r\n         * @since 3.11.0\r\n         */\r\n        this.callbackData = {\r\n            parent: this,\r\n            color: 0,\r\n            tint: {\r\n                topLeft: 0,\r\n                topRight: 0,\r\n                bottomLeft: 0,\r\n                bottomRight: 0\r\n            },\r\n            index: 0,\r\n            charCode: 0,\r\n            x: 0,\r\n            y: 0,\r\n            scale: 0,\r\n            rotation: 0,\r\n            data: 0\r\n        };\r\n    },\r\n\r\n    /**\r\n     * Set the crop size of this Bitmap Text.\r\n     *\r\n     * @method Phaser.GameObjects.DynamicBitmapText#setSize\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} width - The width of the crop.\r\n     * @param {number} height - The height of the crop.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    setSize: function (width, height)\r\n    {\r\n        this.cropWidth = width;\r\n        this.cropHeight = height;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set a callback that alters how each character of the Bitmap Text is rendered.\r\n     *\r\n     * The callback receives a {@link Phaser.Types.GameObjects.BitmapText.DisplayCallbackConfig} object that contains information about the character that's\r\n     * about to be rendered.\r\n     *\r\n     * It should return an object with `x`, `y`, `scale` and `rotation` properties that will be used instead of the\r\n     * usual values when rendering.\r\n     *\r\n     * @method Phaser.GameObjects.DynamicBitmapText#setDisplayCallback\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.BitmapText.DisplayCallback} callback - The display callback to set.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    setDisplayCallback: function (callback)\r\n    {\r\n        this.displayCallback = callback;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the horizontal scroll position of this Bitmap Text.\r\n     *\r\n     * @method Phaser.GameObjects.DynamicBitmapText#setScrollX\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} value - The horizontal scroll position to set.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    setScrollX: function (value)\r\n    {\r\n        this.scrollX = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the vertical scroll position of this Bitmap Text.\r\n     *\r\n     * @method Phaser.GameObjects.DynamicBitmapText#setScrollY\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} value - The vertical scroll position to set.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    setScrollY: function (value)\r\n    {\r\n        this.scrollY = value;\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = DynamicBitmapText;\r\n\n\n/***/ }),\n\n/***/ 86741:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.DynamicBitmapText#renderCanvas\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.DynamicBitmapText} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar DynamicBitmapTextCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    var text = src._text;\r\n    var textLength = text.length;\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    if (textLength === 0 || !SetTransform(renderer, ctx, src, camera, parentMatrix))\r\n    {\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    var textureFrame = src.fromAtlas\r\n        ? src.frame\r\n        : src.texture.frames['__BASE'];\r\n\r\n    var displayCallback = src.displayCallback;\r\n    var callbackData = src.callbackData;\r\n\r\n    var chars = src.fontData.chars;\r\n    var lineHeight = src.fontData.lineHeight;\r\n    var letterSpacing = src._letterSpacing;\r\n\r\n    var xAdvance = 0;\r\n    var yAdvance = 0;\r\n\r\n    var charCode = 0;\r\n\r\n    var glyph = null;\r\n    var glyphX = 0;\r\n    var glyphY = 0;\r\n    var glyphW = 0;\r\n    var glyphH = 0;\r\n\r\n    var x = 0;\r\n    var y = 0;\r\n\r\n    var lastGlyph = null;\r\n    var lastCharCode = 0;\r\n\r\n    var image = src.frame.source.image;\r\n\r\n    var textureX = textureFrame.cutX;\r\n    var textureY = textureFrame.cutY;\r\n\r\n    var rotation = 0;\r\n    var scale = 0;\r\n    var baseScale = (src._fontSize / src.fontData.size);\r\n\r\n    var align = src._align;\r\n    var currentLine = 0;\r\n    var lineOffsetX = 0;\r\n\r\n    //  Update the bounds - skipped internally if not dirty\r\n    src.getTextBounds(false);\r\n\r\n    var lineData = src._bounds.lines;\r\n\r\n    if (align === 1)\r\n    {\r\n        lineOffsetX = (lineData.longest - lineData.lengths[0]) / 2;\r\n    }\r\n    else if (align === 2)\r\n    {\r\n        lineOffsetX = (lineData.longest - lineData.lengths[0]);\r\n    }\r\n\r\n    ctx.translate(-src.displayOriginX, -src.displayOriginY);\r\n\r\n    var roundPixels = camera.roundPixels;\r\n\r\n    if (src.cropWidth > 0 && src.cropHeight > 0)\r\n    {\r\n        ctx.beginPath();\r\n        ctx.rect(0, 0, src.cropWidth, src.cropHeight);\r\n        ctx.clip();\r\n    }\r\n\r\n    for (var i = 0; i < textLength; i++)\r\n    {\r\n        //  Reset the scale (in case the callback changed it)\r\n        scale = baseScale;\r\n        rotation = 0;\r\n\r\n        charCode = text.charCodeAt(i);\r\n\r\n        if (charCode === 10)\r\n        {\r\n            currentLine++;\r\n\r\n            if (align === 1)\r\n            {\r\n                lineOffsetX = (lineData.longest - lineData.lengths[currentLine]) / 2;\r\n            }\r\n            else if (align === 2)\r\n            {\r\n                lineOffsetX = (lineData.longest - lineData.lengths[currentLine]);\r\n            }\r\n\r\n            xAdvance = 0;\r\n            yAdvance += lineHeight;\r\n            lastGlyph = null;\r\n\r\n            continue;\r\n        }\r\n\r\n        glyph = chars[charCode];\r\n\r\n        if (!glyph)\r\n        {\r\n            continue;\r\n        }\r\n\r\n        glyphX = textureX + glyph.x;\r\n        glyphY = textureY + glyph.y;\r\n\r\n        glyphW = glyph.width;\r\n        glyphH = glyph.height;\r\n\r\n        x = (glyph.xOffset + xAdvance) - src.scrollX;\r\n        y = (glyph.yOffset + yAdvance) - src.scrollY;\r\n\r\n        if (lastGlyph !== null)\r\n        {\r\n            var kerningOffset = glyph.kerning[lastCharCode];\r\n            x += (kerningOffset !== undefined) ? kerningOffset : 0;\r\n        }\r\n\r\n        if (displayCallback)\r\n        {\r\n            callbackData.index = i;\r\n            callbackData.charCode = charCode;\r\n            callbackData.x = x;\r\n            callbackData.y = y;\r\n            callbackData.scale = scale;\r\n            callbackData.rotation = rotation;\r\n            callbackData.data = glyph.data;\r\n\r\n            var output = displayCallback(callbackData);\r\n\r\n            x = output.x;\r\n            y = output.y;\r\n            scale = output.scale;\r\n            rotation = output.rotation;\r\n        }\r\n\r\n        x *= scale;\r\n        y *= scale;\r\n\r\n        x += lineOffsetX;\r\n\r\n        xAdvance += glyph.xAdvance + letterSpacing + ((kerningOffset !== undefined) ? kerningOffset : 0);\r\n        lastGlyph = glyph;\r\n        lastCharCode = charCode;\r\n\r\n        //  Nothing to render or a space? Then skip to the next glyph\r\n        if (glyphW === 0 || glyphH === 0 || charCode === 32)\r\n        {\r\n            continue;\r\n        }\r\n\r\n        if (roundPixels)\r\n        {\r\n            x = Math.round(x);\r\n            y = Math.round(y);\r\n        }\r\n\r\n        ctx.save();\r\n\r\n        ctx.translate(x, y);\r\n\r\n        ctx.rotate(rotation);\r\n\r\n        ctx.scale(scale, scale);\r\n\r\n        ctx.drawImage(image, glyphX, glyphY, glyphW, glyphH, 0, 0, glyphW, glyphH);\r\n\r\n        ctx.restore();\r\n    }\r\n\r\n    ctx.restore();\r\n};\r\n\r\nmodule.exports = DynamicBitmapTextCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 11164:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BitmapText = __webpack_require__(2638);\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\n\r\n/**\r\n * Creates a new Dynamic Bitmap Text Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Dynamic Bitmap Text Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#dynamicBitmapText\r\n * @since 3.0.0\r\n *²\r\n * @param {Phaser.Types.GameObjects.BitmapText.BitmapTextConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.DynamicBitmapText} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('dynamicBitmapText', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var font = GetAdvancedValue(config, 'font', '');\r\n    var text = GetAdvancedValue(config, 'text', '');\r\n    var size = GetAdvancedValue(config, 'size', false);\r\n\r\n    var bitmapText = new BitmapText(this.scene, 0, 0, font, text, size);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, bitmapText, config);\r\n\r\n    return bitmapText;\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectCreator context.\r\n\n\n/***/ }),\n\n/***/ 72566:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar DynamicBitmapText = __webpack_require__(2638);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Dynamic Bitmap Text Game Object and adds it to the Scene.\r\n * \r\n * BitmapText objects work by taking a texture file and an XML or JSON file that describes the font structure.\r\n * \r\n * During rendering for each letter of the text is rendered to the display, proportionally spaced out and aligned to\r\n * match the font structure.\r\n * \r\n * Dynamic Bitmap Text objects are different from Static Bitmap Text in that they invoke a callback for each\r\n * letter being rendered during the render pass. This callback allows you to manipulate the properties of\r\n * each letter being rendered, such as its position, scale or tint, allowing you to create interesting effects\r\n * like jiggling text, which can't be done with Static text. This means that Dynamic Text takes more processing\r\n * time, so only use them if you require the callback ability they have.\r\n *\r\n * BitmapText objects are less flexible than Text objects, in that they have less features such as shadows, fills and the ability\r\n * to use Web Fonts, however you trade this flexibility for rendering speed. You can also create visually compelling BitmapTexts by\r\n * processing the font texture in an image editor, applying fills and any other effects required.\r\n *\r\n * To create multi-line text insert \\r, \\n or \\r\\n escape codes into the text string.\r\n *\r\n * To create a BitmapText data files you need a 3rd party app such as:\r\n *\r\n * BMFont (Windows, free): http://www.angelcode.com/products/bmfont/\r\n * Glyph Designer (OS X, commercial): http://www.71squared.com/en/glyphdesigner\r\n * Littera (Web-based, free): http://kvazars.com/littera/\r\n *\r\n * For most use cases it is recommended to use XML. If you wish to use JSON, the formatting should be equal to the result of\r\n * converting a valid XML file through the popular X2JS library. An online tool for conversion can be found here: http://codebeautify.org/xmltojson\r\n *\r\n * Note: This method will only be available if the Dynamic Bitmap Text Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#dynamicBitmapText\r\n * @since 3.0.0\r\n *\r\n * @param {number} x - The x position of the Game Object.\r\n * @param {number} y - The y position of the Game Object.\r\n * @param {string} font - The key of the font to use from the BitmapFont cache.\r\n * @param {(string|string[])} [text] - The string, or array of strings, to be set as the content of this Bitmap Text.\r\n * @param {number} [size] - The font size to set.\r\n *\r\n * @return {Phaser.GameObjects.DynamicBitmapText} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('dynamicBitmapText', function (x, y, font, text, size)\r\n{\r\n    return this.displayList.add(new DynamicBitmapText(this.scene, x, y, font, text, size));\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectFactory context.\r\n//\r\n//  There are several properties available to use:\r\n//\r\n//  this.scene - a reference to the Scene that owns the GameObjectFactory\r\n//  this.displayList - a reference to the Display List the Scene owns\r\n//  this.updateList - a reference to the Update List the Scene owns\r\n\n\n/***/ }),\n\n/***/ 12310:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(73482);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(86741);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 73482:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar TransformMatrix = __webpack_require__(61340);\r\nvar Utils = __webpack_require__(70554);\r\n\r\nvar tempMatrix = new TransformMatrix();\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.DynamicBitmapText#renderWebGL\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.DynamicBitmapText} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar DynamicBitmapTextWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    var text = src.text;\r\n    var textLength = text.length;\r\n\r\n    if (textLength === 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline, src);\r\n\r\n    var result = GetCalcMatrix(src, camera, parentMatrix);\r\n\r\n    //  This causes a flush if the BitmapText has a Post Pipeline\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    var spriteMatrix = result.sprite;\r\n    var calcMatrix = result.calc;\r\n\r\n    var fontMatrix = tempMatrix;\r\n\r\n    var crop = (src.cropWidth > 0 || src.cropHeight > 0);\r\n\r\n    if (crop)\r\n    {\r\n        pipeline.flush();\r\n\r\n        renderer.pushScissor(\r\n            calcMatrix.tx,\r\n            calcMatrix.ty,\r\n            src.cropWidth * calcMatrix.scaleX,\r\n            src.cropHeight * calcMatrix.scaleY\r\n        );\r\n    }\r\n\r\n    var frame = src.frame;\r\n    var texture = frame.glTexture;\r\n\r\n    var tintEffect = src.tintFill;\r\n    var tintTL = Utils.getTintAppendFloatAlpha(src.tintTopLeft, camera.alpha * src._alphaTL);\r\n    var tintTR = Utils.getTintAppendFloatAlpha(src.tintTopRight, camera.alpha * src._alphaTR);\r\n    var tintBL = Utils.getTintAppendFloatAlpha(src.tintBottomLeft, camera.alpha * src._alphaBL);\r\n    var tintBR = Utils.getTintAppendFloatAlpha(src.tintBottomRight, camera.alpha * src._alphaBR);\r\n\r\n    var textureUnit = pipeline.setGameObject(src);\r\n\r\n    var xAdvance = 0;\r\n    var yAdvance = 0;\r\n    var charCode = 0;\r\n    var lastCharCode = 0;\r\n    var letterSpacing = src.letterSpacing;\r\n    var glyph;\r\n    var glyphW = 0;\r\n    var glyphH = 0;\r\n    var lastGlyph;\r\n    var scrollX = src.scrollX;\r\n    var scrollY = src.scrollY;\r\n\r\n    var fontData = src.fontData;\r\n    var chars = fontData.chars;\r\n    var lineHeight = fontData.lineHeight;\r\n    var scale = (src.fontSize / fontData.size);\r\n    var rotation = 0;\r\n\r\n    var align = src._align;\r\n    var currentLine = 0;\r\n    var lineOffsetX = 0;\r\n\r\n    //  Update the bounds - skipped internally if not dirty\r\n    var bounds = src.getTextBounds(false);\r\n\r\n    //  In case the method above changed it (word wrapping)\r\n    if (src.maxWidth > 0)\r\n    {\r\n        text = bounds.wrappedText;\r\n        textLength = text.length;\r\n    }\r\n\r\n    var lineData = src._bounds.lines;\r\n\r\n    if (align === 1)\r\n    {\r\n        lineOffsetX = (lineData.longest - lineData.lengths[0]) / 2;\r\n    }\r\n    else if (align === 2)\r\n    {\r\n        lineOffsetX = (lineData.longest - lineData.lengths[0]);\r\n    }\r\n\r\n    var roundPixels = camera.roundPixels;\r\n    var displayCallback = src.displayCallback;\r\n    var callbackData = src.callbackData;\r\n\r\n    for (var i = 0; i < textLength; i++)\r\n    {\r\n        charCode = text.charCodeAt(i);\r\n\r\n        //  Carriage-return\r\n        if (charCode === 10)\r\n        {\r\n            currentLine++;\r\n\r\n            if (align === 1)\r\n            {\r\n                lineOffsetX = (lineData.longest - lineData.lengths[currentLine]) / 2;\r\n            }\r\n            else if (align === 2)\r\n            {\r\n                lineOffsetX = (lineData.longest - lineData.lengths[currentLine]);\r\n            }\r\n\r\n            xAdvance = 0;\r\n            yAdvance += lineHeight;\r\n            lastGlyph = null;\r\n\r\n            continue;\r\n        }\r\n\r\n        glyph = chars[charCode];\r\n\r\n        if (!glyph)\r\n        {\r\n            continue;\r\n        }\r\n\r\n        glyphW = glyph.width;\r\n        glyphH = glyph.height;\r\n\r\n        var x = (glyph.xOffset + xAdvance) - scrollX;\r\n        var y = (glyph.yOffset + yAdvance) - scrollY;\r\n\r\n        if (lastGlyph !== null)\r\n        {\r\n            var kerningOffset = glyph.kerning[lastCharCode] || 0;\r\n            x += kerningOffset;\r\n            xAdvance += kerningOffset;\r\n        }\r\n\r\n        xAdvance += glyph.xAdvance + letterSpacing;\r\n        lastGlyph = glyph;\r\n        lastCharCode = charCode;\r\n\r\n        //  Nothing to render or a space? Then skip to the next glyph\r\n        if (glyphW === 0 || glyphH === 0 || charCode === 32)\r\n        {\r\n            continue;\r\n        }\r\n\r\n        scale = (src.fontSize / src.fontData.size);\r\n        rotation = 0;\r\n\r\n        if (displayCallback)\r\n        {\r\n            callbackData.color = 0;\r\n            callbackData.tint.topLeft = tintTL;\r\n            callbackData.tint.topRight = tintTR;\r\n            callbackData.tint.bottomLeft = tintBL;\r\n            callbackData.tint.bottomRight = tintBR;\r\n            callbackData.index = i;\r\n            callbackData.charCode = charCode;\r\n            callbackData.x = x;\r\n            callbackData.y = y;\r\n            callbackData.scale = scale;\r\n            callbackData.rotation = rotation;\r\n            callbackData.data = glyph.data;\r\n\r\n            var output = displayCallback(callbackData);\r\n\r\n            x = output.x;\r\n            y = output.y;\r\n            scale = output.scale;\r\n            rotation = output.rotation;\r\n\r\n            if (output.color)\r\n            {\r\n                tintTL = output.color;\r\n                tintTR = output.color;\r\n                tintBL = output.color;\r\n                tintBR = output.color;\r\n            }\r\n            else\r\n            {\r\n                tintTL = output.tint.topLeft;\r\n                tintTR = output.tint.topRight;\r\n                tintBL = output.tint.bottomLeft;\r\n                tintBR = output.tint.bottomRight;\r\n            }\r\n\r\n            tintTL = Utils.getTintAppendFloatAlpha(tintTL, camera.alpha * src._alphaTL);\r\n            tintTR = Utils.getTintAppendFloatAlpha(tintTR, camera.alpha * src._alphaTR);\r\n            tintBL = Utils.getTintAppendFloatAlpha(tintBL, camera.alpha * src._alphaBL);\r\n            tintBR = Utils.getTintAppendFloatAlpha(tintBR, camera.alpha * src._alphaBR);\r\n        }\r\n\r\n        x *= scale;\r\n        y *= scale;\r\n\r\n        x -= src.displayOriginX;\r\n        y -= src.displayOriginY;\r\n\r\n        x += lineOffsetX;\r\n\r\n        fontMatrix.applyITRS(x, y, rotation, scale, scale);\r\n\r\n        calcMatrix.multiply(fontMatrix, spriteMatrix);\r\n\r\n        var u0 = glyph.u0;\r\n        var v0 = glyph.v0;\r\n        var u1 = glyph.u1;\r\n        var v1 = glyph.v1;\r\n\r\n        var xw = glyphW;\r\n        var yh = glyphH;\r\n\r\n        var tx0 = spriteMatrix.e;\r\n        var ty0 = spriteMatrix.f;\r\n\r\n        var tx1 = yh * spriteMatrix.c + spriteMatrix.e;\r\n        var ty1 = yh * spriteMatrix.d + spriteMatrix.f;\r\n\r\n        var tx2 = xw * spriteMatrix.a + yh * spriteMatrix.c + spriteMatrix.e;\r\n        var ty2 = xw * spriteMatrix.b + yh * spriteMatrix.d + spriteMatrix.f;\r\n\r\n        var tx3 = xw * spriteMatrix.a + spriteMatrix.e;\r\n        var ty3 = xw * spriteMatrix.b + spriteMatrix.f;\r\n\r\n        if (roundPixels)\r\n        {\r\n            tx0 = Math.round(tx0);\r\n            ty0 = Math.round(ty0);\r\n\r\n            tx1 = Math.round(tx1);\r\n            ty1 = Math.round(ty1);\r\n\r\n            tx2 = Math.round(tx2);\r\n            ty2 = Math.round(ty2);\r\n\r\n            tx3 = Math.round(tx3);\r\n            ty3 = Math.round(ty3);\r\n        }\r\n\r\n        if (pipeline.shouldFlush(6))\r\n        {\r\n            pipeline.flush();\r\n            textureUnit = pipeline.setGameObject(src);\r\n        }\r\n\r\n        pipeline.batchQuad(src, tx0, ty0, tx1, ty1, tx2, ty2, tx3, ty3, u0, v0, u1, v1, tintTL, tintTR, tintBL, tintBR, tintEffect, texture, textureUnit);\r\n    }\r\n\r\n    if (crop)\r\n    {\r\n        pipeline.flush();\r\n\r\n        renderer.popScissor();\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = DynamicBitmapTextWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 22186:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Clamp = __webpack_require__(45319);\r\nvar Components = __webpack_require__(31401);\r\nvar GameObject = __webpack_require__(95643);\r\nvar GetBitmapTextSize = __webpack_require__(53048);\r\nvar ParseFromAtlas = __webpack_require__(61327);\r\nvar ParseXMLBitmapFont = __webpack_require__(21859);\r\nvar Rectangle = __webpack_require__(87841);\r\nvar Render = __webpack_require__(18658);\r\n\r\n/**\r\n * @classdesc\r\n * BitmapText objects work by taking a texture file and an XML or JSON file that describes the font structure.\r\n *\r\n * During rendering for each letter of the text is rendered to the display, proportionally spaced out and aligned to\r\n * match the font structure.\r\n *\r\n * BitmapText objects are less flexible than Text objects, in that they have less features such as shadows, fills and the ability\r\n * to use Web Fonts, however you trade this flexibility for rendering speed. You can also create visually compelling BitmapTexts by\r\n * processing the font texture in an image editor, applying fills and any other effects required.\r\n *\r\n * To create multi-line text insert \\r, \\n or \\r\\n escape codes into the text string.\r\n *\r\n * To create a BitmapText data files you need a 3rd party app such as:\r\n *\r\n * BMFont (Windows, free): {@link http://www.angelcode.com/products/bmfont/|http://www.angelcode.com/products/bmfont/}\r\n * Glyph Designer (OS X, commercial): {@link http://www.71squared.com/en/glyphdesigner|http://www.71squared.com/en/glyphdesigner}\r\n * Snow BMF (Web-based, free): {@link https://snowb.org//|https://snowb.org/}\r\n * Littera (Flash-based, free): {@link http://kvazars.com/littera/|http://kvazars.com/littera/}\r\n *\r\n * For most use cases it is recommended to use XML. If you wish to use JSON, the formatting should be equal to the result of\r\n * converting a valid XML file through the popular X2JS library. An online tool for conversion can be found here: {@link http://codebeautify.org/xmltojson|http://codebeautify.org/xmltojson}\r\n *\r\n * @class BitmapText\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @extends Phaser.GameObjects.Components.Alpha\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.GetBounds\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Origin\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Texture\r\n * @extends Phaser.GameObjects.Components.Tint\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. It can only belong to one Scene at any given time.\r\n * @param {number} x - The x coordinate of this Game Object in world space.\r\n * @param {number} y - The y coordinate of this Game Object in world space.\r\n * @param {string} font - The key of the font to use from the Bitmap Font cache.\r\n * @param {(string|string[])} [text] - The string, or array of strings, to be set as the content of this Bitmap Text.\r\n * @param {number} [size] - The font size of this Bitmap Text.\r\n * @param {number} [align=0] - The alignment of the text in a multi-line BitmapText object.\r\n */\r\nvar BitmapText = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.Alpha,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.GetBounds,\r\n        Components.Mask,\r\n        Components.Origin,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.ScrollFactor,\r\n        Components.Texture,\r\n        Components.Tint,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        Render\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function BitmapText (scene, x, y, font, text, size, align)\r\n    {\r\n        if (text === undefined) { text = ''; }\r\n        if (align === undefined) { align = 0; }\r\n\r\n        GameObject.call(this, scene, 'BitmapText');\r\n\r\n        /**\r\n         * The key of the Bitmap Font used by this Bitmap Text.\r\n         * To change the font after creation please use `setFont`.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#font\r\n         * @type {string}\r\n         * @readonly\r\n         * @since 3.0.0\r\n         */\r\n        this.font = font;\r\n\r\n        var entry = this.scene.sys.cache.bitmapFont.get(font);\r\n\r\n        if (!entry)\r\n        {\r\n            throw new Error('Invalid BitmapText key: ' + font);\r\n        }\r\n\r\n        /**\r\n         * The data of the Bitmap Font used by this Bitmap Text.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#fontData\r\n         * @type {Phaser.Types.GameObjects.BitmapText.BitmapFontData}\r\n         * @readonly\r\n         * @since 3.0.0\r\n         */\r\n        this.fontData = entry.data;\r\n\r\n        /**\r\n         * The text that this Bitmap Text object displays.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#_text\r\n         * @type {string}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._text = '';\r\n\r\n        /**\r\n         * The font size of this Bitmap Text.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#_fontSize\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._fontSize = size || this.fontData.size;\r\n\r\n        /**\r\n         * Adds / Removes spacing between characters.\r\n         *\r\n         * Can be a negative or positive number.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#_letterSpacing\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.4.0\r\n         */\r\n        this._letterSpacing = 0;\r\n\r\n        /**\r\n         * Adds / Removes line spacing in a multiline BitmapText object.\r\n         *\r\n         * Can be a negative or positive number.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#_lineSpacing\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.60.0\r\n         */\r\n        this._lineSpacing = 0;\r\n\r\n        /**\r\n         * Controls the alignment of each line of text in this BitmapText object.\r\n         * Only has any effect when this BitmapText contains multiple lines of text, split with carriage-returns.\r\n         * Has no effect with single-lines of text.\r\n         *\r\n         * See the methods `setLeftAlign`, `setCenterAlign` and `setRightAlign`.\r\n         *\r\n         * 0 = Left aligned (default)\r\n         * 1 = Middle aligned\r\n         * 2 = Right aligned\r\n         *\r\n         * The alignment position is based on the longest line of text.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#_align\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.11.0\r\n         */\r\n        this._align = align;\r\n\r\n        /**\r\n         * An object that describes the size of this Bitmap Text.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#_bounds\r\n         * @type {Phaser.Types.GameObjects.BitmapText.BitmapTextSize}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._bounds = GetBitmapTextSize();\r\n\r\n        /**\r\n         * An internal dirty flag for bounds calculation.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#_dirty\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.11.0\r\n         */\r\n        this._dirty = true;\r\n\r\n        /**\r\n         * Internal cache var holding the maxWidth.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#_maxWidth\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.21.0\r\n         */\r\n        this._maxWidth = 0;\r\n\r\n        /**\r\n         * The character code used to detect for word wrapping.\r\n         * Defaults to 32 (a space character).\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#wordWrapCharCode\r\n         * @type {number}\r\n         * @since 3.21.0\r\n         */\r\n        this.wordWrapCharCode = 32;\r\n\r\n        /**\r\n         * Internal array holding the character tint color data.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#charColors\r\n         * @type {array}\r\n         * @private\r\n         * @since 3.50.0\r\n         */\r\n        this.charColors = [];\r\n\r\n        /**\r\n         * The horizontal offset of the drop shadow.\r\n         *\r\n         * You can set this directly, or use `Phaser.GameObjects.BitmapText#setDropShadow`.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#dropShadowX\r\n         * @type {number}\r\n         * @since 3.50.0\r\n         */\r\n        this.dropShadowX = 0;\r\n\r\n        /**\r\n         * The vertical offset of the drop shadow.\r\n         *\r\n         * You can set this directly, or use `Phaser.GameObjects.BitmapText#setDropShadow`.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#dropShadowY\r\n         * @type {number}\r\n         * @since 3.50.0\r\n         */\r\n        this.dropShadowY = 0;\r\n\r\n        /**\r\n         * The color of the drop shadow.\r\n         *\r\n         * You can set this directly, or use `Phaser.GameObjects.BitmapText#setDropShadow`.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#dropShadowColor\r\n         * @type {number}\r\n         * @since 3.50.0\r\n         */\r\n        this.dropShadowColor = 0x000000;\r\n\r\n        /**\r\n         * The alpha value of the drop shadow.\r\n         *\r\n         * You can set this directly, or use `Phaser.GameObjects.BitmapText#setDropShadow`.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#dropShadowAlpha\r\n         * @type {number}\r\n         * @since 3.50.0\r\n         */\r\n        this.dropShadowAlpha = 0.5;\r\n\r\n        /**\r\n         * Indicates whether the font texture is from an atlas or not.\r\n         *\r\n         * @name Phaser.GameObjects.BitmapText#fromAtlas\r\n         * @type {boolean}\r\n         * @since 3.54.0\r\n         * @readonly\r\n         */\r\n        this.fromAtlas = entry.fromAtlas;\r\n\r\n        this.setTexture(entry.texture, entry.frame);\r\n        this.setPosition(x, y);\r\n        this.setOrigin(0, 0);\r\n        this.initPipeline();\r\n        this.initPostPipeline();\r\n\r\n        this.setText(text);\r\n    },\r\n\r\n    /**\r\n     * Set the lines of text in this BitmapText to be left-aligned.\r\n     * This only has any effect if this BitmapText contains more than one line of text.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#setLeftAlign\r\n     * @since 3.11.0\r\n     *\r\n     * @return {this} This BitmapText Object.\r\n     */\r\n    setLeftAlign: function ()\r\n    {\r\n        this._align = BitmapText.ALIGN_LEFT;\r\n\r\n        this._dirty = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the lines of text in this BitmapText to be center-aligned.\r\n     * This only has any effect if this BitmapText contains more than one line of text.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#setCenterAlign\r\n     * @since 3.11.0\r\n     *\r\n     * @return {this} This BitmapText Object.\r\n     */\r\n    setCenterAlign: function ()\r\n    {\r\n        this._align = BitmapText.ALIGN_CENTER;\r\n\r\n        this._dirty = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the lines of text in this BitmapText to be right-aligned.\r\n     * This only has any effect if this BitmapText contains more than one line of text.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#setRightAlign\r\n     * @since 3.11.0\r\n     *\r\n     * @return {this} This BitmapText Object.\r\n     */\r\n    setRightAlign: function ()\r\n    {\r\n        this._align = BitmapText.ALIGN_RIGHT;\r\n\r\n        this._dirty = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the font size of this Bitmap Text.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#setFontSize\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} size - The font size to set.\r\n     *\r\n     * @return {this} This BitmapText Object.\r\n     */\r\n    setFontSize: function (size)\r\n    {\r\n        this._fontSize = size;\r\n\r\n        this._dirty = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the letter spacing between each character of this Bitmap Text.\r\n     * Can be a positive value to increase the space, or negative to reduce it.\r\n     * Spacing is applied after the kerning values have been set.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#setLetterSpacing\r\n     * @since 3.4.0\r\n     *\r\n     * @param {number} [spacing=0] - The amount of horizontal space to add between each character.\r\n     *\r\n     * @return {this} This BitmapText Object.\r\n     */\r\n    setLetterSpacing: function (spacing)\r\n    {\r\n        if (spacing === undefined) { spacing = 0; }\r\n\r\n        this._letterSpacing = spacing;\r\n\r\n        this._dirty = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the line spacing value. This value is added to the font height to\r\n     * calculate the overall line height.\r\n     *\r\n     * Spacing can be a negative or positive number.\r\n     *\r\n     * Only has an effect if this BitmapText object contains multiple lines of text.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#setLineSpacing\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [spacing=0] - The amount of space to add between each line in multi-line text.\r\n     *\r\n     * @return {this} This BitmapText Object.\r\n     */\r\n    setLineSpacing: function (spacing)\r\n    {\r\n        if (spacing === undefined) { spacing = 0; }\r\n\r\n        this.lineSpacing = spacing;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the textual content of this BitmapText.\r\n     *\r\n     * An array of strings will be converted into multi-line text. Use the align methods to change multi-line alignment.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#setText\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|string[])} value - The string, or array of strings, to be set as the content of this BitmapText.\r\n     *\r\n     * @return {this} This BitmapText Object.\r\n     */\r\n    setText: function (value)\r\n    {\r\n        if (!value && value !== 0)\r\n        {\r\n            value = '';\r\n        }\r\n\r\n        if (Array.isArray(value))\r\n        {\r\n            value = value.join('\\n');\r\n        }\r\n\r\n        if (value !== this.text)\r\n        {\r\n            this._text = value.toString();\r\n\r\n            this._dirty = true;\r\n\r\n            this.updateDisplayOrigin();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets a drop shadow effect on this Bitmap Text.\r\n     *\r\n     * This is a WebGL only feature and only works with Static Bitmap Text, not Dynamic.\r\n     *\r\n     * You can set the vertical and horizontal offset of the shadow, as well as the color and alpha.\r\n     *\r\n     * Once a shadow has been enabled you can modify the `dropShadowX` and `dropShadowY` properties of this\r\n     * Bitmap Text directly to adjust the position of the shadow in real-time.\r\n     *\r\n     * If you wish to clear the shadow, call this method with no parameters specified.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#setDropShadow\r\n     * @webglOnly\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} [x=0] - The horizontal offset of the drop shadow.\r\n     * @param {number} [y=0] - The vertical offset of the drop shadow.\r\n     * @param {number} [color=0x000000] - The color of the drop shadow, given as a hex value, i.e. `0x000000` for black.\r\n     * @param {number} [alpha=0.5] - The alpha of the drop shadow, given as a float between 0 and 1. This is combined with the Bitmap Text alpha as well.\r\n     *\r\n     * @return {this} This BitmapText Object.\r\n     */\r\n    setDropShadow: function (x, y, color, alpha)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (color === undefined) { color = 0x000000; }\r\n        if (alpha === undefined) { alpha = 0.5; }\r\n\r\n        this.dropShadowX = x;\r\n        this.dropShadowY = y;\r\n        this.dropShadowColor = color;\r\n        this.dropShadowAlpha = alpha;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets a tint on a range of characters in this Bitmap Text, starting from the `start` parameter index\r\n     * and running for `length` quantity of characters.\r\n     *\r\n     * The `start` parameter can be negative. In this case, it starts at the end of the text and counts\r\n     * backwards `start` places.\r\n     *\r\n     * You can also pass in -1 as the `length` and it will tint all characters from `start`\r\n     * up until the end of the string.\r\n\r\n     * Remember that spaces and punctuation count as characters.\r\n     *\r\n     * This is a WebGL only feature and only works with Static Bitmap Text, not Dynamic.\r\n     *\r\n     * The tint works by taking the pixel color values from the Bitmap Text texture, and then\r\n     * multiplying it by the color value of the tint. You can provide either one color value,\r\n     * in which case the whole character will be tinted in that color. Or you can provide a color\r\n     * per corner. The colors are blended together across the extent of the character range.\r\n     *\r\n     * To swap this from being an additive tint to a fill based tint, set the `tintFill` parameter to `true`.\r\n     *\r\n     * To modify the tint color once set, call this method again with new color values.\r\n     *\r\n     * Using `setWordTint` can override tints set by this function, and vice versa.\r\n     *\r\n     * To remove a tint call this method with just the `start`, and optionally, the `length` parameters defined.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#setCharacterTint\r\n     * @webglOnly\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} [start=0] - The starting character to begin the tint at. If negative, it counts back from the end of the text.\r\n     * @param {number} [length=1] - The number of characters to tint. Remember that spaces count as a character too. Pass -1 to tint all characters from `start` onwards.\r\n     * @param {boolean} [tintFill=false] - Use a fill-based tint (true), or an additive tint (false)\r\n     * @param {number} [topLeft=0xffffff] - The tint being applied to the top-left of the character. If not other values are given this value is applied evenly, tinting the whole character.\r\n     * @param {number} [topRight] - The tint being applied to the top-right of the character.\r\n     * @param {number} [bottomLeft] - The tint being applied to the bottom-left of the character.\r\n     * @param {number} [bottomRight] - The tint being applied to the bottom-right of the character.\r\n     *\r\n     * @return {this} This BitmapText Object.\r\n     */\r\n    setCharacterTint: function (start, length, tintFill, topLeft, topRight, bottomLeft, bottomRight)\r\n    {\r\n        if (start === undefined) { start = 0; }\r\n        if (length === undefined) { length = 1; }\r\n        if (tintFill === undefined) { tintFill = false; }\r\n        if (topLeft === undefined) { topLeft = -1; }\r\n\r\n        if (topRight === undefined)\r\n        {\r\n            topRight = topLeft;\r\n            bottomLeft = topLeft;\r\n            bottomRight = topLeft;\r\n        }\r\n\r\n        var len = this.text.length;\r\n\r\n        if (length === -1)\r\n        {\r\n            length = len;\r\n        }\r\n\r\n        if (start < 0)\r\n        {\r\n            start = len + start;\r\n        }\r\n\r\n        start = Clamp(start, 0, len - 1);\r\n\r\n        var end = Clamp(start + length, start, len);\r\n\r\n        var charColors = this.charColors;\r\n\r\n        for (var i = start; i < end; i++)\r\n        {\r\n            var color = charColors[i];\r\n\r\n            if (topLeft === -1)\r\n            {\r\n                charColors[i] = null;\r\n            }\r\n            else\r\n            {\r\n                var tintEffect = (tintFill) ? 1 : 0;\r\n\r\n                if (color)\r\n                {\r\n                    color.tintEffect = tintEffect;\r\n                    color.tintTL = topLeft;\r\n                    color.tintTR = topRight;\r\n                    color.tintBL = bottomLeft;\r\n                    color.tintBR = bottomRight;\r\n                }\r\n                else\r\n                {\r\n                    charColors[i] = {\r\n                        tintEffect: tintEffect,\r\n                        tintTL: topLeft,\r\n                        tintTR: topRight,\r\n                        tintBL: bottomLeft,\r\n                        tintBR: bottomRight\r\n                    };\r\n                }\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets a tint on a matching word within this Bitmap Text.\r\n     *\r\n     * The `word` parameter can be either a string or a number.\r\n     *\r\n     * If a string, it will run a string comparison against the text contents, and if matching,\r\n     * it will tint the whole word.\r\n     *\r\n     * If a number, if till that word, based on its offset within the text contents.\r\n     *\r\n     * The `count` parameter controls how many words are replaced. Pass in -1 to replace them all.\r\n     *\r\n     * This parameter is ignored if you pass a number as the `word` to be searched for.\r\n     *\r\n     * This is a WebGL only feature and only works with Static Bitmap Text, not Dynamic.\r\n     *\r\n     * The tint works by taking the pixel color values from the Bitmap Text texture, and then\r\n     * multiplying it by the color value of the tint. You can provide either one color value,\r\n     * in which case the whole character will be tinted in that color. Or you can provide a color\r\n     * per corner. The colors are blended together across the extent of the character range.\r\n     *\r\n     * To swap this from being an additive tint to a fill based tint, set the `tintFill` parameter to `true`.\r\n     *\r\n     * To modify the tint color once set, call this method again with new color values.\r\n     *\r\n     * Using `setCharacterTint` can override tints set by this function, and vice versa.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#setWordTint\r\n     * @webglOnly\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|number)} word - The word to search for. Either a string, or an index of the word in the words array.\r\n     * @param {number} [count=1] - The number of matching words to tint. Pass -1 to tint all matching words.\r\n     * @param {boolean} [tintFill=false] - Use a fill-based tint (true), or an additive tint (false)\r\n     * @param {number} [topLeft=0xffffff] - The tint being applied to the top-left of the word. If not other values are given this value is applied evenly, tinting the whole word.\r\n     * @param {number} [topRight] - The tint being applied to the top-right of the word.\r\n     * @param {number} [bottomLeft] - The tint being applied to the bottom-left of the word.\r\n     * @param {number} [bottomRight] - The tint being applied to the bottom-right of the word.\r\n     *\r\n     * @return {this} This BitmapText Object.\r\n     */\r\n    setWordTint: function (word, count, tintFill, topLeft, topRight, bottomLeft, bottomRight)\r\n    {\r\n        if (count === undefined) { count = 1; }\r\n\r\n        var bounds = this.getTextBounds();\r\n\r\n        var words = bounds.words;\r\n\r\n        var wordIsNumber = (typeof(word) === 'number');\r\n\r\n        var total = 0;\r\n\r\n        for (var i = 0; i < words.length; i++)\r\n        {\r\n            var lineword = words[i];\r\n\r\n            if ((wordIsNumber && i === word) || (!wordIsNumber && lineword.word === word))\r\n            {\r\n                this.setCharacterTint(lineword.i, lineword.word.length, tintFill, topLeft, topRight, bottomLeft, bottomRight);\r\n\r\n                total++;\r\n\r\n                if (total === count)\r\n                {\r\n                    return this;\r\n                }\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Calculate the bounds of this Bitmap Text.\r\n     *\r\n     * An object is returned that contains the position, width and height of the Bitmap Text in local and global\r\n     * contexts.\r\n     *\r\n     * Local size is based on just the font size and a [0, 0] position.\r\n     *\r\n     * Global size takes into account the Game Object's scale, world position and display origin.\r\n     *\r\n     * Also in the object is data regarding the length of each line, should this be a multi-line BitmapText.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#getTextBounds\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} [round=false] - Whether to round the results up to the nearest integer.\r\n     *\r\n     * @return {Phaser.Types.GameObjects.BitmapText.BitmapTextSize} An object that describes the size of this Bitmap Text.\r\n     */\r\n    getTextBounds: function (round)\r\n    {\r\n        //  local = The BitmapText based on fontSize and 0x0 coords\r\n        //  global = The BitmapText, taking into account scale and world position\r\n        //  lines = The BitmapText line data\r\n\r\n        var bounds = this._bounds;\r\n\r\n        if (this._dirty || round || this.scaleX !== bounds.scaleX || this.scaleY !== bounds.scaleY)\r\n        {\r\n            GetBitmapTextSize(this, round, true, bounds);\r\n\r\n            this._dirty = false;\r\n        }\r\n\r\n        return bounds;\r\n    },\r\n\r\n    /**\r\n     * Gets the character located at the given x/y coordinate within this Bitmap Text.\r\n     *\r\n     * The coordinates you pass in are translated into the local space of the\r\n     * Bitmap Text, however, it is up to you to first translate the input coordinates to world space.\r\n     *\r\n     * If you wish to use this in combination with an input event, be sure\r\n     * to pass in `Pointer.worldX` and `worldY` so they are in world space.\r\n     *\r\n     * In some cases, based on kerning, characters can overlap. When this happens,\r\n     * the first character in the word is returned.\r\n     *\r\n     * Note that this does not work for DynamicBitmapText if you have changed the\r\n     * character positions during render. It will only scan characters in their un-translated state.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#getCharacterAt\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} x - The x position to check.\r\n     * @param {number} y - The y position to check.\r\n     * @param {Phaser.Cameras.Scene2D.Camera} [camera] - The Camera which is being tested against. If not given will use the Scene default camera.\r\n     *\r\n     * @return {Phaser.Types.GameObjects.BitmapText.BitmapTextCharacter} The character object at the given position, or `null`.\r\n     */\r\n    getCharacterAt: function (x, y, camera)\r\n    {\r\n        var point = this.getLocalPoint(x, y, null, camera);\r\n\r\n        var bounds = this.getTextBounds();\r\n\r\n        var chars = bounds.characters;\r\n\r\n        var tempRect = new Rectangle();\r\n\r\n        for (var i = 0; i < chars.length; i++)\r\n        {\r\n            var char = chars[i];\r\n\r\n            tempRect.setTo(char.x, char.t, char.r - char.x, char.b);\r\n\r\n            if (tempRect.contains(point.x, point.y))\r\n            {\r\n                return char;\r\n            }\r\n        }\r\n\r\n        return null;\r\n    },\r\n\r\n    /**\r\n     * Updates the Display Origin cached values internally stored on this Game Object.\r\n     * You don't usually call this directly, but it is exposed for edge-cases where you may.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#updateDisplayOrigin\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    updateDisplayOrigin: function ()\r\n    {\r\n        this._dirty = true;\r\n\r\n        this.getTextBounds(false);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Changes the font this BitmapText is using to render.\r\n     *\r\n     * The new texture is loaded and applied to the BitmapText. The existing text, size and alignment are preserved,\r\n     * unless overridden via the arguments.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#setFont\r\n     * @since 3.11.0\r\n     *\r\n     * @param {string} font - The key of the font to use from the Bitmap Font cache.\r\n     * @param {number} [size] - The font size of this Bitmap Text. If not specified the current size will be used.\r\n     * @param {number} [align=0] - The alignment of the text in a multi-line BitmapText object. If not specified the current alignment will be used.\r\n     *\r\n     * @return {this} This BitmapText Object.\r\n     */\r\n    setFont: function (key, size, align)\r\n    {\r\n        if (size === undefined) { size = this._fontSize; }\r\n        if (align === undefined) { align = this._align; }\r\n\r\n        var entry = this.scene.sys.cache.bitmapFont.get(key);\r\n\r\n        if (entry)\r\n        {\r\n            this.font = key;\r\n            this.fontData = entry.data;\r\n            this._fontSize = size;\r\n            this._align = align;\r\n            this.fromAtlas = entry.fromAtlas === true;\r\n\r\n            this.setTexture(entry.texture, entry.frame);\r\n\r\n            GetBitmapTextSize(this, false, true, this._bounds);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the maximum display width of this BitmapText in pixels.\r\n     *\r\n     * If `BitmapText.text` is longer than `maxWidth` then the lines will be automatically wrapped\r\n     * based on the previous whitespace character found in the line.\r\n     *\r\n     * If no whitespace was found then no wrapping will take place and consequently the `maxWidth` value will not be honored.\r\n     *\r\n     * Disable maxWidth by setting the value to 0.\r\n     *\r\n     * You can set the whitespace character to be searched for by setting the `wordWrapCharCode` parameter or property.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#setMaxWidth\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} value - The maximum display width of this BitmapText in pixels. Set to zero to disable.\r\n     * @param {number} [wordWrapCharCode] - The character code to check for when word wrapping. Defaults to 32 (the space character).\r\n     *\r\n     * @return {this} This BitmapText Object.\r\n     */\r\n    setMaxWidth: function (value, wordWrapCharCode)\r\n    {\r\n        this._maxWidth = value;\r\n\r\n        this._dirty = true;\r\n\r\n        if (wordWrapCharCode !== undefined)\r\n        {\r\n            this.wordWrapCharCode = wordWrapCharCode;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Controls the alignment of each line of text in this BitmapText object.\r\n     *\r\n     * Only has any effect when this BitmapText contains multiple lines of text, split with carriage-returns.\r\n     * Has no effect with single-lines of text.\r\n     *\r\n     * See the methods `setLeftAlign`, `setCenterAlign` and `setRightAlign`.\r\n     *\r\n     * 0 = Left aligned (default)\r\n     * 1 = Middle aligned\r\n     * 2 = Right aligned\r\n     *\r\n     * The alignment position is based on the longest line of text.\r\n     *\r\n     * @name Phaser.GameObjects.BitmapText#align\r\n     * @type {number}\r\n     * @since 3.11.0\r\n     */\r\n    align: {\r\n\r\n        set: function (value)\r\n        {\r\n            this._align = value;\r\n            this._dirty = true;\r\n        },\r\n\r\n        get: function ()\r\n        {\r\n            return this._align;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The text that this Bitmap Text object displays.\r\n     *\r\n     * You can also use the method `setText` if you want a chainable way to change the text content.\r\n     *\r\n     * @name Phaser.GameObjects.BitmapText#text\r\n     * @type {string}\r\n     * @since 3.0.0\r\n     */\r\n    text: {\r\n\r\n        set: function (value)\r\n        {\r\n            this.setText(value);\r\n        },\r\n\r\n        get: function ()\r\n        {\r\n            return this._text;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The font size of this Bitmap Text.\r\n     *\r\n     * You can also use the method `setFontSize` if you want a chainable way to change the font size.\r\n     *\r\n     * @name Phaser.GameObjects.BitmapText#fontSize\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    fontSize: {\r\n\r\n        set: function (value)\r\n        {\r\n            this._fontSize = value;\r\n            this._dirty = true;\r\n        },\r\n\r\n        get: function ()\r\n        {\r\n            return this._fontSize;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Adds / Removes spacing between characters.\r\n     *\r\n     * Can be a negative or positive number.\r\n     *\r\n     * You can also use the method `setLetterSpacing` if you want a chainable way to change the letter spacing.\r\n     *\r\n     * @name Phaser.GameObjects.BitmapText#letterSpacing\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    letterSpacing: {\r\n\r\n        set: function (value)\r\n        {\r\n            this._letterSpacing = value;\r\n            this._dirty = true;\r\n        },\r\n\r\n        get: function ()\r\n        {\r\n            return this._letterSpacing;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Adds / Removes spacing between lines.\r\n     *\r\n     * Can be a negative or positive number.\r\n     *\r\n     * You can also use the method `setLineSpacing` if you want a chainable way to change the line spacing.\r\n     *\r\n     * @name Phaser.GameObjects.BitmapText#lineSpacing\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    lineSpacing: {\r\n\r\n        set: function (value)\r\n        {\r\n            this._lineSpacing = value;\r\n            this._dirty = true;\r\n        },\r\n\r\n        get: function ()\r\n        {\r\n            return this._lineSpacing;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The maximum display width of this BitmapText in pixels.\r\n     *\r\n     * If BitmapText.text is longer than maxWidth then the lines will be automatically wrapped\r\n     * based on the last whitespace character found in the line.\r\n     *\r\n     * If no whitespace was found then no wrapping will take place and consequently the maxWidth value will not be honored.\r\n     *\r\n     * Disable maxWidth by setting the value to 0.\r\n     *\r\n     * @name Phaser.GameObjects.BitmapText#maxWidth\r\n     * @type {number}\r\n     * @since 3.21.0\r\n     */\r\n    maxWidth: {\r\n\r\n        set: function (value)\r\n        {\r\n            this._maxWidth = value;\r\n            this._dirty = true;\r\n        },\r\n\r\n        get: function ()\r\n        {\r\n            return this._maxWidth;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The width of this Bitmap Text.\r\n     *\r\n     * This property is read-only.\r\n     *\r\n     * @name Phaser.GameObjects.BitmapText#width\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.0.0\r\n     */\r\n    width: {\r\n\r\n        get: function ()\r\n        {\r\n            this.getTextBounds(false);\r\n\r\n            return this._bounds.global.width;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The height of this Bitmap text.\r\n     *\r\n     * This property is read-only.\r\n     *\r\n     * @name Phaser.GameObjects.BitmapText#height\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.0.0\r\n     */\r\n    height: {\r\n\r\n        get: function ()\r\n        {\r\n            this.getTextBounds(false);\r\n\r\n            return this._bounds.global.height;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The displayed width of this Bitmap Text.\r\n     *\r\n     * This value takes into account the scale factor.\r\n     *\r\n     * This property is read-only.\r\n     *\r\n     * @name Phaser.GameObjects.BitmapText#displayWidth\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.60.0\r\n     */\r\n    displayWidth: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.width;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The displayed height of this Bitmap Text.\r\n     *\r\n     * This value takes into account the scale factor.\r\n     *\r\n     * This property is read-only.\r\n     *\r\n     * @name Phaser.GameObjects.BitmapText#displayHeight\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.60.0\r\n     */\r\n    displayHeight: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.height;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Build a JSON representation of this Bitmap Text.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.GameObjects.BitmapText.JSONBitmapText} A JSON representation of this Bitmap Text.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        var out = Components.ToJSON(this);\r\n\r\n        //  Extra data is added here\r\n\r\n        var data = {\r\n            font: this.font,\r\n            text: this.text,\r\n            fontSize: this.fontSize,\r\n            letterSpacing: this.letterSpacing,\r\n            lineSpacing: this.lineSpacing,\r\n            align: this.align\r\n        };\r\n\r\n        out.data = data;\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Internal destroy handler, called as part of the destroy process.\r\n     *\r\n     * @method Phaser.GameObjects.BitmapText#preDestroy\r\n     * @protected\r\n     * @since 3.50.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.charColors.length = 0;\r\n        this._bounds = null;\r\n        this.fontData = null;\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * Left align the text characters in a multi-line BitmapText object.\r\n *\r\n * @name Phaser.GameObjects.BitmapText.ALIGN_LEFT\r\n * @type {number}\r\n * @since 3.11.0\r\n */\r\nBitmapText.ALIGN_LEFT = 0;\r\n\r\n/**\r\n * Center align the text characters in a multi-line BitmapText object.\r\n *\r\n * @name Phaser.GameObjects.BitmapText.ALIGN_CENTER\r\n * @type {number}\r\n * @since 3.11.0\r\n */\r\nBitmapText.ALIGN_CENTER = 1;\r\n\r\n/**\r\n * Right align the text characters in a multi-line BitmapText object.\r\n *\r\n * @name Phaser.GameObjects.BitmapText.ALIGN_RIGHT\r\n * @type {number}\r\n * @since 3.11.0\r\n */\r\nBitmapText.ALIGN_RIGHT = 2;\r\n\r\n/**\r\n * Parse an XML Bitmap Font from an Atlas.\r\n *\r\n * Adds the parsed Bitmap Font data to the cache with the `fontName` key.\r\n *\r\n * @method Phaser.GameObjects.BitmapText.ParseFromAtlas\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to parse the Bitmap Font for.\r\n * @param {string} fontName - The key of the font to add to the Bitmap Font cache.\r\n * @param {string} textureKey - The key of the BitmapFont's texture.\r\n * @param {string} frameKey - The key of the BitmapFont texture's frame.\r\n * @param {string} xmlKey - The key of the XML data of the font to parse.\r\n * @param {number} [xSpacing] - The x-axis spacing to add between each letter.\r\n * @param {number} [ySpacing] - The y-axis spacing to add to the line height.\r\n *\r\n * @return {boolean} Whether the parsing was successful or not.\r\n */\r\nBitmapText.ParseFromAtlas = ParseFromAtlas;\r\n\r\n/**\r\n * Parse an XML font to Bitmap Font data for the Bitmap Font cache.\r\n *\r\n * @method Phaser.GameObjects.BitmapText.ParseXMLBitmapFont\r\n * @since 3.17.0\r\n *\r\n * @param {XMLDocument} xml - The XML Document to parse the font from.\r\n * @param {Phaser.Textures.Frame} frame - The texture frame to take into account when creating the uv data.\r\n * @param {number} [xSpacing=0] - The x-axis spacing to add between each letter.\r\n * @param {number} [ySpacing=0] - The y-axis spacing to add to the line height.\r\n *\r\n * @return {Phaser.Types.GameObjects.BitmapText.BitmapFontData} The parsed Bitmap Font data.\r\n */\r\nBitmapText.ParseXMLBitmapFont = ParseXMLBitmapFont;\r\n\r\nmodule.exports = BitmapText;\r\n\n\n/***/ }),\n\n/***/ 37289:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.BitmapText#renderCanvas\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.BitmapText} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar BitmapTextCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    var text = src._text;\r\n    var textLength = text.length;\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    if (textLength === 0 || !SetTransform(renderer, ctx, src, camera, parentMatrix))\r\n    {\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    var textureFrame = src.fromAtlas\r\n        ? src.frame\r\n        : src.texture.frames['__BASE'];\r\n\r\n    var chars = src.fontData.chars;\r\n    var lineHeight = src.fontData.lineHeight;\r\n    var letterSpacing = src._letterSpacing;\r\n    var lineSpacing = src._lineSpacing;\r\n\r\n    var xAdvance = 0;\r\n    var yAdvance = 0;\r\n\r\n    var charCode = 0;\r\n\r\n    var glyph = null;\r\n    var glyphX = 0;\r\n    var glyphY = 0;\r\n    var glyphW = 0;\r\n    var glyphH = 0;\r\n\r\n    var x = 0;\r\n    var y = 0;\r\n\r\n    var lastGlyph = null;\r\n    var lastCharCode = 0;\r\n\r\n    var image = textureFrame.source.image;\r\n\r\n    var textureX = textureFrame.cutX;\r\n    var textureY = textureFrame.cutY;\r\n\r\n    var scale = (src._fontSize / src.fontData.size);\r\n\r\n    var align = src._align;\r\n    var currentLine = 0;\r\n    var lineOffsetX = 0;\r\n\r\n    //  Update the bounds - skipped internally if not dirty\r\n    var bounds = src.getTextBounds(false);\r\n\r\n    //  In case the method above changed it (word wrapping)\r\n    if (src.maxWidth > 0)\r\n    {\r\n        text = bounds.wrappedText;\r\n        textLength = text.length;\r\n    }\r\n\r\n    var lineData = src._bounds.lines;\r\n\r\n    if (align === 1)\r\n    {\r\n        lineOffsetX = (lineData.longest - lineData.lengths[0]) / 2;\r\n    }\r\n    else if (align === 2)\r\n    {\r\n        lineOffsetX = (lineData.longest - lineData.lengths[0]);\r\n    }\r\n\r\n    ctx.translate(-src.displayOriginX, -src.displayOriginY);\r\n\r\n    var roundPixels = camera.roundPixels;\r\n\r\n    for (var i = 0; i < textLength; i++)\r\n    {\r\n        charCode = text.charCodeAt(i);\r\n\r\n        if (charCode === 10)\r\n        {\r\n            currentLine++;\r\n\r\n            if (align === 1)\r\n            {\r\n                lineOffsetX = (lineData.longest - lineData.lengths[currentLine]) / 2;\r\n            }\r\n            else if (align === 2)\r\n            {\r\n                lineOffsetX = (lineData.longest - lineData.lengths[currentLine]);\r\n            }\r\n\r\n            xAdvance = 0;\r\n            yAdvance += lineHeight + lineSpacing;\r\n\r\n            lastGlyph = null;\r\n\r\n            continue;\r\n        }\r\n\r\n        glyph = chars[charCode];\r\n\r\n        if (!glyph)\r\n        {\r\n            continue;\r\n        }\r\n\r\n        glyphX = textureX + glyph.x;\r\n        glyphY = textureY + glyph.y;\r\n\r\n        glyphW = glyph.width;\r\n        glyphH = glyph.height;\r\n\r\n        x = glyph.xOffset + xAdvance;\r\n        y = glyph.yOffset + yAdvance;\r\n\r\n        if (lastGlyph !== null)\r\n        {\r\n            var kerningOffset = glyph.kerning[lastCharCode];\r\n            x += (kerningOffset !== undefined) ? kerningOffset : 0;\r\n        }\r\n\r\n        x *= scale;\r\n        y *= scale;\r\n\r\n        x += lineOffsetX;\r\n\r\n        xAdvance += glyph.xAdvance + letterSpacing + ((kerningOffset !== undefined) ? kerningOffset : 0);\r\n        lastGlyph = glyph;\r\n        lastCharCode = charCode;\r\n\r\n        //  Nothing to render or a space? Then skip to the next glyph\r\n        if (glyphW === 0 || glyphH === 0 || charCode === 32)\r\n        {\r\n            continue;\r\n        }\r\n\r\n        if (roundPixels)\r\n        {\r\n            x = Math.round(x);\r\n            y = Math.round(y);\r\n        }\r\n\r\n        ctx.save();\r\n\r\n        ctx.translate(x, y);\r\n\r\n        ctx.scale(scale, scale);\r\n\r\n        ctx.drawImage(image, glyphX, glyphY, glyphW, glyphH, 0, 0, glyphW, glyphH);\r\n\r\n        ctx.restore();\r\n    }\r\n\r\n    ctx.restore();\r\n};\r\n\r\nmodule.exports = BitmapTextCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 57336:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BitmapText = __webpack_require__(22186);\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar GetValue = __webpack_require__(35154);\r\n\r\n/**\r\n * Creates a new Bitmap Text Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Bitmap Text Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#bitmapText\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.BitmapText.BitmapTextConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n * \r\n * @return {Phaser.GameObjects.BitmapText} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('bitmapText', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var font = GetValue(config, 'font', '');\r\n    var text = GetAdvancedValue(config, 'text', '');\r\n    var size = GetAdvancedValue(config, 'size', false);\r\n    var align = GetValue(config, 'align', 0);\r\n\r\n    var bitmapText = new BitmapText(this.scene, 0, 0, font, text, size, align);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, bitmapText, config);\r\n\r\n    return bitmapText;\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectCreator context.\r\n\n\n/***/ }),\n\n/***/ 34914:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BitmapText = __webpack_require__(22186);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Bitmap Text Game Object and adds it to the Scene.\r\n * \r\n * BitmapText objects work by taking a texture file and an XML or JSON file that describes the font structure.\r\n * \r\n * During rendering for each letter of the text is rendered to the display, proportionally spaced out and aligned to\r\n * match the font structure.\r\n * \r\n * BitmapText objects are less flexible than Text objects, in that they have less features such as shadows, fills and the ability\r\n * to use Web Fonts, however you trade this flexibility for rendering speed. You can also create visually compelling BitmapTexts by\r\n * processing the font texture in an image editor, applying fills and any other effects required.\r\n *\r\n * To create multi-line text insert \\r, \\n or \\r\\n escape codes into the text string.\r\n *\r\n * To create a BitmapText data files you need a 3rd party app such as:\r\n *\r\n * BMFont (Windows, free): http://www.angelcode.com/products/bmfont/\r\n * Glyph Designer (OS X, commercial): http://www.71squared.com/en/glyphdesigner\r\n * Littera (Web-based, free): http://kvazars.com/littera/\r\n *\r\n * For most use cases it is recommended to use XML. If you wish to use JSON, the formatting should be equal to the result of\r\n * converting a valid XML file through the popular X2JS library. An online tool for conversion can be found here: http://codebeautify.org/xmltojson\r\n *\r\n * Note: This method will only be available if the Bitmap Text Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#bitmapText\r\n * @since 3.0.0\r\n *\r\n * @param {number} x - The x position of the Game Object.\r\n * @param {number} y - The y position of the Game Object.\r\n * @param {string} font - The key of the font to use from the BitmapFont cache.\r\n * @param {(string|string[])} [text] - The string, or array of strings, to be set as the content of this Bitmap Text.\r\n * @param {number} [size] - The font size to set.\r\n * @param {number} [align=0] - The alignment of the text in a multi-line BitmapText object.\r\n *\r\n * @return {Phaser.GameObjects.BitmapText} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('bitmapText', function (x, y, font, text, size, align)\r\n{\r\n    return this.displayList.add(new BitmapText(this.scene, x, y, font, text, size, align));\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectFactory context.\r\n//\r\n//  There are several properties available to use:\r\n//\r\n//  this.scene - a reference to the Scene that owns the GameObjectFactory\r\n//  this.displayList - a reference to the Display List the Scene owns\r\n//  this.updateList - a reference to the Update List the Scene owns\r\n\n\n/***/ }),\n\n/***/ 18658:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(33590);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(37289);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 33590:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BatchChar = __webpack_require__(3217);\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.BitmapText#renderWebGL\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.BitmapText} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar BitmapTextWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    var text = src._text;\r\n    var textLength = text.length;\r\n\r\n    if (textLength === 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline, src);\r\n\r\n    var calcMatrix = GetCalcMatrix(src, camera, parentMatrix).calc;\r\n\r\n    //  This causes a flush if the BitmapText has a Post Pipeline\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    var roundPixels = camera.roundPixels;\r\n\r\n    var cameraAlpha = camera.alpha;\r\n\r\n    var charColors = src.charColors;\r\n\r\n    var tintEffect = src.tintFill;\r\n\r\n    var getTint = Utils.getTintAppendFloatAlpha;\r\n\r\n    var tintTL = getTint(src.tintTopLeft, cameraAlpha * src._alphaTL);\r\n    var tintTR = getTint(src.tintTopRight, cameraAlpha * src._alphaTR);\r\n    var tintBL = getTint(src.tintBottomLeft, cameraAlpha * src._alphaBL);\r\n    var tintBR = getTint(src.tintBottomRight, cameraAlpha * src._alphaBR);\r\n\r\n    var texture = src.frame.glTexture;\r\n    var textureUnit = pipeline.setGameObject(src);\r\n\r\n    //  Update the bounds - skipped internally if not dirty\r\n    var bounds = src.getTextBounds(false);\r\n\r\n    var i;\r\n    var char;\r\n    var glyph;\r\n\r\n    var characters = bounds.characters;\r\n\r\n    var dropShadowX = src.dropShadowX;\r\n    var dropShadowY = src.dropShadowY;\r\n\r\n    var dropShadow = (dropShadowX !== 0 || dropShadowY !== 0);\r\n\r\n    if (dropShadow)\r\n    {\r\n        var srcShadowColor = src.dropShadowColor;\r\n        var srcShadowAlpha = src.dropShadowAlpha;\r\n\r\n        var shadowTL = getTint(srcShadowColor, cameraAlpha * srcShadowAlpha * src._alphaTL);\r\n        var shadowTR = getTint(srcShadowColor, cameraAlpha * srcShadowAlpha * src._alphaTR);\r\n        var shadowBL = getTint(srcShadowColor, cameraAlpha * srcShadowAlpha * src._alphaBL);\r\n        var shadowBR = getTint(srcShadowColor, cameraAlpha * srcShadowAlpha * src._alphaBR);\r\n\r\n        for (i = 0; i < characters.length; i++)\r\n        {\r\n            char = characters[i];\r\n            glyph = char.glyph;\r\n\r\n            if (char.code === 32 || glyph.width === 0 || glyph.height === 0)\r\n            {\r\n                continue;\r\n            }\r\n\r\n            BatchChar(pipeline, src, char, glyph, dropShadowX, dropShadowY, calcMatrix, roundPixels, shadowTL, shadowTR, shadowBL, shadowBR, 1, texture, textureUnit);\r\n        }\r\n    }\r\n\r\n    for (i = 0; i < characters.length; i++)\r\n    {\r\n        char = characters[i];\r\n        glyph = char.glyph;\r\n\r\n        if (char.code === 32 || glyph.width === 0 || glyph.height === 0)\r\n        {\r\n            continue;\r\n        }\r\n\r\n        if (pipeline.shouldFlush(6))\r\n        {\r\n            pipeline.flush();\r\n            textureUnit = pipeline.setGameObject(src);\r\n        }\r\n\r\n        if (charColors[char.i])\r\n        {\r\n            var color = charColors[char.i];\r\n\r\n            var charTintEffect = color.tintEffect;\r\n            var charTintTL = getTint(color.tintTL, cameraAlpha * src._alphaTL);\r\n            var charTintTR = getTint(color.tintTR, cameraAlpha * src._alphaTR);\r\n            var charTintBL = getTint(color.tintBL, cameraAlpha * src._alphaBL);\r\n            var charTintBR = getTint(color.tintBR, cameraAlpha * src._alphaBR);\r\n\r\n            BatchChar(pipeline, src, char, glyph, 0, 0, calcMatrix, roundPixels, charTintTL, charTintTR, charTintBL, charTintBR, charTintEffect, texture, textureUnit);\r\n        }\r\n        else\r\n        {\r\n            BatchChar(pipeline, src, char, glyph, 0, 0, calcMatrix, roundPixels, tintTL, tintTR, tintBL, tintBR, tintEffect, texture, textureUnit);\r\n        }\r\n\r\n        //  Debug test if the characters are in the correct place when rendered:\r\n        // pipeline.drawFillRect(tx0, ty0, tx2 - tx0, ty2 - ty0, 0x00ff00, 0.5);\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = BitmapTextWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 6107:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BlitterRender = __webpack_require__(48011);\r\nvar Bob = __webpack_require__(46590);\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar Frame = __webpack_require__(4327);\r\nvar GameObject = __webpack_require__(95643);\r\nvar List = __webpack_require__(73162);\r\n\r\n/**\r\n * @callback CreateCallback\r\n *\r\n * @param {Phaser.GameObjects.Bob} bob - The Bob that was created by the Blitter.\r\n * @param {number} index - The position of the Bob within the Blitter display list.\r\n */\r\n\r\n/**\r\n * @classdesc\r\n * A Blitter Game Object.\r\n *\r\n * The Blitter Game Object is a special kind of container that creates, updates and manages Bob objects.\r\n * Bobs are designed for rendering speed rather than flexibility. They consist of a texture, or frame from a texture,\r\n * a position and an alpha value. You cannot scale or rotate them. They use a batched drawing method for speed\r\n * during rendering.\r\n *\r\n * A Blitter Game Object has one texture bound to it. Bobs created by the Blitter can use any Frame from this\r\n * Texture to render with, but they cannot use any other Texture. It is this single texture-bind that allows\r\n * them their speed.\r\n *\r\n * If you have a need to blast a large volume of frames around the screen then Blitter objects are well worth\r\n * investigating. They are especially useful for using as a base for your own special effects systems.\r\n *\r\n * @class Blitter\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @extends Phaser.GameObjects.Components.Alpha\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Size\r\n * @extends Phaser.GameObjects.Components.Texture\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. It can only belong to one Scene at any given time.\r\n * @param {number} [x=0] - The x coordinate of this Game Object in world space.\r\n * @param {number} [y=0] - The y coordinate of this Game Object in world space.\r\n * @param {string} [texture='__DEFAULT'] - The key of the texture this Game Object will use for rendering. The Texture must already exist in the Texture Manager.\r\n * @param {(string|number)} [frame=0] - The Frame of the Texture that this Game Object will use. Only set if the Texture has multiple frames, such as a Texture Atlas or Sprite Sheet.\r\n */\r\nvar Blitter = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.Alpha,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.Mask,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.ScrollFactor,\r\n        Components.Size,\r\n        Components.Texture,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        BlitterRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Blitter (scene, x, y, texture, frame)\r\n    {\r\n        GameObject.call(this, scene, 'Blitter');\r\n\r\n        this.setTexture(texture, frame);\r\n        this.setPosition(x, y);\r\n        this.initPipeline();\r\n        this.initPostPipeline();\r\n\r\n        /**\r\n         * The children of this Blitter.\r\n         * This List contains all of the Bob objects created by the Blitter.\r\n         *\r\n         * @name Phaser.GameObjects.Blitter#children\r\n         * @type {Phaser.Structs.List.<Phaser.GameObjects.Bob>}\r\n         * @since 3.0.0\r\n         */\r\n        this.children = new List();\r\n\r\n        /**\r\n         * A transient array that holds all of the Bobs that will be rendered this frame.\r\n         * The array is re-populated whenever the dirty flag is set.\r\n         *\r\n         * @name Phaser.GameObjects.Blitter#renderList\r\n         * @type {Phaser.GameObjects.Bob[]}\r\n         * @default []\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this.renderList = [];\r\n\r\n        /**\r\n         * Is the Blitter considered dirty?\r\n         * A 'dirty' Blitter has had its child count changed since the last frame.\r\n         *\r\n         * @name Phaser.GameObjects.Blitter#dirty\r\n         * @type {boolean}\r\n         * @since 3.0.0\r\n         */\r\n        this.dirty = false;\r\n    },\r\n\r\n    /**\r\n     * Creates a new Bob in this Blitter.\r\n     *\r\n     * The Bob is created at the given coordinates, relative to the Blitter and uses the given frame.\r\n     * A Bob can use any frame belonging to the texture bound to the Blitter.\r\n     *\r\n     * @method Phaser.GameObjects.Blitter#create\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x position of the Bob. Bob coordinate are relative to the position of the Blitter object.\r\n     * @param {number} y - The y position of the Bob. Bob coordinate are relative to the position of the Blitter object.\r\n     * @param {(string|number|Phaser.Textures.Frame)} [frame] - The Frame the Bob will use. It _must_ be part of the Texture the parent Blitter object is using.\r\n     * @param {boolean} [visible=true] - Should the created Bob render or not?\r\n     * @param {number} [index] - The position in the Blitters Display List to add the new Bob at. Defaults to the top of the list.\r\n     *\r\n     * @return {Phaser.GameObjects.Bob} The newly created Bob object.\r\n     */\r\n    create: function (x, y, frame, visible, index)\r\n    {\r\n        if (visible === undefined) { visible = true; }\r\n        if (index === undefined) { index = this.children.length; }\r\n\r\n        if (frame === undefined)\r\n        {\r\n            frame = this.frame;\r\n        }\r\n        else if (!(frame instanceof Frame))\r\n        {\r\n            frame = this.texture.get(frame);\r\n        }\r\n\r\n        var bob = new Bob(this, x, y, frame, visible);\r\n\r\n        this.children.addAt(bob, index, false);\r\n\r\n        this.dirty = true;\r\n\r\n        return bob;\r\n    },\r\n\r\n    /**\r\n     * Creates multiple Bob objects within this Blitter and then passes each of them to the specified callback.\r\n     *\r\n     * @method Phaser.GameObjects.Blitter#createFromCallback\r\n     * @since 3.0.0\r\n     *\r\n     * @param {CreateCallback} callback - The callback to invoke after creating a bob. It will be sent two arguments: The Bob and the index of the Bob.\r\n     * @param {number} quantity - The quantity of Bob objects to create.\r\n     * @param {(string|number|Phaser.Textures.Frame|string[]|number[]|Phaser.Textures.Frame[])} [frame] - The Frame the Bobs will use. It must be part of the Blitter Texture.\r\n     * @param {boolean} [visible=true] - Should the created Bob render or not?\r\n     *\r\n     * @return {Phaser.GameObjects.Bob[]} An array of Bob objects that were created.\r\n     */\r\n    createFromCallback: function (callback, quantity, frame, visible)\r\n    {\r\n        var bobs = this.createMultiple(quantity, frame, visible);\r\n\r\n        for (var i = 0; i < bobs.length; i++)\r\n        {\r\n            var bob = bobs[i];\r\n\r\n            callback.call(this, bob, i);\r\n        }\r\n\r\n        return bobs;\r\n    },\r\n\r\n    /**\r\n     * Creates multiple Bobs in one call.\r\n     *\r\n     * The amount created is controlled by a combination of the `quantity` argument and the number of frames provided.\r\n     *\r\n     * If the quantity is set to 10 and you provide 2 frames, then 20 Bobs will be created. 10 with the first\r\n     * frame and 10 with the second.\r\n     *\r\n     * @method Phaser.GameObjects.Blitter#createMultiple\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} quantity - The quantity of Bob objects to create.\r\n     * @param {(string|number|Phaser.Textures.Frame|string[]|number[]|Phaser.Textures.Frame[])} [frame] - The Frame the Bobs will use. It must be part of the Blitter Texture.\r\n     * @param {boolean} [visible=true] - Should the created Bob render or not?\r\n     *\r\n     * @return {Phaser.GameObjects.Bob[]} An array of Bob objects that were created.\r\n     */\r\n    createMultiple: function (quantity, frame, visible)\r\n    {\r\n        if (frame === undefined) { frame = this.frame.name; }\r\n        if (visible === undefined) { visible = true; }\r\n\r\n        if (!Array.isArray(frame))\r\n        {\r\n            frame = [ frame ];\r\n        }\r\n\r\n        var bobs = [];\r\n        var _this = this;\r\n\r\n        frame.forEach(function (singleFrame)\r\n        {\r\n            for (var i = 0; i < quantity; i++)\r\n            {\r\n                bobs.push(_this.create(0, 0, singleFrame, visible));\r\n            }\r\n        });\r\n\r\n        return bobs;\r\n    },\r\n\r\n    /**\r\n     * Checks if the given child can render or not, by checking its `visible` and `alpha` values.\r\n     *\r\n     * @method Phaser.GameObjects.Blitter#childCanRender\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Bob} child - The Bob to check for rendering.\r\n     *\r\n     * @return {boolean} Returns `true` if the given child can render, otherwise `false`.\r\n     */\r\n    childCanRender: function (child)\r\n    {\r\n        return (child.visible && child.alpha > 0);\r\n    },\r\n\r\n    /**\r\n     * Returns an array of Bobs to be rendered.\r\n     * If the Blitter is dirty then a new list is generated and stored in `renderList`.\r\n     *\r\n     * @method Phaser.GameObjects.Blitter#getRenderList\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.GameObjects.Bob[]} An array of Bob objects that will be rendered this frame.\r\n     */\r\n    getRenderList: function ()\r\n    {\r\n        if (this.dirty)\r\n        {\r\n            this.renderList = this.children.list.filter(this.childCanRender, this);\r\n            this.dirty = false;\r\n        }\r\n\r\n        return this.renderList;\r\n    },\r\n\r\n    /**\r\n     * Removes all Bobs from the children List and clears the dirty flag.\r\n     *\r\n     * @method Phaser.GameObjects.Blitter#clear\r\n     * @since 3.0.0\r\n     */\r\n    clear: function ()\r\n    {\r\n        this.children.removeAll();\r\n        this.dirty = true;\r\n    },\r\n\r\n    /**\r\n     * Internal destroy handler, called as part of the destroy process.\r\n     *\r\n     * @method Phaser.GameObjects.Blitter#preDestroy\r\n     * @protected\r\n     * @since 3.9.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.children.destroy();\r\n\r\n        this.renderList = [];\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Blitter;\r\n\n\n/***/ }),\n\n/***/ 72396:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Blitter#renderCanvas\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Blitter} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar BlitterCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    var list = src.getRenderList();\r\n\r\n    if (list.length === 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    if (alpha === 0)\r\n    {\r\n        //  Nothing to see, so abort early\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    //  Blend Mode + Scale Mode\r\n    ctx.globalCompositeOperation = renderer.blendModes[src.blendMode];\r\n\r\n    ctx.imageSmoothingEnabled = !src.frame.source.scaleMode;\r\n\r\n    var cameraScrollX = src.x - camera.scrollX * src.scrollFactorX;\r\n    var cameraScrollY = src.y - camera.scrollY * src.scrollFactorY;\r\n\r\n    ctx.save();\r\n\r\n    if (parentMatrix)\r\n    {\r\n        parentMatrix.copyToContext(ctx);\r\n    }\r\n\r\n    var roundPixels = camera.roundPixels;\r\n\r\n    //  Render bobs\r\n    for (var i = 0; i < list.length; i++)\r\n    {\r\n        var bob = list[i];\r\n        var flip = (bob.flipX || bob.flipY);\r\n        var frame = bob.frame;\r\n        var cd = frame.canvasData;\r\n        var dx = frame.x;\r\n        var dy = frame.y;\r\n        var fx = 1;\r\n        var fy = 1;\r\n\r\n        var bobAlpha = bob.alpha * alpha;\r\n\r\n        if (bobAlpha === 0)\r\n        {\r\n            continue;\r\n        }\r\n\r\n        ctx.globalAlpha = bobAlpha;\r\n\r\n        if (!flip)\r\n        {\r\n            if (roundPixels)\r\n            {\r\n                dx = Math.round(dx);\r\n                dy = Math.round(dy);\r\n            }\r\n\r\n            if (cd.width > 0 && cd.height > 0)\r\n            {\r\n                ctx.drawImage(\r\n                    frame.source.image,\r\n                    cd.x,\r\n                    cd.y,\r\n                    cd.width,\r\n                    cd.height,\r\n                    dx + bob.x + cameraScrollX,\r\n                    dy + bob.y + cameraScrollY,\r\n                    cd.width,\r\n                    cd.height\r\n                );\r\n            }\r\n        }\r\n        else\r\n        {\r\n            if (bob.flipX)\r\n            {\r\n                fx = -1;\r\n                dx -= cd.width;\r\n            }\r\n\r\n            if (bob.flipY)\r\n            {\r\n                fy = -1;\r\n                dy -= cd.height;\r\n            }\r\n\r\n            if (cd.width > 0 && cd.height > 0)\r\n            {\r\n                ctx.save();\r\n                ctx.translate(bob.x + cameraScrollX, bob.y + cameraScrollY);\r\n                ctx.scale(fx, fy);\r\n                ctx.drawImage(frame.source.image, cd.x, cd.y, cd.width, cd.height, dx, dy, cd.width, cd.height);\r\n                ctx.restore();\r\n            }\r\n        }\r\n    }\r\n\r\n    ctx.restore();\r\n};\r\n\r\nmodule.exports = BlitterCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 9403:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Blitter = __webpack_require__(6107);\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\n\r\n/**\r\n * Creates a new Blitter Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Blitter Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#blitter\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Sprite.SpriteConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.Blitter} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('blitter', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var key = GetAdvancedValue(config, 'key', null);\r\n    var frame = GetAdvancedValue(config, 'frame', null);\r\n\r\n    var blitter = new Blitter(this.scene, 0, 0, key, frame);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, blitter, config);\r\n\r\n    return blitter;\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectCreator context.\r\n\n\n/***/ }),\n\n/***/ 12709:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Blitter = __webpack_require__(6107);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Blitter Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Blitter Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#blitter\r\n * @since 3.0.0\r\n *\r\n * @param {number} x - The x position of the Game Object.\r\n * @param {number} y - The y position of the Game Object.\r\n * @param {(string|Phaser.Textures.Texture)} texture - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {(string|number)} [frame] - The default Frame children of the Blitter will use.\r\n *\r\n * @return {Phaser.GameObjects.Blitter} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('blitter', function (x, y, texture, frame)\r\n{\r\n    return this.displayList.add(new Blitter(this.scene, x, y, texture, frame));\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectFactory context.\r\n//\r\n//  There are several properties available to use:\r\n//\r\n//  this.scene - a reference to the Scene that owns the GameObjectFactory\r\n//  this.displayList - a reference to the Display List the Scene owns\r\n//  this.updateList - a reference to the Update List the Scene owns\r\n\n\n/***/ }),\n\n/***/ 48011:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(99485);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(72396);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 99485:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar TransformMatrix = __webpack_require__(61340);\r\nvar Utils = __webpack_require__(70554);\r\n\r\nvar tempMatrix = new TransformMatrix();\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Blitter#renderWebGL\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Blitter} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar BlitterWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    var list = src.getRenderList();\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    if (list.length === 0 || alpha === 0)\r\n    {\r\n        //  Nothing to see, so abort early\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(this.pipeline, src);\r\n\r\n    var cameraScrollX = camera.scrollX * src.scrollFactorX;\r\n    var cameraScrollY = camera.scrollY * src.scrollFactorY;\r\n    \r\n    var calcMatrix = tempMatrix.copyFrom(camera.matrix);\r\n    \r\n    if (parentMatrix)\r\n    {\r\n        calcMatrix.multiplyWithOffset(parentMatrix, -cameraScrollX, -cameraScrollY);\r\n        \r\n        cameraScrollX = 0;\r\n        cameraScrollY = 0;\r\n    }\r\n    \r\n    var blitterX = src.x - cameraScrollX;\r\n    var blitterY = src.y - cameraScrollY;\r\n    var prevTextureSourceIndex = -1;\r\n    var tintEffect = false;\r\n    var roundPixels = camera.roundPixels;\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    for (var i = 0; i < list.length; i++)\r\n    {\r\n        var bob = list[i];\r\n        var frame = bob.frame;\r\n        var bobAlpha = bob.alpha * alpha;\r\n\r\n        if (bobAlpha === 0)\r\n        {\r\n            continue;\r\n        }\r\n\r\n        var width = frame.width;\r\n        var height = frame.height;\r\n\r\n        var x = blitterX + bob.x + frame.x;\r\n        var y = blitterY + bob.y + frame.y;\r\n\r\n        if (bob.flipX)\r\n        {\r\n            width *= -1;\r\n            x += frame.width;\r\n        }\r\n\r\n        if (bob.flipY)\r\n        {\r\n            height *= -1;\r\n            y += frame.height;\r\n        }\r\n\r\n        var quad = calcMatrix.setQuad(x, y, x + width, y + height, roundPixels);\r\n\r\n        var tint = Utils.getTintAppendFloatAlpha(bob.tint, bobAlpha);\r\n\r\n        //  Bind texture only if the Texture Source is different from before\r\n        if (frame.sourceIndex !== prevTextureSourceIndex)\r\n        {\r\n            var textureUnit = pipeline.setGameObject(src, frame);\r\n\r\n            prevTextureSourceIndex = frame.sourceIndex;\r\n        }\r\n\r\n        if (pipeline.batchQuad(src, quad[0], quad[1], quad[2], quad[3], quad[4], quad[5], quad[6], quad[7], frame.u0, frame.v0, frame.u1, frame.v1, tint, tint, tint, tint, tintEffect, frame.glTexture, textureUnit))\r\n        {\r\n            prevTextureSourceIndex = -1;\r\n        }\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = BlitterWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 46590:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Frame = __webpack_require__(4327);\r\n\r\n/**\r\n * @classdesc\r\n * A Bob Game Object.\r\n *\r\n * A Bob belongs to a Blitter Game Object. The Blitter is responsible for managing and rendering this object.\r\n *\r\n * A Bob has a position, alpha value and a frame from a texture that it uses to render with. You can also toggle\r\n * the flipped and visible state of the Bob. The Frame the Bob uses to render can be changed dynamically, but it\r\n * must be a Frame within the Texture used by the parent Blitter.\r\n *\r\n * Bob positions are relative to the Blitter parent. So if you move the Blitter parent, all Bob children will\r\n * have their positions impacted by this change as well.\r\n *\r\n * You can manipulate Bob objects directly from your game code, but the creation and destruction of them should be\r\n * handled via the Blitter parent.\r\n *\r\n * @class Bob\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.Blitter} blitter - The parent Blitter object is responsible for updating this Bob.\r\n * @param {number} x - The horizontal position of this Game Object in the world, relative to the parent Blitter position.\r\n * @param {number} y - The vertical position of this Game Object in the world, relative to the parent Blitter position.\r\n * @param {(string|number)} frame - The Frame this Bob will render with, as defined in the Texture the parent Blitter is using.\r\n * @param {boolean} visible - Should the Bob render visible or not to start with?\r\n */\r\nvar Bob = new Class({\r\n\r\n    initialize:\r\n\r\n    function Bob (blitter, x, y, frame, visible)\r\n    {\r\n        /**\r\n         * The Blitter object that this Bob belongs to.\r\n         *\r\n         * @name Phaser.GameObjects.Bob#parent\r\n         * @type {Phaser.GameObjects.Blitter}\r\n         * @since 3.0.0\r\n         */\r\n        this.parent = blitter;\r\n\r\n        /**\r\n         * The x position of this Bob, relative to the x position of the Blitter.\r\n         *\r\n         * @name Phaser.GameObjects.Bob#x\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         */\r\n        this.x = x;\r\n\r\n        /**\r\n         * The y position of this Bob, relative to the y position of the Blitter.\r\n         *\r\n         * @name Phaser.GameObjects.Bob#y\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         */\r\n        this.y = y;\r\n\r\n        /**\r\n         * The frame that the Bob uses to render with.\r\n         * To change the frame use the `Bob.setFrame` method.\r\n         *\r\n         * @name Phaser.GameObjects.Bob#frame\r\n         * @type {Phaser.Textures.Frame}\r\n         * @protected\r\n         * @since 3.0.0\r\n         */\r\n        this.frame = frame;\r\n\r\n        /**\r\n         * A blank object which can be used to store data related to this Bob in.\r\n         *\r\n         * @name Phaser.GameObjects.Bob#data\r\n         * @type {object}\r\n         * @default {}\r\n         * @since 3.0.0\r\n         */\r\n        this.data = {};\r\n\r\n        /**\r\n         * The tint value of this Bob.\r\n         *\r\n         * @name Phaser.GameObjects.Bob#tint\r\n         * @type {number}\r\n         * @default 0xffffff\r\n         * @since 3.20.0\r\n         */\r\n        this.tint = 0xffffff;\r\n\r\n        /**\r\n         * The visible state of this Bob.\r\n         *\r\n         * @name Phaser.GameObjects.Bob#_visible\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._visible = visible;\r\n\r\n        /**\r\n         * The alpha value of this Bob.\r\n         *\r\n         * @name Phaser.GameObjects.Bob#_alpha\r\n         * @type {number}\r\n         * @private\r\n         * @default 1\r\n         * @since 3.0.0\r\n         */\r\n        this._alpha = 1;\r\n\r\n        /**\r\n         * The horizontally flipped state of the Bob.\r\n         * A Bob that is flipped horizontally will render inversed on the horizontal axis.\r\n         * Flipping always takes place from the middle of the texture.\r\n         *\r\n         * @name Phaser.GameObjects.Bob#flipX\r\n         * @type {boolean}\r\n         * @since 3.0.0\r\n         */\r\n        this.flipX = false;\r\n\r\n        /**\r\n         * The vertically flipped state of the Bob.\r\n         * A Bob that is flipped vertically will render inversed on the vertical axis (i.e. upside down)\r\n         * Flipping always takes place from the middle of the texture.\r\n         *\r\n         * @name Phaser.GameObjects.Bob#flipY\r\n         * @type {boolean}\r\n         * @since 3.0.0\r\n         */\r\n        this.flipY = false;\r\n\r\n        /**\r\n         * Private read-only property used to allow Bobs to have physics bodies.\r\n         *\r\n         * @name Phaser.GameObjects.Bob#hasTransformComponent\r\n         * @type {boolean}\r\n         * @private\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.hasTransformComponent = true;\r\n    },\r\n\r\n    /**\r\n     * Changes the Texture Frame being used by this Bob.\r\n     * The frame must be part of the Texture the parent Blitter is using.\r\n     * If no value is given it will use the default frame of the Blitter parent.\r\n     *\r\n     * @method Phaser.GameObjects.Bob#setFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|number|Phaser.Textures.Frame)} [frame] - The frame to be used during rendering.\r\n     *\r\n     * @return {this} This Bob Game Object.\r\n     */\r\n    setFrame: function (frame)\r\n    {\r\n        if (frame === undefined)\r\n        {\r\n            this.frame = this.parent.frame;\r\n        }\r\n        else if (frame instanceof Frame && frame.texture === this.parent.texture)\r\n        {\r\n            this.frame = frame;\r\n        }\r\n        else\r\n        {\r\n            this.frame = this.parent.texture.get(frame);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Resets the horizontal and vertical flipped state of this Bob back to their default un-flipped state.\r\n     *\r\n     * @method Phaser.GameObjects.Bob#resetFlip\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Bob Game Object.\r\n     */\r\n    resetFlip: function ()\r\n    {\r\n        this.flipX = false;\r\n        this.flipY = false;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Resets this Bob.\r\n     *\r\n     * Changes the position to the values given, and optionally changes the frame.\r\n     *\r\n     * Also resets the flipX and flipY values, sets alpha back to 1 and visible to true.\r\n     *\r\n     * @method Phaser.GameObjects.Bob#reset\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x position of the Bob. Bob coordinate are relative to the position of the Blitter object.\r\n     * @param {number} y - The y position of the Bob. Bob coordinate are relative to the position of the Blitter object.\r\n     * @param {(string|number|Phaser.Textures.Frame)} [frame] - The Frame the Bob will use. It _must_ be part of the Texture the parent Blitter object is using.\r\n     *\r\n     * @return {this} This Bob Game Object.\r\n     */\r\n    reset: function (x, y, frame)\r\n    {\r\n        this.x = x;\r\n        this.y = y;\r\n\r\n        this.flipX = false;\r\n        this.flipY = false;\r\n\r\n        this._alpha = 1;\r\n        this._visible = true;\r\n\r\n        this.parent.dirty = true;\r\n\r\n        if (frame)\r\n        {\r\n            this.setFrame(frame);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Changes the position of this Bob to the values given.\r\n     *\r\n     * @method Phaser.GameObjects.Bob#setPosition\r\n     * @since 3.20.0\r\n     *\r\n     * @param {number} x - The x position of the Bob. Bob coordinate are relative to the position of the Blitter object.\r\n     * @param {number} y - The y position of the Bob. Bob coordinate are relative to the position of the Blitter object.\r\n     *\r\n     * @return {this} This Bob Game Object.\r\n     */\r\n    setPosition: function (x, y)\r\n    {\r\n        this.x = x;\r\n        this.y = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the horizontal flipped state of this Bob.\r\n     *\r\n     * @method Phaser.GameObjects.Bob#setFlipX\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} value - The flipped state. `false` for no flip, or `true` to be flipped.\r\n     *\r\n     * @return {this} This Bob Game Object.\r\n     */\r\n    setFlipX: function (value)\r\n    {\r\n        this.flipX = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the vertical flipped state of this Bob.\r\n     *\r\n     * @method Phaser.GameObjects.Bob#setFlipY\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} value - The flipped state. `false` for no flip, or `true` to be flipped.\r\n     *\r\n     * @return {this} This Bob Game Object.\r\n     */\r\n    setFlipY: function (value)\r\n    {\r\n        this.flipY = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the horizontal and vertical flipped state of this Bob.\r\n     *\r\n     * @method Phaser.GameObjects.Bob#setFlip\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} x - The horizontal flipped state. `false` for no flip, or `true` to be flipped.\r\n     * @param {boolean} y - The horizontal flipped state. `false` for no flip, or `true` to be flipped.\r\n     *\r\n     * @return {this} This Bob Game Object.\r\n     */\r\n    setFlip: function (x, y)\r\n    {\r\n        this.flipX = x;\r\n        this.flipY = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the visibility of this Bob.\r\n     *\r\n     * An invisible Bob will skip rendering.\r\n     *\r\n     * @method Phaser.GameObjects.Bob#setVisible\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} value - The visible state of the Game Object.\r\n     *\r\n     * @return {this} This Bob Game Object.\r\n     */\r\n    setVisible: function (value)\r\n    {\r\n        this.visible = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the Alpha level of this Bob. The alpha controls the opacity of the Game Object as it renders.\r\n     * Alpha values are provided as a float between 0, fully transparent, and 1, fully opaque.\r\n     *\r\n     * A Bob with alpha 0 will skip rendering.\r\n     *\r\n     * @method Phaser.GameObjects.Bob#setAlpha\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} value - The alpha value used for this Bob. Between 0 and 1.\r\n     *\r\n     * @return {this} This Bob Game Object.\r\n     */\r\n    setAlpha: function (value)\r\n    {\r\n        this.alpha = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the tint of this Bob.\r\n     *\r\n     * @method Phaser.GameObjects.Bob#setTint\r\n     * @since 3.20.0\r\n     *\r\n     * @param {number} value - The tint value used for this Bob. Between 0 and 0xffffff.\r\n     *\r\n     * @return {this} This Bob Game Object.\r\n     */\r\n    setTint: function (value)\r\n    {\r\n        this.tint = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Destroys this Bob instance.\r\n     * Removes itself from the Blitter and clears the parent, frame and data properties.\r\n     *\r\n     * @method Phaser.GameObjects.Bob#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.parent.dirty = true;\r\n\r\n        this.parent.children.remove(this);\r\n\r\n        this.parent = undefined;\r\n        this.frame = undefined;\r\n        this.data = undefined;\r\n    },\r\n\r\n    /**\r\n     * The visible state of the Bob.\r\n     *\r\n     * An invisible Bob will skip rendering.\r\n     *\r\n     * @name Phaser.GameObjects.Bob#visible\r\n     * @type {boolean}\r\n     * @since 3.0.0\r\n     */\r\n    visible: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._visible;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.parent.dirty |= (this._visible !== value);\r\n            this._visible = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The alpha value of the Bob, between 0 and 1.\r\n     *\r\n     * A Bob with alpha 0 will skip rendering.\r\n     *\r\n     * @name Phaser.GameObjects.Bob#alpha\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    alpha: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._alpha;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.parent.dirty |= ((this._alpha > 0) !== (value > 0));\r\n            this._alpha = value;\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Bob;\r\n\n\n/***/ }),\n\n/***/ 16005:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Clamp = __webpack_require__(45319);\r\n\r\n//  bitmask flag for GameObject.renderMask\r\nvar _FLAG = 2; // 0010\r\n\r\n/**\r\n * Provides methods used for setting the alpha properties of a Game Object.\r\n * Should be applied as a mixin and not used directly.\r\n *\r\n * @namespace Phaser.GameObjects.Components.Alpha\r\n * @since 3.0.0\r\n */\r\n\r\nvar Alpha = {\r\n\r\n    /**\r\n     * Private internal value. Holds the global alpha value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Alpha#_alpha\r\n     * @type {number}\r\n     * @private\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    _alpha: 1,\r\n\r\n    /**\r\n     * Private internal value. Holds the top-left alpha value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Alpha#_alphaTL\r\n     * @type {number}\r\n     * @private\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    _alphaTL: 1,\r\n\r\n    /**\r\n     * Private internal value. Holds the top-right alpha value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Alpha#_alphaTR\r\n     * @type {number}\r\n     * @private\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    _alphaTR: 1,\r\n\r\n    /**\r\n     * Private internal value. Holds the bottom-left alpha value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Alpha#_alphaBL\r\n     * @type {number}\r\n     * @private\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    _alphaBL: 1,\r\n\r\n    /**\r\n     * Private internal value. Holds the bottom-right alpha value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Alpha#_alphaBR\r\n     * @type {number}\r\n     * @private\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    _alphaBR: 1,\r\n\r\n    /**\r\n     * Clears all alpha values associated with this Game Object.\r\n     *\r\n     * Immediately sets the alpha levels back to 1 (fully opaque).\r\n     *\r\n     * @method Phaser.GameObjects.Components.Alpha#clearAlpha\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    clearAlpha: function ()\r\n    {\r\n        return this.setAlpha(1);\r\n    },\r\n\r\n    /**\r\n     * Set the Alpha level of this Game Object. The alpha controls the opacity of the Game Object as it renders.\r\n     * Alpha values are provided as a float between 0, fully transparent, and 1, fully opaque.\r\n     *\r\n     * If your game is running under WebGL you can optionally specify four different alpha values, each of which\r\n     * correspond to the four corners of the Game Object. Under Canvas only the `topLeft` value given is used.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Alpha#setAlpha\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [topLeft=1] - The alpha value used for the top-left of the Game Object. If this is the only value given it's applied across the whole Game Object.\r\n     * @param {number} [topRight] - The alpha value used for the top-right of the Game Object. WebGL only.\r\n     * @param {number} [bottomLeft] - The alpha value used for the bottom-left of the Game Object. WebGL only.\r\n     * @param {number} [bottomRight] - The alpha value used for the bottom-right of the Game Object. WebGL only.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setAlpha: function (topLeft, topRight, bottomLeft, bottomRight)\r\n    {\r\n        if (topLeft === undefined) { topLeft = 1; }\r\n\r\n        //  Treat as if there is only one alpha value for the whole Game Object\r\n        if (topRight === undefined)\r\n        {\r\n            this.alpha = topLeft;\r\n        }\r\n        else\r\n        {\r\n            this._alphaTL = Clamp(topLeft, 0, 1);\r\n            this._alphaTR = Clamp(topRight, 0, 1);\r\n            this._alphaBL = Clamp(bottomLeft, 0, 1);\r\n            this._alphaBR = Clamp(bottomRight, 0, 1);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * The alpha value of the Game Object.\r\n     *\r\n     * This is a global value, impacting the entire Game Object, not just a region of it.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Alpha#alpha\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    alpha: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._alpha;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var v = Clamp(value, 0, 1);\r\n\r\n            this._alpha = v;\r\n            this._alphaTL = v;\r\n            this._alphaTR = v;\r\n            this._alphaBL = v;\r\n            this._alphaBR = v;\r\n\r\n            if (v === 0)\r\n            {\r\n                this.renderFlags &= ~_FLAG;\r\n            }\r\n            else\r\n            {\r\n                this.renderFlags |= _FLAG;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The alpha value starting from the top-left of the Game Object.\r\n     * This value is interpolated from the corner to the center of the Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Alpha#alphaTopLeft\r\n     * @type {number}\r\n     * @webglOnly\r\n     * @since 3.0.0\r\n     */\r\n    alphaTopLeft: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._alphaTL;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var v = Clamp(value, 0, 1);\r\n\r\n            this._alphaTL = v;\r\n\r\n            if (v !== 0)\r\n            {\r\n                this.renderFlags |= _FLAG;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The alpha value starting from the top-right of the Game Object.\r\n     * This value is interpolated from the corner to the center of the Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Alpha#alphaTopRight\r\n     * @type {number}\r\n     * @webglOnly\r\n     * @since 3.0.0\r\n     */\r\n    alphaTopRight: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._alphaTR;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var v = Clamp(value, 0, 1);\r\n\r\n            this._alphaTR = v;\r\n\r\n            if (v !== 0)\r\n            {\r\n                this.renderFlags |= _FLAG;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The alpha value starting from the bottom-left of the Game Object.\r\n     * This value is interpolated from the corner to the center of the Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Alpha#alphaBottomLeft\r\n     * @type {number}\r\n     * @webglOnly\r\n     * @since 3.0.0\r\n     */\r\n    alphaBottomLeft: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._alphaBL;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var v = Clamp(value, 0, 1);\r\n\r\n            this._alphaBL = v;\r\n\r\n            if (v !== 0)\r\n            {\r\n                this.renderFlags |= _FLAG;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The alpha value starting from the bottom-right of the Game Object.\r\n     * This value is interpolated from the corner to the center of the Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Alpha#alphaBottomRight\r\n     * @type {number}\r\n     * @webglOnly\r\n     * @since 3.0.0\r\n     */\r\n    alphaBottomRight: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._alphaBR;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var v = Clamp(value, 0, 1);\r\n\r\n            this._alphaBR = v;\r\n\r\n            if (v !== 0)\r\n            {\r\n                this.renderFlags |= _FLAG;\r\n            }\r\n        }\r\n\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = Alpha;\r\n\n\n/***/ }),\n\n/***/ 88509:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Clamp = __webpack_require__(45319);\r\n\r\n//  bitmask flag for GameObject.renderMask\r\nvar _FLAG = 2; // 0010\r\n\r\n/**\r\n * Provides methods used for setting the alpha property of a Game Object.\r\n * Should be applied as a mixin and not used directly.\r\n *\r\n * @namespace Phaser.GameObjects.Components.AlphaSingle\r\n * @since 3.22.0\r\n */\r\n\r\nvar AlphaSingle = {\r\n\r\n    /**\r\n     * Private internal value. Holds the global alpha value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.AlphaSingle#_alpha\r\n     * @type {number}\r\n     * @private\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    _alpha: 1,\r\n\r\n    /**\r\n     * Clears all alpha values associated with this Game Object.\r\n     *\r\n     * Immediately sets the alpha levels back to 1 (fully opaque).\r\n     *\r\n     * @method Phaser.GameObjects.Components.AlphaSingle#clearAlpha\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    clearAlpha: function ()\r\n    {\r\n        return this.setAlpha(1);\r\n    },\r\n\r\n    /**\r\n     * Set the Alpha level of this Game Object. The alpha controls the opacity of the Game Object as it renders.\r\n     * Alpha values are provided as a float between 0, fully transparent, and 1, fully opaque.\r\n     *\r\n     * @method Phaser.GameObjects.Components.AlphaSingle#setAlpha\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [value=1] - The alpha value applied across the whole Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setAlpha: function (value)\r\n    {\r\n        if (value === undefined) { value = 1; }\r\n\r\n        this.alpha = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * The alpha value of the Game Object.\r\n     *\r\n     * This is a global value, impacting the entire Game Object, not just a region of it.\r\n     *\r\n     * @name Phaser.GameObjects.Components.AlphaSingle#alpha\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    alpha: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._alpha;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var v = Clamp(value, 0, 1);\r\n\r\n            this._alpha = v;\r\n\r\n            if (v === 0)\r\n            {\r\n                this.renderFlags &= ~_FLAG;\r\n            }\r\n            else\r\n            {\r\n                this.renderFlags |= _FLAG;\r\n            }\r\n        }\r\n\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = AlphaSingle;\r\n\n\n/***/ }),\n\n/***/ 90065:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BlendModes = __webpack_require__(10312);\r\n\r\n/**\r\n * Provides methods used for setting the blend mode of a Game Object.\r\n * Should be applied as a mixin and not used directly.\r\n *\r\n * @namespace Phaser.GameObjects.Components.BlendMode\r\n * @since 3.0.0\r\n */\r\n\r\nvar BlendMode = {\r\n\r\n    /**\r\n     * Private internal value. Holds the current blend mode.\r\n     *\r\n     * @name Phaser.GameObjects.Components.BlendMode#_blendMode\r\n     * @type {number}\r\n     * @private\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n    _blendMode: BlendModes.NORMAL,\r\n\r\n    /**\r\n     * Sets the Blend Mode being used by this Game Object.\r\n     *\r\n     * This can be a const, such as `Phaser.BlendModes.SCREEN`, or an integer, such as 4 (for Overlay)\r\n     *\r\n     * Under WebGL only the following Blend Modes are available:\r\n     *\r\n     * * NORMAL\r\n     * * ADD\r\n     * * MULTIPLY\r\n     * * SCREEN\r\n     * * ERASE\r\n     *\r\n     * Canvas has more available depending on browser support.\r\n     *\r\n     * You can also create your own custom Blend Modes in WebGL.\r\n     *\r\n     * Blend modes have different effects under Canvas and WebGL, and from browser to browser, depending\r\n     * on support. Blend Modes also cause a WebGL batch flush should it encounter a new blend mode. For these\r\n     * reasons try to be careful about the construction of your Scene and the frequency of which blend modes\r\n     * are used.\r\n     *\r\n     * @name Phaser.GameObjects.Components.BlendMode#blendMode\r\n     * @type {(Phaser.BlendModes|string|number)}\r\n     * @since 3.0.0\r\n     */\r\n    blendMode: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._blendMode;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            if (typeof value === 'string')\r\n            {\r\n                value = BlendModes[value];\r\n            }\r\n\r\n            value |= 0;\r\n\r\n            if (value >= -1)\r\n            {\r\n                this._blendMode = value;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Sets the Blend Mode being used by this Game Object.\r\n     *\r\n     * This can be a const, such as `Phaser.BlendModes.SCREEN`, or an integer, such as 4 (for Overlay)\r\n     *\r\n     * Under WebGL only the following Blend Modes are available:\r\n     *\r\n     * * NORMAL\r\n     * * ADD\r\n     * * MULTIPLY\r\n     * * SCREEN\r\n     * * ERASE (only works when rendering to a framebuffer, like a Render Texture)\r\n     *\r\n     * Canvas has more available depending on browser support.\r\n     *\r\n     * You can also create your own custom Blend Modes in WebGL.\r\n     *\r\n     * Blend modes have different effects under Canvas and WebGL, and from browser to browser, depending\r\n     * on support. Blend Modes also cause a WebGL batch flush should it encounter a new blend mode. For these\r\n     * reasons try to be careful about the construction of your Scene and the frequency in which blend modes\r\n     * are used.\r\n     *\r\n     * @method Phaser.GameObjects.Components.BlendMode#setBlendMode\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|Phaser.BlendModes|number)} value - The BlendMode value. Either a string, a CONST or a number.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setBlendMode: function (value)\r\n    {\r\n        this.blendMode = value;\r\n\r\n        return this;\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = BlendMode;\r\n\n\n/***/ }),\n\n/***/ 94215:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Provides methods used for calculating and setting the size of a non-Frame based Game Object.\r\n * Should be applied as a mixin and not used directly.\r\n *\r\n * @namespace Phaser.GameObjects.Components.ComputedSize\r\n * @since 3.0.0\r\n */\r\n\r\nvar ComputedSize = {\r\n\r\n    /**\r\n     * The native (un-scaled) width of this Game Object.\r\n     *\r\n     * Changing this value will not change the size that the Game Object is rendered in-game.\r\n     * For that you need to either set the scale of the Game Object (`setScale`) or use\r\n     * the `displayWidth` property.\r\n     *\r\n     * @name Phaser.GameObjects.Components.ComputedSize#width\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    width: 0,\r\n\r\n    /**\r\n     * The native (un-scaled) height of this Game Object.\r\n     *\r\n     * Changing this value will not change the size that the Game Object is rendered in-game.\r\n     * For that you need to either set the scale of the Game Object (`setScale`) or use\r\n     * the `displayHeight` property.\r\n     *\r\n     * @name Phaser.GameObjects.Components.ComputedSize#height\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    height: 0,\r\n\r\n    /**\r\n     * The displayed width of this Game Object.\r\n     *\r\n     * This value takes into account the scale factor.\r\n     *\r\n     * Setting this value will adjust the Game Object's scale property.\r\n     *\r\n     * @name Phaser.GameObjects.Components.ComputedSize#displayWidth\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    displayWidth: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.scaleX * this.width;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.scaleX = value / this.width;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The displayed height of this Game Object.\r\n     *\r\n     * This value takes into account the scale factor.\r\n     *\r\n     * Setting this value will adjust the Game Object's scale property.\r\n     *\r\n     * @name Phaser.GameObjects.Components.ComputedSize#displayHeight\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    displayHeight: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.scaleY * this.height;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.scaleY = value / this.height;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Sets the internal size of this Game Object, as used for frame or physics body creation.\r\n     *\r\n     * This will not change the size that the Game Object is rendered in-game.\r\n     * For that you need to either set the scale of the Game Object (`setScale`) or call the\r\n     * `setDisplaySize` method, which is the same thing as changing the scale but allows you\r\n     * to do so by giving pixel values.\r\n     *\r\n     * If you have enabled this Game Object for input, changing the size will _not_ change the\r\n     * size of the hit area. To do this you should adjust the `input.hitArea` object directly.\r\n     *\r\n     * @method Phaser.GameObjects.Components.ComputedSize#setSize\r\n     * @since 3.4.0\r\n     *\r\n     * @param {number} width - The width of this Game Object.\r\n     * @param {number} height - The height of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSize: function (width, height)\r\n    {\r\n        this.width = width;\r\n        this.height = height;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the display size of this Game Object.\r\n     *\r\n     * Calling this will adjust the scale.\r\n     *\r\n     * @method Phaser.GameObjects.Components.ComputedSize#setDisplaySize\r\n     * @since 3.4.0\r\n     *\r\n     * @param {number} width - The width of this Game Object.\r\n     * @param {number} height - The height of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setDisplaySize: function (width, height)\r\n    {\r\n        this.displayWidth = width;\r\n        this.displayHeight = height;\r\n\r\n        return this;\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = ComputedSize;\r\n\n\n/***/ }),\n\n/***/ 61683:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Provides methods used for getting and setting the texture of a Game Object.\r\n *\r\n * @namespace Phaser.GameObjects.Components.Crop\r\n * @since 3.12.0\r\n */\r\n\r\nvar Crop = {\r\n\r\n    /**\r\n     * The Texture this Game Object is using to render with.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Crop#texture\r\n     * @type {Phaser.Textures.Texture|Phaser.Textures.CanvasTexture}\r\n     * @since 3.0.0\r\n     */\r\n    texture: null,\r\n\r\n    /**\r\n     * The Texture Frame this Game Object is using to render with.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Crop#frame\r\n     * @type {Phaser.Textures.Frame}\r\n     * @since 3.0.0\r\n     */\r\n    frame: null,\r\n\r\n    /**\r\n     * A boolean flag indicating if this Game Object is being cropped or not.\r\n     * You can toggle this at any time after `setCrop` has been called, to turn cropping on or off.\r\n     * Equally, calling `setCrop` with no arguments will reset the crop and disable it.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Crop#isCropped\r\n     * @type {boolean}\r\n     * @since 3.11.0\r\n     */\r\n    isCropped: false,\r\n\r\n    /**\r\n     * Applies a crop to a texture based Game Object, such as a Sprite or Image.\r\n     *\r\n     * The crop is a rectangle that limits the area of the texture frame that is visible during rendering.\r\n     *\r\n     * Cropping a Game Object does not change its size, dimensions, physics body or hit area, it just\r\n     * changes what is shown when rendered.\r\n     *\r\n     * The crop size as well as coordinates can not exceed the the size of the texture frame.\r\n     *\r\n     * The crop coordinates are relative to the texture frame, not the Game Object, meaning 0 x 0 is the top-left.\r\n     *\r\n     * Therefore, if you had a Game Object that had an 800x600 sized texture, and you wanted to show only the left\r\n     * half of it, you could call `setCrop(0, 0, 400, 600)`.\r\n     *\r\n     * It is also scaled to match the Game Object scale automatically. Therefore a crop rectangle of 100x50 would crop\r\n     * an area of 200x100 when applied to a Game Object that had a scale factor of 2.\r\n     *\r\n     * You can either pass in numeric values directly, or you can provide a single Rectangle object as the first argument.\r\n     *\r\n     * Call this method with no arguments at all to reset the crop, or toggle the property `isCropped` to `false`.\r\n     *\r\n     * You should do this if the crop rectangle becomes the same size as the frame itself, as it will allow\r\n     * the renderer to skip several internal calculations.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Crop#setCrop\r\n     * @since 3.11.0\r\n     *\r\n     * @param {(number|Phaser.Geom.Rectangle)} [x] - The x coordinate to start the crop from. Cannot be negative or exceed the Frame width. Or a Phaser.Geom.Rectangle object, in which case the rest of the arguments are ignored.\r\n     * @param {number} [y] - The y coordinate to start the crop from. Cannot be negative or exceed the Frame height.\r\n     * @param {number} [width] - The width of the crop rectangle in pixels. Cannot exceed the Frame width.\r\n     * @param {number} [height] - The height of the crop rectangle in pixels. Cannot exceed the Frame height.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setCrop: function (x, y, width, height)\r\n    {\r\n        if (x === undefined)\r\n        {\r\n            this.isCropped = false;\r\n        }\r\n        else if (this.frame)\r\n        {\r\n            if (typeof x === 'number')\r\n            {\r\n                this.frame.setCropUVs(this._crop, x, y, width, height, this.flipX, this.flipY);\r\n            }\r\n            else\r\n            {\r\n                var rect = x;\r\n\r\n                this.frame.setCropUVs(this._crop, rect.x, rect.y, rect.width, rect.height, this.flipX, this.flipY);\r\n            }\r\n\r\n            this.isCropped = true;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Internal method that returns a blank, well-formed crop object for use by a Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Crop#resetCropObject\r\n     * @private\r\n     * @since 3.12.0\r\n     *\r\n     * @return {object} The crop object.\r\n     */\r\n    resetCropObject: function ()\r\n    {\r\n        return { u0: 0, v0: 0, u1: 0, v1: 0, width: 0, height: 0, x: 0, y: 0, flipX: false, flipY: false, cx: 0, cy: 0, cw: 0, ch: 0 };\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = Crop;\r\n\n\n/***/ }),\n\n/***/ 89272:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Provides methods used for setting the depth of a Game Object.\r\n * Should be applied as a mixin and not used directly.\r\n *\r\n * @namespace Phaser.GameObjects.Components.Depth\r\n * @since 3.0.0\r\n */\r\n\r\nvar ArrayUtils = __webpack_require__(37105);\r\n\r\nvar Depth = {\r\n\r\n    /**\r\n     * Private internal value. Holds the depth of the Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Depth#_depth\r\n     * @type {number}\r\n     * @private\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n    _depth: 0,\r\n\r\n    /**\r\n     * The depth of this Game Object within the Scene. Ensure this value is only ever set to a number data-type.\r\n     *\r\n     * The depth is also known as the 'z-index' in some environments, and allows you to change the rendering order\r\n     * of Game Objects, without actually moving their position in the display list.\r\n     *\r\n     * The default depth is zero. A Game Object with a higher depth\r\n     * value will always render in front of one with a lower value.\r\n     *\r\n     * Setting the depth will queue a depth sort event within the Scene.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Depth#depth\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    depth: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._depth;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            if (this.displayList)\r\n            {\r\n                this.displayList.queueDepthSort();\r\n            }\r\n\r\n            this._depth = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The depth of this Game Object within the Scene.\r\n     *\r\n     * The depth is also known as the 'z-index' in some environments, and allows you to change the rendering order\r\n     * of Game Objects, without actually moving their position in the display list.\r\n     *\r\n     * The default depth is zero. A Game Object with a higher depth\r\n     * value will always render in front of one with a lower value.\r\n     *\r\n     * Setting the depth will queue a depth sort event within the Scene.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Depth#setDepth\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} value - The depth of this Game Object. Ensure this value is only ever a number data-type.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setDepth: function (value)\r\n    {\r\n        if (value === undefined) { value = 0; }\r\n\r\n        this.depth = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets this Game Object to be at the top of the display list, or the top of its parent container.\r\n     * \r\n     * Being at the top means it will render on-top of everything else.\r\n     * \r\n     * This method does not change this Game Objects `depth` value, it simply alters its list position.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Depth#setToTop\r\n     * @since 3.85.0\r\n     * \r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setToTop: function ()\r\n    {\r\n        var list = this.getDisplayList();\r\n\r\n        if (list)\r\n        {\r\n            ArrayUtils.BringToTop(list, this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets this Game Object to the back of the display list, or the back of its parent container.\r\n     * \r\n     * Being at the back means it will render below everything else.\r\n     * \r\n     * This method does not change this Game Objects `depth` value, it simply alters its list position.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Depth#setToBack\r\n     * @since 3.85.0\r\n     * \r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setToBack: function ()\r\n    {\r\n        var list = this.getDisplayList();\r\n\r\n        if (list)\r\n        {\r\n            ArrayUtils.SendToBack(list, this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Move this Game Object so that it appears above the given Game Object.\r\n     * \r\n     * This means it will render immediately after the other object in the display list.\r\n     * \r\n     * Both objects must belong to the same display list, or parent container.\r\n     * \r\n     * This method does not change this Game Objects `depth` value, it simply alters its list position.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Depth#setAbove\r\n     * @since 3.85.0\r\n     * \r\n     * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that this Game Object will be moved to be above.\r\n     * \r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setAbove: function (gameObject)\r\n    {\r\n        var list = this.getDisplayList();\r\n\r\n        if (list && gameObject)\r\n        {\r\n            ArrayUtils.MoveAbove(list, this, gameObject);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Move this Game Object so that it appears below the given Game Object.\r\n     * \r\n     * This means it will render immediately under the other object in the display list.\r\n     * \r\n     * Both objects must belong to the same display list, or parent container.\r\n     * \r\n     * This method does not change this Game Objects `depth` value, it simply alters its list position.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Depth#setBelow\r\n     * @since 3.85.0\r\n     * \r\n     * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that this Game Object will be moved to be below.\r\n     * \r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setBelow: function (gameObject)\r\n    {\r\n        var list = this.getDisplayList();\r\n\r\n        if (list && gameObject)\r\n        {\r\n            ArrayUtils.MoveBelow(list, this, gameObject);\r\n        }\r\n\r\n        return this;\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = Depth;\r\n\n\n/***/ }),\n\n/***/ 47059:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Effects = __webpack_require__(66064);\r\nvar SpliceOne = __webpack_require__(19133);\r\n\r\n/**\r\n * @classdesc\r\n * The FX Component features a set of methods used for applying a range of special built-in effects to a Game Object.\r\n *\r\n * The effects include the following:\r\n *\r\n * * Barrel Distortion\r\n * * Bloom\r\n * * Blur\r\n * * Bokeh / Tilt Shift\r\n * * Circle Outline\r\n * * Color Matrix\r\n * * Glow\r\n * * Displacement\r\n * * Gradient\r\n * * Pixelate\r\n * * Shine\r\n * * Shadow\r\n * * Vignette\r\n * * Wipe / Reveal\r\n *\r\n * All Game Objects support Post FX. These are effects applied after the Game Object has been rendered.\r\n *\r\n * Texture-based Game Objects also support Pre FX, including:\r\n *\r\n * * Image\r\n * * Sprite\r\n * * TileSprite\r\n * * Text\r\n * * RenderTexture\r\n * * Video\r\n *\r\n * And any Game Object that extends the above.\r\n *\r\n * The difference between Pre FX and Post FX are that all Post FX take place in a canvas (renderer) sized frame buffer,\r\n * after the Game Object has been rendered. Pre FX, however, take place in a texture sized frame buffer, which is sized\r\n * based on the Game Object itself. The end result is then composited back to the main game canvas. For intensive effects,\r\n * such as blur, bloom or glow, which can require many iterations, this is a much more efficient way to apply the effect,\r\n * as only it only has to work on a Game Object sized texture and not all pixels in the canvas.\r\n *\r\n * In short, you should always try and use a Pre FX if you can.\r\n *\r\n * Due to the way that FX work they can be stacked-up. For example, you can apply a blur to a Game Object, then apply\r\n * a bloom effect to the same Game Object. The bloom effect will be applied to the blurred texture, not the original.\r\n * Keep the order in mind when stacking effects.\r\n *\r\n * All effects are WebGL only and do not have canvas counterparts.\r\n *\r\n * As you can appreciate, some effects are more expensive than others. For example, a bloom effect is going to be more\r\n * expensive than a simple color matrix effect, so please consider using them wisely and performance test your target\r\n * platforms early on in production.\r\n *\r\n * This component is created automatically by the `PostPipeline` class and does not need to be instantiated directly.\r\n *\r\n * @class FX\r\n * @memberof Phaser.GameObjects.Components\r\n * @constructor\r\n * @since 3.60.0\r\n * @webglOnly\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - A reference to the Game Object that owns this FX Component.\r\n * @param {boolean} isPost - Is this a Pre or Post FX Component?\r\n */\r\nvar FX = new Class({\r\n\r\n    initialize:\r\n\r\n    function FX (gameObject, isPost)\r\n    {\r\n        /**\r\n         * A reference to the Game Object that owns this FX Component.\r\n         *\r\n         * @name Phaser.GameObjects.Components.FX#gameObject\r\n         * @type {Phaser.GameObjects.GameObject}\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.gameObject = gameObject;\r\n\r\n        /**\r\n         * Is this a Post FX Controller? or a Pre FX Controller?\r\n         *\r\n         * @name Phaser.GameObjects.Components.FX#isPost\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.isPost = isPost;\r\n\r\n        /**\r\n         * Has this FX Component been enabled?\r\n         *\r\n         * You should treat this property as read-only, although it is toggled\r\n         * automaticaly during internal use.\r\n         *\r\n         * @name Phaser.GameObjects.Components.FX#enabled\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this.enabled = false;\r\n\r\n        /**\r\n         * An array containing all of the Pre FX Controllers that\r\n         * have been added to this FX Component. They are processed in\r\n         * the order they are added.\r\n         *\r\n         * This array is empty if this is a Post FX Component.\r\n         *\r\n         * @name Phaser.GameObjects.Components.FX#list\r\n         * @type {Phaser.FX.Controller[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.list = [];\r\n\r\n        /**\r\n         * The amount of extra padding to be applied to this Game Object\r\n         * when it is being rendered by a PreFX Pipeline.\r\n         *\r\n         * Lots of FX require additional spacing added to the texture the\r\n         * Game Object uses, for example a glow or shadow effect, and this\r\n         * method allows you to control how much extra padding is included\r\n         * in addition to the texture size.\r\n         *\r\n         * You do not need to set this if you're only using Post FX.\r\n         *\r\n         * @name Phaser.GameObjects.Components.FX#padding\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.60.0\r\n         */\r\n        this.padding = 0;\r\n    },\r\n\r\n    /**\r\n     * Sets the amount of extra padding to be applied to this Game Object\r\n     * when it is being rendered by a PreFX Pipeline.\r\n     *\r\n     * Lots of FX require additional spacing added to the texture the\r\n     * Game Object uses, for example a glow or shadow effect, and this\r\n     * method allows you to control how much extra padding is included\r\n     * in addition to the texture size.\r\n     *\r\n     * You do not need to set this if you're only using Post FX.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#setPadding\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [padding=0] - The amount of padding to add to this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setPadding: function (padding)\r\n    {\r\n        if (padding === undefined) { padding = 0; }\r\n\r\n        this.padding = padding;\r\n\r\n        return this.gameObject;\r\n    },\r\n\r\n    /**\r\n     * This callback is invoked when this Game Object is copied by a PreFX Pipeline.\r\n     *\r\n     * This happens when the pipeline uses its `copySprite` method.\r\n     *\r\n     * It's invoked prior to the copy, allowing you to set shader uniforms, etc on the pipeline.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#onFXCopy\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.Renderer.WebGL.Pipelines.PreFXPipeline} pipeline - The PreFX Pipeline that invoked this callback.\r\n     */\r\n    onFXCopy: function ()\r\n    {\r\n    },\r\n\r\n    /**\r\n     * This callback is invoked when this Game Object is rendered by a PreFX Pipeline.\r\n     *\r\n     * This happens when the pipeline uses its `drawSprite` method.\r\n     *\r\n     * It's invoked prior to the draw, allowing you to set shader uniforms, etc on the pipeline.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#onFX\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.Renderer.WebGL.Pipelines.PreFXPipeline} pipeline - The PreFX Pipeline that invoked this callback.\r\n     */\r\n    onFX: function ()\r\n    {\r\n    },\r\n\r\n    /**\r\n     * Enables this FX Component and applies the FXPipeline to the parent Game Object.\r\n     *\r\n     * This is called automatically whenever you call a method such as `addBloom`, etc.\r\n     *\r\n     * You can check the `enabled` property to see if the Game Object is already enabled, or not.\r\n     *\r\n     * This only applies to Pre FX. Post FX are always enabled.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#enable\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [padding=0] - The amount of padding to add to this Game Object.\r\n     */\r\n    enable: function (padding)\r\n    {\r\n        if (this.isPost)\r\n        {\r\n            return;\r\n        }\r\n\r\n        var renderer = this.gameObject.scene.sys.renderer;\r\n\r\n        if (renderer && renderer.pipelines)\r\n        {\r\n            this.gameObject.pipeline = renderer.pipelines.FX_PIPELINE;\r\n\r\n            if (padding !== undefined)\r\n            {\r\n                this.padding = padding;\r\n            }\r\n\r\n            this.enabled = true;\r\n        }\r\n        else\r\n        {\r\n            this.enabled = false;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Destroys and removes all FX Controllers that are part of this FX Component,\r\n     * then disables it.\r\n     *\r\n     * If this is a Pre FX Component it will only remove Pre FX.\r\n     * If this is a Post FX Component it will only remove Post FX.\r\n     *\r\n     * To remove both at once use the `GameObject.clearFX` method instead.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#clear\r\n     * @since 3.60.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    clear: function ()\r\n    {\r\n        if (this.isPost)\r\n        {\r\n            this.gameObject.resetPostPipeline(true);\r\n        }\r\n        else\r\n        {\r\n            var list = this.list;\r\n\r\n            for (var i = 0; i < list.length; i++)\r\n            {\r\n                list[i].destroy();\r\n            }\r\n\r\n            this.list = [];\r\n        }\r\n\r\n        this.enabled = false;\r\n\r\n        return this.gameObject;\r\n    },\r\n\r\n    /**\r\n     * Searches for the given FX Controller within this FX Component.\r\n     *\r\n     * If found, the controller is removed from this component and then destroyed.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#remove\r\n     * @since 3.60.0\r\n     *\r\n     * @generic {Phaser.FX.Controller} T\r\n     * @genericUse {T} - [fx]\r\n     *\r\n     * @param {Phaser.FX.Controller} fx - The FX Controller to remove from this FX Component.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    remove: function (fx)\r\n    {\r\n        var i;\r\n\r\n        if (this.isPost)\r\n        {\r\n            var pipelines = this.gameObject.getPostPipeline(String(fx.type));\r\n\r\n            if (!Array.isArray(pipelines))\r\n            {\r\n                pipelines = [ pipelines ];\r\n            }\r\n\r\n            for (i = 0; i < pipelines.length; i++)\r\n            {\r\n                var pipeline = pipelines[i];\r\n\r\n                if (pipeline.controller === fx)\r\n                {\r\n                    this.gameObject.removePostPipeline(pipeline);\r\n\r\n                    fx.destroy();\r\n\r\n                    break;\r\n                }\r\n            }\r\n        }\r\n        else\r\n        {\r\n            var list = this.list;\r\n\r\n            for (i = 0; i < list.length; i++)\r\n            {\r\n                if (list[i] === fx)\r\n                {\r\n                    SpliceOne(list, i);\r\n\r\n                    fx.destroy();\r\n                }\r\n            }\r\n        }\r\n\r\n        return this.gameObject;\r\n    },\r\n\r\n    /**\r\n     * Disables this FX Component.\r\n     *\r\n     * This will reset the pipeline on the Game Object that owns this component back to its\r\n     * default and flag this component as disabled.\r\n     *\r\n     * You can re-enable it again by calling `enable` for Pre FX or by adding an FX for Post FX.\r\n     *\r\n     * Optionally, set `clear` to destroy all current FX Controllers.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#disable\r\n     * @since 3.60.0\r\n     *\r\n     * @param {boolean} [clear=false] - Destroy and remove all FX Controllers that are part of this component.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    disable: function (clear)\r\n    {\r\n        if (clear === undefined) { clear = false; }\r\n\r\n        if (!this.isPost)\r\n        {\r\n            this.gameObject.resetPipeline();\r\n        }\r\n\r\n        this.enabled = false;\r\n\r\n        if (clear)\r\n        {\r\n            this.clear();\r\n        }\r\n\r\n        return this.gameObject;\r\n    },\r\n\r\n    /**\r\n     * Adds the given FX Controler to this FX Component.\r\n     *\r\n     * Note that adding an FX Controller does not remove any existing FX. They all stack-up\r\n     * on-top of each other. If you don't want this, make sure to call either `remove` or\r\n     * `clear` first.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#add\r\n     * @since 3.60.0\r\n     *\r\n     * @generic {Phaser.FX.Controller} T\r\n     * @genericUse {T} - [fx]\r\n     *\r\n     * @param {Phaser.FX.Controller} fx - The FX Controller to add to this FX Component.\r\n     * @param {object} [config] - Optional configuration object that is passed to the pipeline during instantiation.\r\n     *\r\n     * @return {Phaser.FX.Controller} The FX Controller.\r\n     */\r\n    add: function (fx, config)\r\n    {\r\n        if (this.isPost)\r\n        {\r\n            var type = String(fx.type);\r\n\r\n            this.gameObject.setPostPipeline(type, config);\r\n\r\n            var pipeline = this.gameObject.getPostPipeline(type);\r\n\r\n            if (pipeline)\r\n            {\r\n                if (Array.isArray(pipeline))\r\n                {\r\n                    pipeline = pipeline.pop();\r\n                }\r\n\r\n                if (pipeline)\n                {\r\n                    pipeline.controller = fx;\r\n                }\r\n\r\n                return fx;\r\n            }\r\n        }\r\n        else\r\n        {\r\n            if (!this.enabled)\r\n            {\r\n                this.enable();\r\n            }\r\n\r\n            this.list.push(fx);\r\n\r\n            return fx;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Adds a Glow effect.\r\n     *\r\n     * The glow effect is a visual technique that creates a soft, luminous halo around game objects,\r\n     * characters, or UI elements. This effect is used to emphasize importance, enhance visual appeal,\r\n     * or convey a sense of energy, magic, or otherworldly presence. The effect can also be set on\r\n     * the inside of the Game Object. The color and strength of the glow can be modified.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addGlow\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [color=0xffffff] - The color of the glow effect as a number value.\r\n     * @param {number} [outerStrength=4] - The strength of the glow outward from the edge of the Sprite.\r\n     * @param {number} [innerStrength=0] - The strength of the glow inward from the edge of the Sprite.\r\n     * @param {boolean} [knockout=false] - If `true` only the glow is drawn, not the texture itself.\r\n     * @param {number} [quality=0.1] - Only available for PostFX. Sets the quality of this Glow effect. Default is 0.1. Cannot be changed post-creation.\r\n     * @param {number} [distance=10] - Only available for PostFX. Sets the distance of this Glow effect. Default is 10. Cannot be changed post-creation.\r\n     *\r\n     * @return {Phaser.FX.Glow} The Glow FX Controller.\r\n     */\r\n    addGlow: function (color, outerStrength, innerStrength, knockout, quality, distance)\r\n    {\r\n        return this.add(new Effects.Glow(this.gameObject, color, outerStrength, innerStrength, knockout), { quality: quality, distance: distance });\r\n    },\r\n\r\n    /**\r\n     * Adds a Shadow effect.\r\n     *\r\n     * The shadow effect is a visual technique used to create the illusion of depth and realism by adding darker,\r\n     * offset silhouettes or shapes beneath game objects, characters, or environments. These simulated shadows\r\n     * help to enhance the visual appeal and immersion, making the 2D game world appear more dynamic and three-dimensional.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addShadow\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [x=0] - The horizontal offset of the shadow effect.\r\n     * @param {number} [y=0] - The vertical offset of the shadow effect.\r\n     * @param {number} [decay=0.1] - The amount of decay for shadow effect.\r\n     * @param {number} [power=1] - The power of the shadow effect.\r\n     * @param {number} [color=0x000000] - The color of the shadow.\r\n     * @param {number} [samples=6] - The number of samples that the shadow effect will run for. An integer between 1 and 12.\r\n     * @param {number} [intensity=1] - The intensity of the shadow effect.\r\n     *\r\n     * @return {Phaser.FX.Shadow} The Shadow FX Controller.\r\n     */\r\n    addShadow: function (x, y, decay, power, color, samples, intensity)\r\n    {\r\n        return this.add(new Effects.Shadow(this.gameObject, x, y, decay, power, color, samples, intensity));\r\n    },\r\n\r\n    /**\r\n     * Adds a Pixelate effect.\r\n     *\r\n     * The pixelate effect is a visual technique that deliberately reduces the resolution or detail of an image,\r\n     * creating a blocky or mosaic appearance composed of large, visible pixels. This effect can be used for stylistic\r\n     * purposes, as a homage to retro gaming, or as a means to obscure certain elements within the game, such as\r\n     * during a transition or to censor specific content.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addPixelate\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [amount=1] - The amount of pixelation to apply.\r\n     *\r\n     * @return {Phaser.FX.Pixelate} The Pixelate FX Controller.\r\n     */\r\n    addPixelate: function (amount)\r\n    {\r\n        return this.add(new Effects.Pixelate(this.gameObject, amount));\r\n    },\r\n\r\n    /**\r\n     * Adds a Vignette effect.\r\n     *\r\n     * The vignette effect is a visual technique where the edges of the screen, or a Game Object, gradually darken or blur,\r\n     * creating a frame-like appearance. This effect is used to draw the player's focus towards the central action or subject,\r\n     * enhance immersion, and provide a cinematic or artistic quality to the game's visuals.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addVignette\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [x=0.5] - The horizontal offset of the vignette effect. This value is normalized to the range 0 to 1.\r\n     * @param {number} [y=0.5] - The vertical offset of the vignette effect. This value is normalized to the range 0 to 1.\r\n     * @param {number} [radius=0.5] - The radius of the vignette effect. This value is normalized to the range 0 to 1.\r\n     * @param {number} [strength=0.5] - The strength of the vignette effect.\r\n     *\r\n     * @return {Phaser.FX.Vignette} The Vignette FX Controller.\r\n     */\r\n    addVignette: function (x, y, radius, strength)\r\n    {\r\n        return this.add(new Effects.Vignette(this.gameObject, x, y, radius, strength));\r\n    },\r\n\r\n    /**\r\n     * Adds a Shine effect.\r\n     *\r\n     * The shine effect is a visual technique that simulates the appearance of reflective\r\n     * or glossy surfaces by passing a light beam across a Game Object. This effect is used to\r\n     * enhance visual appeal, emphasize certain features, and create a sense of depth or\r\n     * material properties.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addShine\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [speed=0.5] - The speed of the Shine effect.\r\n     * @param {number} [lineWidth=0.5] - The line width of the Shine effect.\r\n     * @param {number} [gradient=3] - The gradient of the Shine effect.\r\n     * @param {boolean} [reveal=false] - Does this Shine effect reveal or get added to its target?\r\n     *\r\n     * @return {Phaser.FX.Shine} The Shine FX Controller.\r\n     */\r\n    addShine: function (speed, lineWidth, gradient, reveal)\r\n    {\r\n        return this.add(new Effects.Shine(this.gameObject, speed, lineWidth, gradient, reveal));\r\n    },\r\n\r\n    /**\r\n     * Adds a Blur effect.\r\n     *\r\n     * A Gaussian blur is the result of blurring an image by a Gaussian function. It is a widely used effect,\r\n     * typically to reduce image noise and reduce detail. The visual effect of this blurring technique is a\r\n     * smooth blur resembling that of viewing the image through a translucent screen, distinctly different\r\n     * from the bokeh effect produced by an out-of-focus lens or the shadow of an object under usual illumination.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addBlur\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [quality=0] - The quality of the blur effect. Can be either 0 for Low Quality, 1 for Medium Quality or 2 for High Quality.\r\n     * @param {number} [x=2] - The horizontal offset of the blur effect.\r\n     * @param {number} [y=2] - The vertical offset of the blur effect.\r\n     * @param {number} [strength=1] - The strength of the blur effect.\r\n     * @param {number} [color=0xffffff] - The color of the blur, as a hex value.\r\n     * @param {number} [steps=4] - The number of steps to run the blur effect for. This value should always be an integer.\r\n     *\r\n     * @return {Phaser.FX.Blur} The Blur FX Controller.\r\n     */\r\n    addBlur: function (quality, x, y, strength, color, steps)\r\n    {\r\n        return this.add(new Effects.Blur(this.gameObject, quality, x, y, strength, color, steps));\r\n    },\r\n\r\n    /**\r\n     * Adds a Gradient effect.\r\n     *\r\n     * The gradient overlay effect is a visual technique where a smooth color transition is applied over Game Objects,\r\n     * such as sprites or UI components. This effect is used to enhance visual appeal, emphasize depth, or create\r\n     * stylistic and atmospheric variations. It can also be utilized to convey information, such as representing\r\n     * progress or health status through color changes.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addGradient\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [color1=0xff0000] - The first gradient color, given as a number value.\r\n     * @param {number} [color2=0x00ff00] - The second gradient color, given as a number value.\r\n     * @param {number} [alpha=0.2] - The alpha value of the gradient effect.\r\n     * @param {number} [fromX=0] - The horizontal position the gradient will start from. This value is normalized, between 0 and 1, and is not in pixels.\r\n     * @param {number} [fromY=0] - The vertical position the gradient will start from. This value is normalized, between 0 and 1, and is not in pixels.\r\n     * @param {number} [toX=0] - The horizontal position the gradient will end at. This value is normalized, between 0 and 1, and is not in pixels.\r\n     * @param {number} [toY=1] - The vertical position the gradient will end at. This value is normalized, between 0 and 1, and is not in pixels.\r\n     * @param {number} [size=0] - How many 'chunks' the gradient is divided in to, as spread over the entire height of the texture. Leave this at zero for a smooth gradient, or set higher for a more retro chunky effect.\r\n     *\r\n     * @return {Phaser.FX.Gradient} The Gradient FX Controller.\r\n     */\r\n    addGradient: function (color1, color2, alpha, fromX, fromY, toX, toY, size)\r\n    {\r\n        return this.add(new Effects.Gradient(this.gameObject, color1, color2, alpha, fromX, fromY, toX, toY, size));\r\n    },\r\n\r\n    /**\r\n     * Adds a Bloom effect.\r\n     *\r\n     * Bloom is an effect used to reproduce an imaging artifact of real-world cameras.\r\n     * The effect produces fringes of light extending from the borders of bright areas in an image,\r\n     * contributing to the illusion of an extremely bright light overwhelming the\r\n     * camera or eye capturing the scene.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addBloom\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [color] - The color of the Bloom, as a hex value.\r\n     * @param {number} [offsetX=1] - The horizontal offset of the bloom effect.\r\n     * @param {number} [offsetY=1] - The vertical offset of the bloom effect.\r\n     * @param {number} [blurStrength=1] - The strength of the blur process of the bloom effect.\r\n     * @param {number} [strength=1] - The strength of the blend process of the bloom effect.\r\n     * @param {number} [steps=4] - The number of steps to run the Bloom effect for. This value should always be an integer.\r\n     *\r\n     * @return {Phaser.FX.Bloom} The Bloom FX Controller.\r\n     */\r\n    addBloom: function (color, offsetX, offsetY, blurStrength, strength, steps)\r\n    {\r\n        return this.add(new Effects.Bloom(this.gameObject, color, offsetX, offsetY, blurStrength, strength, steps));\r\n    },\r\n\r\n    /**\r\n     * Adds a ColorMatrix effect.\r\n     *\r\n     * The color matrix effect is a visual technique that involves manipulating the colors of an image\r\n     * or scene using a mathematical matrix. This process can adjust hue, saturation, brightness, and contrast,\r\n     * allowing developers to create various stylistic appearances or mood settings within the game.\r\n     * Common applications include simulating different lighting conditions, applying color filters,\r\n     * or achieving a specific visual style.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addColorMatrix\r\n     * @since 3.60.0\r\n     *\r\n     * @return {Phaser.FX.ColorMatrix} The ColorMatrix FX Controller.\r\n     */\r\n    addColorMatrix: function ()\r\n    {\r\n        return this.add(new Effects.ColorMatrix(this.gameObject));\r\n    },\r\n\r\n    /**\r\n     * Adds a Circle effect.\r\n     *\r\n     * This effect will draw a circle around the texture of the Game Object, effectively masking off\r\n     * any area outside of the circle without the need for an actual mask. You can control the thickness\r\n     * of the circle, the color of the circle and the color of the background, should the texture be\r\n     * transparent. You can also control the feathering applied to the circle, allowing for a harsh or soft edge.\r\n     *\r\n     * Please note that adding this effect to a Game Object will not change the input area or physics body of\r\n     * the Game Object, should it have one.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addCircle\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [thickness=8] - The width of the circle around the texture, in pixels.\r\n     * @param {number} [color=0xfeedb6] - The color of the circular ring, given as a number value.\r\n     * @param {number} [backgroundColor=0xff0000] - The color of the background, behind the texture, given as a number value.\r\n     * @param {number} [scale=1] - The scale of the circle. The default scale is 1, which is a circle the full size of the underlying texture.\r\n     * @param {number} [feather=0.005] - The amount of feathering to apply to the circle from the ring.\r\n     *\r\n     * @return {Phaser.FX.Circle} The Circle FX Controller.\r\n     */\r\n    addCircle: function (thickness, color, backgroundColor, scale, feather)\r\n    {\r\n        return this.add(new Effects.Circle(this.gameObject, thickness, color, backgroundColor, scale, feather));\r\n    },\r\n\r\n    /**\r\n     * Adds a Barrel effect.\r\n     *\r\n     * A barrel effect allows you to apply either a 'pinch' or 'expand' distortion to\r\n     * a Game Object. The amount of the effect can be modified in real-time.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addBarrel\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [amount=1] - The amount of distortion applied to the barrel effect. A value of 1 is no distortion. Typically keep this within +- 1.\r\n     *\r\n     * @return {Phaser.FX.Barrel} The Barrel FX Controller.\r\n     */\r\n    addBarrel: function (amount)\r\n    {\r\n        return this.add(new Effects.Barrel(this.gameObject, amount));\r\n    },\r\n\r\n    /**\r\n     * Adds a Displacement effect.\r\n     *\r\n     * The displacement effect is a visual technique that alters the position of pixels in an image\r\n     * or texture based on the values of a displacement map. This effect is used to create the illusion\r\n     * of depth, surface irregularities, or distortion in otherwise flat elements. It can be applied to\r\n     * characters, objects, or backgrounds to enhance realism, convey movement, or achieve various\r\n     * stylistic appearances.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addDisplacement\r\n     * @since 3.60.0\r\n     *\r\n     * @param {string} [texture='__WHITE'] - The unique string-based key of the texture to use for displacement, which must exist in the Texture Manager.\r\n     * @param {number} [x=0.005] - The amount of horizontal displacement to apply. A very small float number, such as 0.005.\r\n     * @param {number} [y=0.005] - The amount of vertical displacement to apply. A very small float number, such as 0.005.\r\n     *\r\n     * @return {Phaser.FX.Displacement} The Displacement FX Controller.\r\n     */\r\n    addDisplacement: function (texture, x, y)\r\n    {\r\n        return this.add(new Effects.Displacement(this.gameObject, texture, x, y));\r\n    },\r\n\r\n    /**\r\n     * Adds a Wipe effect.\r\n     *\r\n     * The wipe or reveal effect is a visual technique that gradually uncovers or conceals elements\r\n     * in the game, such as images, text, or scene transitions. This effect is often used to create\r\n     * a sense of progression, reveal hidden content, or provide a smooth and visually appealing transition\r\n     * between game states.\r\n     *\r\n     * You can set both the direction and the axis of the wipe effect. The following combinations are possible:\r\n     *\r\n     * * left to right: direction 0, axis 0\r\n     * * right to left: direction 1, axis 0\r\n     * * top to bottom: direction 1, axis 1\r\n     * * bottom to top: direction 1, axis 0\r\n     *\r\n     * It is up to you to set the `progress` value yourself, i.e. via a Tween, in order to transition the effect.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addWipe\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [wipeWidth=0.1] - The width of the wipe effect. This value is normalized in the range 0 to 1.\r\n     * @param {number} [direction=0] - The direction of the wipe effect. Either 0 or 1. Set in conjunction with the axis property.\r\n     * @param {number} [axis=0] - The axis of the wipe effect. Either 0 or 1. Set in conjunction with the direction property.\r\n     *\r\n     * @return {Phaser.FX.Wipe} The Wipe FX Controller.\r\n     */\r\n    addWipe: function (wipeWidth, direction, axis)\r\n    {\r\n        return this.add(new Effects.Wipe(this.gameObject, wipeWidth, direction, axis));\r\n    },\r\n\r\n    /**\r\n     * Adds a Reveal Wipe effect.\r\n     *\r\n     * The wipe or reveal effect is a visual technique that gradually uncovers or conceals elements\r\n     * in the game, such as images, text, or scene transitions. This effect is often used to create\r\n     * a sense of progression, reveal hidden content, or provide a smooth and visually appealing transition\r\n     * between game states.\r\n     *\r\n     * You can set both the direction and the axis of the wipe effect. The following combinations are possible:\r\n     *\r\n     * * left to right: direction 0, axis 0\r\n     * * right to left: direction 1, axis 0\r\n     * * top to bottom: direction 1, axis 1\r\n     * * bottom to top: direction 1, axis 0\r\n     *\r\n     * It is up to you to set the `progress` value yourself, i.e. via a Tween, in order to transition the effect.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addReveal\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [wipeWidth=0.1] - The width of the wipe effect. This value is normalized in the range 0 to 1.\r\n     * @param {number} [direction=0] - The direction of the wipe effect. Either 0 or 1. Set in conjunction with the axis property.\r\n     * @param {number} [axis=0] - The axis of the wipe effect. Either 0 or 1. Set in conjunction with the direction property.\r\n     *\r\n     * @return {Phaser.FX.Wipe} The Wipe FX Controller.\r\n     */\r\n    addReveal: function (wipeWidth, direction, axis)\r\n    {\r\n        return this.add(new Effects.Wipe(this.gameObject, wipeWidth, direction, axis, true));\r\n    },\r\n\r\n    /**\r\n     * Adds a Bokeh effect.\r\n     *\r\n     * Bokeh refers to a visual effect that mimics the photographic technique of creating a shallow depth of field.\r\n     * This effect is used to emphasize the game's main subject or action, by blurring the background or foreground\r\n     * elements, resulting in a more immersive and visually appealing experience. It is achieved through rendering\r\n     * techniques that simulate the out-of-focus areas, giving a sense of depth and realism to the game's graphics.\r\n     *\r\n     * See also Tilt Shift.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addBokeh\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [radius=0.5] - The radius of the bokeh effect.\r\n     * @param {number} [amount=1] - The amount of the bokeh effect.\r\n     * @param {number} [contrast=0.2] - The color contrast of the bokeh effect.\r\n     *\r\n     * @return {Phaser.FX.Bokeh} The Bokeh FX Controller.\r\n     */\r\n    addBokeh: function (radius, amount, contrast)\r\n    {\r\n        return this.add(new Effects.Bokeh(this.gameObject, radius, amount, contrast));\r\n    },\r\n\r\n    /**\r\n     * Adds a Tilt Shift effect.\r\n     *\r\n     * This Bokeh effect can also be used to generate a Tilt Shift effect, which is a technique used to create a miniature\r\n     * effect by blurring everything except a small area of the image. This effect is achieved by blurring the\r\n     * top and bottom elements, while keeping the center area in focus.\r\n     *\r\n     * See also Bokeh.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#addTiltShift\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [radius=0.5] - The radius of the bokeh effect.\r\n     * @param {number} [amount=1] - The amount of the bokeh effect.\r\n     * @param {number} [contrast=0.2] - The color contrast of the bokeh effect.\r\n     * @param {number} [blurX=1] - The amount of horizontal blur.\r\n     * @param {number} [blurY=1] - The amount of vertical blur.\r\n     * @param {number} [strength=1] - The strength of the blur.\r\n     *\r\n     * @return {Phaser.FX.Bokeh} The Bokeh TiltShift FX Controller.\r\n     */\r\n    addTiltShift: function (radius, amount, contrast, blurX, blurY, strength)\r\n    {\r\n        return this.add(new Effects.Bokeh(this.gameObject, radius, amount, contrast, true, blurX, blurY, strength));\r\n    },\r\n\r\n    /**\r\n     * Destroys this FX Component.\r\n     *\r\n     * Called automatically when Game Objects are destroyed.\r\n     *\r\n     * @method Phaser.GameObjects.Components.FX#destroy\r\n     * @since 3.60.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.clear();\r\n\r\n        this.gameObject = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = FX;\r\n\n\n/***/ }),\n\n/***/ 54434:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Provides methods used for visually flipping a Game Object.\r\n * Should be applied as a mixin and not used directly.\r\n *\r\n * @namespace Phaser.GameObjects.Components.Flip\r\n * @since 3.0.0\r\n */\r\n\r\nvar Flip = {\r\n\r\n    /**\r\n     * The horizontally flipped state of the Game Object.\r\n     *\r\n     * A Game Object that is flipped horizontally will render inversed on the horizontal axis.\r\n     * Flipping always takes place from the middle of the texture and does not impact the scale value.\r\n     * If this Game Object has a physics body, it will not change the body. This is a rendering toggle only.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Flip#flipX\r\n     * @type {boolean}\r\n     * @default false\r\n     * @since 3.0.0\r\n     */\r\n    flipX: false,\r\n\r\n    /**\r\n     * The vertically flipped state of the Game Object.\r\n     *\r\n     * A Game Object that is flipped vertically will render inversed on the vertical axis (i.e. upside down)\r\n     * Flipping always takes place from the middle of the texture and does not impact the scale value.\r\n     * If this Game Object has a physics body, it will not change the body. This is a rendering toggle only.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Flip#flipY\r\n     * @type {boolean}\r\n     * @default false\r\n     * @since 3.0.0\r\n     */\r\n    flipY: false,\r\n\r\n    /**\r\n     * Toggles the horizontal flipped state of this Game Object.\r\n     *\r\n     * A Game Object that is flipped horizontally will render inversed on the horizontal axis.\r\n     * Flipping always takes place from the middle of the texture and does not impact the scale value.\r\n     * If this Game Object has a physics body, it will not change the body. This is a rendering toggle only.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Flip#toggleFlipX\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    toggleFlipX: function ()\r\n    {\r\n        this.flipX = !this.flipX;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Toggles the vertical flipped state of this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Flip#toggleFlipY\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    toggleFlipY: function ()\r\n    {\r\n        this.flipY = !this.flipY;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the horizontal flipped state of this Game Object.\r\n     *\r\n     * A Game Object that is flipped horizontally will render inversed on the horizontal axis.\r\n     * Flipping always takes place from the middle of the texture and does not impact the scale value.\r\n     * If this Game Object has a physics body, it will not change the body. This is a rendering toggle only.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Flip#setFlipX\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} value - The flipped state. `false` for no flip, or `true` to be flipped.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setFlipX: function (value)\r\n    {\r\n        this.flipX = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the vertical flipped state of this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Flip#setFlipY\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} value - The flipped state. `false` for no flip, or `true` to be flipped.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setFlipY: function (value)\r\n    {\r\n        this.flipY = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the horizontal and vertical flipped state of this Game Object.\r\n     *\r\n     * A Game Object that is flipped will render inversed on the flipped axis.\r\n     * Flipping always takes place from the middle of the texture and does not impact the scale value.\r\n     * If this Game Object has a physics body, it will not change the body. This is a rendering toggle only.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Flip#setFlip\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} x - The horizontal flipped state. `false` for no flip, or `true` to be flipped.\r\n     * @param {boolean} y - The horizontal flipped state. `false` for no flip, or `true` to be flipped.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setFlip: function (x, y)\r\n    {\r\n        this.flipX = x;\r\n        this.flipY = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Resets the horizontal and vertical flipped state of this Game Object back to their default un-flipped state.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Flip#resetFlip\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    resetFlip: function ()\r\n    {\r\n        this.flipX = false;\r\n        this.flipY = false;\r\n\r\n        return this;\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = Flip;\r\n\n\n/***/ }),\n\n/***/ 8004:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Rectangle = __webpack_require__(87841);\r\nvar RotateAround = __webpack_require__(11520);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * Provides methods used for obtaining the bounds of a Game Object.\r\n * Should be applied as a mixin and not used directly.\r\n *\r\n * @namespace Phaser.GameObjects.Components.GetBounds\r\n * @since 3.0.0\r\n */\r\n\r\nvar GetBounds = {\r\n\r\n    /**\r\n     * Processes the bounds output vector before returning it.\r\n     *\r\n     * @method Phaser.GameObjects.Components.GetBounds#prepareBoundsOutput\r\n     * @private\r\n     * @since 3.18.0\r\n     *\r\n     * @generic {Phaser.Types.Math.Vector2Like} O - [output,$return]\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} output - An object to store the values in. If not provided a new Vector2 will be created.\r\n     * @param {boolean} [includeParent=false] - If this Game Object has a parent Container, include it (and all other ancestors) in the resulting vector?\r\n     *\r\n     * @return {Phaser.Types.Math.Vector2Like} The values stored in the output object.\r\n     */\r\n    prepareBoundsOutput: function (output, includeParent)\r\n    {\r\n        if (includeParent === undefined) { includeParent = false; }\r\n\r\n        if (this.rotation !== 0)\r\n        {\r\n            RotateAround(output, this.x, this.y, this.rotation);\r\n        }\r\n\r\n        if (includeParent && this.parentContainer)\r\n        {\r\n            var parentMatrix = this.parentContainer.getBoundsTransformMatrix();\r\n\r\n            parentMatrix.transformPoint(output.x, output.y, output);\r\n        }\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Gets the center coordinate of this Game Object, regardless of origin.\r\n     *\r\n     * The returned point is calculated in local space and does not factor in any parent Containers,\r\n     * unless the `includeParent` argument is set to `true`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.GetBounds#getCenter\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Types.Math.Vector2Like} O - [output,$return]\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} [output] - An object to store the values in. If not provided a new Vector2 will be created.\r\n     * @param {boolean} [includeParent=false] - If this Game Object has a parent Container, include it (and all other ancestors) in the resulting vector?\r\n     *\r\n     * @return {Phaser.Types.Math.Vector2Like} The values stored in the output object.\r\n     */\r\n    getCenter: function (output, includeParent)\r\n    {\r\n        if (output === undefined) { output = new Vector2(); }\r\n\r\n        output.x = this.x - (this.displayWidth * this.originX) + (this.displayWidth / 2);\r\n        output.y = this.y - (this.displayHeight * this.originY) + (this.displayHeight / 2);\r\n\r\n        return this.prepareBoundsOutput(output, includeParent);\r\n    },\r\n\r\n    /**\r\n     * Gets the top-left corner coordinate of this Game Object, regardless of origin.\r\n     *\r\n     * The returned point is calculated in local space and does not factor in any parent Containers,\r\n     * unless the `includeParent` argument is set to `true`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.GetBounds#getTopLeft\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Types.Math.Vector2Like} O - [output,$return]\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} [output] - An object to store the values in. If not provided a new Vector2 will be created.\r\n     * @param {boolean} [includeParent=false] - If this Game Object has a parent Container, include it (and all other ancestors) in the resulting vector?\r\n     *\r\n     * @return {Phaser.Types.Math.Vector2Like} The values stored in the output object.\r\n     */\r\n    getTopLeft: function (output, includeParent)\r\n    {\r\n        if (!output) { output = new Vector2(); }\r\n\r\n        output.x = this.x - (this.displayWidth * this.originX);\r\n        output.y = this.y - (this.displayHeight * this.originY);\r\n\r\n        return this.prepareBoundsOutput(output, includeParent);\r\n    },\r\n\r\n    /**\r\n     * Gets the top-center coordinate of this Game Object, regardless of origin.\r\n     *\r\n     * The returned point is calculated in local space and does not factor in any parent Containers,\r\n     * unless the `includeParent` argument is set to `true`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.GetBounds#getTopCenter\r\n     * @since 3.18.0\r\n     *\r\n     * @generic {Phaser.Types.Math.Vector2Like} O - [output,$return]\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} [output] - An object to store the values in. If not provided a new Vector2 will be created.\r\n     * @param {boolean} [includeParent=false] - If this Game Object has a parent Container, include it (and all other ancestors) in the resulting vector?\r\n     *\r\n     * @return {Phaser.Types.Math.Vector2Like} The values stored in the output object.\r\n     */\r\n    getTopCenter: function (output, includeParent)\r\n    {\r\n        if (!output) { output = new Vector2(); }\r\n\r\n        output.x = (this.x - (this.displayWidth * this.originX)) + (this.displayWidth / 2);\r\n        output.y = this.y - (this.displayHeight * this.originY);\r\n\r\n        return this.prepareBoundsOutput(output, includeParent);\r\n    },\r\n\r\n    /**\r\n     * Gets the top-right corner coordinate of this Game Object, regardless of origin.\r\n     *\r\n     * The returned point is calculated in local space and does not factor in any parent Containers,\r\n     * unless the `includeParent` argument is set to `true`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.GetBounds#getTopRight\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Types.Math.Vector2Like} O - [output,$return]\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} [output] - An object to store the values in. If not provided a new Vector2 will be created.\r\n     * @param {boolean} [includeParent=false] - If this Game Object has a parent Container, include it (and all other ancestors) in the resulting vector?\r\n     *\r\n     * @return {Phaser.Types.Math.Vector2Like} The values stored in the output object.\r\n     */\r\n    getTopRight: function (output, includeParent)\r\n    {\r\n        if (!output) { output = new Vector2(); }\r\n\r\n        output.x = (this.x - (this.displayWidth * this.originX)) + this.displayWidth;\r\n        output.y = this.y - (this.displayHeight * this.originY);\r\n\r\n        return this.prepareBoundsOutput(output, includeParent);\r\n    },\r\n\r\n    /**\r\n     * Gets the left-center coordinate of this Game Object, regardless of origin.\r\n     *\r\n     * The returned point is calculated in local space and does not factor in any parent Containers,\r\n     * unless the `includeParent` argument is set to `true`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.GetBounds#getLeftCenter\r\n     * @since 3.18.0\r\n     *\r\n     * @generic {Phaser.Types.Math.Vector2Like} O - [output,$return]\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} [output] - An object to store the values in. If not provided a new Vector2 will be created.\r\n     * @param {boolean} [includeParent=false] - If this Game Object has a parent Container, include it (and all other ancestors) in the resulting vector?\r\n     *\r\n     * @return {Phaser.Types.Math.Vector2Like} The values stored in the output object.\r\n     */\r\n    getLeftCenter: function (output, includeParent)\r\n    {\r\n        if (!output) { output = new Vector2(); }\r\n\r\n        output.x = this.x - (this.displayWidth * this.originX);\r\n        output.y = (this.y - (this.displayHeight * this.originY)) + (this.displayHeight / 2);\r\n\r\n        return this.prepareBoundsOutput(output, includeParent);\r\n    },\r\n\r\n    /**\r\n     * Gets the right-center coordinate of this Game Object, regardless of origin.\r\n     *\r\n     * The returned point is calculated in local space and does not factor in any parent Containers,\r\n     * unless the `includeParent` argument is set to `true`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.GetBounds#getRightCenter\r\n     * @since 3.18.0\r\n     *\r\n     * @generic {Phaser.Types.Math.Vector2Like} O - [output,$return]\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} [output] - An object to store the values in. If not provided a new Vector2 will be created.\r\n     * @param {boolean} [includeParent=false] - If this Game Object has a parent Container, include it (and all other ancestors) in the resulting vector?\r\n     *\r\n     * @return {Phaser.Types.Math.Vector2Like} The values stored in the output object.\r\n     */\r\n    getRightCenter: function (output, includeParent)\r\n    {\r\n        if (!output) { output = new Vector2(); }\r\n\r\n        output.x = (this.x - (this.displayWidth * this.originX)) + this.displayWidth;\r\n        output.y = (this.y - (this.displayHeight * this.originY)) + (this.displayHeight / 2);\r\n\r\n        return this.prepareBoundsOutput(output, includeParent);\r\n    },\r\n\r\n    /**\r\n     * Gets the bottom-left corner coordinate of this Game Object, regardless of origin.\r\n     *\r\n     * The returned point is calculated in local space and does not factor in any parent Containers,\r\n     * unless the `includeParent` argument is set to `true`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.GetBounds#getBottomLeft\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Types.Math.Vector2Like} O - [output,$return]\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} [output] - An object to store the values in. If not provided a new Vector2 will be created.\r\n     * @param {boolean} [includeParent=false] - If this Game Object has a parent Container, include it (and all other ancestors) in the resulting vector?\r\n     *\r\n     * @return {Phaser.Types.Math.Vector2Like} The values stored in the output object.\r\n     */\r\n    getBottomLeft: function (output, includeParent)\r\n    {\r\n        if (!output) { output = new Vector2(); }\r\n\r\n        output.x = this.x - (this.displayWidth * this.originX);\r\n        output.y = (this.y - (this.displayHeight * this.originY)) + this.displayHeight;\r\n\r\n        return this.prepareBoundsOutput(output, includeParent);\r\n    },\r\n\r\n    /**\r\n     * Gets the bottom-center coordinate of this Game Object, regardless of origin.\r\n     *\r\n     * The returned point is calculated in local space and does not factor in any parent Containers,\r\n     * unless the `includeParent` argument is set to `true`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.GetBounds#getBottomCenter\r\n     * @since 3.18.0\r\n     *\r\n     * @generic {Phaser.Types.Math.Vector2Like} O - [output,$return]\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} [output] - An object to store the values in. If not provided a new Vector2 will be created.\r\n     * @param {boolean} [includeParent=false] - If this Game Object has a parent Container, include it (and all other ancestors) in the resulting vector?\r\n     *\r\n     * @return {Phaser.Types.Math.Vector2Like} The values stored in the output object.\r\n     */\r\n    getBottomCenter: function (output, includeParent)\r\n    {\r\n        if (!output) { output = new Vector2(); }\r\n\r\n        output.x = (this.x - (this.displayWidth * this.originX)) + (this.displayWidth / 2);\r\n        output.y = (this.y - (this.displayHeight * this.originY)) + this.displayHeight;\r\n\r\n        return this.prepareBoundsOutput(output, includeParent);\r\n    },\r\n\r\n    /**\r\n     * Gets the bottom-right corner coordinate of this Game Object, regardless of origin.\r\n     *\r\n     * The returned point is calculated in local space and does not factor in any parent Containers,\r\n     * unless the `includeParent` argument is set to `true`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.GetBounds#getBottomRight\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Types.Math.Vector2Like} O - [output,$return]\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} [output] - An object to store the values in. If not provided a new Vector2 will be created.\r\n     * @param {boolean} [includeParent=false] - If this Game Object has a parent Container, include it (and all other ancestors) in the resulting vector?\r\n     *\r\n     * @return {Phaser.Types.Math.Vector2Like} The values stored in the output object.\r\n     */\r\n    getBottomRight: function (output, includeParent)\r\n    {\r\n        if (!output) { output = new Vector2(); }\r\n\r\n        output.x = (this.x - (this.displayWidth * this.originX)) + this.displayWidth;\r\n        output.y = (this.y - (this.displayHeight * this.originY)) + this.displayHeight;\r\n\r\n        return this.prepareBoundsOutput(output, includeParent);\r\n    },\r\n\r\n    /**\r\n     * Gets the bounds of this Game Object, regardless of origin.\r\n     *\r\n     * The values are stored and returned in a Rectangle, or Rectangle-like, object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.GetBounds#getBounds\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Geom.Rectangle} O - [output,$return]\r\n     *\r\n     * @param {(Phaser.Geom.Rectangle|object)} [output] - An object to store the values in. If not provided a new Rectangle will be created.\r\n     *\r\n     * @return {(Phaser.Geom.Rectangle|object)} The values stored in the output object.\r\n     */\r\n    getBounds: function (output)\r\n    {\r\n        if (output === undefined) { output = new Rectangle(); }\r\n\r\n        //  We can use the output object to temporarily store the x/y coords in:\r\n\r\n        var TLx, TLy, TRx, TRy, BLx, BLy, BRx, BRy;\r\n\r\n        // Instead of doing a check if parent container is\r\n        // defined per corner we only do it once.\r\n        if (this.parentContainer)\r\n        {\r\n            var parentMatrix = this.parentContainer.getBoundsTransformMatrix();\r\n\r\n            this.getTopLeft(output);\r\n            parentMatrix.transformPoint(output.x, output.y, output);\r\n\r\n            TLx = output.x;\r\n            TLy = output.y;\r\n\r\n            this.getTopRight(output);\r\n            parentMatrix.transformPoint(output.x, output.y, output);\r\n\r\n            TRx = output.x;\r\n            TRy = output.y;\r\n\r\n            this.getBottomLeft(output);\r\n            parentMatrix.transformPoint(output.x, output.y, output);\r\n\r\n            BLx = output.x;\r\n            BLy = output.y;\r\n\r\n            this.getBottomRight(output);\r\n            parentMatrix.transformPoint(output.x, output.y, output);\r\n\r\n            BRx = output.x;\r\n            BRy = output.y;\r\n        }\r\n        else\r\n        {\r\n            this.getTopLeft(output);\r\n\r\n            TLx = output.x;\r\n            TLy = output.y;\r\n\r\n            this.getTopRight(output);\r\n\r\n            TRx = output.x;\r\n            TRy = output.y;\r\n\r\n            this.getBottomLeft(output);\r\n\r\n            BLx = output.x;\r\n            BLy = output.y;\r\n\r\n            this.getBottomRight(output);\r\n\r\n            BRx = output.x;\r\n            BRy = output.y;\r\n        }\r\n\r\n        output.x = Math.min(TLx, TRx, BLx, BRx);\r\n        output.y = Math.min(TLy, TRy, BLy, BRy);\r\n        output.width = Math.max(TLx, TRx, BLx, BRx) - output.x;\r\n        output.height = Math.max(TLy, TRy, BLy, BRy) - output.y;\r\n\r\n        return output;\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = GetBounds;\r\n\n\n/***/ }),\n\n/***/ 8573:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BitmapMask = __webpack_require__(6858);\r\nvar GeometryMask = __webpack_require__(80661);\r\n\r\n/**\r\n * Provides methods used for getting and setting the mask of a Game Object.\r\n *\r\n * @namespace Phaser.GameObjects.Components.Mask\r\n * @since 3.0.0\r\n */\r\n\r\nvar Mask = {\r\n\r\n    /**\r\n     * The Mask this Game Object is using during render.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Mask#mask\r\n     * @type {Phaser.Display.Masks.BitmapMask|Phaser.Display.Masks.GeometryMask}\r\n     * @since 3.0.0\r\n     */\r\n    mask: null,\r\n\r\n    /**\r\n     * Sets the mask that this Game Object will use to render with.\r\n     *\r\n     * The mask must have been previously created and can be either a GeometryMask or a BitmapMask.\r\n     * Note: Bitmap Masks only work on WebGL. Geometry Masks work on both WebGL and Canvas.\r\n     *\r\n     * If a mask is already set on this Game Object it will be immediately replaced.\r\n     *\r\n     * Masks are positioned in global space and are not relative to the Game Object to which they\r\n     * are applied. The reason for this is that multiple Game Objects can all share the same mask.\r\n     *\r\n     * Masks have no impact on physics or input detection. They are purely a rendering component\r\n     * that allows you to limit what is visible during the render pass.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Mask#setMask\r\n     * @since 3.6.2\r\n     *\r\n     * @param {Phaser.Display.Masks.BitmapMask|Phaser.Display.Masks.GeometryMask} mask - The mask this Game Object will use when rendering.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setMask: function (mask)\r\n    {\r\n        this.mask = mask;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Clears the mask that this Game Object was using.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Mask#clearMask\r\n     * @since 3.6.2\r\n     *\r\n     * @param {boolean} [destroyMask=false] - Destroy the mask before clearing it?\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    clearMask: function (destroyMask)\r\n    {\r\n        if (destroyMask === undefined) { destroyMask = false; }\r\n\r\n        if (destroyMask && this.mask)\r\n        {\r\n            this.mask.destroy();\r\n        }\r\n\r\n        this.mask = null;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Creates and returns a Bitmap Mask. This mask can be used by any Game Object,\r\n     * including this one, or a Dynamic Texture.\r\n     *\r\n     * Note: Bitmap Masks only work on WebGL. Geometry Masks work on both WebGL and Canvas.\r\n     *\r\n     * To create the mask you need to pass in a reference to a renderable Game Object.\r\n     * A renderable Game Object is one that uses a texture to render with, such as an\r\n     * Image, Sprite, Render Texture or BitmapText.\r\n     *\r\n     * If you do not provide a renderable object, and this Game Object has a texture,\r\n     * it will use itself as the object. This means you can call this method to create\r\n     * a Bitmap Mask from any renderable texture-based Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Mask#createBitmapMask\r\n     * @since 3.6.2\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} G\r\n     * @generic {Phaser.Textures.DynamicTexture} T\r\n     * @genericUse {(G|T|null)} [maskObject]\r\n     *\r\n     * @param {(Phaser.GameObjects.GameObject|Phaser.Textures.DynamicTexture)} [maskObject] - The Game Object or Dynamic Texture that will be used as the mask. If `null` it will generate an Image Game Object using the rest of the arguments.\r\n     * @param {number} [x] - If creating a Game Object, the horizontal position in the world.\r\n     * @param {number} [y] - If creating a Game Object, the vertical position in the world.\r\n     * @param {(string|Phaser.Textures.Texture)} [texture] - If creating a Game Object, the key, or instance of the Texture it will use to render with, as stored in the Texture Manager.\r\n     * @param {(string|number|Phaser.Textures.Frame)} [frame] - If creating a Game Object, an optional frame from the Texture this Game Object is rendering with.\r\n     *\r\n     * @return {Phaser.Display.Masks.BitmapMask} This Bitmap Mask that was created.\r\n     */\r\n    createBitmapMask: function (maskObject, x, y, texture, frame)\r\n    {\r\n        if (maskObject === undefined && (this.texture || this.shader || this.geom))\r\n        {\r\n            // eslint-disable-next-line consistent-this\r\n            maskObject = this;\r\n        }\r\n\r\n        return new BitmapMask(this.scene, maskObject, x, y, texture, frame);\r\n    },\r\n\r\n    /**\r\n     * Creates and returns a Geometry Mask. This mask can be used by any Game Object,\r\n     * including this one.\r\n     *\r\n     * To create the mask you need to pass in a reference to a Graphics Game Object.\r\n     *\r\n     * If you do not provide a graphics object, and this Game Object is an instance\r\n     * of a Graphics object, then it will use itself to create the mask.\r\n     *\r\n     * This means you can call this method to create a Geometry Mask from any Graphics Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Mask#createGeometryMask\r\n     * @since 3.6.2\r\n     *\r\n     * @generic {Phaser.GameObjects.Graphics} G\r\n     * @generic {Phaser.GameObjects.Shape} S\r\n     * @genericUse {(G|S)} [graphics]\r\n     *\r\n     * @param {Phaser.GameObjects.Graphics|Phaser.GameObjects.Shape} [graphics] - A Graphics Game Object, or any kind of Shape Game Object. The geometry within it will be used as the mask.\r\n     *\r\n     * @return {Phaser.Display.Masks.GeometryMask} This Geometry Mask that was created.\r\n     */\r\n    createGeometryMask: function (graphics)\r\n    {\r\n        if (graphics === undefined && (this.type === 'Graphics' || this.geom))\r\n        {\r\n            // eslint-disable-next-line consistent-this\r\n            graphics = this;\r\n        }\r\n\r\n        return new GeometryMask(this.scene, graphics);\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = Mask;\r\n\n\n/***/ }),\n\n/***/ 27387:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Provides methods used for getting and setting the origin of a Game Object.\r\n * Values are normalized, given in the range 0 to 1.\r\n * Display values contain the calculated pixel values.\r\n * Should be applied as a mixin and not used directly.\r\n *\r\n * @namespace Phaser.GameObjects.Components.Origin\r\n * @since 3.0.0\r\n */\r\n\r\nvar Origin = {\r\n\r\n    /**\r\n     * A property indicating that a Game Object has this component.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Origin#_originComponent\r\n     * @type {boolean}\r\n     * @private\r\n     * @default true\r\n     * @since 3.2.0\r\n     */\r\n    _originComponent: true,\r\n\r\n    /**\r\n     * The horizontal origin of this Game Object.\r\n     * The origin maps the relationship between the size and position of the Game Object.\r\n     * The default value is 0.5, meaning all Game Objects are positioned based on their center.\r\n     * Setting the value to 0 means the position now relates to the left of the Game Object.\r\n     * Set this value with `setOrigin()`.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Origin#originX\r\n     * @type {number}\r\n     * @readonly\r\n     * @default 0.5\r\n     * @since 3.0.0\r\n     */\r\n    originX: 0.5,\r\n\r\n    /**\r\n     * The vertical origin of this Game Object.\r\n     * The origin maps the relationship between the size and position of the Game Object.\r\n     * The default value is 0.5, meaning all Game Objects are positioned based on their center.\r\n     * Setting the value to 0 means the position now relates to the top of the Game Object.\r\n     * Set this value with `setOrigin()`.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Origin#originY\r\n     * @type {number}\r\n     * @readonly\r\n     * @default 0.5\r\n     * @since 3.0.0\r\n     */\r\n    originY: 0.5,\r\n\r\n    //  private + read only\r\n    _displayOriginX: 0,\r\n    _displayOriginY: 0,\r\n\r\n    /**\r\n     * The horizontal display origin of this Game Object.\r\n     * The origin is a normalized value between 0 and 1.\r\n     * The displayOrigin is a pixel value, based on the size of the Game Object combined with the origin.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Origin#displayOriginX\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    displayOriginX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._displayOriginX;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._displayOriginX = value;\r\n            this.originX = value / this.width;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The vertical display origin of this Game Object.\r\n     * The origin is a normalized value between 0 and 1.\r\n     * The displayOrigin is a pixel value, based on the size of the Game Object combined with the origin.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Origin#displayOriginY\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    displayOriginY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._displayOriginY;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._displayOriginY = value;\r\n            this.originY = value / this.height;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Sets the origin of this Game Object.\r\n     *\r\n     * The values are given in the range 0 to 1.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Origin#setOrigin\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=0.5] - The horizontal origin value.\r\n     * @param {number} [y=x] - The vertical origin value. If not defined it will be set to the value of `x`.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setOrigin: function (x, y)\r\n    {\r\n        if (x === undefined) { x = 0.5; }\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.originX = x;\r\n        this.originY = y;\r\n\r\n        return this.updateDisplayOrigin();\r\n    },\r\n\r\n    /**\r\n     * Sets the origin of this Game Object based on the Pivot values in its Frame.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Origin#setOriginFromFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setOriginFromFrame: function ()\r\n    {\r\n        if (!this.frame || !this.frame.customPivot)\r\n        {\r\n            return this.setOrigin();\r\n        }\r\n        else\r\n        {\r\n            this.originX = this.frame.pivotX;\r\n            this.originY = this.frame.pivotY;\r\n        }\r\n\r\n        return this.updateDisplayOrigin();\r\n    },\r\n\r\n    /**\r\n     * Sets the display origin of this Game Object.\r\n     * The difference between this and setting the origin is that you can use pixel values for setting the display origin.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Origin#setDisplayOrigin\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=0] - The horizontal display origin value.\r\n     * @param {number} [y=x] - The vertical display origin value. If not defined it will be set to the value of `x`.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setDisplayOrigin: function (x, y)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.displayOriginX = x;\r\n        this.displayOriginY = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Updates the Display Origin cached values internally stored on this Game Object.\r\n     * You don't usually call this directly, but it is exposed for edge-cases where you may.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Origin#updateDisplayOrigin\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    updateDisplayOrigin: function ()\r\n    {\r\n        this._displayOriginX = this.originX * this.width;\r\n        this._displayOriginY = this.originY * this.height;\r\n\r\n        return this;\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = Origin;\r\n\n\n/***/ }),\n\n/***/ 37640:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar DegToRad = __webpack_require__(39506);\r\nvar GetBoolean = __webpack_require__(57355);\r\nvar GetValue = __webpack_require__(35154);\r\nvar TWEEN_CONST = __webpack_require__(86353);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * Provides methods used for managing a Game Object following a Path.\r\n * Should be applied as a mixin and not used directly.\r\n *\r\n * @namespace Phaser.GameObjects.Components.PathFollower\r\n * @since 3.17.0\r\n */\r\n\r\nvar PathFollower = {\r\n\r\n    /**\r\n     * The Path this PathFollower is following. It can only follow one Path at a time.\r\n     *\r\n     * @name Phaser.GameObjects.Components.PathFollower#path\r\n     * @type {Phaser.Curves.Path}\r\n     * @since 3.0.0\r\n     */\r\n    path: null,\r\n\r\n    /**\r\n     * Should the PathFollower automatically rotate to point in the direction of the Path?\r\n     *\r\n     * @name Phaser.GameObjects.Components.PathFollower#rotateToPath\r\n     * @type {boolean}\r\n     * @default false\r\n     * @since 3.0.0\r\n     */\r\n    rotateToPath: false,\r\n\r\n    /**\r\n     * If the PathFollower is rotating to match the Path (@see Phaser.GameObjects.PathFollower#rotateToPath)\r\n     * this value is added to the rotation value. This allows you to rotate objects to a path but control\r\n     * the angle of the rotation as well.\r\n     *\r\n     * @name Phaser.GameObjects.PathFollower#pathRotationOffset\r\n     * @type {number}\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n    pathRotationOffset: 0,\r\n\r\n    /**\r\n     * An additional vector to add to the PathFollowers position, allowing you to offset it from the\r\n     * Path coordinates.\r\n     *\r\n     * @name Phaser.GameObjects.PathFollower#pathOffset\r\n     * @type {Phaser.Math.Vector2}\r\n     * @since 3.0.0\r\n     */\r\n    pathOffset: null,\r\n\r\n    /**\r\n     * A Vector2 that stores the current point of the path the follower is on.\r\n     *\r\n     * @name Phaser.GameObjects.PathFollower#pathVector\r\n     * @type {Phaser.Math.Vector2}\r\n     * @since 3.0.0\r\n     */\r\n    pathVector: null,\r\n\r\n    /**\r\n     * The distance the follower has traveled from the previous point to the current one, at the last update.\r\n     *\r\n     * @name Phaser.GameObjects.PathFollower#pathDelta\r\n     * @type {Phaser.Math.Vector2}\r\n     * @since 3.23.0\r\n     */\r\n    pathDelta: null,\r\n\r\n    /**\r\n     * The Tween used for following the Path.\r\n     *\r\n     * @name Phaser.GameObjects.PathFollower#pathTween\r\n     * @type {Phaser.Tweens.Tween}\r\n     * @since 3.0.0\r\n     */\r\n    pathTween: null,\r\n\r\n    /**\r\n     * Settings for the PathFollower.\r\n     *\r\n     * @name Phaser.GameObjects.PathFollower#pathConfig\r\n     * @type {?Phaser.Types.GameObjects.PathFollower.PathConfig}\r\n     * @default null\r\n     * @since 3.0.0\r\n     */\r\n    pathConfig: null,\r\n\r\n    /**\r\n     * Records the direction of the follower so it can change direction.\r\n     *\r\n     * @name Phaser.GameObjects.PathFollower#_prevDirection\r\n     * @type {number}\r\n     * @private\r\n     * @since 3.0.0\r\n     */\r\n    _prevDirection: TWEEN_CONST.PLAYING_FORWARD,\r\n\r\n    /**\r\n     * Set the Path that this PathFollower should follow.\r\n     *\r\n     * Optionally accepts {@link Phaser.Types.GameObjects.PathFollower.PathConfig} settings.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PathFollower#setPath\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Curves.Path} path - The Path this PathFollower is following. It can only follow one Path at a time.\r\n     * @param {(number|Phaser.Types.GameObjects.PathFollower.PathConfig|Phaser.Types.Tweens.NumberTweenBuilderConfig)} [config] - Settings for the PathFollower.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    setPath: function (path, config)\r\n    {\r\n        if (config === undefined) { config = this.pathConfig; }\r\n\r\n        var tween = this.pathTween;\r\n\r\n        if (tween && tween.isPlaying())\r\n        {\r\n            tween.stop();\r\n        }\r\n\r\n        this.path = path;\r\n\r\n        if (config)\r\n        {\r\n            this.startFollow(config);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set whether the PathFollower should automatically rotate to point in the direction of the Path.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PathFollower#setRotateToPath\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} value - Whether the PathFollower should automatically rotate to point in the direction of the Path.\r\n     * @param {number} [offset=0] - Rotation offset in degrees.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    setRotateToPath: function (value, offset)\r\n    {\r\n        if (offset === undefined) { offset = 0; }\r\n\r\n        this.rotateToPath = value;\r\n\r\n        this.pathRotationOffset = offset;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Is this PathFollower actively following a Path or not?\r\n     *\r\n     * To be considered as `isFollowing` it must be currently moving on a Path, and not paused.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PathFollower#isFollowing\r\n     * @since 3.0.0\r\n     *\r\n     * @return {boolean} `true` is this PathFollower is actively following a Path, otherwise `false`.\r\n     */\r\n    isFollowing: function ()\r\n    {\r\n        var tween = this.pathTween;\r\n\r\n        return (tween && tween.isPlaying());\r\n    },\r\n\r\n    /**\r\n     * Starts this PathFollower following its given Path.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PathFollower#startFollow\r\n     * @since 3.3.0\r\n     *\r\n     * @param {(number|Phaser.Types.GameObjects.PathFollower.PathConfig|Phaser.Types.Tweens.NumberTweenBuilderConfig)} [config={}] - The duration of the follow, or a PathFollower config object.\r\n     * @param {number} [startAt=0] - Optional start position of the follow, between 0 and 1.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    startFollow: function (config, startAt)\r\n    {\r\n        if (config === undefined) { config = {}; }\r\n        if (startAt === undefined) { startAt = 0; }\r\n\r\n        var tween = this.pathTween;\r\n\r\n        if (tween && tween.isPlaying())\r\n        {\r\n            tween.stop();\r\n        }\r\n\r\n        if (typeof config === 'number')\r\n        {\r\n            config = { duration: config };\r\n        }\r\n\r\n        //  Override in case they've been specified in the config\r\n        config.from = GetValue(config, 'from', 0);\r\n        config.to = GetValue(config, 'to', 1);\r\n\r\n        var positionOnPath = GetBoolean(config, 'positionOnPath', false);\r\n\r\n        this.rotateToPath = GetBoolean(config, 'rotateToPath', false);\r\n        this.pathRotationOffset = GetValue(config, 'rotationOffset', 0);\r\n\r\n        //  This works, but it's not an ideal way of doing it as the follower jumps position\r\n        var seek = GetValue(config, 'startAt', startAt);\r\n\r\n        if (seek)\r\n        {\r\n            config.onStart = function (tween)\r\n            {\r\n                var tweenData = tween.data[0];\r\n                tweenData.progress = seek;\r\n                tweenData.elapsed = tweenData.duration * seek;\r\n                var v = tweenData.ease(tweenData.progress);\r\n                tweenData.current = tweenData.start + ((tweenData.end - tweenData.start) * v);\r\n                tweenData.setTargetValue();\r\n            };\r\n        }\r\n\r\n        if (!this.pathOffset)\r\n        {\r\n            this.pathOffset = new Vector2(this.x, this.y);\r\n        }\r\n\r\n        if (!this.pathVector)\r\n        {\r\n            this.pathVector = new Vector2();\r\n        }\r\n\r\n        if (!this.pathDelta)\r\n        {\r\n            this.pathDelta = new Vector2();\r\n        }\r\n\r\n        this.pathDelta.reset();\r\n\r\n        config.persist = true;\r\n\r\n        this.pathTween = this.scene.sys.tweens.addCounter(config);\r\n\r\n        //  The starting point of the path, relative to this follower\r\n        this.path.getStartPoint(this.pathOffset);\r\n\r\n        if (positionOnPath)\r\n        {\r\n            this.x = this.pathOffset.x;\r\n            this.y = this.pathOffset.y;\r\n        }\r\n\r\n        this.pathOffset.x = this.x - this.pathOffset.x;\r\n        this.pathOffset.y = this.y - this.pathOffset.y;\r\n\r\n        this._prevDirection = TWEEN_CONST.PLAYING_FORWARD;\r\n\r\n        if (this.rotateToPath)\r\n        {\r\n            //  Set the rotation now (in case the tween has a delay on it, etc)\r\n            var nextPoint = this.path.getPoint(0.1);\r\n\r\n            this.rotation = Math.atan2(nextPoint.y - this.y, nextPoint.x - this.x) + DegToRad(this.pathRotationOffset);\r\n        }\r\n\r\n        this.pathConfig = config;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Pauses this PathFollower. It will still continue to render, but it will remain motionless at the\r\n     * point on the Path at which you paused it.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PathFollower#pauseFollow\r\n     * @since 3.3.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    pauseFollow: function ()\r\n    {\r\n        var tween = this.pathTween;\r\n\r\n        if (tween && tween.isPlaying())\r\n        {\r\n            tween.pause();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Resumes a previously paused PathFollower.\r\n     *\r\n     * If the PathFollower was not paused this has no effect.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PathFollower#resumeFollow\r\n     * @since 3.3.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    resumeFollow: function ()\r\n    {\r\n        var tween = this.pathTween;\r\n\r\n        if (tween && tween.isPaused())\r\n        {\r\n            tween.resume();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stops this PathFollower from following the path any longer.\r\n     *\r\n     * This will invoke any 'stop' conditions that may exist on the Path, or for the follower.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PathFollower#stopFollow\r\n     * @since 3.3.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    stopFollow: function ()\r\n    {\r\n        var tween = this.pathTween;\r\n\r\n        if (tween && tween.isPlaying())\r\n        {\r\n            tween.stop();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Internal update handler that advances this PathFollower along the path.\r\n     *\r\n     * Called automatically by the Scene step, should not typically be called directly.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PathFollower#pathUpdate\r\n     * @since 3.17.0\r\n     */\r\n    pathUpdate: function ()\r\n    {\r\n        var tween = this.pathTween;\r\n\r\n        if (tween && tween.data)\r\n        {\r\n            var tweenData = tween.data[0];\r\n            var pathDelta = this.pathDelta;\r\n            var pathVector = this.pathVector;\r\n\r\n            pathDelta.copy(pathVector).negate();\r\n\r\n            if (tweenData.state === TWEEN_CONST.COMPLETE)\r\n            {\r\n                this.path.getPoint(tweenData.end, pathVector);\r\n\r\n                pathDelta.add(pathVector);\r\n                pathVector.add(this.pathOffset);\r\n\r\n                this.setPosition(pathVector.x, pathVector.y);\r\n\r\n                return;\r\n            }\r\n            else if (tweenData.state !== TWEEN_CONST.PLAYING_FORWARD && tweenData.state !== TWEEN_CONST.PLAYING_BACKWARD)\r\n            {\r\n                //  If delayed, etc then bail out\r\n                return;\r\n            }\r\n\r\n            this.path.getPoint(tween.getValue(), pathVector);\r\n\r\n            pathDelta.add(pathVector);\r\n            pathVector.add(this.pathOffset);\r\n\r\n            var oldX = this.x;\r\n            var oldY = this.y;\r\n\r\n            this.setPosition(pathVector.x, pathVector.y);\r\n\r\n            var speedX = this.x - oldX;\r\n            var speedY = this.y - oldY;\r\n\r\n            if (speedX === 0 && speedY === 0)\r\n            {\r\n                //  Bail out early\r\n                return;\r\n            }\r\n\r\n            if (tweenData.state !== this._prevDirection)\r\n            {\r\n                //  We've changed direction, so don't do a rotate this frame\r\n                this._prevDirection = tweenData.state;\r\n\r\n                return;\r\n            }\r\n\r\n            if (this.rotateToPath)\r\n            {\r\n                this.rotation = Math.atan2(speedY, speedX) + DegToRad(this.pathRotationOffset);\r\n            }\r\n        }\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = PathFollower;\r\n\n\n/***/ }),\n\n/***/ 72699:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar DeepCopy = __webpack_require__(62644);\r\n\r\n/**\r\n * Provides methods used for setting the WebGL rendering pipeline of a Game Object.\r\n *\r\n * @namespace Phaser.GameObjects.Components.Pipeline\r\n * @webglOnly\r\n * @since 3.0.0\r\n */\r\n\r\nvar Pipeline = {\r\n\r\n    /**\r\n     * The initial WebGL pipeline of this Game Object.\r\n     *\r\n     * If you call `resetPipeline` on this Game Object, the pipeline is reset to this default.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Pipeline#defaultPipeline\r\n     * @type {Phaser.Renderer.WebGL.WebGLPipeline}\r\n     * @default null\r\n     * @webglOnly\r\n     * @since 3.0.0\r\n     */\r\n    defaultPipeline: null,\r\n\r\n    /**\r\n     * The current WebGL pipeline of this Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Pipeline#pipeline\r\n     * @type {Phaser.Renderer.WebGL.WebGLPipeline}\r\n     * @default null\r\n     * @webglOnly\r\n     * @since 3.0.0\r\n     */\r\n    pipeline: null,\r\n\r\n    /**\r\n     * An object to store pipeline specific data in, to be read by the pipelines this Game Object uses.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Pipeline#pipelineData\r\n     * @type {object}\r\n     * @webglOnly\r\n     * @since 3.50.0\r\n     */\r\n    pipelineData: null,\r\n\r\n    /**\r\n     * Sets the initial WebGL Pipeline of this Game Object.\r\n     *\r\n     * This should only be called during the instantiation of the Game Object. After that, use `setPipeline`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Pipeline#initPipeline\r\n     * @webglOnly\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|Phaser.Renderer.WebGL.WebGLPipeline)} [pipeline] - Either the string-based name of the pipeline, or a pipeline instance to set.\r\n     *\r\n     * @return {boolean} `true` if the pipeline was set successfully, otherwise `false`.\r\n     */\r\n    initPipeline: function (pipeline)\r\n    {\r\n        this.pipelineData = {};\r\n\r\n        var renderer = this.scene.sys.renderer;\r\n\r\n        if (!renderer)\r\n        {\r\n            return false;\r\n        }\r\n\r\n        var pipelines = renderer.pipelines;\r\n\r\n        if (pipelines)\r\n        {\r\n            if (pipeline === undefined)\r\n            {\r\n                pipeline = pipelines.default;\r\n            }\r\n\r\n            var instance = pipelines.get(pipeline);\r\n\r\n            if (instance)\r\n            {\r\n                this.defaultPipeline = instance;\r\n                this.pipeline = instance;\r\n\r\n                return true;\r\n            }\r\n        }\r\n\r\n        return false;\r\n    },\r\n\r\n    /**\r\n     * Sets the main WebGL Pipeline of this Game Object.\r\n     *\r\n     * Also sets the `pipelineData` property, if the parameter is given.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Pipeline#setPipeline\r\n     * @webglOnly\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|Phaser.Renderer.WebGL.WebGLPipeline)} pipeline - Either the string-based name of the pipeline, or a pipeline instance to set.\r\n     * @param {object} [pipelineData] - Optional pipeline data object that is set in to the `pipelineData` property of this Game Object.\r\n     * @param {boolean} [copyData=true] - Should the pipeline data object be _deep copied_ into the `pipelineData` property of this Game Object? If `false` it will be set by reference instead.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setPipeline: function (pipeline, pipelineData, copyData)\r\n    {\r\n        var renderer = this.scene.sys.renderer;\r\n\r\n        if (!renderer)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        var pipelines = renderer.pipelines;\r\n\r\n        if (pipelines)\r\n        {\r\n            var instance = pipelines.get(pipeline);\r\n\r\n            if (instance)\r\n            {\r\n                this.pipeline = instance;\r\n            }\r\n\r\n            if (pipelineData)\r\n            {\r\n                this.pipelineData = (copyData) ? DeepCopy(pipelineData) : pipelineData;\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds an entry to the `pipelineData` object belonging to this Game Object.\r\n     *\r\n     * If the 'key' already exists, its value is updated. If it doesn't exist, it is created.\r\n     *\r\n     * If `value` is undefined, and `key` exists, `key` is removed from the data object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Pipeline#setPipelineData\r\n     * @webglOnly\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} key - The key of the pipeline data to set, update, or delete.\r\n     * @param {any} [value] - The value to be set with the key. If `undefined` then `key` will be deleted from the object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setPipelineData: function (key, value)\r\n    {\r\n        var data = this.pipelineData;\r\n\r\n        if (value === undefined)\r\n        {\r\n            delete data[key];\r\n        }\r\n        else\r\n        {\r\n            data[key] = value;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Resets the WebGL Pipeline of this Game Object back to the default it was created with.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Pipeline#resetPipeline\r\n     * @webglOnly\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} [resetData=false] - Reset the `pipelineData` object to being an empty object?\r\n     *\r\n     * @return {boolean} `true` if the pipeline was reset successfully, otherwise `false`.\r\n     */\r\n    resetPipeline: function (resetData)\r\n    {\r\n        if (resetData === undefined) { resetData = false; }\r\n\r\n        this.pipeline = this.defaultPipeline;\r\n\r\n        if (resetData)\r\n        {\r\n            this.pipelineData = {};\r\n        }\r\n\r\n        return (this.pipeline !== null);\r\n    },\r\n\r\n    /**\r\n     * Gets the name of the WebGL Pipeline this Game Object is currently using.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Pipeline#getPipelineName\r\n     * @webglOnly\r\n     * @since 3.0.0\r\n     *\r\n     * @return {?string} The string-based name of the pipeline being used by this Game Object, or null.\r\n     */\r\n    getPipelineName: function ()\r\n    {\r\n        return (this.pipeline === null) ? null : this.pipeline.name;\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = Pipeline;\r\n\n\n/***/ }),\n\n/***/ 17581:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar DeepCopy = __webpack_require__(62644);\r\nvar FX = __webpack_require__(47059);\r\nvar SpliceOne = __webpack_require__(19133);\r\n\r\n/**\r\n * Provides methods used for setting the WebGL rendering post pipeline of a Game Object.\r\n *\r\n * @namespace Phaser.GameObjects.Components.PostPipeline\r\n * @webglOnly\r\n * @since 3.60.0\r\n */\r\n\r\nvar PostPipeline = {\r\n\r\n    /**\r\n     * Does this Game Object have any Post Pipelines set?\r\n     *\r\n     * @name Phaser.GameObjects.Components.PostPipeline#hasPostPipeline\r\n     * @type {boolean}\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     */\r\n    hasPostPipeline: false,\r\n\r\n    /**\r\n     * The WebGL Post FX Pipelines this Game Object uses for post-render effects.\r\n     *\r\n     * The pipelines are processed in the order in which they appear in this array.\r\n     *\r\n     * If you modify this array directly, be sure to set the\r\n     * `hasPostPipeline` property accordingly.\r\n     *\r\n     * @name Phaser.GameObjects.Components.PostPipeline#postPipelines\r\n     * @type {Phaser.Renderer.WebGL.Pipelines.PostFXPipeline[]}\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     */\r\n    postPipelines: null,\r\n\r\n    /**\r\n     * An object to store pipeline specific data in, to be read by the pipelines this Game Object uses.\r\n     *\r\n     * @name Phaser.GameObjects.Components.PostPipeline#postPipelineData\r\n     * @type {object}\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     */\r\n    postPipelineData: null,\r\n\r\n    /**\r\n     * The Pre FX component of this Game Object.\r\n     *\r\n     * This component allows you to apply a variety of built-in effects to this Game Object, such\r\n     * as glow, blur, bloom, displacements, vignettes and more. You access them via this property,\r\n     * for example:\r\n     *\r\n     * ```js\r\n     * const player = this.add.sprite();\r\n     * player.preFX.addBloom();\r\n     * ```\r\n     *\r\n     * Only the following Game Objects support Pre FX:\r\n     *\r\n     * * Image\r\n     * * Sprite\r\n     * * TileSprite\r\n     * * Text\r\n     * * RenderTexture\r\n     * * Video\r\n     *\r\n     * All FX are WebGL only and do not have Canvas counterparts.\r\n     *\r\n     * Please see the FX Class for more details and available methods.\r\n     *\r\n     * @name Phaser.GameObjects.Components.PostPipeline#preFX\r\n     * @type {?Phaser.GameObjects.Components.FX}\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     */\r\n    preFX: null,\r\n\r\n    /**\r\n     * The Post FX component of this Game Object.\r\n     *\r\n     * This component allows you to apply a variety of built-in effects to this Game Object, such\r\n     * as glow, blur, bloom, displacements, vignettes and more. You access them via this property,\r\n     * for example:\r\n     *\r\n     * ```js\r\n     * const player = this.add.sprite();\r\n     * player.postFX.addBloom();\r\n     * ```\r\n     *\r\n     * All FX are WebGL only and do not have Canvas counterparts.\r\n     *\r\n     * Please see the FX Class for more details and available methods.\r\n     *\r\n     * This property is always `null` until the `initPostPipeline` method is called.\r\n     *\r\n     * @name Phaser.GameObjects.Components.PostPipeline#postFX\r\n     * @type {Phaser.GameObjects.Components.FX}\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     */\r\n    postFX: null,\r\n\r\n    /**\r\n     * This should only be called during the instantiation of the Game Object.\r\n     *\r\n     * It is called by default by all core Game Objects and doesn't need\r\n     * calling again.\r\n     *\r\n     * After that, use `setPostPipeline`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PostPipeline#initPostPipeline\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @param {boolean} [preFX=false] - Does this Game Object support Pre FX?\r\n     */\r\n    initPostPipeline: function (preFX)\r\n    {\r\n        this.postPipelines = [];\r\n        this.postPipelineData = {};\r\n\r\n        this.postFX = new FX(this, true);\r\n\r\n        if (preFX)\r\n        {\r\n            this.preFX = new FX(this, false);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Sets one, or more, Post Pipelines on this Game Object.\r\n     *\r\n     * Post Pipelines are invoked after this Game Object has rendered to its target and\r\n     * are commonly used for post-fx.\r\n     *\r\n     * The post pipelines are appended to the `postPipelines` array belonging to this\r\n     * Game Object. When the renderer processes this Game Object, it iterates through the post\r\n     * pipelines in the order in which they appear in the array. If you are stacking together\r\n     * multiple effects, be aware that the order is important.\r\n     *\r\n     * If you call this method multiple times, the new pipelines will be appended to any existing\r\n     * post pipelines already set. Use the `resetPostPipeline` method to clear them first, if required.\r\n     *\r\n     * You can optionally also set the `postPipelineData` property, if the parameter is given.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PostPipeline#setPostPipeline\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(string|string[]|function|function[]|Phaser.Renderer.WebGL.Pipelines.PostFXPipeline|Phaser.Renderer.WebGL.Pipelines.PostFXPipeline[])} pipelines - Either the string-based name of the pipeline, or a pipeline instance, or class, or an array of them.\r\n     * @param {object} [pipelineData] - Optional pipeline data object that is set in to the `postPipelineData` property of this Game Object.\r\n     * @param {boolean} [copyData=true] - Should the pipeline data object be _deep copied_ into the `postPipelineData` property of this Game Object? If `false` it will be set by reference instead.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setPostPipeline: function (pipelines, pipelineData, copyData)\r\n    {\r\n        var renderer = this.scene.sys.renderer;\r\n\r\n        if (!renderer)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        var pipelineManager = renderer.pipelines;\r\n\r\n        if (pipelineManager)\r\n        {\r\n            if (!Array.isArray(pipelines))\r\n            {\r\n                pipelines = [ pipelines ];\r\n            }\r\n\r\n            for (var i = 0; i < pipelines.length; i++)\r\n            {\r\n                var instance = pipelineManager.getPostPipeline(pipelines[i], this, pipelineData);\r\n\r\n                if (instance)\r\n                {\r\n                    this.postPipelines.push(instance);\r\n                }\r\n            }\r\n\r\n            if (pipelineData)\r\n            {\r\n                this.postPipelineData = (copyData) ? DeepCopy(pipelineData) : pipelineData;\r\n            }\r\n        }\r\n\r\n        this.hasPostPipeline = (this.postPipelines.length > 0);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds an entry to the `postPipelineData` object belonging to this Game Object.\r\n     *\r\n     * If the 'key' already exists, its value is updated. If it doesn't exist, it is created.\r\n     *\r\n     * If `value` is undefined, and `key` exists, `key` is removed from the data object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PostPipeline#setPostPipelineData\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @param {string} key - The key of the pipeline data to set, update, or delete.\r\n     * @param {any} [value] - The value to be set with the key. If `undefined` then `key` will be deleted from the object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setPostPipelineData: function (key, value)\r\n    {\r\n        var data = this.postPipelineData;\r\n\r\n        if (value === undefined)\r\n        {\r\n            delete data[key];\r\n        }\r\n        else\r\n        {\r\n            data[key] = value;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Gets a Post Pipeline instance from this Game Object, based on the given name, and returns it.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PostPipeline#getPostPipeline\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(string|function|Phaser.Renderer.WebGL.Pipelines.PostFXPipeline)} pipeline - The string-based name of the pipeline, or a pipeline class.\r\n     *\r\n     * @return {(Phaser.Renderer.WebGL.Pipelines.PostFXPipeline|Phaser.Renderer.WebGL.Pipelines.PostFXPipeline[])} An array of all the Post Pipelines matching the name. This array will be empty if there was no match. If there was only one single match, that pipeline is returned directly, not in an array.\r\n     */\r\n    getPostPipeline: function (pipeline)\r\n    {\r\n        var isString = (typeof pipeline === 'string');\r\n\r\n        var pipelines = this.postPipelines;\r\n\r\n        var results = [];\r\n\r\n        for (var i = 0; i < pipelines.length; i++)\r\n        {\r\n            var instance = pipelines[i];\r\n\r\n            if ((isString && instance.name === pipeline) || (!isString && instance instanceof pipeline))\r\n            {\r\n                results.push(instance);\r\n            }\r\n        }\r\n\r\n        return (results.length === 1) ? results[0] : results;\r\n    },\r\n\r\n    /**\r\n     * Resets the WebGL Post Pipelines of this Game Object. It does this by calling\r\n     * the `destroy` method on each post pipeline and then clearing the local array.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PostPipeline#resetPostPipeline\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @param {boolean} [resetData=false] - Reset the `postPipelineData` object to being an empty object?\r\n     */\r\n    resetPostPipeline: function (resetData)\r\n    {\r\n        if (resetData === undefined) { resetData = false; }\r\n\r\n        var pipelines = this.postPipelines;\r\n\r\n        for (var i = 0; i < pipelines.length; i++)\r\n        {\r\n            pipelines[i].destroy();\r\n        }\r\n\r\n        this.postPipelines = [];\r\n        this.hasPostPipeline = false;\r\n\r\n        if (resetData)\r\n        {\r\n            this.postPipelineData = {};\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Removes a type of Post Pipeline instances from this Game Object, based on the given name, and destroys them.\r\n     *\r\n     * If you wish to remove all Post Pipelines use the `resetPostPipeline` method instead.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PostPipeline#removePostPipeline\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @param {string|Phaser.Renderer.WebGL.Pipelines.PostFXPipeline} pipeline - The string-based name of the pipeline, or a pipeline class.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    removePostPipeline: function (pipeline)\r\n    {\r\n        var isString = (typeof pipeline === 'string');\r\n\r\n        var pipelines = this.postPipelines;\r\n\r\n        for (var i = pipelines.length - 1; i >= 0; i--)\r\n        {\r\n            var instance = pipelines[i];\r\n\r\n            if (\r\n                (isString && instance.name === pipeline) ||\r\n                (!isString && instance === pipeline))\r\n            {\r\n                instance.destroy();\r\n\r\n                SpliceOne(pipelines, i);\r\n            }\r\n        }\r\n\r\n        this.hasPostPipeline = (this.postPipelines.length > 0);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes all Pre and Post FX Controllers from this Game Object.\r\n     *\r\n     * If you wish to remove a single controller, use the `preFX.remove(fx)` or `postFX.remove(fx)` methods instead.\r\n     *\r\n     * If you wish to clear a single controller, use the `preFX.clear()` or `postFX.clear()` methods instead.\r\n     *\r\n     * @method Phaser.GameObjects.Components.PostPipeline#clearFX\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    clearFX: function ()\r\n    {\r\n        if (this.preFX)\r\n        {\r\n            this.preFX.clear();\r\n        }\r\n\r\n        if (this.postFX)\r\n        {\r\n            this.postFX.clear();\r\n        }\r\n\r\n        return this;\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = PostPipeline;\r\n\n\n/***/ }),\n\n/***/ 80227:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Provides methods used for getting and setting the Scroll Factor of a Game Object.\r\n *\r\n * @namespace Phaser.GameObjects.Components.ScrollFactor\r\n * @since 3.0.0\r\n */\r\n\r\nvar ScrollFactor = {\r\n\r\n    /**\r\n     * The horizontal scroll factor of this Game Object.\r\n     *\r\n     * The scroll factor controls the influence of the movement of a Camera upon this Game Object.\r\n     *\r\n     * When a camera scrolls it will change the location at which this Game Object is rendered on-screen.\r\n     * It does not change the Game Objects actual position values.\r\n     *\r\n     * A value of 1 means it will move exactly in sync with a camera.\r\n     * A value of 0 means it will not move at all, even if the camera moves.\r\n     * Other values control the degree to which the camera movement is mapped to this Game Object.\r\n     *\r\n     * Please be aware that scroll factor values other than 1 are not taken in to consideration when\r\n     * calculating physics collisions. Bodies always collide based on their world position, but changing\r\n     * the scroll factor is a visual adjustment to where the textures are rendered, which can offset\r\n     * them from physics bodies if not accounted for in your code.\r\n     *\r\n     * @name Phaser.GameObjects.Components.ScrollFactor#scrollFactorX\r\n     * @type {number}\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    scrollFactorX: 1,\r\n\r\n    /**\r\n     * The vertical scroll factor of this Game Object.\r\n     *\r\n     * The scroll factor controls the influence of the movement of a Camera upon this Game Object.\r\n     *\r\n     * When a camera scrolls it will change the location at which this Game Object is rendered on-screen.\r\n     * It does not change the Game Objects actual position values.\r\n     *\r\n     * A value of 1 means it will move exactly in sync with a camera.\r\n     * A value of 0 means it will not move at all, even if the camera moves.\r\n     * Other values control the degree to which the camera movement is mapped to this Game Object.\r\n     *\r\n     * Please be aware that scroll factor values other than 1 are not taken in to consideration when\r\n     * calculating physics collisions. Bodies always collide based on their world position, but changing\r\n     * the scroll factor is a visual adjustment to where the textures are rendered, which can offset\r\n     * them from physics bodies if not accounted for in your code.\r\n     *\r\n     * @name Phaser.GameObjects.Components.ScrollFactor#scrollFactorY\r\n     * @type {number}\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    scrollFactorY: 1,\r\n\r\n    /**\r\n     * Sets the scroll factor of this Game Object.\r\n     *\r\n     * The scroll factor controls the influence of the movement of a Camera upon this Game Object.\r\n     *\r\n     * When a camera scrolls it will change the location at which this Game Object is rendered on-screen.\r\n     * It does not change the Game Objects actual position values.\r\n     *\r\n     * A value of 1 means it will move exactly in sync with a camera.\r\n     * A value of 0 means it will not move at all, even if the camera moves.\r\n     * Other values control the degree to which the camera movement is mapped to this Game Object.\r\n     *\r\n     * Please be aware that scroll factor values other than 1 are not taken in to consideration when\r\n     * calculating physics collisions. Bodies always collide based on their world position, but changing\r\n     * the scroll factor is a visual adjustment to where the textures are rendered, which can offset\r\n     * them from physics bodies if not accounted for in your code.\r\n     *\r\n     * @method Phaser.GameObjects.Components.ScrollFactor#setScrollFactor\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The horizontal scroll factor of this Game Object.\r\n     * @param {number} [y=x] - The vertical scroll factor of this Game Object. If not set it will use the `x` value.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setScrollFactor: function (x, y)\r\n    {\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.scrollFactorX = x;\r\n        this.scrollFactorY = y;\r\n\r\n        return this;\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = ScrollFactor;\r\n\n\n/***/ }),\n\n/***/ 16736:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Provides methods used for getting and setting the size of a Game Object.\r\n *\r\n * @namespace Phaser.GameObjects.Components.Size\r\n * @since 3.0.0\r\n */\r\n\r\nvar Size = {\r\n\r\n    /**\r\n     * A property indicating that a Game Object has this component.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Size#_sizeComponent\r\n     * @type {boolean}\r\n     * @private\r\n     * @default true\r\n     * @since 3.2.0\r\n     */\r\n    _sizeComponent: true,\r\n\r\n    /**\r\n     * The native (un-scaled) width of this Game Object.\r\n     *\r\n     * Changing this value will not change the size that the Game Object is rendered in-game.\r\n     * For that you need to either set the scale of the Game Object (`setScale`) or use\r\n     * the `displayWidth` property.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Size#width\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    width: 0,\r\n\r\n    /**\r\n     * The native (un-scaled) height of this Game Object.\r\n     *\r\n     * Changing this value will not change the size that the Game Object is rendered in-game.\r\n     * For that you need to either set the scale of the Game Object (`setScale`) or use\r\n     * the `displayHeight` property.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Size#height\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    height: 0,\r\n\r\n    /**\r\n     * The displayed width of this Game Object.\r\n     *\r\n     * This value takes into account the scale factor.\r\n     *\r\n     * Setting this value will adjust the Game Object's scale property.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Size#displayWidth\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    displayWidth: {\r\n\r\n        get: function ()\r\n        {\r\n            return Math.abs(this.scaleX * this.frame.realWidth);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.scaleX = value / this.frame.realWidth;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The displayed height of this Game Object.\r\n     *\r\n     * This value takes into account the scale factor.\r\n     *\r\n     * Setting this value will adjust the Game Object's scale property.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Size#displayHeight\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    displayHeight: {\r\n\r\n        get: function ()\r\n        {\r\n            return Math.abs(this.scaleY * this.frame.realHeight);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.scaleY = value / this.frame.realHeight;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Sets the size of this Game Object to be that of the given Frame.\r\n     *\r\n     * This will not change the size that the Game Object is rendered in-game.\r\n     * For that you need to either set the scale of the Game Object (`setScale`) or call the\r\n     * `setDisplaySize` method, which is the same thing as changing the scale but allows you\r\n     * to do so by giving pixel values.\r\n     *\r\n     * If you have enabled this Game Object for input, changing the size will _not_ change the\r\n     * size of the hit area. To do this you should adjust the `input.hitArea` object directly.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Size#setSizeToFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Textures.Frame|boolean} [frame] - The frame to base the size of this Game Object on.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSizeToFrame: function (frame)\r\n    {\r\n        if (!frame) { frame = this.frame; }\r\n\r\n        this.width = frame.realWidth;\r\n        this.height = frame.realHeight;\r\n\r\n        var input = this.input;\r\n\r\n        if (input && !input.customHitArea)\r\n        {\r\n            input.hitArea.width = this.width;\r\n            input.hitArea.height = this.height;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the internal size of this Game Object, as used for frame or physics body creation.\r\n     *\r\n     * This will not change the size that the Game Object is rendered in-game.\r\n     * For that you need to either set the scale of the Game Object (`setScale`) or call the\r\n     * `setDisplaySize` method, which is the same thing as changing the scale but allows you\r\n     * to do so by giving pixel values.\r\n     *\r\n     * If you have enabled this Game Object for input, changing the size will _not_ change the\r\n     * size of the hit area. To do this you should adjust the `input.hitArea` object directly.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Size#setSize\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} width - The width of this Game Object.\r\n     * @param {number} height - The height of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSize: function (width, height)\r\n    {\r\n        this.width = width;\r\n        this.height = height;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the display size of this Game Object.\r\n     *\r\n     * Calling this will adjust the scale.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Size#setDisplaySize\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} width - The width of this Game Object.\r\n     * @param {number} height - The height of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setDisplaySize: function (width, height)\r\n    {\r\n        this.displayWidth = width;\r\n        this.displayHeight = height;\r\n\r\n        return this;\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = Size;\r\n\n\n/***/ }),\n\n/***/ 37726:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Frame = __webpack_require__(4327);\r\n\r\n//  bitmask flag for GameObject.renderMask\r\nvar _FLAG = 8; // 1000\r\n\r\n/**\r\n * Provides methods used for getting and setting the texture of a Game Object.\r\n *\r\n * @namespace Phaser.GameObjects.Components.Texture\r\n * @since 3.0.0\r\n */\r\n\r\nvar Texture = {\r\n\r\n    /**\r\n     * The Texture this Game Object is using to render with.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Texture#texture\r\n     * @type {Phaser.Textures.Texture|Phaser.Textures.CanvasTexture}\r\n     * @since 3.0.0\r\n     */\r\n    texture: null,\r\n\r\n    /**\r\n     * The Texture Frame this Game Object is using to render with.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Texture#frame\r\n     * @type {Phaser.Textures.Frame}\r\n     * @since 3.0.0\r\n     */\r\n    frame: null,\r\n\r\n    /**\r\n     * Internal flag. Not to be set by this Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Texture#isCropped\r\n     * @type {boolean}\r\n     * @private\r\n     * @since 3.11.0\r\n     */\r\n    isCropped: false,\r\n\r\n    /**\r\n     * Sets the texture and frame this Game Object will use to render with.\r\n     *\r\n     * Textures are referenced by their string-based keys, as stored in the Texture Manager.\r\n     *\r\n     * Calling this method will modify the `width` and `height` properties of your Game Object.\r\n     *\r\n     * It will also change the `origin` if the Frame has a custom pivot point, as exported from packages like Texture Packer.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Texture#setTexture\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|Phaser.Textures.Texture)} key - The key of the texture to be used, as stored in the Texture Manager, or a Texture instance.\r\n     * @param {(string|number)} [frame] - The name or index of the frame within the Texture.\r\n     * @param {boolean} [updateSize=true] - Should this call adjust the size of the Game Object?\r\n     * @param {boolean} [updateOrigin=true] - Should this call change the origin of the Game Object?\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setTexture: function (key, frame, updateSize, updateOrigin)\r\n    {\r\n        this.texture = this.scene.sys.textures.get(key);\r\n\r\n        return this.setFrame(frame, updateSize, updateOrigin);\r\n    },\r\n\r\n    /**\r\n     * Sets the frame this Game Object will use to render with.\r\n     *\r\n     * If you pass a string or index then the Frame has to belong to the current Texture being used\r\n     * by this Game Object.\r\n     *\r\n     * If you pass a Frame instance, then the Texture being used by this Game Object will also be updated.\r\n     *\r\n     * Calling `setFrame` will modify the `width` and `height` properties of your Game Object.\r\n     *\r\n     * It will also change the `origin` if the Frame has a custom pivot point, as exported from packages like Texture Packer.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Texture#setFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|number|Phaser.Textures.Frame)} frame - The name or index of the frame within the Texture, or a Frame instance.\r\n     * @param {boolean} [updateSize=true] - Should this call adjust the size of the Game Object?\r\n     * @param {boolean} [updateOrigin=true] - Should this call adjust the origin of the Game Object?\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setFrame: function (frame, updateSize, updateOrigin)\r\n    {\r\n        if (updateSize === undefined) { updateSize = true; }\r\n        if (updateOrigin === undefined) { updateOrigin = true; }\r\n\r\n        if (frame instanceof Frame)\r\n        {\r\n            this.texture = this.scene.sys.textures.get(frame.texture.key);\r\n\r\n            this.frame = frame;\r\n        }\r\n        else\r\n        {\r\n            this.frame = this.texture.get(frame);\r\n        }\r\n\r\n        if (!this.frame.cutWidth || !this.frame.cutHeight)\r\n        {\r\n            this.renderFlags &= ~_FLAG;\r\n        }\r\n        else\r\n        {\r\n            this.renderFlags |= _FLAG;\r\n        }\r\n\r\n        if (this._sizeComponent && updateSize)\r\n        {\r\n            this.setSizeToFrame();\r\n        }\r\n\r\n        if (this._originComponent && updateOrigin)\r\n        {\r\n            if (this.frame.customPivot)\r\n            {\r\n                this.setOrigin(this.frame.pivotX, this.frame.pivotY);\r\n            }\r\n            else\r\n            {\r\n                this.updateDisplayOrigin();\r\n            }\r\n        }\r\n\r\n        return this;\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = Texture;\r\n\n\n/***/ }),\n\n/***/ 79812:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Frame = __webpack_require__(4327);\r\n\r\n//  bitmask flag for GameObject.renderMask\r\nvar _FLAG = 8; // 1000\r\n\r\n/**\r\n * Provides methods used for getting and setting the texture of a Game Object.\r\n *\r\n * @namespace Phaser.GameObjects.Components.TextureCrop\r\n * @since 3.0.0\r\n */\r\n\r\nvar TextureCrop = {\r\n\r\n    /**\r\n     * The Texture this Game Object is using to render with.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TextureCrop#texture\r\n     * @type {Phaser.Textures.Texture|Phaser.Textures.CanvasTexture}\r\n     * @since 3.0.0\r\n     */\r\n    texture: null,\r\n\r\n    /**\r\n     * The Texture Frame this Game Object is using to render with.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TextureCrop#frame\r\n     * @type {Phaser.Textures.Frame}\r\n     * @since 3.0.0\r\n     */\r\n    frame: null,\r\n\r\n    /**\r\n     * A boolean flag indicating if this Game Object is being cropped or not.\r\n     * You can toggle this at any time after `setCrop` has been called, to turn cropping on or off.\r\n     * Equally, calling `setCrop` with no arguments will reset the crop and disable it.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TextureCrop#isCropped\r\n     * @type {boolean}\r\n     * @since 3.11.0\r\n     */\r\n    isCropped: false,\r\n\r\n    /**\r\n     * Applies a crop to a texture based Game Object, such as a Sprite or Image.\r\n     *\r\n     * The crop is a rectangle that limits the area of the texture frame that is visible during rendering.\r\n     *\r\n     * Cropping a Game Object does not change its size, dimensions, physics body or hit area, it just\r\n     * changes what is shown when rendered.\r\n     *\r\n     * The crop size as well as coordinates can not exceed the the size of the texture frame.\r\n     *\r\n     * The crop coordinates are relative to the texture frame, not the Game Object, meaning 0 x 0 is the top-left.\r\n     *\r\n     * Therefore, if you had a Game Object that had an 800x600 sized texture, and you wanted to show only the left\r\n     * half of it, you could call `setCrop(0, 0, 400, 600)`.\r\n     *\r\n     * It is also scaled to match the Game Object scale automatically. Therefore a crop rectangle of 100x50 would crop\r\n     * an area of 200x100 when applied to a Game Object that had a scale factor of 2.\r\n     *\r\n     * You can either pass in numeric values directly, or you can provide a single Rectangle object as the first argument.\r\n     *\r\n     * Call this method with no arguments at all to reset the crop, or toggle the property `isCropped` to `false`.\r\n     *\r\n     * You should do this if the crop rectangle becomes the same size as the frame itself, as it will allow\r\n     * the renderer to skip several internal calculations.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TextureCrop#setCrop\r\n     * @since 3.11.0\r\n     *\r\n     * @param {(number|Phaser.Geom.Rectangle)} [x] - The x coordinate to start the crop from. Cannot be negative or exceed the Frame width. Or a Phaser.Geom.Rectangle object, in which case the rest of the arguments are ignored.\r\n     * @param {number} [y] - The y coordinate to start the crop from. Cannot be negative or exceed the Frame height.\r\n     * @param {number} [width] - The width of the crop rectangle in pixels. Cannot exceed the Frame width.\r\n     * @param {number} [height] - The height of the crop rectangle in pixels. Cannot exceed the Frame height.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setCrop: function (x, y, width, height)\r\n    {\r\n        if (x === undefined)\r\n        {\r\n            this.isCropped = false;\r\n        }\r\n        else if (this.frame)\r\n        {\r\n            if (typeof x === 'number')\r\n            {\r\n                this.frame.setCropUVs(this._crop, x, y, width, height, this.flipX, this.flipY);\r\n            }\r\n            else\r\n            {\r\n                var rect = x;\r\n\r\n                this.frame.setCropUVs(this._crop, rect.x, rect.y, rect.width, rect.height, this.flipX, this.flipY);\r\n            }\r\n\r\n            this.isCropped = true;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the texture and frame this Game Object will use to render with.\r\n     *\r\n     * Textures are referenced by their string-based keys, as stored in the Texture Manager.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TextureCrop#setTexture\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The key of the texture to be used, as stored in the Texture Manager.\r\n     * @param {(string|number)} [frame] - The name or index of the frame within the Texture.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setTexture: function (key, frame)\r\n    {\r\n        this.texture = this.scene.sys.textures.get(key);\r\n\r\n        return this.setFrame(frame);\r\n    },\r\n\r\n    /**\r\n     * Sets the frame this Game Object will use to render with.\r\n     *\r\n     * If you pass a string or index then the Frame has to belong to the current Texture being used\r\n     * by this Game Object.\r\n     *\r\n     * If you pass a Frame instance, then the Texture being used by this Game Object will also be updated.\r\n     *\r\n     * Calling `setFrame` will modify the `width` and `height` properties of your Game Object.\r\n     *\r\n     * It will also change the `origin` if the Frame has a custom pivot point, as exported from packages like Texture Packer.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TextureCrop#setFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|number|Phaser.Textures.Frame)} frame - The name or index of the frame within the Texture, or a Frame instance.\r\n     * @param {boolean} [updateSize=true] - Should this call adjust the size of the Game Object?\r\n     * @param {boolean} [updateOrigin=true] - Should this call adjust the origin of the Game Object?\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setFrame: function (frame, updateSize, updateOrigin)\r\n    {\r\n        if (updateSize === undefined) { updateSize = true; }\r\n        if (updateOrigin === undefined) { updateOrigin = true; }\r\n\r\n        if (frame instanceof Frame)\r\n        {\r\n            this.texture = this.scene.sys.textures.get(frame.texture.key);\r\n\r\n            this.frame = frame;\r\n        }\r\n        else\r\n        {\r\n            this.frame = this.texture.get(frame);\r\n        }\r\n\r\n        if (!this.frame.cutWidth || !this.frame.cutHeight)\r\n        {\r\n            this.renderFlags &= ~_FLAG;\r\n        }\r\n        else\r\n        {\r\n            this.renderFlags |= _FLAG;\r\n        }\r\n\r\n        if (this._sizeComponent && updateSize)\r\n        {\r\n            this.setSizeToFrame();\r\n        }\r\n\r\n        if (this._originComponent && updateOrigin)\r\n        {\r\n            if (this.frame.customPivot)\r\n            {\r\n                this.setOrigin(this.frame.pivotX, this.frame.pivotY);\r\n            }\r\n            else\r\n            {\r\n                this.updateDisplayOrigin();\r\n            }\r\n        }\r\n\r\n        if (this.isCropped)\r\n        {\r\n            this.frame.updateCropUVs(this._crop, this.flipX, this.flipY);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Internal method that returns a blank, well-formed crop object for use by a Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TextureCrop#resetCropObject\r\n     * @private\r\n     * @since 3.12.0\r\n     *\r\n     * @return {object} The crop object.\r\n     */\r\n    resetCropObject: function ()\r\n    {\r\n        return { u0: 0, v0: 0, u1: 0, v1: 0, width: 0, height: 0, x: 0, y: 0, flipX: false, flipY: false, cx: 0, cy: 0, cw: 0, ch: 0 };\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = TextureCrop;\r\n\n\n/***/ }),\n\n/***/ 27472:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Provides methods used for setting the tint of a Game Object.\r\n * Should be applied as a mixin and not used directly.\r\n *\r\n * @namespace Phaser.GameObjects.Components.Tint\r\n * @webglOnly\r\n * @since 3.0.0\r\n */\r\n\r\nvar Tint = {\r\n\r\n    /**\r\n     * The tint value being applied to the top-left vertice of the Game Object.\r\n     * This value is interpolated from the corner to the center of the Game Object.\r\n     * The value should be set as a hex number, i.e. 0xff0000 for red, or 0xff00ff for purple.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Tint#tintTopLeft\r\n     * @type {number}\r\n     * @default 0xffffff\r\n     * @since 3.0.0\r\n     */\r\n    tintTopLeft: 0xffffff,\r\n\r\n    /**\r\n     * The tint value being applied to the top-right vertice of the Game Object.\r\n     * This value is interpolated from the corner to the center of the Game Object.\r\n     * The value should be set as a hex number, i.e. 0xff0000 for red, or 0xff00ff for purple.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Tint#tintTopRight\r\n     * @type {number}\r\n     * @default 0xffffff\r\n     * @since 3.0.0\r\n     */\r\n    tintTopRight: 0xffffff,\r\n\r\n    /**\r\n     * The tint value being applied to the bottom-left vertice of the Game Object.\r\n     * This value is interpolated from the corner to the center of the Game Object.\r\n     * The value should be set as a hex number, i.e. 0xff0000 for red, or 0xff00ff for purple.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Tint#tintBottomLeft\r\n     * @type {number}\r\n     * @default 0xffffff\r\n     * @since 3.0.0\r\n     */\r\n    tintBottomLeft: 0xffffff,\r\n\r\n    /**\r\n     * The tint value being applied to the bottom-right vertice of the Game Object.\r\n     * This value is interpolated from the corner to the center of the Game Object.\r\n     * The value should be set as a hex number, i.e. 0xff0000 for red, or 0xff00ff for purple.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Tint#tintBottomRight\r\n     * @type {number}\r\n     * @default 0xffffff\r\n     * @since 3.0.0\r\n     */\r\n    tintBottomRight: 0xffffff,\r\n\r\n    /**\r\n     * The tint fill mode.\r\n     *\r\n     * `false` = An additive tint (the default), where vertices colors are blended with the texture.\r\n     * `true` = A fill tint, where the vertices colors replace the texture, but respects texture alpha.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Tint#tintFill\r\n     * @type {boolean}\r\n     * @default false\r\n     * @since 3.11.0\r\n     */\r\n    tintFill: false,\r\n\r\n    /**\r\n     * Clears all tint values associated with this Game Object.\r\n     *\r\n     * Immediately sets the color values back to 0xffffff and the tint type to 'additive',\r\n     * which results in no visible change to the texture.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Tint#clearTint\r\n     * @webglOnly\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    clearTint: function ()\r\n    {\r\n        this.setTint(0xffffff);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets an additive tint on this Game Object.\r\n     *\r\n     * The tint works by taking the pixel color values from the Game Objects texture, and then\r\n     * multiplying it by the color value of the tint. You can provide either one color value,\r\n     * in which case the whole Game Object will be tinted in that color. Or you can provide a color\r\n     * per corner. The colors are blended together across the extent of the Game Object.\r\n     *\r\n     * To modify the tint color once set, either call this method again with new values or use the\r\n     * `tint` property to set all colors at once. Or, use the properties `tintTopLeft`, `tintTopRight,\r\n     * `tintBottomLeft` and `tintBottomRight` to set the corner color values independently.\r\n     *\r\n     * To remove a tint call `clearTint`.\r\n     *\r\n     * To swap this from being an additive tint to a fill based tint set the property `tintFill` to `true`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Tint#setTint\r\n     * @webglOnly\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [topLeft=0xffffff] - The tint being applied to the top-left of the Game Object. If no other values are given this value is applied evenly, tinting the whole Game Object.\r\n     * @param {number} [topRight] - The tint being applied to the top-right of the Game Object.\r\n     * @param {number} [bottomLeft] - The tint being applied to the bottom-left of the Game Object.\r\n     * @param {number} [bottomRight] - The tint being applied to the bottom-right of the Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setTint: function (topLeft, topRight, bottomLeft, bottomRight)\r\n    {\r\n        if (topLeft === undefined) { topLeft = 0xffffff; }\r\n\r\n        if (topRight === undefined)\r\n        {\r\n            topRight = topLeft;\r\n            bottomLeft = topLeft;\r\n            bottomRight = topLeft;\r\n        }\r\n\r\n        this.tintTopLeft = topLeft;\r\n        this.tintTopRight = topRight;\r\n        this.tintBottomLeft = bottomLeft;\r\n        this.tintBottomRight = bottomRight;\r\n\r\n        this.tintFill = false;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets a fill-based tint on this Game Object.\r\n     *\r\n     * Unlike an additive tint, a fill-tint literally replaces the pixel colors from the texture\r\n     * with those in the tint. You can use this for effects such as making a player flash 'white'\r\n     * if hit by something. You can provide either one color value, in which case the whole\r\n     * Game Object will be rendered in that color. Or you can provide a color per corner. The colors\r\n     * are blended together across the extent of the Game Object.\r\n     *\r\n     * To modify the tint color once set, either call this method again with new values or use the\r\n     * `tint` property to set all colors at once. Or, use the properties `tintTopLeft`, `tintTopRight,\r\n     * `tintBottomLeft` and `tintBottomRight` to set the corner color values independently.\r\n     *\r\n     * To remove a tint call `clearTint`.\r\n     *\r\n     * To swap this from being a fill-tint to an additive tint set the property `tintFill` to `false`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Tint#setTintFill\r\n     * @webglOnly\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} [topLeft=0xffffff] - The tint being applied to the top-left of the Game Object. If not other values are given this value is applied evenly, tinting the whole Game Object.\r\n     * @param {number} [topRight] - The tint being applied to the top-right of the Game Object.\r\n     * @param {number} [bottomLeft] - The tint being applied to the bottom-left of the Game Object.\r\n     * @param {number} [bottomRight] - The tint being applied to the bottom-right of the Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setTintFill: function (topLeft, topRight, bottomLeft, bottomRight)\r\n    {\r\n        this.setTint(topLeft, topRight, bottomLeft, bottomRight);\r\n\r\n        this.tintFill = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * The tint value being applied to the whole of the Game Object.\r\n     * Return `tintTopLeft` when read this tint property.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Tint#tint\r\n     * @type {number}\r\n     * @webglOnly\r\n     * @since 3.0.0\r\n     */\r\n    tint: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.tintTopLeft;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.setTint(value, value, value, value);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Does this Game Object have a tint applied?\r\n     *\r\n     * It checks to see if the 4 tint properties are set to the value 0xffffff\r\n     * and that the `tintFill` property is `false`. This indicates that a Game Object isn't tinted.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Tint#isTinted\r\n     * @type {boolean}\r\n     * @webglOnly\r\n     * @readonly\r\n     * @since 3.11.0\r\n     */\r\n    isTinted: {\r\n\r\n        get: function ()\r\n        {\r\n            var white = 0xffffff;\r\n\r\n            return (\r\n                this.tintFill ||\r\n                this.tintTopLeft !== white ||\r\n                this.tintTopRight !== white ||\r\n                this.tintBottomLeft !== white ||\r\n                this.tintBottomRight !== white\r\n            );\r\n        }\r\n\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = Tint;\r\n\n\n/***/ }),\n\n/***/ 53774:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Build a JSON representation of the given Game Object.\r\n *\r\n * This is typically extended further by Game Object specific implementations.\r\n *\r\n * @method Phaser.GameObjects.Components.ToJSON\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object to export as JSON.\r\n *\r\n * @return {Phaser.Types.GameObjects.JSONGameObject} A JSON representation of the Game Object.\r\n */\r\nvar ToJSON = function (gameObject)\r\n{\r\n    var out = {\r\n        name: gameObject.name,\r\n        type: gameObject.type,\r\n        x: gameObject.x,\r\n        y: gameObject.y,\r\n        depth: gameObject.depth,\r\n        scale: {\r\n            x: gameObject.scaleX,\r\n            y: gameObject.scaleY\r\n        },\r\n        origin: {\r\n            x: gameObject.originX,\r\n            y: gameObject.originY\r\n        },\r\n        flipX: gameObject.flipX,\r\n        flipY: gameObject.flipY,\r\n        rotation: gameObject.rotation,\r\n        alpha: gameObject.alpha,\r\n        visible: gameObject.visible,\r\n        blendMode: gameObject.blendMode,\r\n        textureKey: '',\r\n        frameKey: '',\r\n        data: {}\r\n    };\r\n\r\n    if (gameObject.texture)\r\n    {\r\n        out.textureKey = gameObject.texture.key;\r\n        out.frameKey = gameObject.frame.name;\r\n    }\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = ToJSON;\r\n\n\n/***/ }),\n\n/***/ 16901:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar MATH_CONST = __webpack_require__(36383);\r\nvar TransformMatrix = __webpack_require__(61340);\r\nvar TransformXY = __webpack_require__(85955);\r\nvar WrapAngle = __webpack_require__(86554);\r\nvar WrapAngleDegrees = __webpack_require__(30954);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n//  global bitmask flag for GameObject.renderMask (used by Scale)\r\nvar _FLAG = 4; // 0100\r\n\r\n/**\r\n * Provides methods used for getting and setting the position, scale and rotation of a Game Object.\r\n *\r\n * @namespace Phaser.GameObjects.Components.Transform\r\n * @since 3.0.0\r\n */\r\n\r\nvar Transform = {\r\n\r\n    /**\r\n     * A property indicating that a Game Object has this component.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Transform#hasTransformComponent\r\n     * @type {boolean}\r\n     * @readonly\r\n     * @default true\r\n     * @since 3.60.0\r\n     */\r\n    hasTransformComponent: true,\r\n\r\n    /**\r\n     * Private internal value. Holds the horizontal scale value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Transform#_scaleX\r\n     * @type {number}\r\n     * @private\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    _scaleX: 1,\r\n\r\n    /**\r\n     * Private internal value. Holds the vertical scale value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Transform#_scaleY\r\n     * @type {number}\r\n     * @private\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    _scaleY: 1,\r\n\r\n    /**\r\n     * Private internal value. Holds the rotation value in radians.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Transform#_rotation\r\n     * @type {number}\r\n     * @private\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n    _rotation: 0,\r\n\r\n    /**\r\n     * The x position of this Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Transform#x\r\n     * @type {number}\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n    x: 0,\r\n\r\n    /**\r\n     * The y position of this Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Transform#y\r\n     * @type {number}\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n    y: 0,\r\n\r\n    /**\r\n     * The z position of this Game Object.\r\n     *\r\n     * Note: The z position does not control the rendering order of 2D Game Objects. Use\r\n     * {@link Phaser.GameObjects.Components.Depth#depth} instead.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Transform#z\r\n     * @type {number}\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n    z: 0,\r\n\r\n    /**\r\n     * The w position of this Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Transform#w\r\n     * @type {number}\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n    w: 0,\r\n\r\n    /**\r\n     * This is a special setter that allows you to set both the horizontal and vertical scale of this Game Object\r\n     * to the same value, at the same time. When reading this value the result returned is `(scaleX + scaleY) / 2`.\r\n     *\r\n     * Use of this property implies you wish the horizontal and vertical scales to be equal to each other. If this\r\n     * isn't the case, use the `scaleX` or `scaleY` properties instead.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Transform#scale\r\n     * @type {number}\r\n     * @default 1\r\n     * @since 3.18.0\r\n     */\r\n    scale: {\r\n\r\n        get: function ()\r\n        {\r\n            return (this._scaleX + this._scaleY) / 2;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._scaleX = value;\r\n            this._scaleY = value;\r\n\r\n            if (value === 0)\r\n            {\r\n                this.renderFlags &= ~_FLAG;\r\n            }\r\n            else\r\n            {\r\n                this.renderFlags |= _FLAG;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The horizontal scale of this Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Transform#scaleX\r\n     * @type {number}\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    scaleX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._scaleX;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._scaleX = value;\r\n\r\n            if (value === 0)\r\n            {\r\n                this.renderFlags &= ~_FLAG;\r\n            }\r\n            else if (this._scaleY !== 0)\r\n            {\r\n                this.renderFlags |= _FLAG;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The vertical scale of this Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Transform#scaleY\r\n     * @type {number}\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    scaleY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._scaleY;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._scaleY = value;\r\n\r\n            if (value === 0)\r\n            {\r\n                this.renderFlags &= ~_FLAG;\r\n            }\r\n            else if (this._scaleX !== 0)\r\n            {\r\n                this.renderFlags |= _FLAG;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The angle of this Game Object as expressed in degrees.\r\n     *\r\n     * Phaser uses a right-hand clockwise rotation system, where 0 is right, 90 is down, 180/-180 is left\r\n     * and -90 is up.\r\n     *\r\n     * If you prefer to work in radians, see the `rotation` property instead.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Transform#angle\r\n     * @type {number}\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n    angle: {\r\n\r\n        get: function ()\r\n        {\r\n            return WrapAngleDegrees(this._rotation * MATH_CONST.RAD_TO_DEG);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            //  value is in degrees\r\n            this.rotation = WrapAngleDegrees(value) * MATH_CONST.DEG_TO_RAD;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * The angle of this Game Object in radians.\r\n     *\r\n     * Phaser uses a right-hand clockwise rotation system, where 0 is right, PI/2 is down, +-PI is left\r\n     * and -PI/2 is up.\r\n     *\r\n     * If you prefer to work in degrees, see the `angle` property instead.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Transform#rotation\r\n     * @type {number}\r\n     * @default 1\r\n     * @since 3.0.0\r\n     */\r\n    rotation: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._rotation;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            //  value is in radians\r\n            this._rotation = WrapAngle(value);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Sets the position of this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#setPosition\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=0] - The x position of this Game Object.\r\n     * @param {number} [y=x] - The y position of this Game Object. If not set it will use the `x` value.\r\n     * @param {number} [z=0] - The z position of this Game Object.\r\n     * @param {number} [w=0] - The w position of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setPosition: function (x, y, z, w)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = x; }\r\n        if (z === undefined) { z = 0; }\r\n        if (w === undefined) { w = 0; }\r\n\r\n        this.x = x;\r\n        this.y = y;\r\n        this.z = z;\r\n        this.w = w;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Copies an object's coordinates to this Game Object's position.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#copyPosition\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(Phaser.Types.Math.Vector2Like|Phaser.Types.Math.Vector3Like|Phaser.Types.Math.Vector4Like)} source - An object with numeric 'x', 'y', 'z', or 'w' properties. Undefined values are not copied.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    copyPosition: function (source)\r\n    {\r\n        if (source.x !== undefined) { this.x = source.x; }\r\n        if (source.y !== undefined) { this.y = source.y; }\r\n        if (source.z !== undefined) { this.z = source.z; }\r\n        if (source.w !== undefined) { this.w = source.w; }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the position of this Game Object to be a random position within the confines of\r\n     * the given area.\r\n     *\r\n     * If no area is specified a random position between 0 x 0 and the game width x height is used instead.\r\n     *\r\n     * The position does not factor in the size of this Game Object, meaning that only the origin is\r\n     * guaranteed to be within the area.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#setRandomPosition\r\n     * @since 3.8.0\r\n     *\r\n     * @param {number} [x=0] - The x position of the top-left of the random area.\r\n     * @param {number} [y=0] - The y position of the top-left of the random area.\r\n     * @param {number} [width] - The width of the random area.\r\n     * @param {number} [height] - The height of the random area.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setRandomPosition: function (x, y, width, height)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (width === undefined) { width = this.scene.sys.scale.width; }\r\n        if (height === undefined) { height = this.scene.sys.scale.height; }\r\n\r\n        this.x = x + (Math.random() * width);\r\n        this.y = y + (Math.random() * height);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the rotation of this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#setRotation\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [radians=0] - The rotation of this Game Object, in radians.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setRotation: function (radians)\r\n    {\r\n        if (radians === undefined) { radians = 0; }\r\n\r\n        this.rotation = radians;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the angle of this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#setAngle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [degrees=0] - The rotation of this Game Object, in degrees.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setAngle: function (degrees)\r\n    {\r\n        if (degrees === undefined) { degrees = 0; }\r\n\r\n        this.angle = degrees;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the scale of this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#setScale\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=1] - The horizontal scale of this Game Object.\r\n     * @param {number} [y=x] - The vertical scale of this Game Object. If not set it will use the `x` value.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setScale: function (x, y)\r\n    {\r\n        if (x === undefined) { x = 1; }\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.scaleX = x;\r\n        this.scaleY = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the x position of this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#setX\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [value=0] - The x position of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setX: function (value)\r\n    {\r\n        if (value === undefined) { value = 0; }\r\n\r\n        this.x = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the y position of this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#setY\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [value=0] - The y position of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setY: function (value)\r\n    {\r\n        if (value === undefined) { value = 0; }\r\n\r\n        this.y = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the z position of this Game Object.\r\n     *\r\n     * Note: The z position does not control the rendering order of 2D Game Objects. Use\r\n     * {@link Phaser.GameObjects.Components.Depth#setDepth} instead.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#setZ\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [value=0] - The z position of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setZ: function (value)\r\n    {\r\n        if (value === undefined) { value = 0; }\r\n\r\n        this.z = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the w position of this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#setW\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [value=0] - The w position of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setW: function (value)\r\n    {\r\n        if (value === undefined) { value = 0; }\r\n\r\n        this.w = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Gets the local transform matrix for this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#getLocalTransformMatrix\r\n     * @since 3.4.0\r\n     *\r\n     * @param {Phaser.GameObjects.Components.TransformMatrix} [tempMatrix] - The matrix to populate with the values from this Game Object.\r\n     *\r\n     * @return {Phaser.GameObjects.Components.TransformMatrix} The populated Transform Matrix.\r\n     */\r\n    getLocalTransformMatrix: function (tempMatrix)\r\n    {\r\n        if (tempMatrix === undefined) { tempMatrix = new TransformMatrix(); }\r\n\r\n        return tempMatrix.applyITRS(this.x, this.y, this._rotation, this._scaleX, this._scaleY);\r\n    },\r\n\r\n    /**\r\n     * Gets the world transform matrix for this Game Object, factoring in any parent Containers.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#getWorldTransformMatrix\r\n     * @since 3.4.0\r\n     *\r\n     * @param {Phaser.GameObjects.Components.TransformMatrix} [tempMatrix] - The matrix to populate with the values from this Game Object.\r\n     * @param {Phaser.GameObjects.Components.TransformMatrix} [parentMatrix] - A temporary matrix to hold parent values during the calculations.\r\n     *\r\n     * @return {Phaser.GameObjects.Components.TransformMatrix} The populated Transform Matrix.\r\n     */\r\n    getWorldTransformMatrix: function (tempMatrix, parentMatrix)\r\n    {\r\n        if (tempMatrix === undefined) { tempMatrix = new TransformMatrix(); }\r\n\r\n        var parent = this.parentContainer;\r\n\r\n        if (!parent)\r\n        {\r\n            return this.getLocalTransformMatrix(tempMatrix);\r\n        }\r\n\r\n        if (!parentMatrix)\r\n        {\r\n            parentMatrix = new TransformMatrix();\r\n        }\r\n\r\n        tempMatrix.applyITRS(this.x, this.y, this._rotation, this._scaleX, this._scaleY);\r\n\r\n        while (parent)\r\n        {\r\n            parentMatrix.applyITRS(parent.x, parent.y, parent._rotation, parent._scaleX, parent._scaleY);\r\n\r\n            parentMatrix.multiply(tempMatrix, tempMatrix);\r\n\r\n            parent = parent.parentContainer;\r\n        }\r\n\r\n        return tempMatrix;\r\n    },\r\n\r\n    /**\r\n     * Takes the given `x` and `y` coordinates and converts them into local space for this\r\n     * Game Object, taking into account parent and local transforms, and the Display Origin.\r\n     *\r\n     * The returned Vector2 contains the translated point in its properties.\r\n     *\r\n     * A Camera needs to be provided in order to handle modified scroll factors. If no\r\n     * camera is specified, it will use the `main` camera from the Scene to which this\r\n     * Game Object belongs.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#getLocalPoint\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} x - The x position to translate.\r\n     * @param {number} y - The y position to translate.\r\n     * @param {Phaser.Math.Vector2} [point] - A Vector2, or point-like object, to store the results in.\r\n     * @param {Phaser.Cameras.Scene2D.Camera} [camera] - The Camera which is being tested against. If not given will use the Scene default camera.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The translated point.\r\n     */\r\n    getLocalPoint: function (x, y, point, camera)\r\n    {\r\n        if (!point) { point = new Vector2(); }\r\n        if (!camera) { camera = this.scene.sys.cameras.main; }\r\n\r\n        var csx = camera.scrollX;\r\n        var csy = camera.scrollY;\r\n\r\n        var px = x + (csx * this.scrollFactorX) - csx;\r\n        var py = y + (csy * this.scrollFactorY) - csy;\r\n\r\n        if (this.parentContainer)\r\n        {\r\n            this.getWorldTransformMatrix().applyInverse(px, py, point);\r\n        }\r\n        else\r\n        {\r\n            TransformXY(px, py, this.x, this.y, this.rotation, this.scaleX, this.scaleY, point);\r\n        }\r\n\r\n        //  Normalize origin\r\n        if (this._originComponent)\r\n        {\r\n            point.x += this._displayOriginX;\r\n            point.y += this._displayOriginY;\r\n        }\r\n\r\n        return point;\r\n    },\r\n\r\n    /**\r\n     * Gets the sum total rotation of all of this Game Objects parent Containers.\r\n     *\r\n     * The returned value is in radians and will be zero if this Game Object has no parent container.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Transform#getParentRotation\r\n     * @since 3.18.0\r\n     *\r\n     * @return {number} The sum total rotation, in radians, of all parent containers of this Game Object.\r\n     */\r\n    getParentRotation: function ()\r\n    {\r\n        var rotation = 0;\r\n\r\n        var parent = this.parentContainer;\r\n\r\n        while (parent)\r\n        {\r\n            rotation += parent.rotation;\r\n\r\n            parent = parent.parentContainer;\r\n        }\r\n\r\n        return rotation;\r\n    }\r\n\r\n};\r\n\r\nmodule.exports = Transform;\r\n\n\n/***/ }),\n\n/***/ 61340:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar MATH_CONST = __webpack_require__(36383);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * A Matrix used for display transformations for rendering.\r\n *\r\n * It is represented like so:\r\n *\r\n * ```\r\n * | a | c | tx |\r\n * | b | d | ty |\r\n * | 0 | 0 | 1  |\r\n * ```\r\n *\r\n * @class TransformMatrix\r\n * @memberof Phaser.GameObjects.Components\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {number} [a=1] - The Scale X value.\r\n * @param {number} [b=0] - The Skew Y value.\r\n * @param {number} [c=0] - The Skew X value.\r\n * @param {number} [d=1] - The Scale Y value.\r\n * @param {number} [tx=0] - The Translate X value.\r\n * @param {number} [ty=0] - The Translate Y value.\r\n */\r\nvar TransformMatrix = new Class({\r\n\r\n    initialize:\r\n\r\n    function TransformMatrix (a, b, c, d, tx, ty)\r\n    {\r\n        if (a === undefined) { a = 1; }\r\n        if (b === undefined) { b = 0; }\r\n        if (c === undefined) { c = 0; }\r\n        if (d === undefined) { d = 1; }\r\n        if (tx === undefined) { tx = 0; }\r\n        if (ty === undefined) { ty = 0; }\r\n\r\n        /**\r\n         * The matrix values.\r\n         *\r\n         * @name Phaser.GameObjects.Components.TransformMatrix#matrix\r\n         * @type {Float32Array}\r\n         * @since 3.0.0\r\n         */\r\n        this.matrix = new Float32Array([ a, b, c, d, tx, ty, 0, 0, 1 ]);\r\n\r\n        /**\r\n         * The decomposed matrix.\r\n         *\r\n         * @name Phaser.GameObjects.Components.TransformMatrix#decomposedMatrix\r\n         * @type {object}\r\n         * @since 3.0.0\r\n         */\r\n        this.decomposedMatrix = {\r\n            translateX: 0,\r\n            translateY: 0,\r\n            scaleX: 1,\r\n            scaleY: 1,\r\n            rotation: 0\r\n        };\r\n\r\n        /**\r\n         * The temporary quad value cache.\r\n         *\r\n         * @name Phaser.GameObjects.Components.TransformMatrix#quad\r\n         * @type {Float32Array}\r\n         * @since 3.60.0\r\n         */\r\n        this.quad = new Float32Array(8);\r\n    },\r\n\r\n    /**\r\n     * The Scale X value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TransformMatrix#a\r\n     * @type {number}\r\n     * @since 3.4.0\r\n     */\r\n    a: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.matrix[0];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.matrix[0] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The Skew Y value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TransformMatrix#b\r\n     * @type {number}\r\n     * @since 3.4.0\r\n     */\r\n    b: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.matrix[1];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.matrix[1] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The Skew X value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TransformMatrix#c\r\n     * @type {number}\r\n     * @since 3.4.0\r\n     */\r\n    c: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.matrix[2];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.matrix[2] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The Scale Y value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TransformMatrix#d\r\n     * @type {number}\r\n     * @since 3.4.0\r\n     */\r\n    d: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.matrix[3];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.matrix[3] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The Translate X value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TransformMatrix#e\r\n     * @type {number}\r\n     * @since 3.11.0\r\n     */\r\n    e: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.matrix[4];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.matrix[4] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The Translate Y value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TransformMatrix#f\r\n     * @type {number}\r\n     * @since 3.11.0\r\n     */\r\n    f: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.matrix[5];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.matrix[5] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The Translate X value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TransformMatrix#tx\r\n     * @type {number}\r\n     * @since 3.4.0\r\n     */\r\n    tx: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.matrix[4];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.matrix[4] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The Translate Y value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TransformMatrix#ty\r\n     * @type {number}\r\n     * @since 3.4.0\r\n     */\r\n    ty: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.matrix[5];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.matrix[5] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The rotation of the Matrix. Value is in radians.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TransformMatrix#rotation\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.4.0\r\n     */\r\n    rotation: {\r\n\r\n        get: function ()\r\n        {\r\n            return Math.acos(this.a / this.scaleX) * ((Math.atan(-this.c / this.a) < 0) ? -1 : 1);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The rotation of the Matrix, normalized to be within the Phaser right-handed\r\n     * clockwise rotation space. Value is in radians.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TransformMatrix#rotationNormalized\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.19.0\r\n     */\r\n    rotationNormalized: {\r\n\r\n        get: function ()\r\n        {\r\n            var matrix = this.matrix;\r\n\r\n            var a = matrix[0];\r\n            var b = matrix[1];\r\n            var c = matrix[2];\r\n            var d = matrix[3];\r\n\r\n            if (a || b)\r\n            {\r\n                // var r = Math.sqrt(a * a + b * b);\r\n\r\n                return (b > 0) ? Math.acos(a / this.scaleX) : -Math.acos(a / this.scaleX);\r\n            }\r\n            else if (c || d)\r\n            {\r\n                // var s = Math.sqrt(c * c + d * d);\r\n\r\n                return MATH_CONST.TAU - ((d > 0) ? Math.acos(-c / this.scaleY) : -Math.acos(c / this.scaleY));\r\n            }\r\n            else\r\n            {\r\n                return 0;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The decomposed horizontal scale of the Matrix. This value is always positive.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TransformMatrix#scaleX\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.4.0\r\n     */\r\n    scaleX: {\r\n\r\n        get: function ()\r\n        {\r\n            return Math.sqrt((this.a * this.a) + (this.b * this.b));\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The decomposed vertical scale of the Matrix. This value is always positive.\r\n     *\r\n     * @name Phaser.GameObjects.Components.TransformMatrix#scaleY\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.4.0\r\n     */\r\n    scaleY: {\r\n\r\n        get: function ()\r\n        {\r\n            return Math.sqrt((this.c * this.c) + (this.d * this.d));\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Reset the Matrix to an identity matrix.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#loadIdentity\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This TransformMatrix.\r\n     */\r\n    loadIdentity: function ()\r\n    {\r\n        var matrix = this.matrix;\r\n\r\n        matrix[0] = 1;\r\n        matrix[1] = 0;\r\n        matrix[2] = 0;\r\n        matrix[3] = 1;\r\n        matrix[4] = 0;\r\n        matrix[5] = 0;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Translate the Matrix.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#translate\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The horizontal translation value.\r\n     * @param {number} y - The vertical translation value.\r\n     *\r\n     * @return {this} This TransformMatrix.\r\n     */\r\n    translate: function (x, y)\r\n    {\r\n        var matrix = this.matrix;\r\n\r\n        matrix[4] = matrix[0] * x + matrix[2] * y + matrix[4];\r\n        matrix[5] = matrix[1] * x + matrix[3] * y + matrix[5];\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Scale the Matrix.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#scale\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The horizontal scale value.\r\n     * @param {number} y - The vertical scale value.\r\n     *\r\n     * @return {this} This TransformMatrix.\r\n     */\r\n    scale: function (x, y)\r\n    {\r\n        var matrix = this.matrix;\r\n\r\n        matrix[0] *= x;\r\n        matrix[1] *= x;\r\n        matrix[2] *= y;\r\n        matrix[3] *= y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Rotate the Matrix.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#rotate\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} angle - The angle of rotation in radians.\r\n     *\r\n     * @return {this} This TransformMatrix.\r\n     */\r\n    rotate: function (angle)\r\n    {\r\n        var sin = Math.sin(angle);\r\n        var cos = Math.cos(angle);\r\n\r\n        var matrix = this.matrix;\r\n\r\n        var a = matrix[0];\r\n        var b = matrix[1];\r\n        var c = matrix[2];\r\n        var d = matrix[3];\r\n\r\n        matrix[0] = a * cos + c * sin;\r\n        matrix[1] = b * cos + d * sin;\r\n        matrix[2] = a * -sin + c * cos;\r\n        matrix[3] = b * -sin + d * cos;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Multiply this Matrix by the given Matrix.\r\n     *\r\n     * If an `out` Matrix is given then the results will be stored in it.\r\n     * If it is not given, this matrix will be updated in place instead.\r\n     * Use an `out` Matrix if you do not wish to mutate this matrix.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#multiply\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Components.TransformMatrix} rhs - The Matrix to multiply by.\r\n     * @param {Phaser.GameObjects.Components.TransformMatrix} [out] - An optional Matrix to store the results in.\r\n     *\r\n     * @return {(this|Phaser.GameObjects.Components.TransformMatrix)} Either this TransformMatrix, or the `out` Matrix, if given in the arguments.\r\n     */\r\n    multiply: function (rhs, out)\r\n    {\r\n        var matrix = this.matrix;\r\n        var source = rhs.matrix;\r\n\r\n        var localA = matrix[0];\r\n        var localB = matrix[1];\r\n        var localC = matrix[2];\r\n        var localD = matrix[3];\r\n        var localE = matrix[4];\r\n        var localF = matrix[5];\r\n\r\n        var sourceA = source[0];\r\n        var sourceB = source[1];\r\n        var sourceC = source[2];\r\n        var sourceD = source[3];\r\n        var sourceE = source[4];\r\n        var sourceF = source[5];\r\n\r\n        var destinationMatrix = (out === undefined) ? matrix : out.matrix;\r\n\r\n        destinationMatrix[0] = (sourceA * localA) + (sourceB * localC);\r\n        destinationMatrix[1] = (sourceA * localB) + (sourceB * localD);\r\n        destinationMatrix[2] = (sourceC * localA) + (sourceD * localC);\r\n        destinationMatrix[3] = (sourceC * localB) + (sourceD * localD);\r\n        destinationMatrix[4] = (sourceE * localA) + (sourceF * localC) + localE;\r\n        destinationMatrix[5] = (sourceE * localB) + (sourceF * localD) + localF;\r\n\r\n        return destinationMatrix;\r\n    },\r\n\r\n    /**\r\n     * Multiply this Matrix by the matrix given, including the offset.\r\n     *\r\n     * The offsetX is added to the tx value: `offsetX * a + offsetY * c + tx`.\r\n     * The offsetY is added to the ty value: `offsetY * b + offsetY * d + ty`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#multiplyWithOffset\r\n     * @since 3.11.0\r\n     *\r\n     * @param {Phaser.GameObjects.Components.TransformMatrix} src - The source Matrix to copy from.\r\n     * @param {number} offsetX - Horizontal offset to factor in to the multiplication.\r\n     * @param {number} offsetY - Vertical offset to factor in to the multiplication.\r\n     *\r\n     * @return {this} This TransformMatrix.\r\n     */\r\n    multiplyWithOffset: function (src, offsetX, offsetY)\r\n    {\r\n        var matrix = this.matrix;\r\n        var otherMatrix = src.matrix;\r\n\r\n        var a0 = matrix[0];\r\n        var b0 = matrix[1];\r\n        var c0 = matrix[2];\r\n        var d0 = matrix[3];\r\n        var tx0 = matrix[4];\r\n        var ty0 = matrix[5];\r\n\r\n        var pse = offsetX * a0 + offsetY * c0 + tx0;\r\n        var psf = offsetX * b0 + offsetY * d0 + ty0;\r\n\r\n        var a1 = otherMatrix[0];\r\n        var b1 = otherMatrix[1];\r\n        var c1 = otherMatrix[2];\r\n        var d1 = otherMatrix[3];\r\n        var tx1 = otherMatrix[4];\r\n        var ty1 = otherMatrix[5];\r\n\r\n        matrix[0] = a1 * a0 + b1 * c0;\r\n        matrix[1] = a1 * b0 + b1 * d0;\r\n        matrix[2] = c1 * a0 + d1 * c0;\r\n        matrix[3] = c1 * b0 + d1 * d0;\r\n        matrix[4] = tx1 * a0 + ty1 * c0 + pse;\r\n        matrix[5] = tx1 * b0 + ty1 * d0 + psf;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Transform the Matrix.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#transform\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} a - The Scale X value.\r\n     * @param {number} b - The Shear Y value.\r\n     * @param {number} c - The Shear X value.\r\n     * @param {number} d - The Scale Y value.\r\n     * @param {number} tx - The Translate X value.\r\n     * @param {number} ty - The Translate Y value.\r\n     *\r\n     * @return {this} This TransformMatrix.\r\n     */\r\n    transform: function (a, b, c, d, tx, ty)\r\n    {\r\n        var matrix = this.matrix;\r\n\r\n        var a0 = matrix[0];\r\n        var b0 = matrix[1];\r\n        var c0 = matrix[2];\r\n        var d0 = matrix[3];\r\n        var tx0 = matrix[4];\r\n        var ty0 = matrix[5];\r\n\r\n        matrix[0] = a * a0 + b * c0;\r\n        matrix[1] = a * b0 + b * d0;\r\n        matrix[2] = c * a0 + d * c0;\r\n        matrix[3] = c * b0 + d * d0;\r\n        matrix[4] = tx * a0 + ty * c0 + tx0;\r\n        matrix[5] = tx * b0 + ty * d0 + ty0;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Transform a point in to the local space of this Matrix.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#transformPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate of the point to transform.\r\n     * @param {number} y - The y coordinate of the point to transform.\r\n     * @param {Phaser.Types.Math.Vector2Like} [point] - Optional Point object to store the transformed coordinates in.\r\n     *\r\n     * @return {Phaser.Types.Math.Vector2Like} The Point containing the transformed coordinates.\r\n     */\r\n    transformPoint: function (x, y, point)\r\n    {\r\n        if (point === undefined) { point = { x: 0, y: 0 }; }\r\n\r\n        var matrix = this.matrix;\r\n\r\n        var a = matrix[0];\r\n        var b = matrix[1];\r\n        var c = matrix[2];\r\n        var d = matrix[3];\r\n        var tx = matrix[4];\r\n        var ty = matrix[5];\r\n\r\n        point.x = x * a + y * c + tx;\r\n        point.y = x * b + y * d + ty;\r\n\r\n        return point;\r\n    },\r\n\r\n    /**\r\n     * Invert the Matrix.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#invert\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This TransformMatrix.\r\n     */\r\n    invert: function ()\r\n    {\r\n        var matrix = this.matrix;\r\n\r\n        var a = matrix[0];\r\n        var b = matrix[1];\r\n        var c = matrix[2];\r\n        var d = matrix[3];\r\n        var tx = matrix[4];\r\n        var ty = matrix[5];\r\n\r\n        var n = a * d - b * c;\r\n\r\n        matrix[0] = d / n;\r\n        matrix[1] = -b / n;\r\n        matrix[2] = -c / n;\r\n        matrix[3] = a / n;\r\n        matrix[4] = (c * ty - d * tx) / n;\r\n        matrix[5] = -(a * ty - b * tx) / n;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the values of this Matrix to copy those of the matrix given.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#copyFrom\r\n     * @since 3.11.0\r\n     *\r\n     * @param {Phaser.GameObjects.Components.TransformMatrix} src - The source Matrix to copy from.\r\n     *\r\n     * @return {this} This TransformMatrix.\r\n     */\r\n    copyFrom: function (src)\r\n    {\r\n        var matrix = this.matrix;\r\n\r\n        matrix[0] = src.a;\r\n        matrix[1] = src.b;\r\n        matrix[2] = src.c;\r\n        matrix[3] = src.d;\r\n        matrix[4] = src.e;\r\n        matrix[5] = src.f;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the values of this Matrix to copy those of the array given.\r\n     * Where array indexes 0, 1, 2, 3, 4 and 5 are mapped to a, b, c, d, e and f.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#copyFromArray\r\n     * @since 3.11.0\r\n     *\r\n     * @param {array} src - The array of values to set into this matrix.\r\n     *\r\n     * @return {this} This TransformMatrix.\r\n     */\r\n    copyFromArray: function (src)\r\n    {\r\n        var matrix = this.matrix;\r\n\r\n        matrix[0] = src[0];\r\n        matrix[1] = src[1];\r\n        matrix[2] = src[2];\r\n        matrix[3] = src[3];\r\n        matrix[4] = src[4];\r\n        matrix[5] = src[5];\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Copy the values from this Matrix to the given Canvas Rendering Context.\r\n     * This will use the Context.transform method.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#copyToContext\r\n     * @since 3.12.0\r\n     *\r\n     * @param {CanvasRenderingContext2D} ctx - The Canvas Rendering Context to copy the matrix values to.\r\n     *\r\n     * @return {CanvasRenderingContext2D} The Canvas Rendering Context.\r\n     */\r\n    copyToContext: function (ctx)\r\n    {\r\n        var matrix = this.matrix;\r\n\r\n        ctx.transform(matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5]);\r\n\r\n        return ctx;\r\n    },\r\n\r\n    /**\r\n     * Copy the values from this Matrix to the given Canvas Rendering Context.\r\n     * This will use the Context.setTransform method.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#setToContext\r\n     * @since 3.12.0\r\n     *\r\n     * @param {CanvasRenderingContext2D} ctx - The Canvas Rendering Context to copy the matrix values to.\r\n     *\r\n     * @return {CanvasRenderingContext2D} The Canvas Rendering Context.\r\n     */\r\n    setToContext: function (ctx)\r\n    {\r\n        ctx.setTransform(this);\r\n\r\n        return ctx;\r\n    },\r\n\r\n    /**\r\n     * Copy the values in this Matrix to the array given.\r\n     *\r\n     * Where array indexes 0, 1, 2, 3, 4 and 5 are mapped to a, b, c, d, e and f.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#copyToArray\r\n     * @since 3.12.0\r\n     *\r\n     * @param {array} [out] - The array to copy the matrix values in to.\r\n     *\r\n     * @return {array} An array where elements 0 to 5 contain the values from this matrix.\r\n     */\r\n    copyToArray: function (out)\r\n    {\r\n        var matrix = this.matrix;\r\n\r\n        if (out === undefined)\r\n        {\r\n            out = [ matrix[0], matrix[1], matrix[2], matrix[3], matrix[4], matrix[5] ];\r\n        }\r\n        else\r\n        {\r\n            out[0] = matrix[0];\r\n            out[1] = matrix[1];\r\n            out[2] = matrix[2];\r\n            out[3] = matrix[3];\r\n            out[4] = matrix[4];\r\n            out[5] = matrix[5];\r\n        }\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Set the values of this Matrix.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#setTransform\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} a - The Scale X value.\r\n     * @param {number} b - The Shear Y value.\r\n     * @param {number} c - The Shear X value.\r\n     * @param {number} d - The Scale Y value.\r\n     * @param {number} tx - The Translate X value.\r\n     * @param {number} ty - The Translate Y value.\r\n     *\r\n     * @return {this} This TransformMatrix.\r\n     */\r\n    setTransform: function (a, b, c, d, tx, ty)\r\n    {\r\n        var matrix = this.matrix;\r\n\r\n        matrix[0] = a;\r\n        matrix[1] = b;\r\n        matrix[2] = c;\r\n        matrix[3] = d;\r\n        matrix[4] = tx;\r\n        matrix[5] = ty;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Decompose this Matrix into its translation, scale and rotation values using QR decomposition.\r\n     *\r\n     * The result must be applied in the following order to reproduce the current matrix:\r\n     *\r\n     * translate -> rotate -> scale\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#decomposeMatrix\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.GameObjects.DecomposeMatrixResults} The decomposed Matrix.\r\n     */\r\n    decomposeMatrix: function ()\r\n    {\r\n        var decomposedMatrix = this.decomposedMatrix;\r\n\r\n        var matrix = this.matrix;\r\n\r\n        //  a = scale X (1)\r\n        //  b = shear Y (0)\r\n        //  c = shear X (0)\r\n        //  d = scale Y (1)\r\n\r\n        var a = matrix[0];\r\n        var b = matrix[1];\r\n        var c = matrix[2];\r\n        var d = matrix[3];\r\n\r\n        var determ = a * d - b * c;\r\n\r\n        decomposedMatrix.translateX = matrix[4];\r\n        decomposedMatrix.translateY = matrix[5];\r\n\r\n        if (a || b)\r\n        {\r\n            var r = Math.sqrt(a * a + b * b);\r\n\r\n            decomposedMatrix.rotation = (b > 0) ? Math.acos(a / r) : -Math.acos(a / r);\r\n            decomposedMatrix.scaleX = r;\r\n            decomposedMatrix.scaleY = determ / r;\r\n        }\r\n        else if (c || d)\r\n        {\r\n            var s = Math.sqrt(c * c + d * d);\r\n\r\n            decomposedMatrix.rotation = Math.PI * 0.5 - (d > 0 ? Math.acos(-c / s) : -Math.acos(c / s));\r\n            decomposedMatrix.scaleX = determ / s;\r\n            decomposedMatrix.scaleY = s;\r\n        }\r\n        else\r\n        {\r\n            decomposedMatrix.rotation = 0;\r\n            decomposedMatrix.scaleX = 0;\r\n            decomposedMatrix.scaleY = 0;\r\n        }\r\n\r\n        return decomposedMatrix;\r\n    },\r\n\r\n    /**\r\n     * Apply the identity, translate, rotate and scale operations on the Matrix.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#applyITRS\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The horizontal translation.\r\n     * @param {number} y - The vertical translation.\r\n     * @param {number} rotation - The angle of rotation in radians.\r\n     * @param {number} scaleX - The horizontal scale.\r\n     * @param {number} scaleY - The vertical scale.\r\n     *\r\n     * @return {this} This TransformMatrix.\r\n     */\r\n    applyITRS: function (x, y, rotation, scaleX, scaleY)\r\n    {\r\n        var matrix = this.matrix;\r\n\r\n        var radianSin = Math.sin(rotation);\r\n        var radianCos = Math.cos(rotation);\r\n\r\n        // Translate\r\n        matrix[4] = x;\r\n        matrix[5] = y;\r\n\r\n        // Rotate and Scale\r\n        matrix[0] = radianCos * scaleX;\r\n        matrix[1] = radianSin * scaleX;\r\n        matrix[2] = -radianSin * scaleY;\r\n        matrix[3] = radianCos * scaleY;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Takes the `x` and `y` values and returns a new position in the `output` vector that is the inverse of\r\n     * the current matrix with its transformation applied.\r\n     *\r\n     * Can be used to translate points from world to local space.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#applyInverse\r\n     * @since 3.12.0\r\n     *\r\n     * @param {number} x - The x position to translate.\r\n     * @param {number} y - The y position to translate.\r\n     * @param {Phaser.Math.Vector2} [output] - A Vector2, or point-like object, to store the results in.\r\n     *\r\n     * @return {Phaser.Math.Vector2} The coordinates, inverse-transformed through this matrix.\r\n     */\r\n    applyInverse: function (x, y, output)\r\n    {\r\n        if (output === undefined) { output = new Vector2(); }\r\n\r\n        var matrix = this.matrix;\r\n\r\n        var a = matrix[0];\r\n        var b = matrix[1];\r\n        var c = matrix[2];\r\n        var d = matrix[3];\r\n        var tx = matrix[4];\r\n        var ty = matrix[5];\r\n\r\n        var id = 1 / ((a * d) + (c * -b));\r\n\r\n        output.x = (d * id * x) + (-c * id * y) + (((ty * c) - (tx * d)) * id);\r\n        output.y = (a * id * y) + (-b * id * x) + (((-ty * a) + (tx * b)) * id);\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Performs the 8 calculations required to create the vertices of\r\n     * a quad based on this matrix and the given x/y/xw/yh values.\r\n     *\r\n     * The result is stored in `TransformMatrix.quad`, which is returned\r\n     * from this method.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#setQuad\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} x - The x value.\r\n     * @param {number} y - The y value.\r\n     * @param {number} xw - The xw value.\r\n     * @param {number} yh - The yh value.\r\n     * @param {boolean} [roundPixels=false] - Pass the results via Math.round?\r\n     * @param {Float32Array} [quad] - Optional Float32Array to store the results in. Otherwises uses the local quad array.\r\n     *\r\n     * @return {Float32Array} The quad Float32Array.\r\n     */\r\n    setQuad: function (x, y, xw, yh, roundPixels, quad)\r\n    {\r\n        if (roundPixels === undefined) { roundPixels = false; }\r\n        if (quad === undefined) { quad = this.quad; }\r\n\r\n        var matrix = this.matrix;\r\n\r\n        var a = matrix[0];\r\n        var b = matrix[1];\r\n        var c = matrix[2];\r\n        var d = matrix[3];\r\n        var e = matrix[4];\r\n        var f = matrix[5];\r\n\r\n        // Compute the unrounded positions for the quad\r\n        var x0 = x * a + y * c + e;\r\n        var y0 = x * b + y * d + f;\r\n\r\n        var x1 = x * a + yh * c + e;\r\n        var y1 = x * b + yh * d + f;\r\n\r\n        var x2 = xw * a + yh * c + e;\r\n        var y2 = xw * b + yh * d + f;\r\n\r\n        var x3 = xw * a + y * c + e;\r\n        var y3 = xw * b + y * d + f;\r\n\r\n        if (roundPixels)\r\n        {\r\n            // Round the top-left corner\r\n            var rx0 = Math.floor(x0 + 0.5);\r\n            var ry0 = Math.floor(y0 + 0.5);\r\n\r\n            // Calculate the offset caused by rounding\r\n            var dx = rx0 - x0;\r\n            var dy = ry0 - y0;\r\n\r\n            // Adjust the other corners by the same offset\r\n            quad[0] = rx0;\r\n            quad[1] = ry0;\r\n\r\n            quad[2] = x1 + dx;\r\n            quad[3] = y1 + dy;\r\n\r\n            quad[4] = x2 + dx;\r\n            quad[5] = y2 + dy;\r\n\r\n            quad[6] = x3 + dx;\r\n            quad[7] = y3 + dy;\r\n        }\r\n        else\r\n        {\r\n            quad[0] = x0;\r\n            quad[1] = y0;\r\n\r\n            quad[2] = x1;\r\n            quad[3] = y1;\r\n\r\n            quad[4] = x2;\r\n            quad[5] = y2;\r\n\r\n            quad[6] = x3;\r\n            quad[7] = y3;\r\n        }\r\n\r\n        return quad;\r\n    },\r\n\r\n    /**\r\n     * Returns the X component of this matrix multiplied by the given values.\r\n     * This is the same as `x * a + y * c + e`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#getX\r\n     * @since 3.12.0\r\n     *\r\n     * @param {number} x - The x value.\r\n     * @param {number} y - The y value.\r\n     *\r\n     * @return {number} The calculated x value.\r\n     */\r\n    getX: function (x, y)\r\n    {\r\n        return x * this.a + y * this.c + this.e;\r\n    },\r\n\r\n    /**\r\n     * Returns the Y component of this matrix multiplied by the given values.\r\n     * This is the same as `x * b + y * d + f`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#getY\r\n     * @since 3.12.0\r\n     *\r\n     * @param {number} x - The x value.\r\n     * @param {number} y - The y value.\r\n     *\r\n     * @return {number} The calculated y value.\r\n     */\r\n    getY: function (x, y)\r\n    {\r\n        return x * this.b + y * this.d + this.f;\r\n    },\r\n\r\n    /**\r\n     * Returns the X component of this matrix multiplied by the given values.\r\n     *\r\n     * This is the same as `x * a + y * c + e`, optionally passing via `Math.round`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#getXRound\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} x - The x value.\r\n     * @param {number} y - The y value.\r\n     * @param {boolean} [round=false] - Math.round the resulting value?\r\n     *\r\n     * @return {number} The calculated x value.\r\n     */\r\n    getXRound: function (x, y, round)\r\n    {\r\n        var v = this.getX(x, y);\r\n\r\n        if (round)\r\n        {\r\n            v = Math.floor(v + 0.5);\r\n        }\r\n\r\n        return v;\r\n    },\r\n\r\n    /**\r\n     * Returns the Y component of this matrix multiplied by the given values.\r\n     *\r\n     * This is the same as `x * b + y * d + f`, optionally passing via `Math.round`.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#getYRound\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} x - The x value.\r\n     * @param {number} y - The y value.\r\n     * @param {boolean} [round=false] - Math.round the resulting value?\r\n     *\r\n     * @return {number} The calculated y value.\r\n     */\r\n    getYRound: function (x, y, round)\r\n    {\r\n        var v = this.getY(x, y);\r\n\r\n        if (round)\r\n        {\r\n            v = Math.floor(v + 0.5);\r\n        }\r\n\r\n        return v;\r\n    },\r\n\r\n    /**\r\n     * Returns a string that can be used in a CSS Transform call as a `matrix` property.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#getCSSMatrix\r\n     * @since 3.12.0\r\n     *\r\n     * @return {string} A string containing the CSS Transform matrix values.\r\n     */\r\n    getCSSMatrix: function ()\r\n    {\r\n        var m = this.matrix;\r\n\r\n        return 'matrix(' + m[0] + ',' + m[1] + ',' + m[2] + ',' + m[3] + ',' + m[4] + ',' + m[5] + ')';\r\n    },\r\n\r\n    /**\r\n     * Destroys this Transform Matrix.\r\n     *\r\n     * @method Phaser.GameObjects.Components.TransformMatrix#destroy\r\n     * @since 3.4.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.matrix = null;\r\n        this.quad = null;\r\n        this.decomposedMatrix = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = TransformMatrix;\r\n\n\n/***/ }),\n\n/***/ 59715:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n//  bitmask flag for GameObject.renderMask\r\nvar _FLAG = 1; // 0001\r\n\r\n/**\r\n * Provides methods used for setting the visibility of a Game Object.\r\n * Should be applied as a mixin and not used directly.\r\n *\r\n * @namespace Phaser.GameObjects.Components.Visible\r\n * @since 3.0.0\r\n */\r\n\r\nvar Visible = {\r\n\r\n    /**\r\n     * Private internal value. Holds the visible value.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Visible#_visible\r\n     * @type {boolean}\r\n     * @private\r\n     * @default true\r\n     * @since 3.0.0\r\n     */\r\n    _visible: true,\r\n\r\n    /**\r\n     * The visible state of the Game Object.\r\n     *\r\n     * An invisible Game Object will skip rendering, but will still process update logic.\r\n     *\r\n     * @name Phaser.GameObjects.Components.Visible#visible\r\n     * @type {boolean}\r\n     * @since 3.0.0\r\n     */\r\n    visible: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._visible;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            if (value)\r\n            {\r\n                this._visible = true;\r\n                this.renderFlags |= _FLAG;\r\n            }\r\n            else\r\n            {\r\n                this._visible = false;\r\n                this.renderFlags &= ~_FLAG;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Sets the visibility of this Game Object.\r\n     *\r\n     * An invisible Game Object will skip rendering, but will still process update logic.\r\n     *\r\n     * @method Phaser.GameObjects.Components.Visible#setVisible\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} value - The visible state of the Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setVisible: function (value)\r\n    {\r\n        this.visible = value;\r\n\r\n        return this;\r\n    }\r\n};\r\n\r\nmodule.exports = Visible;\r\n\n\n/***/ }),\n\n/***/ 31401:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.GameObjects.Components\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    Alpha: __webpack_require__(16005),\r\n    AlphaSingle: __webpack_require__(88509),\r\n    BlendMode: __webpack_require__(90065),\r\n    ComputedSize: __webpack_require__(94215),\r\n    Crop: __webpack_require__(61683),\r\n    Depth: __webpack_require__(89272),\r\n    Flip: __webpack_require__(54434),\r\n    FX: __webpack_require__(47059),\r\n    GetBounds: __webpack_require__(8004),\r\n    Mask: __webpack_require__(8573),\r\n    Origin: __webpack_require__(27387),\r\n    PathFollower: __webpack_require__(37640),\r\n    Pipeline: __webpack_require__(72699),\r\n    PostPipeline: __webpack_require__(17581),\r\n    ScrollFactor: __webpack_require__(80227),\r\n    Size: __webpack_require__(16736),\r\n    Texture: __webpack_require__(37726),\r\n    TextureCrop: __webpack_require__(79812),\r\n    Tint: __webpack_require__(27472),\r\n    ToJSON: __webpack_require__(53774),\r\n    Transform: __webpack_require__(16901),\r\n    TransformMatrix: __webpack_require__(61340),\r\n    Visible: __webpack_require__(59715)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 31559:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @author       Felipe Alfonso <@bitnenfer>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar ArrayUtils = __webpack_require__(37105);\r\nvar BlendModes = __webpack_require__(10312);\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar Events = __webpack_require__(51708);\r\nvar GameObject = __webpack_require__(95643);\r\nvar Rectangle = __webpack_require__(87841);\r\nvar Render = __webpack_require__(29959);\r\nvar Union = __webpack_require__(36899);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\nvar tempTransformMatrix = new Components.TransformMatrix();\r\n\r\n/**\r\n * @classdesc\r\n * A Container Game Object.\r\n *\r\n * A Container, as the name implies, can 'contain' other types of Game Object.\r\n * When a Game Object is added to a Container, the Container becomes responsible for the rendering of it.\r\n * By default it will be removed from the Display List and instead added to the Containers own internal list.\r\n *\r\n * The position of the Game Object automatically becomes relative to the position of the Container.\r\n *\r\n * The transform point of a Container is 0x0 (in local space) and that cannot be changed. The children you add to the\r\n * Container should be positioned with this value in mind. I.e. you should treat 0x0 as being the center of\r\n * the Container, and position children positively and negative around it as required.\r\n *\r\n * When the Container is rendered, all of its children are rendered as well, in the order in which they exist\r\n * within the Container. Container children can be repositioned using methods such as `MoveUp`, `MoveDown` and `SendToBack`.\r\n *\r\n * If you modify a transform property of the Container, such as `Container.x` or `Container.rotation` then it will\r\n * automatically influence all children as well.\r\n *\r\n * Containers can include other Containers for deeply nested transforms.\r\n *\r\n * Containers can have masks set on them and can be used as a mask too. However, Container children cannot be masked.\r\n * The masks do not 'stack up'. Only a Container on the root of the display list will use its mask.\r\n *\r\n * Containers can be enabled for input. Because they do not have a texture you need to provide a shape for them\r\n * to use as their hit area. Container children can also be enabled for input, independent of the Container.\r\n *\r\n * If input enabling a _child_ you should not set both the `origin` and a **negative** scale factor on the child,\r\n * or the input area will become misaligned.\r\n *\r\n * Containers can be given a physics body for either Arcade Physics, Impact Physics or Matter Physics. However,\r\n * if Container _children_ are enabled for physics you may get unexpected results, such as offset bodies,\r\n * if the Container itself, or any of its ancestors, is positioned anywhere other than at 0 x 0. Container children\r\n * with physics do not factor in the Container due to the excessive extra calculations needed. Please structure\r\n * your game to work around this.\r\n *\r\n * It's important to understand the impact of using Containers. They add additional processing overhead into\r\n * every one of their children. The deeper you nest them, the more the cost escalates. This is especially true\r\n * for input events. You also loose the ability to set the display depth of Container children in the same\r\n * flexible manner as those not within them. In short, don't use them for the sake of it. You pay a small cost\r\n * every time you create one, try to structure your game around avoiding that where possible.\r\n *\r\n * @class Container\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.4.0\r\n *\r\n * @extends Phaser.GameObjects.Components.AlphaSingle\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.ComputedSize\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {Phaser.GameObjects.GameObject[]} [children] - An optional array of Game Objects to add to this Container.\r\n */\r\nvar Container = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.AlphaSingle,\r\n        Components.BlendMode,\r\n        Components.ComputedSize,\r\n        Components.Depth,\r\n        Components.Mask,\r\n        Components.PostPipeline,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        Render\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Container (scene, x, y, children)\r\n    {\r\n        GameObject.call(this, scene, 'Container');\r\n\r\n        /**\r\n         * An array holding the children of this Container.\r\n         *\r\n         * @name Phaser.GameObjects.Container#list\r\n         * @type {Phaser.GameObjects.GameObject[]}\r\n         * @since 3.4.0\r\n         */\r\n        this.list = [];\r\n\r\n        /**\r\n         * Does this Container exclusively manage its children?\r\n         *\r\n         * The default is `true` which means a child added to this Container cannot\r\n         * belong in another Container, which includes the Scene display list.\r\n         *\r\n         * If you disable this then this Container will no longer exclusively manage its children.\r\n         * This allows you to create all kinds of interesting graphical effects, such as replicating\r\n         * Game Objects without reparenting them all over the Scene.\r\n         * However, doing so will prevent children from receiving any kind of input event or have\r\n         * their physics bodies work by default, as they're no longer a single entity on the\r\n         * display list, but are being replicated where-ever this Container is.\r\n         *\r\n         * @name Phaser.GameObjects.Container#exclusive\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.4.0\r\n         */\r\n        this.exclusive = true;\r\n\r\n        /**\r\n         * Containers can have an optional maximum size. If set to anything above 0 it\r\n         * will constrict the addition of new Game Objects into the Container, capping off\r\n         * the maximum limit the Container can grow in size to.\r\n         *\r\n         * @name Phaser.GameObjects.Container#maxSize\r\n         * @type {number}\r\n         * @default -1\r\n         * @since 3.4.0\r\n         */\r\n        this.maxSize = -1;\r\n\r\n        /**\r\n         * The cursor position.\r\n         *\r\n         * @name Phaser.GameObjects.Container#position\r\n         * @type {number}\r\n         * @since 3.4.0\r\n         */\r\n        this.position = 0;\r\n\r\n        /**\r\n         * Internal Transform Matrix used for local space conversion.\r\n         *\r\n         * @name Phaser.GameObjects.Container#localTransform\r\n         * @type {Phaser.GameObjects.Components.TransformMatrix}\r\n         * @since 3.4.0\r\n         */\r\n        this.localTransform = new Components.TransformMatrix();\r\n\r\n        /**\r\n         * The property key to sort by.\r\n         *\r\n         * @name Phaser.GameObjects.Container#_sortKey\r\n         * @type {string}\r\n         * @private\r\n         * @since 3.4.0\r\n         */\r\n        this._sortKey = '';\r\n\r\n        /**\r\n         * A reference to the Scene Systems Event Emitter.\r\n         *\r\n         * @name Phaser.GameObjects.Container#_sysEvents\r\n         * @type {Phaser.Events.EventEmitter}\r\n         * @private\r\n         * @since 3.9.0\r\n         */\r\n        this._sysEvents = scene.sys.events;\r\n\r\n        /**\r\n         * The horizontal scroll factor of this Container.\r\n         *\r\n         * The scroll factor controls the influence of the movement of a Camera upon this Container.\r\n         *\r\n         * When a camera scrolls it will change the location at which this Container is rendered on-screen.\r\n         * It does not change the Containers actual position values.\r\n         *\r\n         * For a Container, setting this value will only update the Container itself, not its children.\r\n         * If you wish to change the scrollFactor of the children as well, use the `setScrollFactor` method.\r\n         *\r\n         * A value of 1 means it will move exactly in sync with a camera.\r\n         * A value of 0 means it will not move at all, even if the camera moves.\r\n         * Other values control the degree to which the camera movement is mapped to this Container.\r\n         *\r\n         * Please be aware that scroll factor values other than 1 are not taken in to consideration when\r\n         * calculating physics collisions. Bodies always collide based on their world position, but changing\r\n         * the scroll factor is a visual adjustment to where the textures are rendered, which can offset\r\n         * them from physics bodies if not accounted for in your code.\r\n         *\r\n         * @name Phaser.GameObjects.Container#scrollFactorX\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.4.0\r\n         */\r\n        this.scrollFactorX = 1;\r\n\r\n        /**\r\n         * The vertical scroll factor of this Container.\r\n         *\r\n         * The scroll factor controls the influence of the movement of a Camera upon this Container.\r\n         *\r\n         * When a camera scrolls it will change the location at which this Container is rendered on-screen.\r\n         * It does not change the Containers actual position values.\r\n         *\r\n         * For a Container, setting this value will only update the Container itself, not its children.\r\n         * If you wish to change the scrollFactor of the children as well, use the `setScrollFactor` method.\r\n         *\r\n         * A value of 1 means it will move exactly in sync with a camera.\r\n         * A value of 0 means it will not move at all, even if the camera moves.\r\n         * Other values control the degree to which the camera movement is mapped to this Container.\r\n         *\r\n         * Please be aware that scroll factor values other than 1 are not taken in to consideration when\r\n         * calculating physics collisions. Bodies always collide based on their world position, but changing\r\n         * the scroll factor is a visual adjustment to where the textures are rendered, which can offset\r\n         * them from physics bodies if not accounted for in your code.\r\n         *\r\n         * @name Phaser.GameObjects.Container#scrollFactorY\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.4.0\r\n         */\r\n        this.scrollFactorY = 1;\r\n\r\n        this.initPostPipeline();\r\n\r\n        this.setPosition(x, y);\r\n\r\n        this.setBlendMode(BlendModes.SKIP_CHECK);\r\n\r\n        if (children)\r\n        {\r\n            this.add(children);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Internal value to allow Containers to be used for input and physics.\r\n     * Do not change this value. It has no effect other than to break things.\r\n     *\r\n     * @name Phaser.GameObjects.Container#originX\r\n     * @type {number}\r\n     * @readonly\r\n     * @override\r\n     * @since 3.4.0\r\n     */\r\n    originX: {\r\n\r\n        get: function ()\r\n        {\r\n            return 0.5;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Internal value to allow Containers to be used for input and physics.\r\n     * Do not change this value. It has no effect other than to break things.\r\n     *\r\n     * @name Phaser.GameObjects.Container#originY\r\n     * @type {number}\r\n     * @readonly\r\n     * @override\r\n     * @since 3.4.0\r\n     */\r\n    originY: {\r\n\r\n        get: function ()\r\n        {\r\n            return 0.5;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Internal value to allow Containers to be used for input and physics.\r\n     * Do not change this value. It has no effect other than to break things.\r\n     *\r\n     * @name Phaser.GameObjects.Container#displayOriginX\r\n     * @type {number}\r\n     * @readonly\r\n     * @override\r\n     * @since 3.4.0\r\n     */\r\n    displayOriginX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.width * 0.5;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Internal value to allow Containers to be used for input and physics.\r\n     * Do not change this value. It has no effect other than to break things.\r\n     *\r\n     * @name Phaser.GameObjects.Container#displayOriginY\r\n     * @type {number}\r\n     * @readonly\r\n     * @override\r\n     * @since 3.4.0\r\n     */\r\n    displayOriginY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.height * 0.5;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Does this Container exclusively manage its children?\r\n     *\r\n     * The default is `true` which means a child added to this Container cannot\r\n     * belong in another Container, which includes the Scene display list.\r\n     *\r\n     * If you disable this then this Container will no longer exclusively manage its children.\r\n     * This allows you to create all kinds of interesting graphical effects, such as replicating\r\n     * Game Objects without reparenting them all over the Scene.\r\n     * However, doing so will prevent children from receiving any kind of input event or have\r\n     * their physics bodies work by default, as they're no longer a single entity on the\r\n     * display list, but are being replicated where-ever this Container is.\r\n     *\r\n     * @method Phaser.GameObjects.Container#setExclusive\r\n     * @since 3.4.0\r\n     *\r\n     * @param {boolean} [value=true] - The exclusive state of this Container.\r\n     *\r\n     * @return {this} This Container.\r\n     */\r\n    setExclusive: function (value)\r\n    {\r\n        if (value === undefined) { value = true; }\r\n\r\n        this.exclusive = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Gets the bounds of this Container. It works by iterating all children of the Container,\r\n     * getting their respective bounds, and then working out a min-max rectangle from that.\r\n     * It does not factor in if the children render or not, all are included.\r\n     *\r\n     * Some children are unable to return their bounds, such as Graphics objects, in which case\r\n     * they are skipped.\r\n     *\r\n     * Depending on the quantity of children in this Container it could be a really expensive call,\r\n     * so cache it and only poll it as needed.\r\n     *\r\n     * The values are stored and returned in a Rectangle object.\r\n     *\r\n     * @method Phaser.GameObjects.Container#getBounds\r\n     * @since 3.4.0\r\n     *\r\n     * @param {Phaser.Geom.Rectangle} [output] - A Geom.Rectangle object to store the values in. If not provided a new Rectangle will be created.\r\n     *\r\n     * @return {Phaser.Geom.Rectangle} The values stored in the output object.\r\n     */\r\n    getBounds: function (output)\r\n    {\r\n        if (output === undefined) { output = new Rectangle(); }\r\n\r\n        output.setTo(this.x, this.y, 0, 0);\r\n\r\n        if (this.parentContainer)\r\n        {\r\n            var parentMatrix = this.parentContainer.getBoundsTransformMatrix();\r\n            var transformedPosition = parentMatrix.transformPoint(this.x, this.y);\r\n\r\n            output.setTo(transformedPosition.x, transformedPosition.y, 0, 0);\r\n        }\r\n\r\n        if (this.list.length > 0)\r\n        {\r\n            var children = this.list;\r\n            var tempRect = new Rectangle();\r\n            var hasSetFirst = false;\r\n\r\n            output.setEmpty();\r\n\r\n            for (var i = 0; i < children.length; i++)\r\n            {\r\n                var entry = children[i];\r\n\r\n                if (entry.getBounds)\r\n                {\r\n                    entry.getBounds(tempRect);\r\n\r\n                    if (!hasSetFirst)\r\n                    {\r\n                        output.setTo(tempRect.x, tempRect.y, tempRect.width, tempRect.height);\r\n                        hasSetFirst = true;\r\n                    }\r\n                    else\r\n                    {\r\n                        Union(tempRect, output, output);\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Internal add handler.\r\n     *\r\n     * @method Phaser.GameObjects.Container#addHandler\r\n     * @private\r\n     * @since 3.4.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that was just added to this Container.\r\n     */\r\n    addHandler: function (gameObject)\r\n    {\r\n        gameObject.once(Events.DESTROY, this.onChildDestroyed, this);\r\n\r\n        if (this.exclusive)\r\n        {\r\n            if (gameObject.parentContainer)\r\n            {\r\n                gameObject.parentContainer.remove(gameObject);\r\n            }\r\n\r\n            gameObject.parentContainer = this;\r\n\r\n            gameObject.removeFromDisplayList();\r\n\r\n            gameObject.addedToScene();\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Internal remove handler.\r\n     *\r\n     * @method Phaser.GameObjects.Container#removeHandler\r\n     * @private\r\n     * @since 3.4.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that was just removed from this Container.\r\n     */\r\n    removeHandler: function (gameObject)\r\n    {\r\n        gameObject.off(Events.DESTROY, this.remove, this);\r\n\r\n        if (this.exclusive)\r\n        {\r\n            gameObject.parentContainer = null;\r\n\r\n            gameObject.removedFromScene();\r\n\r\n            gameObject.addToDisplayList();\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Takes a Point-like object, such as a Vector2, Geom.Point or object with public x and y properties,\r\n     * and transforms it into the space of this Container, then returns it in the output object.\r\n     *\r\n     * @method Phaser.GameObjects.Container#pointToContainer\r\n     * @since 3.4.0\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} source - The Source Point to be transformed.\r\n     * @param {Phaser.Types.Math.Vector2Like} [output] - A destination object to store the transformed point in. If none given a Vector2 will be created and returned.\r\n     *\r\n     * @return {Phaser.Types.Math.Vector2Like} The transformed point.\r\n     */\r\n    pointToContainer: function (source, output)\r\n    {\r\n        if (output === undefined) { output = new Vector2(); }\r\n\r\n        if (this.parentContainer)\r\n        {\r\n            this.parentContainer.pointToContainer(source, output);\r\n        }\r\n        else\r\n        {\r\n            output.x = source.x;\r\n            output.y = source.y;\r\n        }\r\n\r\n        var tempMatrix = tempTransformMatrix;\r\n\r\n        //  No need to loadIdentity because applyITRS overwrites every value anyway\r\n        tempMatrix.applyITRS(this.x, this.y, this.rotation, this.scaleX, this.scaleY);\r\n\r\n        tempMatrix.invert();\r\n\r\n        tempMatrix.transformPoint(source.x, source.y, output);\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Returns the world transform matrix as used for Bounds checks.\r\n     *\r\n     * The returned matrix is temporal and shouldn't be stored.\r\n     *\r\n     * @method Phaser.GameObjects.Container#getBoundsTransformMatrix\r\n     * @since 3.4.0\r\n     *\r\n     * @return {Phaser.GameObjects.Components.TransformMatrix} The world transform matrix.\r\n     */\r\n    getBoundsTransformMatrix: function ()\r\n    {\r\n        return this.getWorldTransformMatrix(tempTransformMatrix, this.localTransform);\r\n    },\r\n\r\n    /**\r\n     * Adds the given Game Object, or array of Game Objects, to this Container.\r\n     *\r\n     * Each Game Object must be unique within the Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#add\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {(T|T[])} - [child]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject|Phaser.GameObjects.GameObject[]} child - The Game Object, or array of Game Objects, to add to the Container.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    add: function (child)\r\n    {\r\n        ArrayUtils.Add(this.list, child, this.maxSize, this.addHandler, this);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds the given Game Object, or array of Game Objects, to this Container at the specified position.\r\n     *\r\n     * Existing Game Objects in the Container are shifted up.\r\n     *\r\n     * Each Game Object must be unique within the Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#addAt\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {(T|T[])} - [child]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject|Phaser.GameObjects.GameObject[]} child - The Game Object, or array of Game Objects, to add to the Container.\r\n     * @param {number} [index=0] - The position to insert the Game Object/s at.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    addAt: function (child, index)\r\n    {\r\n        ArrayUtils.AddAt(this.list, child, index, this.maxSize, this.addHandler, this);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns the Game Object at the given position in this Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#getAt\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [$return]\r\n     *\r\n     * @param {number} index - The position to get the Game Object from.\r\n     *\r\n     * @return {?Phaser.GameObjects.GameObject} The Game Object at the specified index, or `null` if none found.\r\n     */\r\n    getAt: function (index)\r\n    {\r\n        return this.list[index];\r\n    },\r\n\r\n    /**\r\n     * Returns the index of the given Game Object in this Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#getIndex\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [child]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child - The Game Object to search for in this Container.\r\n     *\r\n     * @return {number} The index of the Game Object in this Container, or -1 if not found.\r\n     */\r\n    getIndex: function (child)\r\n    {\r\n        return this.list.indexOf(child);\r\n    },\r\n\r\n    /**\r\n     * Sort the contents of this Container so the items are in order based on the given property.\r\n     * For example: `sort('alpha')` would sort the elements based on the value of their `alpha` property.\r\n     *\r\n     * @method Phaser.GameObjects.Container#sort\r\n     * @since 3.4.0\r\n     *\r\n     * @param {string} property - The property to lexically sort by.\r\n     * @param {function} [handler] - Provide your own custom handler function. Will receive 2 children which it should compare and return a boolean.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    sort: function (property, handler)\r\n    {\r\n        if (!property)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        if (handler === undefined)\r\n        {\r\n            handler = function (childA, childB)\r\n            {\r\n                return childA[property] - childB[property];\r\n            };\r\n        }\r\n\r\n        ArrayUtils.StableSort(this.list, handler);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Searches for the first instance of a child with its `name` property matching the given argument.\r\n     * Should more than one child have the same name only the first is returned.\r\n     *\r\n     * @method Phaser.GameObjects.Container#getByName\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [$return]\r\n     *\r\n     * @param {string} name - The name to search for.\r\n     *\r\n     * @return {?Phaser.GameObjects.GameObject} The first child with a matching name, or `null` if none were found.\r\n     */\r\n    getByName: function (name)\r\n    {\r\n        return ArrayUtils.GetFirst(this.list, 'name', name);\r\n    },\r\n\r\n    /**\r\n     * Returns a random Game Object from this Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#getRandom\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [$return]\r\n     *\r\n     * @param {number} [startIndex=0] - An optional start index.\r\n     * @param {number} [length] - An optional length, the total number of elements (from the startIndex) to choose from.\r\n     *\r\n     * @return {?Phaser.GameObjects.GameObject} A random child from the Container, or `null` if the Container is empty.\r\n     */\r\n    getRandom: function (startIndex, length)\r\n    {\r\n        return ArrayUtils.GetRandom(this.list, startIndex, length);\r\n    },\r\n\r\n    /**\r\n     * Gets the first Game Object in this Container.\r\n     *\r\n     * You can also specify a property and value to search for, in which case it will return the first\r\n     * Game Object in this Container with a matching property and / or value.\r\n     *\r\n     * For example: `getFirst('visible', true)` would return the first Game Object that had its `visible` property set.\r\n     *\r\n     * You can limit the search to the `startIndex` - `endIndex` range.\r\n     *\r\n     * @method Phaser.GameObjects.Container#getFirst\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [$return]\r\n     *\r\n     * @param {string} property - The property to test on each Game Object in the Container.\r\n     * @param {*} value - The value to test the property against. Must pass a strict (`===`) comparison check.\r\n     * @param {number} [startIndex=0] - An optional start index to search from.\r\n     * @param {number} [endIndex=Container.length] - An optional end index to search up to (but not included)\r\n     *\r\n     * @return {?Phaser.GameObjects.GameObject} The first matching Game Object, or `null` if none was found.\r\n     */\r\n    getFirst: function (property, value, startIndex, endIndex)\r\n    {\r\n        return ArrayUtils.GetFirst(this.list, property, value, startIndex, endIndex);\r\n    },\r\n\r\n    /**\r\n     * Returns all Game Objects in this Container.\r\n     *\r\n     * You can optionally specify a matching criteria using the `property` and `value` arguments.\r\n     *\r\n     * For example: `getAll('body')` would return only Game Objects that have a body property.\r\n     *\r\n     * You can also specify a value to compare the property to:\r\n     *\r\n     * `getAll('visible', true)` would return only Game Objects that have their visible property set to `true`.\r\n     *\r\n     * Optionally you can specify a start and end index. For example if this Container had 100 Game Objects,\r\n     * and you set `startIndex` to 0 and `endIndex` to 50, it would return matches from only\r\n     * the first 50 Game Objects.\r\n     *\r\n     * @method Phaser.GameObjects.Container#getAll\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T[]} - [$return]\r\n     *\r\n     * @param {string} [property] - The property to test on each Game Object in the Container.\r\n     * @param {any} [value] - If property is set then the `property` must strictly equal this value to be included in the results.\r\n     * @param {number} [startIndex=0] - An optional start index to search from.\r\n     * @param {number} [endIndex=Container.length] - An optional end index to search up to (but not included)\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject[]} An array of matching Game Objects from this Container.\r\n     */\r\n    getAll: function (property, value, startIndex, endIndex)\r\n    {\r\n        return ArrayUtils.GetAll(this.list, property, value, startIndex, endIndex);\r\n    },\r\n\r\n    /**\r\n     * Returns the total number of Game Objects in this Container that have a property\r\n     * matching the given value.\r\n     *\r\n     * For example: `count('visible', true)` would count all the elements that have their visible property set.\r\n     *\r\n     * You can optionally limit the operation to the `startIndex` - `endIndex` range.\r\n     *\r\n     * @method Phaser.GameObjects.Container#count\r\n     * @since 3.4.0\r\n     *\r\n     * @param {string} property - The property to check.\r\n     * @param {any} value - The value to check.\r\n     * @param {number} [startIndex=0] - An optional start index to search from.\r\n     * @param {number} [endIndex=Container.length] - An optional end index to search up to (but not included)\r\n     *\r\n     * @return {number} The total number of Game Objects in this Container with a property matching the given value.\r\n     */\r\n    count: function (property, value, startIndex, endIndex)\r\n    {\r\n        return ArrayUtils.CountAllMatching(this.list, property, value, startIndex, endIndex);\r\n    },\r\n\r\n    /**\r\n     * Swaps the position of two Game Objects in this Container.\r\n     * Both Game Objects must belong to this Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#swap\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [child1,child2]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child1 - The first Game Object to swap.\r\n     * @param {Phaser.GameObjects.GameObject} child2 - The second Game Object to swap.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    swap: function (child1, child2)\r\n    {\r\n        ArrayUtils.Swap(this.list, child1, child2);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Moves a Game Object to a new position within this Container.\r\n     *\r\n     * The Game Object must already be a child of this Container.\r\n     *\r\n     * The Game Object is removed from its old position and inserted into the new one.\r\n     * Therefore the Container size does not change. Other children will change position accordingly.\r\n     *\r\n     * @method Phaser.GameObjects.Container#moveTo\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [child]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child - The Game Object to move.\r\n     * @param {number} index - The new position of the Game Object in this Container.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    moveTo: function (child, index)\r\n    {\r\n        ArrayUtils.MoveTo(this.list, child, index);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Moves a Game Object above another one within this Container.\r\n     * If the Game Object is already above the other, it isn't moved.\r\n     *\r\n     * These 2 Game Objects must already be children of this Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#moveAbove\r\n     * @since 3.55.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [child1,child2]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child1 - The Game Object to move above base Game Object.\r\n     * @param {Phaser.GameObjects.GameObject} child2 - The base Game Object.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    moveAbove: function (child1, child2)\r\n    {\r\n        ArrayUtils.MoveAbove(this.list, child1, child2);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Moves a Game Object below another one within this Container.\r\n     * If the Game Object is already below the other, it isn't moved.\r\n     *\r\n     * These 2 Game Objects must already be children of this Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#moveBelow\r\n     * @since 3.55.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [child1,child2]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child1 - The Game Object to move below base Game Object.\r\n     * @param {Phaser.GameObjects.GameObject} child2 - The base Game Object.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    moveBelow: function (child1, child2)\r\n    {\r\n        ArrayUtils.MoveBelow(this.list, child1, child2);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes the given Game Object, or array of Game Objects, from this Container.\r\n     *\r\n     * The Game Objects must already be children of this Container.\r\n     *\r\n     * You can also optionally call `destroy` on each Game Object that is removed from the Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#remove\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {(T|T[])} - [child]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject|Phaser.GameObjects.GameObject[]} child - The Game Object, or array of Game Objects, to be removed from the Container.\r\n     * @param {boolean} [destroyChild=false] - Optionally call `destroy` on each child successfully removed from this Container.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    remove: function (child, destroyChild)\r\n    {\r\n        var removed = ArrayUtils.Remove(this.list, child, this.removeHandler, this);\r\n\r\n        if (destroyChild && removed)\r\n        {\r\n            if (!Array.isArray(removed))\r\n            {\r\n                removed = [ removed ];\r\n            }\r\n\r\n            for (var i = 0; i < removed.length; i++)\r\n            {\r\n                removed[i].destroy();\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes the Game Object at the given position in this Container.\r\n     *\r\n     * You can also optionally call `destroy` on the Game Object, if one is found.\r\n     *\r\n     * @method Phaser.GameObjects.Container#removeAt\r\n     * @since 3.4.0\r\n     *\r\n     * @param {number} index - The index of the Game Object to be removed.\r\n     * @param {boolean} [destroyChild=false] - Optionally call `destroy` on the Game Object if successfully removed from this Container.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    removeAt: function (index, destroyChild)\r\n    {\r\n        var removed = ArrayUtils.RemoveAt(this.list, index, this.removeHandler, this);\r\n\r\n        if (destroyChild && removed)\r\n        {\r\n            removed.destroy();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes the Game Objects between the given positions in this Container.\r\n     *\r\n     * You can also optionally call `destroy` on each Game Object that is removed from the Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#removeBetween\r\n     * @since 3.4.0\r\n     *\r\n     * @param {number} [startIndex=0] - An optional start index to search from.\r\n     * @param {number} [endIndex=Container.length] - An optional end index to search up to (but not included)\r\n     * @param {boolean} [destroyChild=false] - Optionally call `destroy` on each Game Object successfully removed from this Container.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    removeBetween: function (startIndex, endIndex, destroyChild)\r\n    {\r\n        var removed = ArrayUtils.RemoveBetween(this.list, startIndex, endIndex, this.removeHandler, this);\r\n\r\n        if (destroyChild)\r\n        {\r\n            for (var i = 0; i < removed.length; i++)\r\n            {\r\n                removed[i].destroy();\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes all Game Objects from this Container.\r\n     *\r\n     * You can also optionally call `destroy` on each Game Object that is removed from the Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#removeAll\r\n     * @since 3.4.0\r\n     *\r\n     * @param {boolean} [destroyChild=false] - Optionally call `destroy` on each Game Object successfully removed from this Container.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    removeAll: function (destroyChild)\r\n    {\r\n        var list = this.list;\r\n\r\n        if (destroyChild)\r\n        {\r\n            for (var i = 0; i < list.length; i++)\r\n            {\r\n                if (list[i] && list[i].scene)\r\n                {\r\n                    list[i].off(Events.DESTROY, this.onChildDestroyed, this);\r\n\r\n                    list[i].destroy();\r\n                }\r\n            }\r\n\r\n            this.list = [];\r\n        }\r\n        else\r\n        {\r\n            ArrayUtils.RemoveBetween(list, 0, list.length, this.removeHandler, this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Brings the given Game Object to the top of this Container.\r\n     * This will cause it to render on-top of any other objects in the Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#bringToTop\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [child]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child - The Game Object to bring to the top of the Container.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    bringToTop: function (child)\r\n    {\r\n        ArrayUtils.BringToTop(this.list, child);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sends the given Game Object to the bottom of this Container.\r\n     * This will cause it to render below any other objects in the Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#sendToBack\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [child]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child - The Game Object to send to the bottom of the Container.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    sendToBack: function (child)\r\n    {\r\n        ArrayUtils.SendToBack(this.list, child);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Moves the given Game Object up one place in this Container, unless it's already at the top.\r\n     *\r\n     * @method Phaser.GameObjects.Container#moveUp\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [child]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child - The Game Object to be moved in the Container.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    moveUp: function (child)\r\n    {\r\n        ArrayUtils.MoveUp(this.list, child);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Moves the given Game Object down one place in this Container, unless it's already at the bottom.\r\n     *\r\n     * @method Phaser.GameObjects.Container#moveDown\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [child]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child - The Game Object to be moved in the Container.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    moveDown: function (child)\r\n    {\r\n        ArrayUtils.MoveDown(this.list, child);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Reverses the order of all Game Objects in this Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#reverse\r\n     * @since 3.4.0\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    reverse: function ()\r\n    {\r\n        this.list.reverse();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Shuffles the all Game Objects in this Container using the Fisher-Yates implementation.\r\n     *\r\n     * @method Phaser.GameObjects.Container#shuffle\r\n     * @since 3.4.0\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    shuffle: function ()\r\n    {\r\n        ArrayUtils.Shuffle(this.list);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Replaces a Game Object in this Container with the new Game Object.\r\n     * The new Game Object cannot already be a child of this Container.\r\n     *\r\n     * @method Phaser.GameObjects.Container#replace\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [oldChild,newChild]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} oldChild - The Game Object in this Container that will be replaced.\r\n     * @param {Phaser.GameObjects.GameObject} newChild - The Game Object to be added to this Container.\r\n     * @param {boolean} [destroyChild=false] - Optionally call `destroy` on the Game Object if successfully removed from this Container.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    replace: function (oldChild, newChild, destroyChild)\r\n    {\r\n        var moved = ArrayUtils.Replace(this.list, oldChild, newChild);\r\n\r\n        if (moved)\r\n        {\r\n            this.addHandler(newChild);\r\n            this.removeHandler(oldChild);\r\n\r\n            if (destroyChild)\r\n            {\r\n                oldChild.destroy();\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns `true` if the given Game Object is a direct child of this Container.\r\n     *\r\n     * This check does not scan nested Containers.\r\n     *\r\n     * @method Phaser.GameObjects.Container#exists\r\n     * @since 3.4.0\r\n     *\r\n     * @generic {Phaser.GameObjects.GameObject} T\r\n     * @genericUse {T} - [child]\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child - The Game Object to check for within this Container.\r\n     *\r\n     * @return {boolean} True if the Game Object is an immediate child of this Container, otherwise false.\r\n     */\r\n    exists: function (child)\r\n    {\r\n        return (this.list.indexOf(child) > -1);\r\n    },\r\n\r\n    /**\r\n     * Sets the property to the given value on all Game Objects in this Container.\r\n     *\r\n     * Optionally you can specify a start and end index. For example if this Container had 100 Game Objects,\r\n     * and you set `startIndex` to 0 and `endIndex` to 50, it would return matches from only\r\n     * the first 50 Game Objects.\r\n     *\r\n     * @method Phaser.GameObjects.Container#setAll\r\n     * @since 3.4.0\r\n     *\r\n     * @param {string} property - The property that must exist on the Game Object.\r\n     * @param {any} value - The value to get the property to.\r\n     * @param {number} [startIndex=0] - An optional start index to search from.\r\n     * @param {number} [endIndex=Container.length] - An optional end index to search up to (but not included)\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    setAll: function (property, value, startIndex, endIndex)\r\n    {\r\n        ArrayUtils.SetAll(this.list, property, value, startIndex, endIndex);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * @callback EachContainerCallback\r\n     * @generic I - [item]\r\n     *\r\n     * @param {*} item - The child Game Object of the Container.\r\n     * @param {...*} [args] - Additional arguments that will be passed to the callback, after the child.\r\n     */\r\n\r\n    /**\r\n     * Passes all Game Objects in this Container to the given callback.\r\n     *\r\n     * A copy of the Container is made before passing each entry to your callback.\r\n     * This protects against the callback itself modifying the Container.\r\n     *\r\n     * If you know for sure that the callback will not change the size of this Container\r\n     * then you can use the more performant `Container.iterate` method instead.\r\n     *\r\n     * @method Phaser.GameObjects.Container#each\r\n     * @since 3.4.0\r\n     *\r\n     * @param {function} callback - The function to call.\r\n     * @param {object} [context] - Value to use as `this` when executing callback.\r\n     * @param {...*} [args] - Additional arguments that will be passed to the callback, after the child.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    each: function (callback, context)\r\n    {\r\n        var args = [ null ];\r\n        var i;\r\n        var temp = this.list.slice();\r\n        var len = temp.length;\r\n\r\n        for (i = 2; i < arguments.length; i++)\r\n        {\r\n            args.push(arguments[i]);\r\n        }\r\n\r\n        for (i = 0; i < len; i++)\r\n        {\r\n            args[0] = temp[i];\r\n\r\n            callback.apply(context, args);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Passes all Game Objects in this Container to the given callback.\r\n     *\r\n     * Only use this method when you absolutely know that the Container will not be modified during\r\n     * the iteration, i.e. by removing or adding to its contents.\r\n     *\r\n     * @method Phaser.GameObjects.Container#iterate\r\n     * @since 3.4.0\r\n     *\r\n     * @param {function} callback - The function to call.\r\n     * @param {object} [context] - Value to use as `this` when executing callback.\r\n     * @param {...*} [args] - Additional arguments that will be passed to the callback, after the child.\r\n     *\r\n     * @return {this} This Container instance.\r\n     */\r\n    iterate: function (callback, context)\r\n    {\r\n        var args = [ null ];\r\n        var i;\r\n\r\n        for (i = 2; i < arguments.length; i++)\r\n        {\r\n            args.push(arguments[i]);\r\n        }\r\n\r\n        for (i = 0; i < this.list.length; i++)\r\n        {\r\n            args[0] = this.list[i];\r\n\r\n            callback.apply(context, args);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the scroll factor of this Container and optionally all of its children.\r\n     *\r\n     * The scroll factor controls the influence of the movement of a Camera upon this Game Object.\r\n     *\r\n     * When a camera scrolls it will change the location at which this Game Object is rendered on-screen.\r\n     * It does not change the Game Objects actual position values.\r\n     *\r\n     * A value of 1 means it will move exactly in sync with a camera.\r\n     * A value of 0 means it will not move at all, even if the camera moves.\r\n     * Other values control the degree to which the camera movement is mapped to this Game Object.\r\n     *\r\n     * Please be aware that scroll factor values other than 1 are not taken in to consideration when\r\n     * calculating physics collisions. Bodies always collide based on their world position, but changing\r\n     * the scroll factor is a visual adjustment to where the textures are rendered, which can offset\r\n     * them from physics bodies if not accounted for in your code.\r\n     *\r\n     * @method Phaser.GameObjects.Container#setScrollFactor\r\n     * @since 3.4.0\r\n     *\r\n     * @param {number} x - The horizontal scroll factor of this Game Object.\r\n     * @param {number} [y=x] - The vertical scroll factor of this Game Object. If not set it will use the `x` value.\r\n     * @param {boolean} [updateChildren=false] - Apply this scrollFactor to all Container children as well?\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setScrollFactor: function (x, y, updateChildren)\r\n    {\r\n        if (y === undefined) { y = x; }\r\n        if (updateChildren === undefined) { updateChildren = false; }\r\n\r\n        this.scrollFactorX = x;\r\n        this.scrollFactorY = y;\r\n\r\n        if (updateChildren)\r\n        {\r\n            ArrayUtils.SetAll(this.list, 'scrollFactorX', x);\r\n            ArrayUtils.SetAll(this.list, 'scrollFactorY', y);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * The number of Game Objects inside this Container.\r\n     *\r\n     * @name Phaser.GameObjects.Container#length\r\n     * @type {number}\r\n     * @readonly\r\n     * @since 3.4.0\r\n     */\r\n    length: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.list.length;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Returns the first Game Object within the Container, or `null` if it is empty.\r\n     *\r\n     * You can move the cursor by calling `Container.next` and `Container.previous`.\r\n     *\r\n     * @name Phaser.GameObjects.Container#first\r\n     * @type {?Phaser.GameObjects.GameObject}\r\n     * @readonly\r\n     * @since 3.4.0\r\n     */\r\n    first: {\r\n\r\n        get: function ()\r\n        {\r\n            this.position = 0;\r\n\r\n            if (this.list.length > 0)\r\n            {\r\n                return this.list[0];\r\n            }\r\n            else\r\n            {\r\n                return null;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Returns the last Game Object within the Container, or `null` if it is empty.\r\n     *\r\n     * You can move the cursor by calling `Container.next` and `Container.previous`.\r\n     *\r\n     * @name Phaser.GameObjects.Container#last\r\n     * @type {?Phaser.GameObjects.GameObject}\r\n     * @readonly\r\n     * @since 3.4.0\r\n     */\r\n    last: {\r\n\r\n        get: function ()\r\n        {\r\n            if (this.list.length > 0)\r\n            {\r\n                this.position = this.list.length - 1;\r\n\r\n                return this.list[this.position];\r\n            }\r\n            else\r\n            {\r\n                return null;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Returns the next Game Object within the Container, or `null` if it is empty.\r\n     *\r\n     * You can move the cursor by calling `Container.next` and `Container.previous`.\r\n     *\r\n     * @name Phaser.GameObjects.Container#next\r\n     * @type {?Phaser.GameObjects.GameObject}\r\n     * @readonly\r\n     * @since 3.4.0\r\n     */\r\n    next: {\r\n\r\n        get: function ()\r\n        {\r\n            if (this.position < this.list.length)\r\n            {\r\n                this.position++;\r\n\r\n                return this.list[this.position];\r\n            }\r\n            else\r\n            {\r\n                return null;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Returns the previous Game Object within the Container, or `null` if it is empty.\r\n     *\r\n     * You can move the cursor by calling `Container.next` and `Container.previous`.\r\n     *\r\n     * @name Phaser.GameObjects.Container#previous\r\n     * @type {?Phaser.GameObjects.GameObject}\r\n     * @readonly\r\n     * @since 3.4.0\r\n     */\r\n    previous: {\r\n\r\n        get: function ()\r\n        {\r\n            if (this.position > 0)\r\n            {\r\n                this.position--;\r\n\r\n                return this.list[this.position];\r\n            }\r\n            else\r\n            {\r\n                return null;\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Internal destroy handler, called as part of the destroy process.\r\n     *\r\n     * @method Phaser.GameObjects.Container#preDestroy\r\n     * @protected\r\n     * @since 3.9.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.removeAll(!!this.exclusive);\r\n\r\n        this.localTransform.destroy();\r\n\r\n        this.list = [];\r\n    },\r\n\r\n    /**\r\n     * Internal handler, called when a child is destroyed.\r\n     *\r\n     * @method Phaser.GameObjects.Container#onChildDestroyed\r\n     * @protected\r\n     * @since 3.80.0\r\n     */\r\n    onChildDestroyed: function (gameObject)\r\n    {\r\n        ArrayUtils.Remove(this.list, gameObject);\r\n\r\n        if (this.exclusive)\r\n        {\r\n            gameObject.parentContainer = null;\r\n\r\n            gameObject.removedFromScene();\r\n        }\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Container;\r\n\n\n/***/ }),\n\n/***/ 53584:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @author       Felipe Alfonso <@bitnenfer>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Container#renderCanvas\r\n * @since 3.4.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Container} container - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar ContainerCanvasRenderer = function (renderer, container, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(container);\r\n\r\n    var children = container.list;\r\n\r\n    if (children.length === 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    var transformMatrix = container.localTransform;\r\n\r\n    if (parentMatrix)\r\n    {\r\n        transformMatrix.loadIdentity();\r\n        transformMatrix.multiply(parentMatrix);\r\n        transformMatrix.translate(container.x, container.y);\r\n        transformMatrix.rotate(container.rotation);\r\n        transformMatrix.scale(container.scaleX, container.scaleY);\r\n    }\r\n    else\r\n    {\r\n        transformMatrix.applyITRS(container.x, container.y, container.rotation, container.scaleX, container.scaleY);\r\n    }\r\n\r\n    var containerHasBlendMode = (container.blendMode !== -1);\r\n\r\n    if (!containerHasBlendMode)\r\n    {\r\n        //  If Container is SKIP_TEST then set blend mode to be Normal\r\n        renderer.setBlendMode(0);\r\n    }\r\n\r\n    var alpha = container._alpha;\r\n    var scrollFactorX = container.scrollFactorX;\r\n    var scrollFactorY = container.scrollFactorY;\r\n\r\n    if (container.mask)\r\n    {\r\n        container.mask.preRenderCanvas(renderer, null, camera);\r\n    }\r\n\r\n    for (var i = 0; i < children.length; i++)\r\n    {\r\n        var child = children[i];\r\n\r\n        if (!child.willRender(camera))\r\n        {\r\n            continue;\r\n        }\r\n\r\n        var childAlpha = child.alpha;\r\n        var childScrollFactorX = child.scrollFactorX;\r\n        var childScrollFactorY = child.scrollFactorY;\r\n\r\n        if (!containerHasBlendMode && child.blendMode !== renderer.currentBlendMode)\r\n        {\r\n            //  If Container doesn't have its own blend mode, then a child can have one\r\n            renderer.setBlendMode(child.blendMode);\r\n        }\r\n\r\n        //  Set parent values\r\n        child.setScrollFactor(childScrollFactorX * scrollFactorX, childScrollFactorY * scrollFactorY);\r\n        child.setAlpha(childAlpha * alpha);\r\n\r\n        //  Render\r\n        child.renderCanvas(renderer, child, camera, transformMatrix);\r\n\r\n        //  Restore original values\r\n        child.setAlpha(childAlpha);\r\n        child.setScrollFactor(childScrollFactorX, childScrollFactorY);\r\n    }\r\n\r\n    if (container.mask)\r\n    {\r\n        container.mask.postRenderCanvas(renderer);\r\n    }\r\n};\r\n\r\nmodule.exports = ContainerCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 77143:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @author       Felipe Alfonso <@bitnenfer>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar Container = __webpack_require__(31559);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar GetFastValue = __webpack_require__(95540);\r\n\r\n/**\r\n * Creates a new Container Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Container Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#container\r\n * @since 3.4.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Container.ContainerConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.Container} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('container', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var x = GetAdvancedValue(config, 'x', 0);\r\n    var y = GetAdvancedValue(config, 'y', 0);\r\n    var children = GetFastValue(config, 'children', null);\r\n\r\n    var container = new Container(this.scene, x, y, children);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, container, config);\r\n\r\n    return container;\r\n});\r\n\n\n/***/ }),\n\n/***/ 24961:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @author       Felipe Alfonso <@bitnenfer>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Container = __webpack_require__(31559);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Container Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Container Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#container\r\n * @since 3.4.0\r\n *\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {Phaser.GameObjects.GameObject|Phaser.GameObjects.GameObject[]} [children] - An optional array of Game Objects to add to this Container.\r\n *\r\n * @return {Phaser.GameObjects.Container} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('container', function (x, y, children)\r\n{\r\n    return this.displayList.add(new Container(this.scene, x, y, children));\r\n});\r\n\n\n/***/ }),\n\n/***/ 29959:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @author       Felipe Alfonso <@bitnenfer>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(72249);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(53584);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 72249:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @author       Felipe Alfonso <@bitnenfer>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Container#renderWebGL\r\n * @since 3.4.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Container} container - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar ContainerWebGLRenderer = function (renderer, container, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(container);\r\n\r\n    var children = container.list;\r\n    var childCount = children.length;\r\n\r\n    if (childCount === 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    var transformMatrix = container.localTransform;\r\n\r\n    if (parentMatrix)\r\n    {\r\n        transformMatrix.loadIdentity();\r\n        transformMatrix.multiply(parentMatrix);\r\n        transformMatrix.translate(container.x, container.y);\r\n        transformMatrix.rotate(container.rotation);\r\n        transformMatrix.scale(container.scaleX, container.scaleY);\r\n    }\r\n    else\r\n    {\r\n        transformMatrix.applyITRS(container.x, container.y, container.rotation, container.scaleX, container.scaleY);\r\n    }\r\n\r\n    renderer.pipelines.preBatch(container);\r\n\r\n    var containerHasBlendMode = (container.blendMode !== -1);\r\n\r\n    if (!containerHasBlendMode)\r\n    {\r\n        //  If Container is SKIP_TEST then set blend mode to be Normal\r\n        renderer.setBlendMode(0);\r\n    }\r\n\r\n    var alpha = container.alpha;\r\n\r\n    var scrollFactorX = container.scrollFactorX;\r\n    var scrollFactorY = container.scrollFactorY;\r\n\r\n    for (var i = 0; i < childCount; i++)\r\n    {\r\n        var child = children[i];\r\n\r\n        if (!child.willRender(camera))\r\n        {\r\n            continue;\r\n        }\r\n\r\n        var childAlphaTopLeft;\r\n        var childAlphaTopRight;\r\n        var childAlphaBottomLeft;\r\n        var childAlphaBottomRight;\r\n\r\n        if (child.alphaTopLeft !== undefined)\r\n        {\r\n            childAlphaTopLeft = child.alphaTopLeft;\r\n            childAlphaTopRight = child.alphaTopRight;\r\n            childAlphaBottomLeft = child.alphaBottomLeft;\r\n            childAlphaBottomRight = child.alphaBottomRight;\r\n        }\r\n        else\r\n        {\r\n            var childAlpha = child.alpha;\r\n\r\n            childAlphaTopLeft = childAlpha;\r\n            childAlphaTopRight = childAlpha;\r\n            childAlphaBottomLeft = childAlpha;\r\n            childAlphaBottomRight = childAlpha;\r\n        }\r\n\r\n        var childScrollFactorX = child.scrollFactorX;\r\n        var childScrollFactorY = child.scrollFactorY;\r\n\r\n        if (!containerHasBlendMode && child.blendMode !== renderer.currentBlendMode)\r\n        {\r\n            //  If Container doesn't have its own blend mode, then a child can have one\r\n            renderer.setBlendMode(child.blendMode);\r\n        }\r\n\r\n        var mask = child.mask;\r\n\r\n        if (mask)\r\n        {\r\n            mask.preRenderWebGL(renderer, child, camera);\r\n        }\r\n\r\n        var type = child.type;\r\n\r\n        if (type !== renderer.currentType)\r\n        {\r\n            renderer.newType = true;\r\n            renderer.currentType = type;\r\n        }\r\n\r\n        renderer.nextTypeMatch = (i < childCount - 1) ? (children[i + 1].type === renderer.currentType) : false;\r\n\r\n        //  Set parent values\r\n        child.setScrollFactor(childScrollFactorX * scrollFactorX, childScrollFactorY * scrollFactorY);\r\n\r\n        child.setAlpha(childAlphaTopLeft * alpha, childAlphaTopRight * alpha, childAlphaBottomLeft * alpha, childAlphaBottomRight * alpha);\r\n\r\n        //  Render\r\n        child.renderWebGL(renderer, child, camera, transformMatrix, container);\r\n\r\n        //  Restore original values\r\n\r\n        child.setAlpha(childAlphaTopLeft, childAlphaTopRight, childAlphaBottomLeft, childAlphaBottomRight);\r\n\r\n        child.setScrollFactor(childScrollFactorX, childScrollFactorY);\r\n\r\n        if (mask)\r\n        {\r\n            mask.postRenderWebGL(renderer, camera);\r\n        }\r\n\r\n        renderer.newType = false;\r\n    }\r\n\r\n    renderer.pipelines.postBatch(container);\r\n};\r\n\r\nmodule.exports = ContainerWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 47407:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Phaser Blend Modes to CSS Blend Modes Map.\r\n *\r\n * @name Phaser.CSSBlendModes\r\n * @ignore\r\n * @enum {string}\r\n * @memberof Phaser\r\n * @readonly\r\n * @since 3.12.0\r\n */\r\n\r\nmodule.exports = [\r\n    'normal',\r\n    'multiply',\r\n    'multiply',\r\n    'screen',\r\n    'overlay',\r\n    'darken',\r\n    'lighten',\r\n    'color-dodge',\r\n    'color-burn',\r\n    'hard-light',\r\n    'soft-light',\r\n    'difference',\r\n    'exclusion',\r\n    'hue',\r\n    'saturation',\r\n    'color',\r\n    'luminosity'\r\n];\r\n\n\n/***/ }),\n\n/***/ 3069:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar DOMElementRender = __webpack_require__(441);\r\nvar GameObject = __webpack_require__(95643);\r\nvar IsPlainObject = __webpack_require__(41212);\r\nvar RemoveFromDOM = __webpack_require__(35846);\r\nvar SCENE_EVENTS = __webpack_require__(44594);\r\nvar Vector4 = __webpack_require__(61369);\r\n\r\n/**\r\n * @classdesc\r\n * DOM Element Game Objects are a way to control and manipulate HTML Elements over the top of your game.\r\n *\r\n * In order for DOM Elements to display you have to enable them by adding the following to your game\r\n * configuration object:\r\n *\r\n * ```javascript\r\n * dom {\r\n *   createContainer: true\r\n * }\r\n * ```\r\n *\r\n * You must also have a parent container for Phaser. This is specified by the `parent` property in the\r\n * game config.\r\n *\r\n * When these two things are added, Phaser will automatically create a DOM Container div that is positioned\r\n * over the top of the game canvas. This div is sized to match the canvas, and if the canvas size changes,\r\n * as a result of settings within the Scale Manager, the dom container is resized accordingly.\r\n *\r\n * If you have not already done so, you have to provide a `parent` in the Game Configuration, or the DOM\r\n * Container will fail to be created.\r\n *\r\n * You can create a DOM Element by either passing in DOMStrings, or by passing in a reference to an existing\r\n * Element that you wish to be placed under the control of Phaser. For example:\r\n *\r\n * ```javascript\r\n * this.add.dom(x, y, 'div', 'background-color: lime; width: 220px; height: 100px; font: 48px Arial', 'Phaser');\r\n * ```\r\n *\r\n * The above code will insert a div element into the DOM Container at the given x/y coordinate. The DOMString in\r\n * the 4th argument sets the initial CSS style of the div and the final argument is the inner text. In this case,\r\n * it will create a lime colored div that is 220px by 100px in size with the text Phaser in it, in an Arial font.\r\n *\r\n * You should nearly always, without exception, use explicitly sized HTML Elements, in order to fully control\r\n * alignment and positioning of the elements next to regular game content.\r\n *\r\n * Rather than specify the CSS and HTML directly you can use the `load.html` File Loader to load it into the\r\n * cache and then use the `createFromCache` method instead. You can also use `createFromHTML` and various other\r\n * methods available in this class to help construct your elements.\r\n *\r\n * Once the element has been created you can then control it like you would any other Game Object. You can set its\r\n * position, scale, rotation, alpha and other properties. It will move as the main Scene Camera moves and be clipped\r\n * at the edge of the canvas. It's important to remember some limitations of DOM Elements: The obvious one is that\r\n * they appear above or below your game canvas. You cannot blend them into the display list, meaning you cannot have\r\n * a DOM Element, then a Sprite, then another DOM Element behind it.\r\n *\r\n * They also cannot be enabled for input. To do that, you have to use the `addListener` method to add native event\r\n * listeners directly. The final limitation is to do with cameras. The DOM Container is sized to match the game canvas\r\n * entirely and clipped accordingly. DOM Elements respect camera scrolling and scrollFactor settings, but if you\r\n * change the size of the camera so it no longer matches the size of the canvas, they won't be clipped accordingly.\r\n *\r\n * DOM Game Objects can be added to a Phaser Container, however you should only nest them **one level deep**.\r\n * Any further down the chain and they will ignore all root container properties.\r\n *\r\n * Also, all DOM Elements are inserted into the same DOM Container, regardless of which Scene they are created in.\r\n *\r\n * Note that you should only have DOM Elements in a Scene with a _single_ Camera. If you require multiple cameras,\r\n * use parallel scenes to achieve this.\r\n *\r\n * DOM Elements are a powerful way to align native HTML with your Phaser Game Objects. For example, you can insert\r\n * a login form for a multiplayer game directly into your title screen. Or a text input box for a highscore table.\r\n * Or a banner ad from a 3rd party service. Or perhaps you'd like to use them for high resolution text display and\r\n * UI. The choice is up to you, just remember that you're dealing with standard HTML and CSS floating over the top\r\n * of your game, and should treat it accordingly.\r\n *\r\n * @class DOMElement\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.17.0\r\n *\r\n * @extends Phaser.GameObjects.Components.AlphaSingle\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Origin\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this DOM Element in the world.\r\n * @param {number} [y=0] - The vertical position of this DOM Element in the world.\r\n * @param {(Element|string)} [element] - An existing DOM element, or a string. If a string starting with a # it will do a `getElementById` look-up on the string (minus the hash). Without a hash, it represents the type of element to create, i.e. 'div'.\r\n * @param {(string|any)} [style] - If a string, will be set directly as the elements `style` property value. If a plain object, will be iterated and the values transferred. In both cases the values replacing whatever CSS styles may have been previously set.\r\n * @param {string} [innerText] - If given, will be set directly as the elements `innerText` property value, replacing whatever was there before.\r\n */\r\nvar DOMElement = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.AlphaSingle,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.Origin,\r\n        Components.ScrollFactor,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        DOMElementRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function DOMElement (scene, x, y, element, style, innerText)\r\n    {\r\n        GameObject.call(this, scene, 'DOMElement');\r\n\r\n        /**\r\n         * A reference to the parent DOM Container that the Game instance created when it started.\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#parent\r\n         * @type {Element}\r\n         * @since 3.17.0\r\n         */\r\n        this.parent = scene.sys.game.domContainer;\r\n\r\n        /**\r\n         * A reference to the HTML Cache.\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#cache\r\n         * @type {Phaser.Cache.BaseCache}\r\n         * @since 3.17.0\r\n         */\r\n        this.cache = scene.sys.cache.html;\r\n\r\n        /**\r\n         * The actual DOM Element that this Game Object is bound to. For example, if you've created a `<div>`\r\n         * then this property is a direct reference to that element within the dom.\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#node\r\n         * @type {Element}\r\n         * @since 3.17.0\r\n         */\r\n        this.node;\r\n\r\n        /**\r\n         * By default a DOM Element will have its transform, display, opacity, zIndex and blend mode properties\r\n         * updated when its rendered. If, for some reason, you don't want any of these changed other than the\r\n         * CSS transform, then set this flag to `true`. When `true` only the CSS Transform is applied and it's\r\n         * up to you to keep track of and set the other properties as required.\r\n         *\r\n         * This can be handy if, for example, you've a nested DOM Element and you don't want the opacity to be\r\n         * picked-up by any of its children.\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#transformOnly\r\n         * @type {boolean}\r\n         * @since 3.17.0\r\n         */\r\n        this.transformOnly = false;\r\n\r\n        /**\r\n         * The angle, in radians, by which to skew the DOM Element on the horizontal axis.\r\n         *\r\n         * https://developer.mozilla.org/en-US/docs/Web/CSS/transform\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#skewX\r\n         * @type {number}\r\n         * @since 3.17.0\r\n         */\r\n        this.skewX = 0;\r\n\r\n        /**\r\n         * The angle, in radians, by which to skew the DOM Element on the vertical axis.\r\n         *\r\n         * https://developer.mozilla.org/en-US/docs/Web/CSS/transform\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#skewY\r\n         * @type {number}\r\n         * @since 3.17.0\r\n         */\r\n        this.skewY = 0;\r\n\r\n        /**\r\n         * A Vector4 that contains the 3D rotation of this DOM Element around a fixed axis in 3D space.\r\n         *\r\n         * All values in the Vector4 are treated as degrees, unless the `rotate3dAngle` property is changed.\r\n         *\r\n         * For more details see the following MDN page:\r\n         *\r\n         * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate3d\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#rotate3d\r\n         * @type {Phaser.Math.Vector4}\r\n         * @since 3.17.0\r\n         */\r\n        this.rotate3d = new Vector4();\r\n\r\n        /**\r\n         * The unit that represents the 3D rotation values. By default this is `deg` for degrees, but can\r\n         * be changed to any supported unit. See this page for further details:\r\n         *\r\n         * https://developer.mozilla.org/en-US/docs/Web/CSS/transform-function/rotate3d\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#rotate3dAngle\r\n         * @type {string}\r\n         * @since 3.17.0\r\n         */\r\n        this.rotate3dAngle = 'deg';\r\n\r\n        /**\r\n         * Sets the CSS `pointerEvents` attribute on the DOM Element during rendering.\r\n         *\r\n         * This is 'auto' by default. Changing it may have unintended side-effects with\r\n         * internal Phaser input handling, such as dragging, so only change this if you\r\n         * understand the implications.\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#pointerEvents\r\n         * @type {string}\r\n         * @since 3.55.0\r\n         */\r\n        this.pointerEvents = 'auto';\r\n\r\n        /**\r\n         * The native (un-scaled) width of this Game Object.\r\n         *\r\n         * For a DOM Element this property is read-only.\r\n         *\r\n         * The property `displayWidth` holds the computed bounds of this DOM Element, factoring in scaling.\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#width\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.17.0\r\n         */\r\n        this.width = 0;\r\n\r\n        /**\r\n         * The native (un-scaled) height of this Game Object.\r\n         *\r\n         * For a DOM Element this property is read-only.\r\n         *\r\n         * The property `displayHeight` holds the computed bounds of this DOM Element, factoring in scaling.\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#height\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.17.0\r\n         */\r\n        this.height = 0;\r\n\r\n        /**\r\n         * The computed display width of this Game Object, based on the `getBoundingClientRect` DOM call.\r\n         *\r\n         * The property `width` holds the un-scaled width of this DOM Element.\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#displayWidth\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.17.0\r\n         */\r\n        this.displayWidth = 0;\r\n\r\n        /**\r\n         * The computed display height of this Game Object, based on the `getBoundingClientRect` DOM call.\r\n         *\r\n         * The property `height` holds the un-scaled height of this DOM Element.\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#displayHeight\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.17.0\r\n         */\r\n        this.displayHeight = 0;\r\n\r\n        /**\r\n         * Internal native event handler.\r\n         *\r\n         * @name Phaser.GameObjects.DOMElement#handler\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.17.0\r\n         */\r\n        this.handler = this.dispatchNativeEvent.bind(this);\r\n\r\n        this.setPosition(x, y);\r\n\r\n        if (typeof element === 'string')\r\n        {\r\n            //  hash?\r\n            if (element[0] === '#')\r\n            {\r\n                this.setElement(element.substr(1), style, innerText);\r\n            }\r\n            else\r\n            {\r\n                this.createElement(element, style, innerText);\r\n            }\r\n        }\r\n        else if (element)\r\n        {\r\n            this.setElement(element, style, innerText);\r\n        }\r\n\r\n        scene.sys.events.on(SCENE_EVENTS.SLEEP, this.handleSceneEvent, this);\r\n        scene.sys.events.on(SCENE_EVENTS.WAKE, this.handleSceneEvent, this);\r\n        scene.sys.events.on(SCENE_EVENTS.PRE_RENDER, this.preRender, this);\r\n    },\r\n\r\n    /**\r\n     * Handles a Scene Sleep and Wake event.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#handleSceneEvent\r\n     * @private\r\n     * @since 3.22.0\r\n     *\r\n     * @param {Phaser.Scenes.Systems} sys - The Scene Systems.\r\n     */\r\n    handleSceneEvent: function (sys)\r\n    {\r\n        var node = this.node;\r\n        var style = node.style;\r\n\r\n        if (node)\r\n        {\r\n            style.display = (sys.settings.visible) ? 'block' : 'none';\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Sets the horizontal and vertical skew values of this DOM Element.\r\n     *\r\n     * For more information see: https://developer.mozilla.org/en-US/docs/Web/CSS/transform\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#setSkew\r\n     * @since 3.17.0\r\n     *\r\n     * @param {number} [x=0] - The angle, in radians, by which to skew the DOM Element on the horizontal axis.\r\n     * @param {number} [y=x] - The angle, in radians, by which to skew the DOM Element on the vertical axis.\r\n     *\r\n     * @return {this} This DOM Element instance.\r\n     */\r\n    setSkew: function (x, y)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.skewX = x;\r\n        this.skewY = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the perspective CSS property of the _parent DOM Container_. This determines the distance between the z=0\r\n     * plane and the user in order to give a 3D-positioned element some perspective. Each 3D element with\r\n     * z > 0 becomes larger; each 3D-element with z < 0 becomes smaller. The strength of the effect is determined\r\n     * by the value of this property.\r\n     *\r\n     * For more information see: https://developer.mozilla.org/en-US/docs/Web/CSS/perspective\r\n     *\r\n     * **Changing this value changes it globally for all DOM Elements, as they all share the same parent container.**\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#setPerspective\r\n     * @since 3.17.0\r\n     *\r\n     * @param {number} value - The perspective value, in pixels, that determines the distance between the z plane and the user.\r\n     *\r\n     * @return {this} This DOM Element instance.\r\n     */\r\n    setPerspective: function (value)\r\n    {\r\n        this.parent.style.perspective = value + 'px';\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * The perspective CSS property value of the _parent DOM Container_. This determines the distance between the z=0\r\n     * plane and the user in order to give a 3D-positioned element some perspective. Each 3D element with\r\n     * z > 0 becomes larger; each 3D-element with z < 0 becomes smaller. The strength of the effect is determined\r\n     * by the value of this property.\r\n     *\r\n     * For more information see: https://developer.mozilla.org/en-US/docs/Web/CSS/perspective\r\n     *\r\n     * **Changing this value changes it globally for all DOM Elements, as they all share the same parent container.**\r\n     *\r\n     * @name Phaser.GameObjects.DOMElement#perspective\r\n     * @type {number}\r\n     * @since 3.17.0\r\n     */\r\n    perspective: {\r\n\r\n        get: function ()\r\n        {\r\n            return parseFloat(this.parent.style.perspective);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.parent.style.perspective = value + 'px';\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Adds one or more native DOM event listeners onto the underlying Element of this Game Object.\r\n     * The event is then dispatched via this Game Objects standard event emitter.\r\n     *\r\n     * For example:\r\n     *\r\n     * ```javascript\r\n     * var div = this.add.dom(x, y, element);\r\n     *\r\n     * div.addListener('click');\r\n     *\r\n     * div.on('click', handler);\r\n     * ```\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#addListener\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} events - The DOM event/s to listen for. You can specify multiple events by separating them with spaces.\r\n     *\r\n     * @return {this} This DOM Element instance.\r\n     */\r\n    addListener: function (events)\r\n    {\r\n        if (this.node)\r\n        {\r\n            events = events.split(' ');\r\n\r\n            for (var i = 0; i < events.length; i++)\r\n            {\r\n                this.node.addEventListener(events[i], this.handler, false);\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes one or more native DOM event listeners from the underlying Element of this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#removeListener\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} events - The DOM event/s to stop listening for. You can specify multiple events by separating them with spaces.\r\n     *\r\n     * @return {this} This DOM Element instance.\r\n     */\r\n    removeListener: function (events)\r\n    {\r\n        if (this.node)\r\n        {\r\n            events = events.split(' ');\r\n\r\n            for (var i = 0; i < events.length; i++)\r\n            {\r\n                this.node.removeEventListener(events[i], this.handler);\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Internal event proxy to dispatch native DOM Events via this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#dispatchNativeEvent\r\n     * @private\r\n     * @since 3.17.0\r\n     *\r\n     * @param {any} event - The native DOM event.\r\n     */\r\n    dispatchNativeEvent: function (event)\r\n    {\r\n        this.emit(event.type, event);\r\n    },\r\n\r\n    /**\r\n     * Creates a native DOM Element, adds it to the parent DOM Container and then binds it to this Game Object,\r\n     * so you can control it. The `tagName` should be a string and is passed to `document.createElement`:\r\n     *\r\n     * ```javascript\r\n     * this.add.dom().createElement('div');\r\n     * ```\r\n     *\r\n     * For more details on acceptable tag names see: https://developer.mozilla.org/en-US/docs/Web/API/Document/createElement\r\n     *\r\n     * You can also pass in a DOMString or style object to set the CSS on the created element, and an optional `innerText`\r\n     * value as well. Here is an example of a DOMString:\r\n     *\r\n     * ```javascript\r\n     * this.add.dom().createElement('div', 'background-color: lime; width: 220px; height: 100px; font: 48px Arial', 'Phaser');\r\n     * ```\r\n     *\r\n     * And using a style object:\r\n     *\r\n     * ```javascript\r\n     * var style = {\r\n     *   'background-color': 'lime';\r\n     *   'width': '200px';\r\n     *   'height': '100px';\r\n     *   'font': '48px Arial';\r\n     * };\r\n     *\r\n     * this.add.dom().createElement('div', style, 'Phaser');\r\n     * ```\r\n     *\r\n     * If this Game Object already has an Element, it is removed from the DOM entirely first.\r\n     * Any event listeners you may have previously created will need to be re-created after this call.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#createElement\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} tagName - A string that specifies the type of element to be created. The nodeName of the created element is initialized with the value of tagName. Don't use qualified names (like \"html:a\") with this method.\r\n     * @param {(string|any)} [style] - Either a DOMString that holds the CSS styles to be applied to the created element, or an object the styles will be ready from.\r\n     * @param {string} [innerText] - A DOMString that holds the text that will be set as the innerText of the created element.\r\n     *\r\n     * @return {this} This DOM Element instance.\r\n     */\r\n    createElement: function (tagName, style, innerText)\r\n    {\r\n        return this.setElement(document.createElement(tagName), style, innerText);\r\n    },\r\n\r\n    /**\r\n     * Binds a new DOM Element to this Game Object. If this Game Object already has an Element it is removed from the DOM\r\n     * entirely first. Any event listeners you may have previously created will need to be re-created on the new element.\r\n     *\r\n     * The `element` argument you pass to this method can be either a string tagName:\r\n     *\r\n     * ```javascript\r\n     * <h1 id=\"heading\">Phaser</h1>\r\n     *\r\n     * this.add.dom().setElement('heading');\r\n     * ```\r\n     *\r\n     * Or a reference to an Element instance:\r\n     *\r\n     * ```javascript\r\n     * <h1 id=\"heading\">Phaser</h1>\r\n     *\r\n     * var h1 = document.getElementById('heading');\r\n     *\r\n     * this.add.dom().setElement(h1);\r\n     * ```\r\n     *\r\n     * You can also pass in a DOMString or style object to set the CSS on the created element, and an optional `innerText`\r\n     * value as well. Here is an example of a DOMString:\r\n     *\r\n     * ```javascript\r\n     * this.add.dom().setElement(h1, 'background-color: lime; width: 220px; height: 100px; font: 48px Arial', 'Phaser');\r\n     * ```\r\n     *\r\n     * And using a style object:\r\n     *\r\n     * ```javascript\r\n     * var style = {\r\n     *   'background-color': 'lime';\r\n     *   'width': '200px';\r\n     *   'height': '100px';\r\n     *   'font': '48px Arial';\r\n     * };\r\n     *\r\n     * this.add.dom().setElement(h1, style, 'Phaser');\r\n     * ```\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#setElement\r\n     * @since 3.17.0\r\n     *\r\n     * @param {(string|Element)} element - If a string it is passed to `getElementById()`, or it should be a reference to an existing Element.\r\n     * @param {(string|any)} [style] - Either a DOMString that holds the CSS styles to be applied to the created element, or an object the styles will be ready from.\r\n     * @param {string} [innerText] - A DOMString that holds the text that will be set as the innerText of the created element.\r\n     *\r\n     * @return {this} This DOM Element instance.\r\n     */\r\n    setElement: function (element, style, innerText)\r\n    {\r\n        //  Already got an element? Remove it first\r\n        this.removeElement();\r\n\r\n        var target;\r\n\r\n        if (typeof element === 'string')\r\n        {\r\n            //  hash?\r\n            if (element[0] === '#')\r\n            {\r\n                element = element.substr(1);\r\n            }\r\n\r\n            target = document.getElementById(element);\r\n        }\r\n        else if (typeof element === 'object' && element.nodeType === 1)\r\n        {\r\n            target = element;\r\n        }\r\n\r\n        if (!target)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        this.node = target;\r\n\r\n        //  style can be empty, a string or a plain object\r\n        if (style && IsPlainObject(style))\r\n        {\r\n            for (var key in style)\r\n            {\r\n                target.style[key] = style[key];\r\n            }\r\n        }\r\n        else if (typeof style === 'string')\r\n        {\r\n            target.style = style;\r\n        }\r\n\r\n        //  Add / Override the values we need\r\n\r\n        target.style.zIndex = '0';\r\n        target.style.display = 'inline';\r\n        target.style.position = 'absolute';\r\n\r\n        //  Node handler\r\n\r\n        target.phaser = this;\r\n\r\n        if (this.parent)\r\n        {\r\n            this.parent.appendChild(target);\r\n        }\r\n\r\n        //  InnerText\r\n\r\n        if (innerText)\r\n        {\r\n            target.innerText = innerText;\r\n        }\r\n\r\n        return this.updateSize();\r\n    },\r\n\r\n    /**\r\n     * Takes a block of html from the HTML Cache, that has previously been preloaded into the game, and then\r\n     * creates a DOM Element from it. The loaded HTML is set as the `innerHTML` property of the created\r\n     * element.\r\n     *\r\n     * Assume the following html is stored in a file called `loginform.html`:\r\n     *\r\n     * ```html\r\n     * <input type=\"text\" name=\"nameField\" placeholder=\"Enter your name\" style=\"font-size: 32px\">\r\n     * <input type=\"button\" name=\"playButton\" value=\"Let's Play\" style=\"font-size: 32px\">\r\n     * ```\r\n     *\r\n     * Which is loaded into your game using the cache key 'login':\r\n     *\r\n     * ```javascript\r\n     * this.load.html('login', 'assets/loginform.html');\r\n     * ```\r\n     *\r\n     * You can create a DOM Element from it using the cache key:\r\n     *\r\n     * ```javascript\r\n     * this.add.dom().createFromCache('login');\r\n     * ```\r\n     *\r\n     * The optional `elementType` argument controls the container that is created, into which the loaded html is inserted.\r\n     * The default is a plain `div` object, but any valid tagName can be given.\r\n     *\r\n     * If this Game Object already has an Element, it is removed from the DOM entirely first.\r\n     * Any event listeners you may have previously created will need to be re-created after this call.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#createFromCache\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} The key of the html cache entry to use for this DOM Element.\r\n     * @param {string} [tagName='div'] - The tag name of the element into which all of the loaded html will be inserted. Defaults to a plain div tag.\r\n     *\r\n     * @return {this} This DOM Element instance.\r\n     */\r\n    createFromCache: function (key, tagName)\r\n    {\r\n        var html = this.cache.get(key);\r\n\r\n        if (html)\r\n        {\r\n            this.createFromHTML(html, tagName);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Takes a string of html and then creates a DOM Element from it. The HTML is set as the `innerHTML`\r\n     * property of the created element.\r\n     *\r\n     * ```javascript\r\n     * let form = `\r\n     * <input type=\"text\" name=\"nameField\" placeholder=\"Enter your name\" style=\"font-size: 32px\">\r\n     * <input type=\"button\" name=\"playButton\" value=\"Let's Play\" style=\"font-size: 32px\">\r\n     * `;\r\n     * ```\r\n     *\r\n     * You can create a DOM Element from it using the string:\r\n     *\r\n     * ```javascript\r\n     * this.add.dom().createFromHTML(form);\r\n     * ```\r\n     *\r\n     * The optional `elementType` argument controls the type of container that is created, into which the html is inserted.\r\n     * The default is a plain `div` object, but any valid tagName can be given.\r\n     *\r\n     * If this Game Object already has an Element, it is removed from the DOM entirely first.\r\n     * Any event listeners you may have previously created will need to be re-created after this call.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#createFromHTML\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} html - A string of html to be set as the `innerHTML` property of the created element.\r\n     * @param {string} [tagName='div'] - The tag name of the element into which all of the html will be inserted. Defaults to a plain div tag.\r\n     *\r\n     * @return {this} This DOM Element instance.\r\n     */\r\n    createFromHTML: function (html, tagName)\r\n    {\r\n        if (tagName === undefined) { tagName = 'div'; }\r\n\r\n        //  Already got an element? Remove it first\r\n        this.removeElement();\r\n\r\n        var element = document.createElement(tagName);\r\n\r\n        this.node = element;\r\n\r\n        element.style.zIndex = '0';\r\n        element.style.display = 'inline';\r\n        element.style.position = 'absolute';\r\n\r\n        //  Node handler\r\n\r\n        element.phaser = this;\r\n\r\n        if (this.parent)\r\n        {\r\n            this.parent.appendChild(element);\r\n        }\r\n\r\n        element.innerHTML = html;\r\n\r\n        return this.updateSize();\r\n    },\r\n\r\n    /**\r\n     * Removes the current DOM Element bound to this Game Object from the DOM entirely and resets the\r\n     * `node` property of this Game Object to be `null`.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#removeElement\r\n     * @since 3.17.0\r\n     *\r\n     * @return {this} This DOM Element instance.\r\n     */\r\n    removeElement: function ()\r\n    {\r\n        if (this.node)\r\n        {\r\n            RemoveFromDOM(this.node);\r\n\r\n            this.node = null;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Internal method that calls `getBoundingClientRect` on the `node` and then sets the bounds width\r\n     * and height into the `displayWidth` and `displayHeight` properties, and the `clientWidth` and `clientHeight`\r\n     * values into the `width` and `height` properties respectively.\r\n     *\r\n     * This is called automatically whenever a new element is created or set.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#updateSize\r\n     * @since 3.17.0\r\n     *\r\n     * @return {this} This DOM Element instance.\r\n     */\r\n    updateSize: function ()\r\n    {\r\n        var node = this.node;\r\n\r\n        var nodeBounds = node.getBoundingClientRect();\r\n\r\n        this.width = node.clientWidth;\r\n        this.height = node.clientHeight;\r\n\r\n        this.displayWidth = nodeBounds.width || 0;\r\n        this.displayHeight = nodeBounds.height || 0;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Gets all children from this DOM Elements node, using `querySelectorAll('*')` and then iterates through\r\n     * them, looking for the first one that has a property matching the given key and value. It then returns this child\r\n     * if found, or `null` if not.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#getChildByProperty\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} property - The property to search the children for.\r\n     * @param {string} value - The value the property must strictly equal.\r\n     *\r\n     * @return {?Element} The first matching child DOM Element, or `null` if not found.\r\n     */\r\n    getChildByProperty: function (property, value)\r\n    {\r\n        if (this.node)\r\n        {\r\n            var children = this.node.querySelectorAll('*');\r\n\r\n            for (var i = 0; i < children.length; i++)\r\n            {\r\n                if (children[i][property] === value)\r\n                {\r\n                    return children[i];\r\n                }\r\n            }\r\n        }\r\n\r\n        return null;\r\n    },\r\n\r\n    /**\r\n     * Gets all children from this DOM Elements node, using `querySelectorAll('*')` and then iterates through\r\n     * them, looking for the first one that has a matching id. It then returns this child if found, or `null` if not.\r\n     *\r\n     * Be aware that class and id names are case-sensitive.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#getChildByID\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} id - The id to search the children for.\r\n     *\r\n     * @return {?Element} The first matching child DOM Element, or `null` if not found.\r\n     */\r\n    getChildByID: function (id)\r\n    {\r\n        return this.getChildByProperty('id', id);\r\n    },\r\n\r\n    /**\r\n     * Gets all children from this DOM Elements node, using `querySelectorAll('*')` and then iterates through\r\n     * them, looking for the first one that has a matching name. It then returns this child if found, or `null` if not.\r\n     *\r\n     * Be aware that class and id names are case-sensitive.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#getChildByName\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} name - The name to search the children for.\r\n     *\r\n     * @return {?Element} The first matching child DOM Element, or `null` if not found.\r\n     */\r\n    getChildByName: function (name)\r\n    {\r\n        return this.getChildByProperty('name', name);\r\n    },\r\n\r\n    /**\r\n     * Sets the `className` property of the DOM Element node and updates the internal sizes.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#setClassName\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} className - A string representing the class or space-separated classes of the element.\r\n     *\r\n     * @return {this} This DOM Element instance.\r\n     */\r\n    setClassName: function (className)\r\n    {\r\n        if (this.node)\r\n        {\r\n            this.node.className = className;\r\n\r\n            this.updateSize();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the `innerText` property of the DOM Element node and updates the internal sizes.\r\n     *\r\n     * Note that only certain types of Elements can have `innerText` set on them.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#setText\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} text - A DOMString representing the rendered text content of the element.\r\n     *\r\n     * @return {this} This DOM Element instance.\r\n     */\r\n    setText: function (text)\r\n    {\r\n        if (this.node)\r\n        {\r\n            this.node.innerText = text;\r\n\r\n            this.updateSize();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the `innerHTML` property of the DOM Element node and updates the internal sizes.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#setHTML\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} html - A DOMString of html to be set as the `innerHTML` property of the element.\r\n     *\r\n     * @return {this} This DOM Element instance.\r\n     */\r\n    setHTML: function (html)\r\n    {\r\n        if (this.node)\r\n        {\r\n            this.node.innerHTML = html;\r\n\r\n            this.updateSize();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Runs internal update tasks.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#preRender\r\n     * @private\r\n     * @since 3.60.0\r\n     */\r\n    preRender: function ()\r\n    {\r\n        var parent = this.parentContainer;\r\n        var node = this.node;\r\n\r\n        if (node && parent && !parent.willRender())\r\n        {\r\n            node.style.display = 'none';\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Compares the renderMask with the renderFlags to see if this Game Object will render or not.\r\n     *\r\n     * DOMElements always return `true` as they need to still set values during the render pass, even if not visible.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#willRender\r\n     * @since 3.17.0\r\n     *\r\n     * @return {boolean} `true` if the Game Object should be rendered, otherwise `false`.\r\n     */\r\n    willRender: function ()\r\n    {\r\n        return true;\r\n    },\r\n\r\n    /**\r\n     * Handles the pre-destroy step for the DOM Element, which removes the underlying node from the DOM.\r\n     *\r\n     * @method Phaser.GameObjects.DOMElement#preDestroy\r\n     * @private\r\n     * @since 3.17.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.removeElement();\r\n\r\n        this.scene.sys.events.off(SCENE_EVENTS.SLEEP, this.handleSceneEvent, this);\r\n        this.scene.sys.events.off(SCENE_EVENTS.WAKE, this.handleSceneEvent, this);\r\n        this.scene.sys.events.off(SCENE_EVENTS.PRE_RENDER, this.preRender, this);\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = DOMElement;\r\n\n\n/***/ }),\n\n/***/ 49381:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CSSBlendModes = __webpack_require__(47407);\r\nvar GameObject = __webpack_require__(95643);\r\nvar TransformMatrix = __webpack_require__(61340);\r\n\r\nvar tempMatrix1 = new TransformMatrix();\r\nvar tempMatrix2 = new TransformMatrix();\r\nvar tempMatrix3 = new TransformMatrix();\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.DOMElement#renderWebGL\r\n * @since 3.17.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active renderer.\r\n * @param {Phaser.GameObjects.DOMElement} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar DOMElementCSSRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    if (!src.node)\r\n    {\r\n        return;\r\n    }\r\n\r\n    var style = src.node.style;\r\n    var settings = src.scene.sys.settings;\r\n\r\n    if (!style || !settings.visible || GameObject.RENDER_MASK !== src.renderFlags || (src.cameraFilter !== 0 && (src.cameraFilter & camera.id)) || (src.parentContainer && !src.parentContainer.willRender()))\r\n    {\r\n        style.display = 'none';\r\n\r\n        return;\r\n    }\r\n\r\n    var parent = src.parentContainer;\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    if (parent)\r\n    {\r\n        alpha *= parent.alpha;\r\n    }\r\n\r\n    var camMatrix = tempMatrix1;\r\n    var srcMatrix = tempMatrix2;\r\n    var calcMatrix = tempMatrix3;\r\n\r\n    var dx = 0;\r\n    var dy = 0;\r\n\r\n    var tx = '0%';\r\n    var ty = '0%';\r\n\r\n    if (parentMatrix)\r\n    {\r\n        dx = (src.width * src.scaleX) * src.originX;\r\n        dy = (src.height * src.scaleY) * src.originY;\r\n\r\n        srcMatrix.applyITRS(src.x - dx, src.y - dy, src.rotation, src.scaleX, src.scaleY);\r\n\r\n        camMatrix.copyFrom(camera.matrix);\r\n\r\n        //  Multiply the camera by the parent matrix\r\n        camMatrix.multiplyWithOffset(parentMatrix, -camera.scrollX * src.scrollFactorX, -camera.scrollY * src.scrollFactorY);\r\n\r\n        //  Undo the camera scroll\r\n        srcMatrix.e = src.x - dx;\r\n        srcMatrix.f = src.y - dy;\r\n\r\n        //  Multiply by the src matrix, store result in calcMatrix\r\n        camMatrix.multiply(srcMatrix, calcMatrix);\r\n    }\r\n    else\r\n    {\r\n        dx = (src.width) * src.originX;\r\n        dy = (src.height) * src.originY;\r\n\r\n        srcMatrix.applyITRS(src.x, src.y, src.rotation, src.scaleX, src.scaleY);\r\n\r\n        camMatrix.copyFrom(camera.matrix);\r\n\r\n        tx = (100 * src.originX) + '%';\r\n        ty = (100 * src.originY) + '%';\r\n\r\n        srcMatrix.e -= camera.scrollX * src.scrollFactorX;\r\n        srcMatrix.f -= camera.scrollY * src.scrollFactorY;\r\n\r\n        //  Multiply by the src matrix, store result in calcMatrix\r\n        camMatrix.multiply(srcMatrix, calcMatrix);\r\n\r\n        calcMatrix.e -= dx;\r\n        calcMatrix.f -= dy;\r\n    }\r\n\r\n    if (!src.transformOnly)\r\n    {\r\n        style.display = 'block';\r\n        style.opacity = alpha;\r\n        style.zIndex = src._depth;\r\n        style.pointerEvents = src.pointerEvents;\r\n        style.mixBlendMode = CSSBlendModes[src._blendMode];\r\n    }\r\n\r\n    // https://developer.mozilla.org/en-US/docs/Web/CSS/transform\r\n\r\n    style.transform =\r\n        calcMatrix.getCSSMatrix() +\r\n        ' skew(' + src.skewX + 'rad, ' + src.skewY + 'rad)' +\r\n        ' rotate3d(' + src.rotate3d.x + ',' + src.rotate3d.y + ',' + src.rotate3d.z + ',' + src.rotate3d.w + src.rotate3dAngle + ')';\r\n\r\n    style.transformOrigin = tx + ' ' + ty;\r\n};\r\n\r\nmodule.exports = DOMElementCSSRenderer;\r\n\n\n/***/ }),\n\n/***/ 2611:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar DOMElement = __webpack_require__(3069);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * DOM Element Game Objects are a way to control and manipulate HTML Elements over the top of your game.\r\n *\r\n * In order for DOM Elements to display you have to enable them by adding the following to your game\r\n * configuration object:\r\n *\r\n * ```javascript\r\n * dom {\r\n *   createContainer: true\r\n * }\r\n * ```\r\n *\r\n * When this is added, Phaser will automatically create a DOM Container div that is positioned over the top\r\n * of the game canvas. This div is sized to match the canvas, and if the canvas size changes, as a result of\r\n * settings within the Scale Manager, the dom container is resized accordingly.\r\n *\r\n * You can create a DOM Element by either passing in DOMStrings, or by passing in a reference to an existing\r\n * Element that you wish to be placed under the control of Phaser. For example:\r\n *\r\n * ```javascript\r\n * this.add.dom(x, y, 'div', 'background-color: lime; width: 220px; height: 100px; font: 48px Arial', 'Phaser');\r\n * ```\r\n *\r\n * The above code will insert a div element into the DOM Container at the given x/y coordinate. The DOMString in\r\n * the 4th argument sets the initial CSS style of the div and the final argument is the inner text. In this case,\r\n * it will create a lime colored div that is 220px by 100px in size with the text Phaser in it, in an Arial font.\r\n *\r\n * You should nearly always, without exception, use explicitly sized HTML Elements, in order to fully control\r\n * alignment and positioning of the elements next to regular game content.\r\n *\r\n * Rather than specify the CSS and HTML directly you can use the `load.html` File Loader to load it into the\r\n * cache and then use the `createFromCache` method instead. You can also use `createFromHTML` and various other\r\n * methods available in this class to help construct your elements.\r\n *\r\n * Once the element has been created you can then control it like you would any other Game Object. You can set its\r\n * position, scale, rotation, alpha and other properties. It will move as the main Scene Camera moves and be clipped\r\n * at the edge of the canvas. It's important to remember some limitations of DOM Elements: The obvious one is that\r\n * they appear above or below your game canvas. You cannot blend them into the display list, meaning you cannot have\r\n * a DOM Element, then a Sprite, then another DOM Element behind it.\r\n *\r\n * They also cannot be enabled for input. To do that, you have to use the `addListener` method to add native event\r\n * listeners directly. The final limitation is to do with cameras. The DOM Container is sized to match the game canvas\r\n * entirely and clipped accordingly. DOM Elements respect camera scrolling and scrollFactor settings, but if you\r\n * change the size of the camera so it no longer matches the size of the canvas, they won't be clipped accordingly.\r\n *\r\n * Also, all DOM Elements are inserted into the same DOM Container, regardless of which Scene they are created in.\r\n *\r\n * DOM Elements are a powerful way to align native HTML with your Phaser Game Objects. For example, you can insert\r\n * a login form for a multiplayer game directly into your title screen. Or a text input box for a highscore table.\r\n * Or a banner ad from a 3rd party service. Or perhaps you'd like to use them for high resolution text display and\r\n * UI. The choice is up to you, just remember that you're dealing with standard HTML and CSS floating over the top\r\n * of your game, and should treat it accordingly.\r\n *\r\n * Note: This method will only be available if the DOM Element Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#dom\r\n * @since 3.17.0\r\n *\r\n * @param {number} x - The horizontal position of this DOM Element in the world.\r\n * @param {number} y - The vertical position of this DOM Element in the world.\r\n * @param {(HTMLElement|string)} [element] - An existing DOM element, or a string. If a string starting with a # it will do a `getElementById` look-up on the string (minus the hash). Without a hash, it represents the type of element to create, i.e. 'div'.\r\n * @param {(string|any)} [style] - If a string, will be set directly as the elements `style` property value. If a plain object, will be iterated and the values transferred. In both cases the values replacing whatever CSS styles may have been previously set.\r\n * @param {string} [innerText] - If given, will be set directly as the elements `innerText` property value, replacing whatever was there before.\r\n *\r\n * @return {Phaser.GameObjects.DOMElement} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('dom', function (x, y, element, style, innerText)\r\n{\r\n    var gameObject = new DOMElement(this.scene, x, y, element, style, innerText);\r\n\r\n    this.displayList.add(gameObject);\r\n\r\n    return gameObject;\r\n});\r\n\n\n/***/ }),\n\n/***/ 441:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(49381);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(49381);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 62980:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Object Added to Scene Event.\r\n *\r\n * This event is dispatched when a Game Object is added to a Scene.\r\n *\r\n * Listen for it on a Game Object instance using `GameObject.on('addedtoscene', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#ADDED_TO_SCENE\r\n * @type {string}\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that was added to the Scene.\r\n * @param {Phaser.Scene} scene - The Scene to which the Game Object was added.\r\n */\r\nmodule.exports = 'addedtoscene';\r\n\n\n/***/ }),\n\n/***/ 41337:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Object Destroy Event.\r\n *\r\n * This event is dispatched when a Game Object instance is being destroyed.\r\n *\r\n * Listen for it on a Game Object instance using `GameObject.on('destroy', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#DESTROY\r\n * @type {string}\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object which is being destroyed.\r\n * @param {boolean} fromScene - `True` if this Game Object is being destroyed by the Scene, `false` if not.\r\n */\r\nmodule.exports = 'destroy';\r\n\n\n/***/ }),\n\n/***/ 44947:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Game Object Removed from Scene Event.\r\n *\r\n * This event is dispatched when a Game Object is removed from a Scene.\r\n *\r\n * Listen for it on a Game Object instance using `GameObject.on('removedfromscene', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#REMOVED_FROM_SCENE\r\n * @type {string}\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that was removed from the Scene.\r\n * @param {Phaser.Scene} scene - The Scene from which the Game Object was removed.\r\n */\r\nmodule.exports = 'removedfromscene';\r\n\n\n/***/ }),\n\n/***/ 49358:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Complete Event.\r\n *\r\n * This event is dispatched when a Video finishes playback by reaching the end of its duration. It\r\n * is also dispatched if a video marker sequence is being played and reaches the end.\r\n *\r\n * Note that not all videos can fire this event. Live streams, for example, have no fixed duration,\r\n * so never technically 'complete'.\r\n *\r\n * If a video is stopped from playback, via the `Video.stop` method, it will emit the\r\n * `VIDEO_STOP` event instead of this one.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('complete', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_COMPLETE\r\n * @type {string}\r\n * @since 3.20.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which completed playback.\r\n */\r\nmodule.exports = 'complete';\r\n\n\n/***/ }),\n\n/***/ 35163:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Created Event.\r\n *\r\n * This event is dispatched when the texture for a Video has been created. This happens\r\n * when enough of the video source has been loaded that the browser is able to render a\r\n * frame from it.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('created', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_CREATED\r\n * @type {string}\r\n * @since 3.20.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which raised the event.\r\n * @param {number} width - The width of the video.\r\n * @param {number} height - The height of the video.\r\n */\r\nmodule.exports = 'created';\r\n\n\n/***/ }),\n\n/***/ 97249:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Error Event.\r\n *\r\n * This event is dispatched when a Video tries to play a source that does not exist, or is the wrong file type.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('error', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_ERROR\r\n * @type {string}\r\n * @since 3.20.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which threw the error.\r\n * @param {DOMException|string} event - The native DOM event the browser raised during playback.\r\n */\r\nmodule.exports = 'error';\r\n\n\n/***/ }),\n\n/***/ 19483:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Locked Event.\r\n *\r\n * This event is dispatched when a Video was attempted to be played, but the browser prevented it\r\n * from doing so due to the Media Engagement Interaction policy.\r\n *\r\n * If you get this event you will need to wait for the user to interact with the browser before\r\n * the video will play. This is a browser security measure to prevent autoplaying videos with\r\n * audio. An interaction includes a mouse click, a touch, or a key press.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('locked', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_LOCKED\r\n * @type {string}\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which raised the event.\r\n */\r\nmodule.exports = 'locked';\r\n\n\n/***/ }),\n\n/***/ 56059:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Loop Event.\r\n *\r\n * This event is dispatched when a Video that is currently playing has looped. This only\r\n * happens if the `loop` parameter was specified, or the `setLoop` method was called,\r\n * and if the video has a fixed duration. Video streams, for example, cannot loop, as\r\n * they have no duration.\r\n *\r\n * Looping is based on the result of the Video `timeupdate` event. This event is not\r\n * frame-accurate, due to the way browsers work, so please do not rely on this loop\r\n * event to be time or frame precise.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('loop', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_LOOP\r\n * @type {string}\r\n * @since 3.20.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which has looped.\r\n */\r\nmodule.exports = 'loop';\r\n\n\n/***/ }),\n\n/***/ 26772:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Metadata Event.\r\n *\r\n * This event is dispatched when a Video has access to the metadata.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('metadata', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_METADATA\r\n * @type {string}\r\n * @since 3.80.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which fired the event.\r\n * @param {DOMException|string} event - The native DOM event the browser raised during playback.\r\n */\r\nmodule.exports = 'metadata';\r\n\n\n/***/ }),\n\n/***/ 64437:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Playing Event.\r\n *\r\n * The playing event is fired after playback is first started,\r\n * and whenever it is restarted. For example it is fired when playback\r\n * resumes after having been paused or delayed due to lack of data.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('playing', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_PLAYING\r\n * @type {string}\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which started playback.\r\n */\r\nmodule.exports = 'playing';\r\n\n\n/***/ }),\n\n/***/ 83411:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Play Event.\r\n *\r\n * This event is dispatched when a Video begins playback. For videos that do not require\r\n * interaction unlocking, this is usually as soon as the `Video.play` method is called.\r\n * However, for videos that require unlocking, it is fired once playback begins after\r\n * they've been unlocked.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('play', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_PLAY\r\n * @type {string}\r\n * @since 3.20.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which started playback.\r\n */\r\nmodule.exports = 'play';\r\n\n\n/***/ }),\n\n/***/ 75780:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Seeked Event.\r\n *\r\n * This event is dispatched when a Video completes seeking to a new point in its timeline.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('seeked', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_SEEKED\r\n * @type {string}\r\n * @since 3.20.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which completed seeking.\r\n */\r\nmodule.exports = 'seeked';\r\n\n\n/***/ }),\n\n/***/ 67799:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Seeking Event.\r\n *\r\n * This event is dispatched when a Video _begins_ seeking to a new point in its timeline.\r\n * When the seek is complete, it will dispatch the `VIDEO_SEEKED` event to conclude.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('seeking', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_SEEKING\r\n * @type {string}\r\n * @since 3.20.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which started seeking.\r\n */\r\nmodule.exports = 'seeking';\r\n\n\n/***/ }),\n\n/***/ 63500:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Stalled Event.\r\n *\r\n * This event is dispatched by a Video Game Object when the video playback stalls.\r\n *\r\n * This can happen if the video is buffering.\r\n *\r\n * If will fire for any of the following native DOM events:\r\n *\r\n * `stalled`\r\n * `suspend`\r\n * `waiting`\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('stalled', listener)`.\r\n *\r\n * Note that being stalled isn't always a negative thing. A video can be stalled if it\r\n * has downloaded enough data in to its buffer to not need to download any more until\r\n * the current batch of frames have rendered.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_STALLED\r\n * @type {string}\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which threw the error.\r\n * @param {Event} event - The native DOM event the browser raised during playback.\r\n */\r\nmodule.exports = 'stalled';\r\n\n\n/***/ }),\n\n/***/ 55541:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Stopped Event.\r\n *\r\n * This event is dispatched when a Video is stopped from playback via a call to the `Video.stop` method,\r\n * either directly via game code, or indirectly as the result of changing a video source or destroying it.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('stop', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_STOP\r\n * @type {string}\r\n * @since 3.20.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which stopped playback.\r\n */\r\nmodule.exports = 'stop';\r\n\n\n/***/ }),\n\n/***/ 53208:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Texture Ready Event.\r\n *\r\n * This event is dispatched by a Video Game Object when it has finished creating its texture.\r\n *\r\n * This happens when the video has finished loading enough data for its first frame.\r\n *\r\n * If you wish to use the Video texture elsewhere in your game, such as as a Sprite texture,\r\n * then you should listen for this event first, before creating the Sprites that use it.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('textureready', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_TEXTURE\r\n * @type {string}\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object that emitted the event.\r\n * @param {Phaser.Textures.Texture} texture - The Texture that was created.\r\n */\r\nmodule.exports = 'textureready';\r\n\n\n/***/ }),\n\n/***/ 4992:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Unlocked Event.\r\n *\r\n * This event is dispatched when a Video that was prevented from playback due to the browsers\r\n * Media Engagement Interaction policy, is unlocked by a user gesture.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('unlocked', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_UNLOCKED\r\n * @type {string}\r\n * @since 3.20.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which raised the event.\r\n */\r\nmodule.exports = 'unlocked';\r\n\n\n/***/ }),\n\n/***/ 12:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Video Game Object Unsupported Event.\r\n *\r\n * This event is dispatched by a Video Game Object if the media source\r\n * (which may be specified as a MediaStream, MediaSource, Blob, or File,\r\n * for example) doesn't represent a supported media format.\r\n *\r\n * Listen for it from a Video Game Object instance using `Video.on('unsupported', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Events#VIDEO_UNSUPPORTED\r\n * @type {string}\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.Video} video - The Video Game Object which started playback.\r\n * @param {DOMException|string} event - The native DOM event the browser raised during playback.\r\n */\r\nmodule.exports = 'unsupported';\r\n\n\n/***/ }),\n\n/***/ 51708:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.GameObjects.Events\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    ADDED_TO_SCENE: __webpack_require__(62980),\r\n    DESTROY: __webpack_require__(41337),\r\n    REMOVED_FROM_SCENE: __webpack_require__(44947),\r\n    VIDEO_COMPLETE: __webpack_require__(49358),\r\n    VIDEO_CREATED: __webpack_require__(35163),\r\n    VIDEO_ERROR: __webpack_require__(97249),\r\n    VIDEO_LOCKED: __webpack_require__(19483),\r\n    VIDEO_LOOP: __webpack_require__(56059),\r\n    VIDEO_METADATA: __webpack_require__(26772),\r\n    VIDEO_PLAY: __webpack_require__(83411),\r\n    VIDEO_PLAYING: __webpack_require__(64437),\r\n    VIDEO_SEEKED: __webpack_require__(75780),\r\n    VIDEO_SEEKING: __webpack_require__(67799),\r\n    VIDEO_STALLED: __webpack_require__(63500),\r\n    VIDEO_STOP: __webpack_require__(55541),\r\n    VIDEO_TEXTURE: __webpack_require__(53208),\r\n    VIDEO_UNLOCKED: __webpack_require__(4992),\r\n    VIDEO_UNSUPPORTED: __webpack_require__(12)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 42421:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar GameObject = __webpack_require__(95643);\r\nvar ExternRender = __webpack_require__(64993);\r\n\r\n/**\r\n * @classdesc\r\n * An Extern Game Object is a special type of Game Object that allows you to pass\r\n * rendering off to a 3rd party.\r\n *\r\n * When you create an Extern and place it in the display list of a Scene, the renderer will\r\n * process the list as usual. When it finds an Extern it will flush the current batch,\r\n * clear down the pipeline and prepare a transform matrix which your render function can\r\n * take advantage of, if required.\r\n *\r\n * The WebGL context is then left in a 'clean' state, ready for you to bind your own shaders,\r\n * or draw to it, whatever you wish to do. This should all take place in the `render` method.\r\n * The correct way to deploy an Extern object is to create a class that extends it, then\r\n * override the `render` (and optionally `preUpdate`) methods and pass off control to your\r\n * 3rd party libraries or custom WebGL code there.\r\n *\r\n * Once you've finished, you should free-up any of your resources.\r\n * The Extern will then rebind the Phaser pipeline and carry on rendering the display list.\r\n *\r\n * Although this object has lots of properties such as Alpha, Blend Mode and Tint, none of\r\n * them are used during rendering unless you take advantage of them in your own render code.\r\n *\r\n * @class Extern\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.16.0\r\n *\r\n * @extends Phaser.GameObjects.Components.Alpha\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Flip\r\n * @extends Phaser.GameObjects.Components.Origin\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Size\r\n * @extends Phaser.GameObjects.Components.Texture\r\n * @extends Phaser.GameObjects.Components.Tint\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n */\r\nvar Extern = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.Alpha,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.Flip,\r\n        Components.Origin,\r\n        Components.ScrollFactor,\r\n        Components.Size,\r\n        Components.Texture,\r\n        Components.Tint,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        ExternRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Extern (scene)\r\n    {\r\n        GameObject.call(this, scene, 'Extern');\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    addedToScene: function ()\r\n    {\r\n        this.scene.sys.updateList.add(this);\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    removedFromScene: function ()\r\n    {\r\n        this.scene.sys.updateList.remove(this);\r\n    },\r\n\r\n    preUpdate: function ()\r\n    {\r\n        //  override this!\r\n        //  Arguments: time, delta\r\n    },\r\n\r\n    render: function ()\r\n    {\r\n        //  override this!\r\n        //  Arguments: renderer, camera, calcMatrix\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Extern;\r\n\n\n/***/ }),\n\n/***/ 70217:\n/***/ (() => {\n\n\n\n/***/ }),\n\n/***/ 56315:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Extern = __webpack_require__(42421);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Extern Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Extern Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#extern\r\n * @since 3.16.0\r\n *\r\n * @return {Phaser.GameObjects.Extern} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('extern', function ()\r\n{\r\n    var extern = new Extern(this.scene);\r\n\r\n    this.displayList.add(extern);\r\n\r\n    return extern;\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectFactory context.\r\n//\r\n//  There are several properties available to use:\r\n//\r\n//  this.scene - a reference to the Scene that owns the GameObjectFactory\r\n//  this.displayList - a reference to the Display List the Scene owns\r\n//  this.updateList - a reference to the Update List the Scene owns\r\n\n\n/***/ }),\n\n/***/ 64993:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(80287);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(70217);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 80287:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Extern#renderWebGL\r\n * @since 3.16.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Extern} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar ExternWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    renderer.pipelines.clear();\r\n\r\n    var calcMatrix = GetCalcMatrix(src, camera, parentMatrix).calc;\r\n\r\n    src.render.call(src, renderer, camera, calcMatrix);\r\n\r\n    renderer.pipelines.rebind();\r\n};\r\n\r\nmodule.exports = ExternWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 85592:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    ARC: 0,\r\n    BEGIN_PATH: 1,\r\n    CLOSE_PATH: 2,\r\n    FILL_RECT: 3,\r\n    LINE_TO: 4,\r\n    MOVE_TO: 5,\r\n    LINE_STYLE: 6,\r\n    FILL_STYLE: 7,\r\n    FILL_PATH: 8,\r\n    STROKE_PATH: 9,\r\n    FILL_TRIANGLE: 10,\r\n    STROKE_TRIANGLE: 11,\r\n    SAVE: 14,\r\n    RESTORE: 15,\r\n    TRANSLATE: 16,\r\n    SCALE: 17,\r\n    ROTATE: 18,\r\n    GRADIENT_FILL_STYLE: 21,\r\n    GRADIENT_LINE_STYLE: 22\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 43831:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BaseCamera = __webpack_require__(71911);\r\nvar Class = __webpack_require__(83419);\r\nvar Commands = __webpack_require__(85592);\r\nvar Components = __webpack_require__(31401);\r\nvar Ellipse = __webpack_require__(8497);\r\nvar GameObject = __webpack_require__(95643);\r\nvar GetFastValue = __webpack_require__(95540);\r\nvar GetValue = __webpack_require__(35154);\r\nvar MATH_CONST = __webpack_require__(36383);\r\nvar Render = __webpack_require__(84503);\r\n\r\n/**\r\n * @classdesc\r\n * A Graphics object is a way to draw primitive shapes to your game. Primitives include forms of geometry, such as\r\n * Rectangles, Circles, and Polygons. They also include lines, arcs and curves. When you initially create a Graphics\r\n * object it will be empty.\r\n *\r\n * To draw to it you must first specify a line style or fill style (or both), draw shapes using paths, and finally\r\n * fill or stroke them. For example:\r\n *\r\n * ```javascript\r\n * graphics.lineStyle(5, 0xFF00FF, 1.0);\r\n * graphics.beginPath();\r\n * graphics.moveTo(100, 100);\r\n * graphics.lineTo(200, 200);\r\n * graphics.closePath();\r\n * graphics.strokePath();\r\n * ```\r\n *\r\n * There are also many helpful methods that draw and fill/stroke common shapes for you.\r\n *\r\n * ```javascript\r\n * graphics.lineStyle(5, 0xFF00FF, 1.0);\r\n * graphics.fillStyle(0xFFFFFF, 1.0);\r\n * graphics.fillRect(50, 50, 400, 200);\r\n * graphics.strokeRect(50, 50, 400, 200);\r\n * ```\r\n *\r\n * When a Graphics object is rendered it will render differently based on if the game is running under Canvas or WebGL.\r\n * Under Canvas it will use the HTML Canvas context drawing operations to draw the path.\r\n * Under WebGL the graphics data is decomposed into polygons. Both of these are expensive processes, especially with\r\n * complex shapes.\r\n *\r\n * If your Graphics object doesn't change much (or at all) once you've drawn your shape to it, then you will help\r\n * performance by calling {@link Phaser.GameObjects.Graphics#generateTexture}. This will 'bake' the Graphics object into\r\n * a Texture, and return it. You can then use this Texture for Sprites or other display objects. If your Graphics object\r\n * updates frequently then you should avoid doing this, as it will constantly generate new textures, which will consume\r\n * memory.\r\n *\r\n * As you can tell, Graphics objects are a bit of a trade-off. While they are extremely useful, you need to be careful\r\n * in their complexity and quantity of them in your game.\r\n *\r\n * @class Graphics\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @extends Phaser.GameObjects.Components.AlphaSingle\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Graphics object belongs.\r\n * @param {Phaser.Types.GameObjects.Graphics.Options} [options] - Options that set the position and default style of this Graphics object.\r\n */\r\nvar Graphics = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.AlphaSingle,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.Mask,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        Components.ScrollFactor,\r\n        Render\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Graphics (scene, options)\r\n    {\r\n        var x = GetValue(options, 'x', 0);\r\n        var y = GetValue(options, 'y', 0);\r\n\r\n        GameObject.call(this, scene, 'Graphics');\r\n\r\n        this.setPosition(x, y);\r\n        this.initPipeline();\r\n        this.initPostPipeline();\r\n\r\n        /**\r\n         * The horizontal display origin of the Graphics.\r\n         *\r\n         * @name Phaser.GameObjects.Graphics#displayOriginX\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.displayOriginX = 0;\r\n\r\n        /**\r\n         * The vertical display origin of the Graphics.\r\n         *\r\n         * @name Phaser.GameObjects.Graphics#displayOriginY\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.displayOriginY = 0;\r\n\r\n        /**\r\n         * The array of commands used to render the Graphics.\r\n         *\r\n         * @name Phaser.GameObjects.Graphics#commandBuffer\r\n         * @type {array}\r\n         * @default []\r\n         * @since 3.0.0\r\n         */\r\n        this.commandBuffer = [];\r\n\r\n        /**\r\n         * The default fill color for shapes rendered by this Graphics object.\r\n         * Set this value with `setDefaultStyles()`.\r\n         *\r\n         * @name Phaser.GameObjects.Graphics#defaultFillColor\r\n         * @type {number}\r\n         * @readonly\r\n         * @default -1\r\n         * @since 3.0.0\r\n         */\r\n        this.defaultFillColor = -1;\r\n\r\n        /**\r\n         * The default fill alpha for shapes rendered by this Graphics object.\r\n         * Set this value with `setDefaultStyles()`.\r\n         *\r\n         * @name Phaser.GameObjects.Graphics#defaultFillAlpha\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 1\r\n         * @since 3.0.0\r\n         */\r\n        this.defaultFillAlpha = 1;\r\n\r\n        /**\r\n         * The default stroke width for shapes rendered by this Graphics object.\r\n         * Set this value with `setDefaultStyles()`.\r\n         *\r\n         * @name Phaser.GameObjects.Graphics#defaultStrokeWidth\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 1\r\n         * @since 3.0.0\r\n         */\r\n        this.defaultStrokeWidth = 1;\r\n\r\n        /**\r\n         * The default stroke color for shapes rendered by this Graphics object.\r\n         * Set this value with `setDefaultStyles()`.\r\n         *\r\n         * @name Phaser.GameObjects.Graphics#defaultStrokeColor\r\n         * @type {number}\r\n         * @readonly\r\n         * @default -1\r\n         * @since 3.0.0\r\n         */\r\n        this.defaultStrokeColor = -1;\r\n\r\n        /**\r\n         * The default stroke alpha for shapes rendered by this Graphics object.\r\n         * Set this value with `setDefaultStyles()`.\r\n         *\r\n         * @name Phaser.GameObjects.Graphics#defaultStrokeAlpha\r\n         * @type {number}\r\n         * @readonly\r\n         * @default 1\r\n         * @since 3.0.0\r\n         */\r\n        this.defaultStrokeAlpha = 1;\r\n\r\n        /**\r\n         * Internal property that keeps track of the line width style setting.\r\n         *\r\n         * @name Phaser.GameObjects.Graphics#_lineWidth\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._lineWidth = 1;\r\n\r\n        this.lineStyle(1, 0, 0);\r\n        this.fillStyle(0, 0);\r\n\r\n        this.setDefaultStyles(options);\r\n    },\r\n\r\n    /**\r\n     * Set the default style settings for this Graphics object.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#setDefaultStyles\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Graphics.Styles} options - The styles to set as defaults.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    setDefaultStyles: function (options)\r\n    {\r\n        if (GetValue(options, 'lineStyle', null))\r\n        {\r\n            this.defaultStrokeWidth = GetValue(options, 'lineStyle.width', 1);\r\n            this.defaultStrokeColor = GetValue(options, 'lineStyle.color', 0xffffff);\r\n            this.defaultStrokeAlpha = GetValue(options, 'lineStyle.alpha', 1);\r\n\r\n            this.lineStyle(this.defaultStrokeWidth, this.defaultStrokeColor, this.defaultStrokeAlpha);\r\n        }\r\n\r\n        if (GetValue(options, 'fillStyle', null))\r\n        {\r\n            this.defaultFillColor = GetValue(options, 'fillStyle.color', 0xffffff);\r\n            this.defaultFillAlpha = GetValue(options, 'fillStyle.alpha', 1);\r\n\r\n            this.fillStyle(this.defaultFillColor, this.defaultFillAlpha);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the current line style. Used for all 'stroke' related functions.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#lineStyle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} lineWidth - The stroke width.\r\n     * @param {number} color - The stroke color.\r\n     * @param {number} [alpha=1] - The stroke alpha.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    lineStyle: function (lineWidth, color, alpha)\r\n    {\r\n        if (alpha === undefined) { alpha = 1; }\r\n\r\n        this.commandBuffer.push(\r\n            Commands.LINE_STYLE,\r\n            lineWidth, color, alpha\r\n        );\r\n\r\n        this._lineWidth = lineWidth;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the current fill style. Used for all 'fill' related functions.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillStyle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} color - The fill color.\r\n     * @param {number} [alpha=1] - The fill alpha.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillStyle: function (color, alpha)\r\n    {\r\n        if (alpha === undefined) { alpha = 1; }\r\n\r\n        this.commandBuffer.push(\r\n            Commands.FILL_STYLE,\r\n            color, alpha\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets a gradient fill style. This is a WebGL only feature.\r\n     *\r\n     * The gradient color values represent the 4 corners of an untransformed rectangle.\r\n     * The gradient is used to color all filled shapes and paths drawn after calling this method.\r\n     * If you wish to turn a gradient off, call `fillStyle` and provide a new single fill color.\r\n     *\r\n     * When filling a triangle only the first 3 color values provided are used for the 3 points of a triangle.\r\n     *\r\n     * This feature is best used only on rectangles and triangles. All other shapes will give strange results.\r\n     *\r\n     * Note that for objects such as arcs or ellipses, or anything which is made out of triangles, each triangle used\r\n     * will be filled with a gradient on its own. There is no ability to gradient fill a shape or path as a single\r\n     * entity at this time.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillGradientStyle\r\n     * @webglOnly\r\n     * @since 3.12.0\r\n     *\r\n     * @param {number} topLeft - The top left fill color.\r\n     * @param {number} topRight - The top right fill color.\r\n     * @param {number} bottomLeft - The bottom left fill color.\r\n     * @param {number} bottomRight - The bottom right fill color. Not used when filling triangles.\r\n     * @param {number} [alphaTopLeft=1] - The top left alpha value. If you give only this value, it's used for all corners.\r\n     * @param {number} [alphaTopRight=1] - The top right alpha value.\r\n     * @param {number} [alphaBottomLeft=1] - The bottom left alpha value.\r\n     * @param {number} [alphaBottomRight=1] - The bottom right alpha value.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillGradientStyle: function (topLeft, topRight, bottomLeft, bottomRight, alphaTopLeft, alphaTopRight, alphaBottomLeft, alphaBottomRight)\r\n    {\r\n        if (alphaTopLeft === undefined) { alphaTopLeft = 1; }\r\n        if (alphaTopRight === undefined) { alphaTopRight = alphaTopLeft; }\r\n        if (alphaBottomLeft === undefined) { alphaBottomLeft = alphaTopLeft; }\r\n        if (alphaBottomRight === undefined) { alphaBottomRight = alphaTopLeft; }\r\n\r\n        this.commandBuffer.push(\r\n            Commands.GRADIENT_FILL_STYLE,\r\n            alphaTopLeft, alphaTopRight, alphaBottomLeft, alphaBottomRight,\r\n            topLeft, topRight, bottomLeft, bottomRight\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets a gradient line style. This is a WebGL only feature.\r\n     *\r\n     * The gradient color values represent the 4 corners of an untransformed rectangle.\r\n     * The gradient is used to color all stroked shapes and paths drawn after calling this method.\r\n     * If you wish to turn a gradient off, call `lineStyle` and provide a new single line color.\r\n     *\r\n     * This feature is best used only on single lines. All other shapes will give strange results.\r\n     *\r\n     * Note that for objects such as arcs or ellipses, or anything which is made out of triangles, each triangle used\r\n     * will be filled with a gradient on its own. There is no ability to gradient stroke a shape or path as a single\r\n     * entity at this time.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#lineGradientStyle\r\n     * @webglOnly\r\n     * @since 3.12.0\r\n     *\r\n     * @param {number} lineWidth - The stroke width.\r\n     * @param {number} topLeft - The tint being applied to the top-left of the Game Object.\r\n     * @param {number} topRight - The tint being applied to the top-right of the Game Object.\r\n     * @param {number} bottomLeft - The tint being applied to the bottom-left of the Game Object.\r\n     * @param {number} bottomRight - The tint being applied to the bottom-right of the Game Object.\r\n     * @param {number} [alpha=1] - The fill alpha.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    lineGradientStyle: function (lineWidth, topLeft, topRight, bottomLeft, bottomRight, alpha)\r\n    {\r\n        if (alpha === undefined) { alpha = 1; }\r\n\r\n        this.commandBuffer.push(\r\n            Commands.GRADIENT_LINE_STYLE,\r\n            lineWidth, alpha, topLeft, topRight, bottomLeft, bottomRight\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Start a new shape path.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#beginPath\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    beginPath: function ()\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.BEGIN_PATH\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Close the current path.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#closePath\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    closePath: function ()\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.CLOSE_PATH\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Fill the current path.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillPath\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillPath: function ()\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.FILL_PATH\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Fill the current path.\r\n     *\r\n     * This is an alias for `Graphics.fillPath` and does the same thing.\r\n     * It was added to match the CanvasRenderingContext 2D API.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fill\r\n     * @since 3.16.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fill: function ()\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.FILL_PATH\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stroke the current path.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#strokePath\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    strokePath: function ()\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.STROKE_PATH\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stroke the current path.\r\n     *\r\n     * This is an alias for `Graphics.strokePath` and does the same thing.\r\n     * It was added to match the CanvasRenderingContext 2D API.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#stroke\r\n     * @since 3.16.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    stroke: function ()\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.STROKE_PATH\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Fill the given circle.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillCircleShape\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Geom.Circle} circle - The circle to fill.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillCircleShape: function (circle)\r\n    {\r\n        return this.fillCircle(circle.x, circle.y, circle.radius);\r\n    },\r\n\r\n    /**\r\n     * Stroke the given circle.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#strokeCircleShape\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Geom.Circle} circle - The circle to stroke.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    strokeCircleShape: function (circle)\r\n    {\r\n        return this.strokeCircle(circle.x, circle.y, circle.radius);\r\n    },\r\n\r\n    /**\r\n     * Fill a circle with the given position and radius.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillCircle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate of the center of the circle.\r\n     * @param {number} y - The y coordinate of the center of the circle.\r\n     * @param {number} radius - The radius of the circle.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillCircle: function (x, y, radius)\r\n    {\r\n        this.beginPath();\r\n        this.arc(x, y, radius, 0, MATH_CONST.PI2);\r\n        this.fillPath();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stroke a circle with the given position and radius.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#strokeCircle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate of the center of the circle.\r\n     * @param {number} y - The y coordinate of the center of the circle.\r\n     * @param {number} radius - The radius of the circle.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    strokeCircle: function (x, y, radius)\r\n    {\r\n        this.beginPath();\r\n        this.arc(x, y, radius, 0, MATH_CONST.PI2);\r\n        this.strokePath();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Fill the given rectangle.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillRectShape\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Geom.Rectangle} rect - The rectangle to fill.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillRectShape: function (rect)\r\n    {\r\n        return this.fillRect(rect.x, rect.y, rect.width, rect.height);\r\n    },\r\n\r\n    /**\r\n     * Stroke the given rectangle.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#strokeRectShape\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Geom.Rectangle} rect - The rectangle to stroke.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    strokeRectShape: function (rect)\r\n    {\r\n        return this.strokeRect(rect.x, rect.y, rect.width, rect.height);\r\n    },\r\n\r\n    /**\r\n     * Fill a rectangle with the given position and size.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillRect\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate of the top-left of the rectangle.\r\n     * @param {number} y - The y coordinate of the top-left of the rectangle.\r\n     * @param {number} width - The width of the rectangle.\r\n     * @param {number} height - The height of the rectangle.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillRect: function (x, y, width, height)\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.FILL_RECT,\r\n            x, y, width, height\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stroke a rectangle with the given position and size.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#strokeRect\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate of the top-left of the rectangle.\r\n     * @param {number} y - The y coordinate of the top-left of the rectangle.\r\n     * @param {number} width - The width of the rectangle.\r\n     * @param {number} height - The height of the rectangle.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    strokeRect: function (x, y, width, height)\r\n    {\r\n        var lineWidthHalf = this._lineWidth / 2;\r\n        var minx = x - lineWidthHalf;\r\n        var maxx = x + lineWidthHalf;\r\n\r\n        this.beginPath();\r\n        this.moveTo(x, y);\r\n        this.lineTo(x, y + height);\r\n        this.strokePath();\r\n\r\n        this.beginPath();\r\n        this.moveTo(x + width, y);\r\n        this.lineTo(x + width, y + height);\r\n        this.strokePath();\r\n\r\n        this.beginPath();\r\n        this.moveTo(minx, y);\r\n        this.lineTo(maxx + width, y);\r\n        this.strokePath();\r\n\r\n        this.beginPath();\r\n        this.moveTo(minx, y + height);\r\n        this.lineTo(maxx + width, y + height);\r\n        this.strokePath();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Fill a rounded rectangle with the given position, size and radius.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillRoundedRect\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} x - The x coordinate of the top-left of the rectangle.\r\n     * @param {number} y - The y coordinate of the top-left of the rectangle.\r\n     * @param {number} width - The width of the rectangle.\r\n     * @param {number} height - The height of the rectangle.\r\n     * @param {(Phaser.Types.GameObjects.Graphics.RoundedRectRadius|number)} [radius=20] - The corner radius; It can also be an object to specify different radius for corners.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillRoundedRect: function (x, y, width, height, radius)\r\n    {\r\n        if (radius === undefined) { radius = 20; }\r\n\r\n        var tl = radius;\r\n        var tr = radius;\r\n        var bl = radius;\r\n        var br = radius;\r\n\r\n        if (typeof radius !== 'number')\r\n        {\r\n            tl = GetFastValue(radius, 'tl', 20);\r\n            tr = GetFastValue(radius, 'tr', 20);\r\n            bl = GetFastValue(radius, 'bl', 20);\r\n            br = GetFastValue(radius, 'br', 20);\r\n        }\r\n\r\n        var convexTL = (tl >= 0);\r\n        var convexTR = (tr >= 0);\r\n        var convexBL = (bl >= 0);\r\n        var convexBR = (br >= 0);\r\n\r\n        tl = Math.abs(tl);\r\n        tr = Math.abs(tr);\r\n        bl = Math.abs(bl);\r\n        br = Math.abs(br);\r\n\r\n        this.beginPath();\r\n        this.moveTo(x + tl, y);\r\n        this.lineTo(x + width - tr, y);\r\n\r\n        if (convexTR)\r\n        {\r\n            this.arc(x + width - tr, y + tr, tr, -MATH_CONST.TAU, 0);\r\n        }\r\n        else\r\n        {\r\n            this.arc(x + width, y, tr, Math.PI, MATH_CONST.TAU, true);\r\n        }\r\n\r\n        this.lineTo(x + width, y + height - br);\r\n\r\n        if (convexBR)\r\n        {\r\n            this.arc(x + width - br, y + height - br, br, 0, MATH_CONST.TAU);\r\n        }\r\n        else\r\n        {\r\n            this.arc(x + width, y + height, br, -MATH_CONST.TAU, Math.PI, true);\r\n        }\r\n\r\n        this.lineTo(x + bl, y + height);\r\n\r\n        if (convexBL)\r\n        {\r\n            this.arc(x + bl, y + height - bl, bl, MATH_CONST.TAU, Math.PI);\r\n        }\r\n        else\r\n        {\r\n            this.arc(x, y + height, bl, 0, -MATH_CONST.TAU, true);\r\n        }\r\n\r\n        this.lineTo(x, y + tl);\r\n\r\n        if (convexTL)\r\n        {\r\n            this.arc(x + tl, y + tl, tl, -Math.PI, -MATH_CONST.TAU);\r\n        }\r\n        else\r\n        {\r\n            this.arc(x, y, tl, MATH_CONST.TAU, 0, true);\r\n        }\r\n\r\n        this.fillPath();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stroke a rounded rectangle with the given position, size and radius.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#strokeRoundedRect\r\n     * @since 3.11.0\r\n     *\r\n     * @param {number} x - The x coordinate of the top-left of the rectangle.\r\n     * @param {number} y - The y coordinate of the top-left of the rectangle.\r\n     * @param {number} width - The width of the rectangle.\r\n     * @param {number} height - The height of the rectangle.\r\n     * @param {(Phaser.Types.GameObjects.Graphics.RoundedRectRadius|number)} [radius=20] - The corner radius; It can also be an object to specify different radii for corners.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    strokeRoundedRect: function (x, y, width, height, radius)\r\n    {\r\n        if (radius === undefined) { radius = 20; }\r\n\r\n        var tl = radius;\r\n        var tr = radius;\r\n        var bl = radius;\r\n        var br = radius;\r\n\r\n        var maxRadius = Math.min(width, height) / 2;\r\n\r\n        if (typeof radius !== 'number')\r\n        {\r\n            tl = GetFastValue(radius, 'tl', 20);\r\n            tr = GetFastValue(radius, 'tr', 20);\r\n            bl = GetFastValue(radius, 'bl', 20);\r\n            br = GetFastValue(radius, 'br', 20);\r\n        }\r\n\r\n        var convexTL = (tl >= 0);\r\n        var convexTR = (tr >= 0);\r\n        var convexBL = (bl >= 0);\r\n        var convexBR = (br >= 0);\r\n\r\n        tl = Math.min(Math.abs(tl), maxRadius);\r\n        tr = Math.min(Math.abs(tr), maxRadius);\r\n        bl = Math.min(Math.abs(bl), maxRadius);\r\n        br = Math.min(Math.abs(br), maxRadius);\r\n\r\n        this.beginPath();\r\n        this.moveTo(x + tl, y);\r\n        this.lineTo(x + width - tr, y);\r\n        this.moveTo(x + width - tr, y);\r\n\r\n        if (convexTR)\r\n        {\r\n            this.arc(x + width - tr, y + tr, tr, -MATH_CONST.TAU, 0);\r\n        }\r\n        else\r\n        {\r\n            this.arc(x + width, y, tr, Math.PI, MATH_CONST.TAU, true);\r\n        }\r\n\r\n        this.lineTo(x + width, y + height - br);\r\n        this.moveTo(x + width, y + height - br);\r\n\r\n        if (convexBR)\r\n        {\r\n            this.arc(x + width - br, y + height - br, br, 0, MATH_CONST.TAU);\r\n        }\r\n        else\r\n        {\r\n            this.arc(x + width, y + height, br, -MATH_CONST.TAU, Math.PI, true);\r\n        }\r\n\r\n        this.lineTo(x + bl, y + height);\r\n        this.moveTo(x + bl, y + height);\r\n\r\n        if (convexBL)\r\n        {\r\n            this.arc(x + bl, y + height - bl, bl, MATH_CONST.TAU, Math.PI);\r\n        }\r\n        else\r\n        {\r\n            this.arc(x, y + height, bl, 0, -MATH_CONST.TAU, true);\r\n        }\r\n\r\n        this.lineTo(x, y + tl);\r\n        this.moveTo(x, y + tl);\r\n\r\n        if (convexTL)\r\n        {\r\n            this.arc(x + tl, y + tl, tl, -Math.PI, -MATH_CONST.TAU);\r\n        }\r\n        else\r\n        {\r\n            this.arc(x, y, tl, MATH_CONST.TAU, 0, true);\r\n        }\r\n\r\n        this.strokePath();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Fill the given point.\r\n     *\r\n     * Draws a square at the given position, 1 pixel in size by default.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillPointShape\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(Phaser.Geom.Point|Phaser.Math.Vector2|object)} point - The point to fill.\r\n     * @param {number} [size=1] - The size of the square to draw.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillPointShape: function (point, size)\r\n    {\r\n        return this.fillPoint(point.x, point.y, size);\r\n    },\r\n\r\n    /**\r\n     * Fill a point at the given position.\r\n     *\r\n     * Draws a square at the given position, 1 pixel in size by default.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate of the point.\r\n     * @param {number} y - The y coordinate of the point.\r\n     * @param {number} [size=1] - The size of the square to draw.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillPoint: function (x, y, size)\r\n    {\r\n        if (!size || size < 1)\r\n        {\r\n            size = 1;\r\n        }\r\n        else\r\n        {\r\n            x -= (size / 2);\r\n            y -= (size / 2);\r\n        }\r\n\r\n        this.commandBuffer.push(\r\n            Commands.FILL_RECT,\r\n            x, y, size, size\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Fill the given triangle.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillTriangleShape\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Geom.Triangle} triangle - The triangle to fill.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillTriangleShape: function (triangle)\r\n    {\r\n        return this.fillTriangle(triangle.x1, triangle.y1, triangle.x2, triangle.y2, triangle.x3, triangle.y3);\r\n    },\r\n\r\n    /**\r\n     * Stroke the given triangle.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#strokeTriangleShape\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Geom.Triangle} triangle - The triangle to stroke.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    strokeTriangleShape: function (triangle)\r\n    {\r\n        return this.strokeTriangle(triangle.x1, triangle.y1, triangle.x2, triangle.y2, triangle.x3, triangle.y3);\r\n    },\r\n\r\n    /**\r\n     * Fill a triangle with the given points.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillTriangle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x0 - The x coordinate of the first point.\r\n     * @param {number} y0 - The y coordinate of the first point.\r\n     * @param {number} x1 - The x coordinate of the second point.\r\n     * @param {number} y1 - The y coordinate of the second point.\r\n     * @param {number} x2 - The x coordinate of the third point.\r\n     * @param {number} y2 - The y coordinate of the third point.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillTriangle: function (x0, y0, x1, y1, x2, y2)\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.FILL_TRIANGLE,\r\n            x0, y0, x1, y1, x2, y2\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stroke a triangle with the given points.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#strokeTriangle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x0 - The x coordinate of the first point.\r\n     * @param {number} y0 - The y coordinate of the first point.\r\n     * @param {number} x1 - The x coordinate of the second point.\r\n     * @param {number} y1 - The y coordinate of the second point.\r\n     * @param {number} x2 - The x coordinate of the third point.\r\n     * @param {number} y2 - The y coordinate of the third point.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    strokeTriangle: function (x0, y0, x1, y1, x2, y2)\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.STROKE_TRIANGLE,\r\n            x0, y0, x1, y1, x2, y2\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Draw the given line.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#strokeLineShape\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Geom.Line} line - The line to stroke.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    strokeLineShape: function (line)\r\n    {\r\n        return this.lineBetween(line.x1, line.y1, line.x2, line.y2);\r\n    },\r\n\r\n    /**\r\n     * Draw a line between the given points.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#lineBetween\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x1 - The x coordinate of the start point of the line.\r\n     * @param {number} y1 - The y coordinate of the start point of the line.\r\n     * @param {number} x2 - The x coordinate of the end point of the line.\r\n     * @param {number} y2 - The y coordinate of the end point of the line.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    lineBetween: function (x1, y1, x2, y2)\r\n    {\r\n        this.beginPath();\r\n        this.moveTo(x1, y1);\r\n        this.lineTo(x2, y2);\r\n        this.strokePath();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Draw a line from the current drawing position to the given position.\r\n     *\r\n     * Moves the current drawing position to the given position.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#lineTo\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate to draw the line to.\r\n     * @param {number} y - The y coordinate to draw the line to.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    lineTo: function (x, y)\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.LINE_TO,\r\n            x, y\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Move the current drawing position to the given position.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#moveTo\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate to move to.\r\n     * @param {number} y - The y coordinate to move to.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    moveTo: function (x, y)\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.MOVE_TO,\r\n            x, y\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stroke the shape represented by the given array of points.\r\n     *\r\n     * Pass `closeShape` to automatically close the shape by joining the last to the first point.\r\n     *\r\n     * Pass `closePath` to automatically close the path before it is stroked.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#strokePoints\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(array|Phaser.Geom.Point[])} points - The points to stroke.\r\n     * @param {boolean} [closeShape=false] - When `true`, the shape is closed by joining the last point to the first point.\r\n     * @param {boolean} [closePath=false] - When `true`, the path is closed before being stroked.\r\n     * @param {number} [endIndex] - The index of `points` to stop drawing at. Defaults to `points.length`.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    strokePoints: function (points, closeShape, closePath, endIndex)\r\n    {\r\n        if (closeShape === undefined) { closeShape = false; }\r\n        if (closePath === undefined) { closePath = false; }\r\n        if (endIndex === undefined) { endIndex = points.length; }\r\n\r\n        this.beginPath();\r\n\r\n        this.moveTo(points[0].x, points[0].y);\r\n\r\n        for (var i = 1; i < endIndex; i++)\r\n        {\r\n            this.lineTo(points[i].x, points[i].y);\r\n        }\r\n\r\n        if (closeShape)\r\n        {\r\n            this.lineTo(points[0].x, points[0].y);\r\n        }\r\n\r\n        if (closePath)\r\n        {\r\n            this.closePath();\r\n        }\r\n\r\n        this.strokePath();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Fill the shape represented by the given array of points.\r\n     *\r\n     * Pass `closeShape` to automatically close the shape by joining the last to the first point.\r\n     *\r\n     * Pass `closePath` to automatically close the path before it is filled.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillPoints\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(array|Phaser.Geom.Point[])} points - The points to fill.\r\n     * @param {boolean} [closeShape=false] - When `true`, the shape is closed by joining the last point to the first point.\r\n     * @param {boolean} [closePath=false] - When `true`, the path is closed before being stroked.\r\n     * @param {number} [endIndex] - The index of `points` to stop at. Defaults to `points.length`.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillPoints: function (points, closeShape, closePath, endIndex)\r\n    {\r\n        if (closeShape === undefined) { closeShape = false; }\r\n        if (closePath === undefined) { closePath = false; }\r\n        if (endIndex === undefined) { endIndex = points.length; }\r\n\r\n        this.beginPath();\r\n\r\n        this.moveTo(points[0].x, points[0].y);\r\n\r\n        for (var i = 1; i < endIndex; i++)\r\n        {\r\n            this.lineTo(points[i].x, points[i].y);\r\n        }\r\n\r\n        if (closeShape)\r\n        {\r\n            this.lineTo(points[0].x, points[0].y);\r\n        }\r\n\r\n        if (closePath)\r\n        {\r\n            this.closePath();\r\n        }\r\n\r\n        this.fillPath();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stroke the given ellipse.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#strokeEllipseShape\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Geom.Ellipse} ellipse - The ellipse to stroke.\r\n     * @param {number} [smoothness=32] - The number of points to draw the ellipse with.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    strokeEllipseShape: function (ellipse, smoothness)\r\n    {\r\n        if (smoothness === undefined) { smoothness = 32; }\r\n\r\n        var points = ellipse.getPoints(smoothness);\r\n\r\n        return this.strokePoints(points, true);\r\n    },\r\n\r\n    /**\r\n     * Stroke an ellipse with the given position and size.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#strokeEllipse\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate of the center of the ellipse.\r\n     * @param {number} y - The y coordinate of the center of the ellipse.\r\n     * @param {number} width - The width of the ellipse.\r\n     * @param {number} height - The height of the ellipse.\r\n     * @param {number} [smoothness=32] - The number of points to draw the ellipse with.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    strokeEllipse: function (x, y, width, height, smoothness)\r\n    {\r\n        if (smoothness === undefined) { smoothness = 32; }\r\n\r\n        var ellipse = new Ellipse(x, y, width, height);\r\n\r\n        var points = ellipse.getPoints(smoothness);\r\n\r\n        return this.strokePoints(points, true);\r\n    },\r\n\r\n    /**\r\n     * Fill the given ellipse.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillEllipseShape\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Geom.Ellipse} ellipse - The ellipse to fill.\r\n     * @param {number} [smoothness=32] - The number of points to draw the ellipse with.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillEllipseShape: function (ellipse, smoothness)\r\n    {\r\n        if (smoothness === undefined) { smoothness = 32; }\r\n\r\n        var points = ellipse.getPoints(smoothness);\r\n\r\n        return this.fillPoints(points, true);\r\n    },\r\n\r\n    /**\r\n     * Fill an ellipse with the given position and size.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#fillEllipse\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate of the center of the ellipse.\r\n     * @param {number} y - The y coordinate of the center of the ellipse.\r\n     * @param {number} width - The width of the ellipse.\r\n     * @param {number} height - The height of the ellipse.\r\n     * @param {number} [smoothness=32] - The number of points to draw the ellipse with.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    fillEllipse: function (x, y, width, height, smoothness)\r\n    {\r\n        if (smoothness === undefined) { smoothness = 32; }\r\n\r\n        var ellipse = new Ellipse(x, y, width, height);\r\n\r\n        var points = ellipse.getPoints(smoothness);\r\n\r\n        return this.fillPoints(points, true);\r\n    },\r\n\r\n    /**\r\n     * Draw an arc.\r\n     *\r\n     * This method can be used to create circles, or parts of circles.\r\n     *\r\n     * Make sure you call `beginPath` before starting the arc unless you wish for the arc to automatically\r\n     * close when filled or stroked.\r\n     *\r\n     * Use the optional `overshoot` argument increase the number of iterations that take place when\r\n     * the arc is rendered in WebGL. This is useful if you're drawing an arc with an especially thick line,\r\n     * as it will allow the arc to fully join-up. Try small values at first, i.e. 0.01.\r\n     *\r\n     * Call {@link Phaser.GameObjects.Graphics#fillPath} or {@link Phaser.GameObjects.Graphics#strokePath} after calling\r\n     * this method to draw the arc.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#arc\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate of the center of the circle.\r\n     * @param {number} y - The y coordinate of the center of the circle.\r\n     * @param {number} radius - The radius of the circle.\r\n     * @param {number} startAngle - The starting angle, in radians.\r\n     * @param {number} endAngle - The ending angle, in radians.\r\n     * @param {boolean} [anticlockwise=false] - Whether the drawing should be anticlockwise or clockwise.\r\n     * @param {number} [overshoot=0] - This value allows you to increase the segment iterations in WebGL rendering. Useful if the arc has a thick stroke and needs to overshoot to join-up cleanly. Use small numbers such as 0.01 to start with and increase as needed.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    arc: function (x, y, radius, startAngle, endAngle, anticlockwise, overshoot)\r\n    {\r\n        if (anticlockwise === undefined) { anticlockwise = false; }\r\n        if (overshoot === undefined) { overshoot = 0; }\r\n\r\n        this.commandBuffer.push(\r\n            Commands.ARC,\r\n            x, y, radius, startAngle, endAngle, anticlockwise, overshoot\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Creates a pie-chart slice shape centered at `x`, `y` with the given radius.\r\n     * You must define the start and end angle of the slice.\r\n     *\r\n     * Setting the `anticlockwise` argument to `true` creates a shape similar to Pacman.\r\n     * Setting it to `false` creates a shape like a slice of pie.\r\n     *\r\n     * This method will begin a new path and close the path at the end of it.\r\n     * To display the actual slice you need to call either `strokePath` or `fillPath` after it.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#slice\r\n     * @since 3.4.0\r\n     *\r\n     * @param {number} x - The horizontal center of the slice.\r\n     * @param {number} y - The vertical center of the slice.\r\n     * @param {number} radius - The radius of the slice.\r\n     * @param {number} startAngle - The start angle of the slice, given in radians.\r\n     * @param {number} endAngle - The end angle of the slice, given in radians.\r\n     * @param {boolean} [anticlockwise=false] - Whether the drawing should be anticlockwise or clockwise.\r\n     * @param {number} [overshoot=0] - This value allows you to overshoot the endAngle by this amount. Useful if the arc has a thick stroke and needs to overshoot to join-up cleanly.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    slice: function (x, y, radius, startAngle, endAngle, anticlockwise, overshoot)\r\n    {\r\n        if (anticlockwise === undefined) { anticlockwise = false; }\r\n        if (overshoot === undefined) { overshoot = 0; }\r\n\r\n        this.commandBuffer.push(Commands.BEGIN_PATH);\r\n\r\n        this.commandBuffer.push(Commands.MOVE_TO, x, y);\r\n\r\n        this.commandBuffer.push(Commands.ARC, x, y, radius, startAngle, endAngle, anticlockwise, overshoot);\r\n\r\n        this.commandBuffer.push(Commands.CLOSE_PATH);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Saves the state of the Graphics by pushing the current state onto a stack.\r\n     *\r\n     * The most recently saved state can then be restored with {@link Phaser.GameObjects.Graphics#restore}.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#save\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    save: function ()\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.SAVE\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Restores the most recently saved state of the Graphics by popping from the state stack.\r\n     *\r\n     * Use {@link Phaser.GameObjects.Graphics#save} to save the current state, and call this afterwards to restore that state.\r\n     *\r\n     * If there is no saved state, this command does nothing.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#restore\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    restore: function ()\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.RESTORE\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Inserts a translation command into this Graphics objects command buffer.\r\n     *\r\n     * All objects drawn _after_ calling this method will be translated\r\n     * by the given amount.\r\n     *\r\n     * This does not change the position of the Graphics object itself,\r\n     * only of the objects drawn by it after calling this method.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#translateCanvas\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The horizontal translation to apply.\r\n     * @param {number} y - The vertical translation to apply.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    translateCanvas: function (x, y)\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.TRANSLATE,\r\n            x, y\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Inserts a scale command into this Graphics objects command buffer.\r\n     *\r\n     * All objects drawn _after_ calling this method will be scaled\r\n     * by the given amount.\r\n     *\r\n     * This does not change the scale of the Graphics object itself,\r\n     * only of the objects drawn by it after calling this method.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#scaleCanvas\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The horizontal scale to apply.\r\n     * @param {number} y - The vertical scale to apply.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    scaleCanvas: function (x, y)\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.SCALE,\r\n            x, y\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Inserts a rotation command into this Graphics objects command buffer.\r\n     *\r\n     * All objects drawn _after_ calling this method will be rotated\r\n     * by the given amount.\r\n     *\r\n     * This does not change the rotation of the Graphics object itself,\r\n     * only of the objects drawn by it after calling this method.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#rotateCanvas\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} radians - The rotation angle, in radians.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    rotateCanvas: function (radians)\r\n    {\r\n        this.commandBuffer.push(\r\n            Commands.ROTATE,\r\n            radians\r\n        );\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Clear the command buffer and reset the fill style and line style to their defaults.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#clear\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    clear: function ()\r\n    {\r\n        this.commandBuffer.length = 0;\r\n\r\n        if (this.defaultFillColor > -1)\r\n        {\r\n            this.fillStyle(this.defaultFillColor, this.defaultFillAlpha);\r\n        }\r\n\r\n        if (this.defaultStrokeColor > -1)\r\n        {\r\n            this.lineStyle(this.defaultStrokeWidth, this.defaultStrokeColor, this.defaultStrokeAlpha);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Generate a texture from this Graphics object.\r\n     *\r\n     * If `key` is a string it'll generate a new texture using it and add it into the\r\n     * Texture Manager (assuming no key conflict happens).\r\n     *\r\n     * If `key` is a Canvas it will draw the texture to that canvas context. Note that it will NOT\r\n     * automatically upload it to the GPU in WebGL mode.\r\n     *\r\n     * Please understand that the texture is created via the Canvas API of the browser, therefore some\r\n     * Graphics features, such as `fillGradientStyle`, will not appear on the resulting texture,\r\n     * as they're unsupported by the Canvas API.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#generateTexture\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|HTMLCanvasElement)} key - The key to store the texture with in the Texture Manager, or a Canvas to draw to.\r\n     * @param {number} [width] - The width of the graphics to generate.\r\n     * @param {number} [height] - The height of the graphics to generate.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    generateTexture: function (key, width, height)\r\n    {\r\n        var sys = this.scene.sys;\r\n        var renderer = sys.game.renderer;\r\n\r\n        if (width === undefined) { width = sys.scale.width; }\r\n        if (height === undefined) { height = sys.scale.height; }\r\n\r\n        Graphics.TargetCamera.setScene(this.scene);\r\n        Graphics.TargetCamera.setViewport(0, 0, width, height);\r\n        Graphics.TargetCamera.scrollX = this.x;\r\n        Graphics.TargetCamera.scrollY = this.y;\r\n\r\n        var texture;\r\n        var ctx;\r\n        var willRead = { willReadFrequently: true };\r\n\r\n        if (typeof key === 'string')\r\n        {\r\n            if (sys.textures.exists(key))\r\n            {\r\n                //  Key is a string, it DOES exist in the Texture Manager AND is a canvas, so draw to it\r\n\r\n                texture = sys.textures.get(key);\r\n\r\n                var src = texture.getSourceImage();\r\n\r\n                if (src instanceof HTMLCanvasElement)\r\n                {\r\n                    ctx = src.getContext('2d', willRead);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                //  Key is a string and doesn't exist in the Texture Manager, so generate and save it\r\n\r\n                texture = sys.textures.createCanvas(key, width, height);\r\n\r\n                ctx = texture.getSourceImage().getContext('2d', willRead);\r\n            }\r\n        }\r\n        else if (key instanceof HTMLCanvasElement)\r\n        {\r\n            //  Key is a Canvas, so draw to it\r\n\r\n            ctx = key.getContext('2d', willRead);\r\n        }\r\n\r\n        if (ctx)\r\n        {\r\n            // var GraphicsCanvasRenderer = function (renderer, src, camera, parentMatrix, renderTargetCtx, allowClip)\r\n            this.renderCanvas(renderer, this, Graphics.TargetCamera, null, ctx, false);\r\n\r\n            if (texture)\r\n            {\r\n                texture.refresh();\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Internal destroy handler, called as part of the destroy process.\r\n     *\r\n     * @method Phaser.GameObjects.Graphics#preDestroy\r\n     * @protected\r\n     * @since 3.9.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.commandBuffer = [];\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * A Camera used specifically by the Graphics system for rendering to textures.\r\n *\r\n * @name Phaser.GameObjects.Graphics.TargetCamera\r\n * @type {Phaser.Cameras.Scene2D.Camera}\r\n * @since 3.1.0\r\n */\r\nGraphics.TargetCamera = new BaseCamera();\r\n\r\nmodule.exports = Graphics;\r\n\n\n/***/ }),\n\n/***/ 32768:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Commands = __webpack_require__(85592);\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Graphics#renderCanvas\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Graphics} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n * @param {CanvasRenderingContext2D} [renderTargetCtx] - The target rendering context.\r\n * @param {boolean} allowClip - If `true` then path operations will be used instead of fill operations.\r\n */\r\nvar GraphicsCanvasRenderer = function (renderer, src, camera, parentMatrix, renderTargetCtx, allowClip)\r\n{\r\n    var commandBuffer = src.commandBuffer;\r\n    var commandBufferLength = commandBuffer.length;\r\n\r\n    var ctx = renderTargetCtx || renderer.currentContext;\r\n\r\n    if (commandBufferLength === 0 || !SetTransform(renderer, ctx, src, camera, parentMatrix))\r\n    {\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    var lineAlpha = 1;\r\n    var fillAlpha = 1;\r\n    var lineColor = 0;\r\n    var fillColor = 0;\r\n    var lineWidth = 1;\r\n    var red = 0;\r\n    var green = 0;\r\n    var blue = 0;\r\n\r\n    //  Reset any currently active paths\r\n    ctx.beginPath();\r\n\r\n    for (var index = 0; index < commandBufferLength; ++index)\r\n    {\r\n        var commandID = commandBuffer[index];\r\n\r\n        switch (commandID)\r\n        {\r\n            case Commands.ARC:\r\n                ctx.arc(\r\n                    commandBuffer[index + 1],\r\n                    commandBuffer[index + 2],\r\n                    commandBuffer[index + 3],\r\n                    commandBuffer[index + 4],\r\n                    commandBuffer[index + 5],\r\n                    commandBuffer[index + 6]\r\n                );\r\n\r\n                //  +7 because overshoot is the 7th value, not used in Canvas\r\n                index += 7;\r\n                break;\r\n\r\n            case Commands.LINE_STYLE:\r\n                lineWidth = commandBuffer[index + 1];\r\n                lineColor = commandBuffer[index + 2];\r\n                lineAlpha = commandBuffer[index + 3];\r\n                red = ((lineColor & 0xFF0000) >>> 16);\r\n                green = ((lineColor & 0xFF00) >>> 8);\r\n                blue = (lineColor & 0xFF);\r\n                ctx.strokeStyle = 'rgba(' + red + ',' + green + ',' + blue + ',' + lineAlpha + ')';\r\n                ctx.lineWidth = lineWidth;\r\n                index += 3;\r\n                break;\r\n\r\n            case Commands.FILL_STYLE:\r\n                fillColor = commandBuffer[index + 1];\r\n                fillAlpha = commandBuffer[index + 2];\r\n                red = ((fillColor & 0xFF0000) >>> 16);\r\n                green = ((fillColor & 0xFF00) >>> 8);\r\n                blue = (fillColor & 0xFF);\r\n                ctx.fillStyle = 'rgba(' + red + ',' + green + ',' + blue + ',' + fillAlpha + ')';\r\n                index += 2;\r\n                break;\r\n\r\n            case Commands.BEGIN_PATH:\r\n                ctx.beginPath();\r\n                break;\r\n\r\n            case Commands.CLOSE_PATH:\r\n                ctx.closePath();\r\n                break;\r\n\r\n            case Commands.FILL_PATH:\r\n                if (!allowClip)\r\n                {\r\n                    ctx.fill();\r\n                }\r\n                break;\r\n\r\n            case Commands.STROKE_PATH:\r\n                if (!allowClip)\r\n                {\r\n                    ctx.stroke();\r\n                }\r\n                break;\r\n\r\n            case Commands.FILL_RECT:\r\n                if (!allowClip)\r\n                {\r\n                    ctx.fillRect(\r\n                        commandBuffer[index + 1],\r\n                        commandBuffer[index + 2],\r\n                        commandBuffer[index + 3],\r\n                        commandBuffer[index + 4]\r\n                    );\r\n                }\r\n                else\r\n                {\r\n                    ctx.rect(\r\n                        commandBuffer[index + 1],\r\n                        commandBuffer[index + 2],\r\n                        commandBuffer[index + 3],\r\n                        commandBuffer[index + 4]\r\n                    );\r\n                }\r\n                index += 4;\r\n                break;\r\n\r\n            case Commands.FILL_TRIANGLE:\r\n                ctx.beginPath();\r\n                ctx.moveTo(commandBuffer[index + 1], commandBuffer[index + 2]);\r\n                ctx.lineTo(commandBuffer[index + 3], commandBuffer[index + 4]);\r\n                ctx.lineTo(commandBuffer[index + 5], commandBuffer[index + 6]);\r\n                ctx.closePath();\r\n                if (!allowClip)\r\n                {\r\n                    ctx.fill();\r\n                }\r\n                index += 6;\r\n                break;\r\n\r\n            case Commands.STROKE_TRIANGLE:\r\n                ctx.beginPath();\r\n                ctx.moveTo(commandBuffer[index + 1], commandBuffer[index + 2]);\r\n                ctx.lineTo(commandBuffer[index + 3], commandBuffer[index + 4]);\r\n                ctx.lineTo(commandBuffer[index + 5], commandBuffer[index + 6]);\r\n                ctx.closePath();\r\n                if (!allowClip)\r\n                {\r\n                    ctx.stroke();\r\n                }\r\n                index += 6;\r\n                break;\r\n\r\n            case Commands.LINE_TO:\r\n                ctx.lineTo(\r\n                    commandBuffer[index + 1],\r\n                    commandBuffer[index + 2]\r\n                );\r\n                index += 2;\r\n                break;\r\n\r\n            case Commands.MOVE_TO:\r\n                ctx.moveTo(\r\n                    commandBuffer[index + 1],\r\n                    commandBuffer[index + 2]\r\n                );\r\n                index += 2;\r\n                break;\r\n\r\n            case Commands.LINE_FX_TO:\r\n                ctx.lineTo(\r\n                    commandBuffer[index + 1],\r\n                    commandBuffer[index + 2]\r\n                );\r\n                index += 5;\r\n                break;\r\n\r\n            case Commands.MOVE_FX_TO:\r\n                ctx.moveTo(\r\n                    commandBuffer[index + 1],\r\n                    commandBuffer[index + 2]\r\n                );\r\n                index += 5;\r\n                break;\r\n\r\n            case Commands.SAVE:\r\n                ctx.save();\r\n                break;\r\n\r\n            case Commands.RESTORE:\r\n                ctx.restore();\r\n                break;\r\n\r\n            case Commands.TRANSLATE:\r\n                ctx.translate(\r\n                    commandBuffer[index + 1],\r\n                    commandBuffer[index + 2]\r\n                );\r\n                index += 2;\r\n                break;\r\n\r\n            case Commands.SCALE:\r\n                ctx.scale(\r\n                    commandBuffer[index + 1],\r\n                    commandBuffer[index + 2]\r\n                );\r\n                index += 2;\r\n                break;\r\n\r\n            case Commands.ROTATE:\r\n                ctx.rotate(\r\n                    commandBuffer[index + 1]\r\n                );\r\n                index += 1;\r\n                break;\r\n\r\n            case Commands.GRADIENT_FILL_STYLE:\r\n                index += 5;\r\n                break;\r\n\r\n            case Commands.GRADIENT_LINE_STYLE:\r\n                index += 6;\r\n                break;\r\n        }\r\n    }\r\n\r\n    //  Restore the context saved in SetTransform\r\n    ctx.restore();\r\n};\r\n\r\nmodule.exports = GraphicsCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 87079:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar Graphics = __webpack_require__(43831);\r\n\r\n/**\r\n * Creates a new Graphics Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Graphics Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#graphics\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Graphics.Options} [config] - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.Graphics} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('graphics', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    var graphics = new Graphics(this.scene, config);\r\n\r\n    if (config.add)\r\n    {\r\n        this.scene.sys.displayList.add(graphics);\r\n    }\r\n\r\n    return graphics;\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectCreator context.\r\n\n\n/***/ }),\n\n/***/ 1201:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Graphics = __webpack_require__(43831);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Graphics Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Graphics Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#graphics\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Graphics.Options} [config] - The Graphics configuration.\r\n *\r\n * @return {Phaser.GameObjects.Graphics} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('graphics', function (config)\r\n{\r\n    return this.displayList.add(new Graphics(this.scene, config));\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectFactory context.\r\n//\r\n//  There are several properties available to use:\r\n//\r\n//  this.scene - a reference to the Scene that owns the GameObjectFactory\r\n//  this.displayList - a reference to the Display List the Scene owns\r\n//  this.updateList - a reference to the Update List the Scene owns\r\n\n\n/***/ }),\n\n/***/ 84503:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(77545);\r\n\r\n    //  Needed for Graphics.generateTexture\r\n    renderCanvas = __webpack_require__(32768);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(32768);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 77545:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Commands = __webpack_require__(85592);\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar TransformMatrix = __webpack_require__(61340);\r\nvar Utils = __webpack_require__(70554);\r\n\r\nvar Point = function (x, y, width)\r\n{\r\n    this.x = x;\r\n    this.y = y;\r\n    this.width = width;\r\n};\r\n\r\nvar Path = function (x, y, width)\r\n{\r\n    this.points = [];\r\n    this.pointsLength = 1;\r\n    this.points[0] = new Point(x, y, width);\r\n};\r\n\r\nvar matrixStack = [];\r\nvar tempMatrix = new TransformMatrix();\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Graphics#renderWebGL\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Graphics} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar GraphicsWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    if (src.commandBuffer.length === 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline, src);\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    var calcMatrix = GetCalcMatrix(src, camera, parentMatrix).calc;\r\n\r\n    var currentMatrix = tempMatrix.loadIdentity();\r\n\r\n    var commands = src.commandBuffer;\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    var lineWidth = 1;\r\n    var fillTint = pipeline.fillTint;\r\n    var strokeTint = pipeline.strokeTint;\r\n\r\n    var tx = 0;\r\n    var ty = 0;\r\n    var ta = 0;\r\n    var iterStep = 0.01;\r\n    var PI2 = Math.PI * 2;\r\n\r\n    var cmd;\r\n\r\n    var path = [];\r\n    var pathIndex = 0;\r\n    var pathOpen = true;\r\n    var lastPath = null;\r\n\r\n    var getTint = Utils.getTintAppendFloatAlpha;\r\n\r\n    for (var cmdIndex = 0; cmdIndex < commands.length; cmdIndex++)\r\n    {\r\n        cmd = commands[cmdIndex];\r\n\r\n        switch (cmd)\r\n        {\r\n            case Commands.BEGIN_PATH:\r\n            {\r\n                path.length = 0;\r\n                lastPath = null;\r\n                pathOpen = true;\r\n                break;\r\n            }\r\n\r\n            case Commands.CLOSE_PATH:\r\n            {\r\n                pathOpen = false;\r\n\r\n                if (lastPath && lastPath.points.length)\r\n                {\r\n                    lastPath.points.push(lastPath.points[0]);\r\n                }\r\n                break;\r\n            }\r\n\r\n            case Commands.FILL_PATH:\r\n            {\r\n                for (pathIndex = 0; pathIndex < path.length; pathIndex++)\r\n                {\r\n                    pipeline.batchFillPath(\r\n                        path[pathIndex].points,\r\n                        currentMatrix,\r\n                        calcMatrix\r\n                    );\r\n                }\r\n                break;\r\n            }\r\n\r\n            case Commands.STROKE_PATH:\r\n            {\r\n                for (pathIndex = 0; pathIndex < path.length; pathIndex++)\r\n                {\r\n                    pipeline.batchStrokePath(\r\n                        path[pathIndex].points,\r\n                        lineWidth,\r\n                        pathOpen,\r\n                        currentMatrix,\r\n                        calcMatrix\r\n                    );\r\n                }\r\n                break;\r\n            }\r\n\r\n            case Commands.LINE_STYLE:\r\n            {\r\n                lineWidth = commands[++cmdIndex];\r\n                var strokeColor = commands[++cmdIndex];\r\n                var strokeAlpha = commands[++cmdIndex] * alpha;\r\n                var strokeTintColor = getTint(strokeColor, strokeAlpha);\r\n                strokeTint.TL = strokeTintColor;\r\n                strokeTint.TR = strokeTintColor;\r\n                strokeTint.BL = strokeTintColor;\r\n                strokeTint.BR = strokeTintColor;\r\n                break;\r\n            }\r\n\r\n            case Commands.FILL_STYLE:\r\n            {\r\n                var fillColor = commands[++cmdIndex];\r\n                var fillAlpha = commands[++cmdIndex] * alpha;\r\n                var fillTintColor = getTint(fillColor, fillAlpha);\r\n                fillTint.TL = fillTintColor;\r\n                fillTint.TR = fillTintColor;\r\n                fillTint.BL = fillTintColor;\r\n                fillTint.BR = fillTintColor;\r\n                break;\r\n            }\r\n\r\n            case Commands.GRADIENT_FILL_STYLE:\r\n            {\r\n                var alphaTL = commands[++cmdIndex] * alpha;\r\n                var alphaTR = commands[++cmdIndex] * alpha;\r\n                var alphaBL = commands[++cmdIndex] * alpha;\r\n                var alphaBR = commands[++cmdIndex] * alpha;\r\n\r\n                fillTint.TL = getTint(commands[++cmdIndex], alphaTL);\r\n                fillTint.TR = getTint(commands[++cmdIndex], alphaTR);\r\n                fillTint.BL = getTint(commands[++cmdIndex], alphaBL);\r\n                fillTint.BR = getTint(commands[++cmdIndex], alphaBR);\r\n                break;\r\n            }\r\n\r\n            case Commands.GRADIENT_LINE_STYLE:\r\n            {\r\n                lineWidth = commands[++cmdIndex];\r\n                var gradientLineAlpha = commands[++cmdIndex] * alpha;\r\n                strokeTint.TL = getTint(commands[++cmdIndex], gradientLineAlpha);\r\n                strokeTint.TR = getTint(commands[++cmdIndex], gradientLineAlpha);\r\n                strokeTint.BL = getTint(commands[++cmdIndex], gradientLineAlpha);\r\n                strokeTint.BR = getTint(commands[++cmdIndex], gradientLineAlpha);\r\n                break;\r\n            }\r\n\r\n            case Commands.ARC:\r\n            {\r\n                var iteration = 0;\r\n                var x = commands[++cmdIndex];\r\n                var y = commands[++cmdIndex];\r\n                var radius = commands[++cmdIndex];\r\n                var startAngle = commands[++cmdIndex];\r\n                var endAngle = commands[++cmdIndex];\r\n                var anticlockwise = commands[++cmdIndex];\r\n                var overshoot = commands[++cmdIndex];\r\n\r\n                endAngle -= startAngle;\r\n\r\n                if (anticlockwise)\r\n                {\r\n                    if (endAngle < -PI2)\r\n                    {\r\n                        endAngle = -PI2;\r\n                    }\r\n                    else if (endAngle > 0)\r\n                    {\r\n                        endAngle = -PI2 + endAngle % PI2;\r\n                    }\r\n                }\r\n                else if (endAngle > PI2)\r\n                {\r\n                    endAngle = PI2;\r\n                }\r\n                else if (endAngle < 0)\r\n                {\r\n                    endAngle = PI2 + endAngle % PI2;\r\n                }\r\n\r\n                if (lastPath === null)\r\n                {\r\n                    lastPath = new Path(x + Math.cos(startAngle) * radius, y + Math.sin(startAngle) * radius, lineWidth);\r\n                    path.push(lastPath);\r\n                    iteration += iterStep;\r\n                }\r\n\r\n                while (iteration < 1 + overshoot)\r\n                {\r\n                    ta = endAngle * iteration + startAngle;\r\n                    tx = x + Math.cos(ta) * radius;\r\n                    ty = y + Math.sin(ta) * radius;\r\n\r\n                    lastPath.points.push(new Point(tx, ty, lineWidth));\r\n\r\n                    iteration += iterStep;\r\n                }\r\n\r\n                ta = endAngle + startAngle;\r\n                tx = x + Math.cos(ta) * radius;\r\n                ty = y + Math.sin(ta) * radius;\r\n\r\n                lastPath.points.push(new Point(tx, ty, lineWidth));\r\n\r\n                break;\r\n            }\r\n\r\n            case Commands.FILL_RECT:\r\n            {\r\n                pipeline.batchFillRect(\r\n                    commands[++cmdIndex],\r\n                    commands[++cmdIndex],\r\n                    commands[++cmdIndex],\r\n                    commands[++cmdIndex],\r\n                    currentMatrix,\r\n                    calcMatrix\r\n                );\r\n                break;\r\n            }\r\n\r\n            case Commands.FILL_TRIANGLE:\r\n            {\r\n                pipeline.batchFillTriangle(\r\n                    commands[++cmdIndex],\r\n                    commands[++cmdIndex],\r\n                    commands[++cmdIndex],\r\n                    commands[++cmdIndex],\r\n                    commands[++cmdIndex],\r\n                    commands[++cmdIndex],\r\n                    currentMatrix,\r\n                    calcMatrix\r\n                );\r\n                break;\r\n            }\r\n\r\n            case Commands.STROKE_TRIANGLE:\r\n            {\r\n                pipeline.batchStrokeTriangle(\r\n                    commands[++cmdIndex],\r\n                    commands[++cmdIndex],\r\n                    commands[++cmdIndex],\r\n                    commands[++cmdIndex],\r\n                    commands[++cmdIndex],\r\n                    commands[++cmdIndex],\r\n                    lineWidth,\r\n                    currentMatrix,\r\n                    calcMatrix\r\n                );\r\n                break;\r\n            }\r\n\r\n            case Commands.LINE_TO:\r\n            {\r\n                if (lastPath !== null)\r\n                {\r\n                    lastPath.points.push(new Point(commands[++cmdIndex], commands[++cmdIndex], lineWidth));\r\n                }\r\n                else\r\n                {\r\n                    lastPath = new Path(commands[++cmdIndex], commands[++cmdIndex], lineWidth);\r\n                    path.push(lastPath);\r\n                }\r\n                break;\r\n            }\r\n\r\n            case Commands.MOVE_TO:\r\n            {\r\n                lastPath = new Path(commands[++cmdIndex], commands[++cmdIndex], lineWidth);\r\n                path.push(lastPath);\r\n                break;\r\n            }\r\n\r\n            case Commands.SAVE:\r\n            {\r\n                matrixStack.push(currentMatrix.copyToArray());\r\n                break;\r\n            }\r\n\r\n            case Commands.RESTORE:\r\n            {\r\n                currentMatrix.copyFromArray(matrixStack.pop());\r\n                break;\r\n            }\r\n\r\n            case Commands.TRANSLATE:\r\n            {\r\n                x = commands[++cmdIndex];\r\n                y = commands[++cmdIndex];\r\n                currentMatrix.translate(x, y);\r\n                break;\r\n            }\r\n\r\n            case Commands.SCALE:\r\n            {\r\n                x = commands[++cmdIndex];\r\n                y = commands[++cmdIndex];\r\n                currentMatrix.scale(x, y);\r\n                break;\r\n            }\r\n\r\n            case Commands.ROTATE:\r\n            {\r\n                currentMatrix.rotate(commands[++cmdIndex]);\r\n                break;\r\n            }\r\n        }\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = GraphicsWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 26479:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Actions = __webpack_require__(61061);\r\nvar Class = __webpack_require__(83419);\r\nvar Events = __webpack_require__(51708);\r\nvar EventEmitter = __webpack_require__(50792);\r\nvar GetAll = __webpack_require__(46710);\r\nvar GetFastValue = __webpack_require__(95540);\r\nvar GetValue = __webpack_require__(35154);\r\nvar HasValue = __webpack_require__(97022);\r\nvar IsPlainObject = __webpack_require__(41212);\r\nvar Range = __webpack_require__(88492);\r\nvar Set = __webpack_require__(35072);\r\nvar Sprite = __webpack_require__(68287);\r\n\r\n/**\r\n * @classdesc\r\n * A Group is a way for you to create, manipulate, or recycle similar Game Objects.\r\n *\r\n * Group membership is non-exclusive. A Game Object can belong to several groups, one group, or none.\r\n *\r\n * Groups themselves aren't displayable, and can't be positioned, rotated, scaled, or hidden.\r\n *\r\n * @class Group\r\n * @memberof Phaser.GameObjects\r\n * @extends Phaser.Events.EventEmitter\r\n * @constructor\r\n * @since 3.0.0\r\n * @param {Phaser.Scene} scene - The scene this group belongs to.\r\n * @param {(Phaser.GameObjects.GameObject[]|Phaser.Types.GameObjects.Group.GroupConfig|Phaser.Types.GameObjects.Group.GroupCreateConfig)} [children] - Game Objects to add to this group; or the `config` argument.\r\n * @param {Phaser.Types.GameObjects.Group.GroupConfig|Phaser.Types.GameObjects.Group.GroupCreateConfig} [config] - Settings for this group. If `key` is set, Phaser.GameObjects.Group#createMultiple is also called with these settings.\r\n *\r\n * @see Phaser.Physics.Arcade.Group\r\n * @see Phaser.Physics.Arcade.StaticGroup\r\n */\r\nvar Group = new Class({\r\n\r\n    Extends: EventEmitter,\r\n\r\n    initialize:\r\n\r\n    function Group (scene, children, config)\r\n    {\r\n        EventEmitter.call(this);\r\n\r\n        //  They can pass in any of the following as the first argument:\r\n\r\n        //  1) A single child\r\n        //  2) An array of children\r\n        //  3) A config object\r\n        //  4) An array of config objects\r\n\r\n        //  Or they can pass in a child, or array of children AND a config object\r\n\r\n        if (config)\r\n        {\r\n            //  config has been set, are the children an array?\r\n\r\n            if (children && !Array.isArray(children))\r\n            {\r\n                children = [ children ];\r\n            }\r\n        }\r\n        else if (Array.isArray(children))\r\n        {\r\n            //  No config, so let's check the children argument\r\n\r\n            if (IsPlainObject(children[0]))\r\n            {\r\n                //  It's an array of plain config objects\r\n                config = children;\r\n                children = null;\r\n            }\r\n        }\r\n        else if (IsPlainObject(children))\r\n        {\r\n            //  Children isn't an array. Is it a config object though?\r\n            config = children;\r\n            children = null;\r\n        }\r\n\r\n        /**\r\n         * This scene this group belongs to.\r\n         *\r\n         * @name Phaser.GameObjects.Group#scene\r\n         * @type {Phaser.Scene}\r\n         * @since 3.0.0\r\n         */\r\n        this.scene = scene;\r\n\r\n        /**\r\n         * Members of this group.\r\n         *\r\n         * @name Phaser.GameObjects.Group#children\r\n         * @type {Phaser.Structs.Set.<Phaser.GameObjects.GameObject>}\r\n         * @since 3.0.0\r\n         */\r\n        this.children = new Set();\r\n\r\n        /**\r\n         * A flag identifying this object as a group.\r\n         *\r\n         * @name Phaser.GameObjects.Group#isParent\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         */\r\n        this.isParent = true;\r\n\r\n        /**\r\n         * A textual representation of this Game Object.\r\n         * Used internally by Phaser but is available for your own custom classes to populate.\r\n         *\r\n         * @name Phaser.GameObjects.Group#type\r\n         * @type {string}\r\n         * @default 'Group'\r\n         * @since 3.21.0\r\n         */\r\n        this.type = 'Group';\r\n\r\n        /**\r\n         * The class to create new group members from.\r\n         *\r\n         * @name Phaser.GameObjects.Group#classType\r\n         * @type {function}\r\n         * @since 3.0.0\r\n         * @default Phaser.GameObjects.Sprite\r\n         * @see Phaser.Types.GameObjects.Group.GroupClassTypeConstructor\r\n         */\r\n        this.classType = GetFastValue(config, 'classType', Sprite);\r\n\r\n        /**\r\n         * The name of this group.\r\n         * Empty by default and never populated by Phaser, this is left for developers to use.\r\n         *\r\n         * @name Phaser.GameObjects.Group#name\r\n         * @type {string}\r\n         * @default ''\r\n         * @since 3.18.0\r\n         */\r\n        this.name = GetFastValue(config, 'name', '');\r\n\r\n        /**\r\n         * Whether this group runs its {@link Phaser.GameObjects.Group#preUpdate} method (which may update any members).\r\n         *\r\n         * @name Phaser.GameObjects.Group#active\r\n         * @type {boolean}\r\n         * @since 3.0.0\r\n         */\r\n        this.active = GetFastValue(config, 'active', true);\r\n\r\n        /**\r\n         * The maximum size of this group, if used as a pool. -1 is no limit.\r\n         *\r\n         * @name Phaser.GameObjects.Group#maxSize\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         * @default -1\r\n         */\r\n        this.maxSize = GetFastValue(config, 'maxSize', -1);\r\n\r\n        /**\r\n         * A default texture key to use when creating new group members.\r\n         *\r\n         * This is used in {@link Phaser.GameObjects.Group#create}\r\n         * but not in {@link Phaser.GameObjects.Group#createMultiple}.\r\n         *\r\n         * @name Phaser.GameObjects.Group#defaultKey\r\n         * @type {string}\r\n         * @since 3.0.0\r\n         */\r\n        this.defaultKey = GetFastValue(config, 'defaultKey', null);\r\n\r\n        /**\r\n         * A default texture frame to use when creating new group members.\r\n         *\r\n         * @name Phaser.GameObjects.Group#defaultFrame\r\n         * @type {(string|number)}\r\n         * @since 3.0.0\r\n         */\r\n        this.defaultFrame = GetFastValue(config, 'defaultFrame', null);\r\n\r\n        /**\r\n         * Whether to call the update method of any members.\r\n         *\r\n         * @name Phaser.GameObjects.Group#runChildUpdate\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         * @see Phaser.GameObjects.Group#preUpdate\r\n         */\r\n        this.runChildUpdate = GetFastValue(config, 'runChildUpdate', false);\r\n\r\n        /**\r\n         * A function to be called when adding or creating group members.\r\n         *\r\n         * @name Phaser.GameObjects.Group#createCallback\r\n         * @type {?Phaser.Types.GameObjects.Group.GroupCallback}\r\n         * @since 3.0.0\r\n         */\r\n        this.createCallback = GetFastValue(config, 'createCallback', null);\r\n\r\n        /**\r\n         * A function to be called when removing group members.\r\n         *\r\n         * @name Phaser.GameObjects.Group#removeCallback\r\n         * @type {?Phaser.Types.GameObjects.Group.GroupCallback}\r\n         * @since 3.0.0\r\n         */\r\n        this.removeCallback = GetFastValue(config, 'removeCallback', null);\r\n\r\n        /**\r\n         * A function to be called when creating several group members at once.\r\n         *\r\n         * @name Phaser.GameObjects.Group#createMultipleCallback\r\n         * @type {?Phaser.Types.GameObjects.Group.GroupMultipleCreateCallback}\r\n         * @since 3.0.0\r\n         */\r\n        this.createMultipleCallback = GetFastValue(config, 'createMultipleCallback', null);\r\n\r\n        /**\r\n         * A function to be called when adding or creating group members.\r\n         * For internal use only by a Group, or any class that extends it.\r\n         *\r\n         * @name Phaser.GameObjects.Group#internalCreateCallback\r\n         * @type {?Phaser.Types.GameObjects.Group.GroupCallback}\r\n         * @private\r\n         * @since 3.22.0\r\n         */\r\n        this.internalCreateCallback = GetFastValue(config, 'internalCreateCallback', null);\r\n\r\n        /**\r\n         * A function to be called when removing group members.\r\n         * For internal use only by a Group, or any class that extends it.\r\n         *\r\n         * @name Phaser.GameObjects.Group#internalRemoveCallback\r\n         * @type {?Phaser.Types.GameObjects.Group.GroupCallback}\r\n         * @private\r\n         * @since 3.22.0\r\n         */\r\n        this.internalRemoveCallback = GetFastValue(config, 'internalRemoveCallback', null);\r\n\r\n        if (children)\r\n        {\r\n            this.addMultiple(children);\r\n        }\r\n\r\n        if (config)\r\n        {\r\n            this.createMultiple(config);\r\n        }\r\n\r\n        this.on(Events.ADDED_TO_SCENE, this.addedToScene, this);\r\n        this.on(Events.REMOVED_FROM_SCENE, this.removedFromScene, this);\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    addedToScene: function ()\r\n    {\r\n        this.scene.sys.updateList.add(this);\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    removedFromScene: function ()\r\n    {\r\n        this.scene.sys.updateList.remove(this);\r\n    },\r\n\r\n    /**\r\n     * Creates a new Game Object and adds it to this group, unless the group {@link Phaser.GameObjects.Group#isFull is full}.\r\n     *\r\n     * Calls {@link Phaser.GameObjects.Group#createCallback}.\r\n     *\r\n     * @method Phaser.GameObjects.Group#create\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=0] - The horizontal position of the new Game Object in the world.\r\n     * @param {number} [y=0] - The vertical position of the new Game Object in the world.\r\n     * @param {string} [key=defaultKey] - The texture key of the new Game Object.\r\n     * @param {(string|number)} [frame=defaultFrame] - The texture frame of the new Game Object.\r\n     * @param {boolean} [visible=true] - The {@link Phaser.GameObjects.Components.Visible#visible} state of the new Game Object.\r\n     * @param {boolean} [active=true] - The {@link Phaser.GameObjects.GameObject#active} state of the new Game Object.\r\n     *\r\n     * @return {any} The new Game Object (usually a Sprite, etc.).\r\n     */\r\n    create: function (x, y, key, frame, visible, active)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (key === undefined) { key = this.defaultKey; }\r\n        if (frame === undefined) { frame = this.defaultFrame; }\r\n        if (visible === undefined) { visible = true; }\r\n        if (active === undefined) { active = true; }\r\n\r\n        //  Pool?\r\n        if (this.isFull())\r\n        {\r\n            return null;\r\n        }\r\n\r\n        var child = new this.classType(this.scene, x, y, key, frame);\r\n\r\n        child.addToDisplayList(this.scene.sys.displayList);\r\n        child.addToUpdateList();\r\n\r\n        child.visible = visible;\r\n        child.setActive(active);\r\n\r\n        this.add(child);\r\n\r\n        return child;\r\n    },\r\n\r\n    /**\r\n     * Creates several Game Objects and adds them to this group.\r\n     *\r\n     * If the group becomes {@link Phaser.GameObjects.Group#isFull}, no further Game Objects are created.\r\n     *\r\n     * Calls {@link Phaser.GameObjects.Group#createMultipleCallback} and {@link Phaser.GameObjects.Group#createCallback}.\r\n     *\r\n     * @method Phaser.GameObjects.Group#createMultiple\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Group.GroupCreateConfig|Phaser.Types.GameObjects.Group.GroupCreateConfig[]} config - Creation settings. This can be a single configuration object or an array of such objects, which will be applied in turn.\r\n     *\r\n     * @return {any[]} The newly created Game Objects.\r\n     */\r\n    createMultiple: function (config)\r\n    {\r\n        if (this.isFull())\r\n        {\r\n            return [];\r\n        }\r\n\r\n        if (!Array.isArray(config))\r\n        {\r\n            config = [ config ];\r\n        }\r\n\r\n        var output = [];\r\n\r\n        if (config[0].key)\r\n        {\r\n            for (var i = 0; i < config.length; i++)\r\n            {\r\n                var entries = this.createFromConfig(config[i]);\r\n\r\n                output = output.concat(entries);\r\n            }\r\n        }\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * A helper for {@link Phaser.GameObjects.Group#createMultiple}.\r\n     *\r\n     * @method Phaser.GameObjects.Group#createFromConfig\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Group.GroupCreateConfig} options - Creation settings.\r\n     *\r\n     * @return {any[]} The newly created Game Objects.\r\n     */\r\n    createFromConfig: function (options)\r\n    {\r\n        if (this.isFull())\r\n        {\r\n            return [];\r\n        }\r\n\r\n        this.classType = GetFastValue(options, 'classType', this.classType);\r\n\r\n        var key = GetFastValue(options, 'key', undefined);\r\n        var frame = GetFastValue(options, 'frame', null);\r\n        var visible = GetFastValue(options, 'visible', true);\r\n        var active = GetFastValue(options, 'active', true);\r\n\r\n        var entries = [];\r\n\r\n        //  Can't do anything without at least a key\r\n        if (key === undefined)\r\n        {\r\n            return entries;\r\n        }\r\n        else\r\n        {\r\n            if (!Array.isArray(key))\r\n            {\r\n                key = [ key ];\r\n            }\r\n\r\n            if (!Array.isArray(frame))\r\n            {\r\n                frame = [ frame ];\r\n            }\r\n        }\r\n\r\n        //  Build an array of key frame pairs to loop through\r\n\r\n        var repeat = GetFastValue(options, 'repeat', 0);\r\n        var randomKey = GetFastValue(options, 'randomKey', false);\r\n        var randomFrame = GetFastValue(options, 'randomFrame', false);\r\n        var yoyo = GetFastValue(options, 'yoyo', false);\r\n        var quantity = GetFastValue(options, 'quantity', false);\r\n        var frameQuantity = GetFastValue(options, 'frameQuantity', 1);\r\n        var max = GetFastValue(options, 'max', 0);\r\n\r\n        //  If a quantity value is set we use that to override the frameQuantity\r\n\r\n        var range = Range(key, frame, {\r\n            max: max,\r\n            qty: (quantity) ? quantity : frameQuantity,\r\n            random: randomKey,\r\n            randomB: randomFrame,\r\n            repeat: repeat,\r\n            yoyo: yoyo\r\n        });\r\n\r\n        if (options.createCallback)\r\n        {\r\n            this.createCallback = options.createCallback;\r\n        }\r\n\r\n        if (options.removeCallback)\r\n        {\r\n            this.removeCallback = options.removeCallback;\r\n        }\r\n\r\n        if (options.internalCreateCallback)\r\n        {\r\n            this.internalCreateCallback = options.internalCreateCallback;\r\n        }\r\n\r\n        if (options.internalRemoveCallback)\r\n        {\r\n            this.internalRemoveCallback = options.internalRemoveCallback;\r\n        }\r\n\r\n        for (var c = 0; c < range.length; c++)\r\n        {\r\n            var created = this.create(0, 0, range[c].a, range[c].b, visible, active);\r\n\r\n            if (!created)\r\n            {\r\n                break;\r\n            }\r\n\r\n            entries.push(created);\r\n        }\r\n\r\n        //  Post-creation options (applied only to those items created in this call):\r\n\r\n        if (HasValue(options, 'setXY'))\r\n        {\r\n            var x = GetValue(options, 'setXY.x', 0);\r\n            var y = GetValue(options, 'setXY.y', 0);\r\n            var stepX = GetValue(options, 'setXY.stepX', 0);\r\n            var stepY = GetValue(options, 'setXY.stepY', 0);\r\n\r\n            Actions.SetXY(entries, x, y, stepX, stepY);\r\n        }\r\n\r\n        if (HasValue(options, 'setRotation'))\r\n        {\r\n            var rotation = GetValue(options, 'setRotation.value', 0);\r\n            var stepRotation = GetValue(options, 'setRotation.step', 0);\r\n\r\n            Actions.SetRotation(entries, rotation, stepRotation);\r\n        }\r\n\r\n        if (HasValue(options, 'setScale'))\r\n        {\r\n            var scaleX = GetValue(options, 'setScale.x', 1);\r\n            var scaleY = GetValue(options, 'setScale.y', scaleX);\r\n            var stepScaleX = GetValue(options, 'setScale.stepX', 0);\r\n            var stepScaleY = GetValue(options, 'setScale.stepY', 0);\r\n\r\n            Actions.SetScale(entries, scaleX, scaleY, stepScaleX, stepScaleY);\r\n        }\r\n\r\n        if (HasValue(options, 'setOrigin'))\r\n        {\r\n            var originX = GetValue(options, 'setOrigin.x', 0.5);\r\n            var originY = GetValue(options, 'setOrigin.y', originX);\r\n            var stepOriginX = GetValue(options, 'setOrigin.stepX', 0);\r\n            var stepOriginY = GetValue(options, 'setOrigin.stepY', 0);\r\n\r\n            Actions.SetOrigin(entries, originX, originY, stepOriginX, stepOriginY);\r\n        }\r\n\r\n        if (HasValue(options, 'setAlpha'))\r\n        {\r\n            var alpha = GetValue(options, 'setAlpha.value', 1);\r\n            var stepAlpha = GetValue(options, 'setAlpha.step', 0);\r\n\r\n            Actions.SetAlpha(entries, alpha, stepAlpha);\r\n        }\r\n\r\n        if (HasValue(options, 'setDepth'))\r\n        {\r\n            var depth = GetValue(options, 'setDepth.value', 0);\r\n            var stepDepth = GetValue(options, 'setDepth.step', 0);\r\n\r\n            Actions.SetDepth(entries, depth, stepDepth);\r\n        }\r\n\r\n        if (HasValue(options, 'setScrollFactor'))\r\n        {\r\n            var scrollFactorX = GetValue(options, 'setScrollFactor.x', 1);\r\n            var scrollFactorY = GetValue(options, 'setScrollFactor.y', scrollFactorX);\r\n            var stepScrollFactorX = GetValue(options, 'setScrollFactor.stepX', 0);\r\n            var stepScrollFactorY = GetValue(options, 'setScrollFactor.stepY', 0);\r\n\r\n            Actions.SetScrollFactor(entries, scrollFactorX, scrollFactorY, stepScrollFactorX, stepScrollFactorY);\r\n        }\r\n\r\n        var hitArea = GetFastValue(options, 'hitArea', null);\r\n        var hitAreaCallback = GetFastValue(options, 'hitAreaCallback', null);\r\n\r\n        if (hitArea)\r\n        {\r\n            Actions.SetHitArea(entries, hitArea, hitAreaCallback);\r\n        }\r\n\r\n        var grid = GetFastValue(options, 'gridAlign', false);\r\n\r\n        if (grid)\r\n        {\r\n            Actions.GridAlign(entries, grid);\r\n        }\r\n\r\n        if (this.createMultipleCallback)\r\n        {\r\n            this.createMultipleCallback.call(this, entries);\r\n        }\r\n\r\n        return entries;\r\n    },\r\n\r\n    /**\r\n     * Updates any group members, if {@link Phaser.GameObjects.Group#runChildUpdate} is enabled.\r\n     *\r\n     * @method Phaser.GameObjects.Group#preUpdate\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} time - The current timestamp.\r\n     * @param {number} delta - The delta time elapsed since the last frame.\r\n     */\r\n    preUpdate: function (time, delta)\r\n    {\r\n        if (!this.runChildUpdate || this.children.size === 0)\r\n        {\r\n            return;\r\n        }\r\n\r\n        //  Because a Group child may mess with the length of the Group during its update\r\n        var temp = this.children.entries.slice();\r\n\r\n        for (var i = 0; i < temp.length; i++)\r\n        {\r\n            var item = temp[i];\r\n\r\n            if (item.active)\r\n            {\r\n                item.update(time, delta);\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Adds a Game Object to this group.\r\n     *\r\n     * Calls {@link Phaser.GameObjects.Group#createCallback}.\r\n     *\r\n     * @method Phaser.GameObjects.Group#add\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child - The Game Object to add.\r\n     * @param {boolean} [addToScene=false] - Also add the Game Object to the scene.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    add: function (child, addToScene)\r\n    {\r\n        if (addToScene === undefined) { addToScene = false; }\r\n\r\n        if (this.isFull())\r\n        {\r\n            return this;\r\n        }\r\n\r\n        this.children.set(child);\r\n\r\n        if (this.internalCreateCallback)\r\n        {\r\n            this.internalCreateCallback.call(this, child);\r\n        }\r\n\r\n        if (this.createCallback)\r\n        {\r\n            this.createCallback.call(this, child);\r\n        }\r\n\r\n        if (addToScene)\r\n        {\r\n            child.addToDisplayList(this.scene.sys.displayList);\r\n            child.addToUpdateList();\r\n        }\r\n\r\n        child.on(Events.DESTROY, this.remove, this);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds several Game Objects to this group.\r\n     *\r\n     * Calls {@link Phaser.GameObjects.Group#createCallback}.\r\n     *\r\n     * @method Phaser.GameObjects.Group#addMultiple\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject[]} children - The Game Objects to add.\r\n     * @param {boolean} [addToScene=false] - Also add the Game Objects to the scene.\r\n     *\r\n     * @return {this} This group.\r\n     */\r\n    addMultiple: function (children, addToScene)\r\n    {\r\n        if (addToScene === undefined) { addToScene = false; }\r\n\r\n        if (Array.isArray(children))\r\n        {\r\n            for (var i = 0; i < children.length; i++)\r\n            {\r\n                this.add(children[i], addToScene);\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes a member of this Group and optionally removes it from the Scene and / or destroys it.\r\n     *\r\n     * Calls {@link Phaser.GameObjects.Group#removeCallback}.\r\n     *\r\n     * @method Phaser.GameObjects.Group#remove\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child - The Game Object to remove.\r\n     * @param {boolean} [removeFromScene=false] - Optionally remove the Group member from the Scene it belongs to.\r\n     * @param {boolean} [destroyChild=false] - Optionally call destroy on the removed Group member.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    remove: function (child, removeFromScene, destroyChild)\r\n    {\r\n        if (removeFromScene === undefined) { removeFromScene = false; }\r\n        if (destroyChild === undefined) { destroyChild = false; }\r\n\r\n        if (!this.children.contains(child))\r\n        {\r\n            return this;\r\n        }\r\n\r\n        this.children.delete(child);\r\n\r\n        if (this.internalRemoveCallback)\r\n        {\r\n            this.internalRemoveCallback.call(this, child);\r\n        }\r\n\r\n        if (this.removeCallback)\r\n        {\r\n            this.removeCallback.call(this, child);\r\n        }\r\n\r\n        child.off(Events.DESTROY, this.remove, this);\r\n\r\n        if (destroyChild)\r\n        {\r\n            child.destroy();\r\n        }\r\n        else if (removeFromScene)\r\n        {\r\n            child.removeFromDisplayList();\r\n            child.removeFromUpdateList();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes all members of this Group and optionally removes them from the Scene and / or destroys them.\r\n     *\r\n     * Does not call {@link Phaser.GameObjects.Group#removeCallback}.\r\n     *\r\n     * @method Phaser.GameObjects.Group#clear\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} [removeFromScene=false] - Optionally remove each Group member from the Scene.\r\n     * @param {boolean} [destroyChild=false] - Optionally call destroy on the removed Group members.\r\n     *\r\n     * @return {this} This group.\r\n     */\r\n    clear: function (removeFromScene, destroyChild)\r\n    {\r\n        if (removeFromScene === undefined) { removeFromScene = false; }\r\n        if (destroyChild === undefined) { destroyChild = false; }\r\n\r\n        var children = this.children;\r\n\r\n        for (var i = 0; i < children.size; i++)\r\n        {\r\n            var gameObject = children.entries[i];\r\n\r\n            gameObject.off(Events.DESTROY, this.remove, this);\r\n\r\n            if (destroyChild)\r\n            {\r\n                gameObject.destroy();\r\n            }\r\n            else if (removeFromScene)\r\n            {\r\n                gameObject.removeFromDisplayList();\r\n                gameObject.removeFromUpdateList();\r\n            }\r\n        }\r\n\r\n        this.children.clear();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Tests if a Game Object is a member of this group.\r\n     *\r\n     * @method Phaser.GameObjects.Group#contains\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} child - A Game Object.\r\n     *\r\n     * @return {boolean} True if the Game Object is a member of this group.\r\n     */\r\n    contains: function (child)\r\n    {\r\n        return this.children.contains(child);\r\n    },\r\n\r\n    /**\r\n     * All members of the group.\r\n     *\r\n     * @method Phaser.GameObjects.Group#getChildren\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject[]} The group members.\r\n     */\r\n    getChildren: function ()\r\n    {\r\n        return this.children.entries;\r\n    },\r\n\r\n    /**\r\n     * The number of members of the group.\r\n     *\r\n     * @method Phaser.GameObjects.Group#getLength\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number}\r\n     */\r\n    getLength: function ()\r\n    {\r\n        return this.children.size;\r\n    },\r\n\r\n    /**\r\n     * Returns all children in this Group that match the given criteria based on the `property` and `value` arguments.\r\n     *\r\n     * For example: `getMatching('visible', true)` would return only children that have their `visible` property set.\r\n     *\r\n     * Optionally, you can specify a start and end index. For example if the Group has 100 elements,\r\n     * and you set `startIndex` to 0 and `endIndex` to 50, it would return matches from only\r\n     * the first 50.\r\n     *\r\n     * @method Phaser.GameObjects.Group#getMatching\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} [property] - The property to test on each array element.\r\n     * @param {*} [value] - The value to test the property against. Must pass a strict (`===`) comparison check.\r\n     * @param {number} [startIndex] - An optional start index to search from.\r\n     * @param {number} [endIndex] - An optional end index to search to.\r\n     *\r\n     * @return {any[]} An array of matching Group members. The array will be empty if nothing matched.\r\n     */\r\n    getMatching: function (property, value, startIndex, endIndex)\r\n    {\r\n        return GetAll(this.children.entries, property, value, startIndex, endIndex);\r\n    },\r\n\r\n    /**\r\n     * Scans the Group, from top to bottom, for the first member that has an {@link Phaser.GameObjects.GameObject#active} state matching the argument,\r\n     * assigns `x` and `y`, and returns the member.\r\n     *\r\n     * If no matching member is found and `createIfNull` is true and the group isn't full then it will create a new Game Object using `x`, `y`, `key`, `frame`, and `visible`.\r\n     * Unless a new member is created, `key`, `frame`, and `visible` are ignored.\r\n     *\r\n     * @method Phaser.GameObjects.Group#getFirst\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} [state=false] - The {@link Phaser.GameObjects.GameObject#active} value to match.\r\n     * @param {boolean} [createIfNull=false] - Create a new Game Object if no matching members are found, using the following arguments.\r\n     * @param {number} [x] - The horizontal position of the Game Object in the world.\r\n     * @param {number} [y] - The vertical position of the Game Object in the world.\r\n     * @param {string} [key=defaultKey] - The texture key assigned to a new Game Object (if one is created).\r\n     * @param {(string|number)} [frame=defaultFrame] - A texture frame assigned to a new Game Object (if one is created).\r\n     * @param {boolean} [visible=true] - The {@link Phaser.GameObjects.Components.Visible#visible} state of a new Game Object (if one is created).\r\n     *\r\n     * @return {?any} The first matching group member, or a newly created member, or null.\r\n     */\r\n    getFirst: function (state, createIfNull, x, y, key, frame, visible)\r\n    {\r\n        return this.getHandler(true, 1, state, createIfNull, x, y, key, frame, visible);\r\n    },\r\n\r\n    /**\r\n     * Scans the Group, from top to bottom, for the nth member that has an {@link Phaser.GameObjects.GameObject#active} state matching the argument,\r\n     * assigns `x` and `y`, and returns the member.\r\n     *\r\n     * If no matching member is found and `createIfNull` is true and the group isn't full then it will create a new Game Object using `x`, `y`, `key`, `frame`, and `visible`.\r\n     * Unless a new member is created, `key`, `frame`, and `visible` are ignored.\r\n     *\r\n     * @method Phaser.GameObjects.Group#getFirstNth\r\n     * @since 3.6.0\r\n     *\r\n     * @param {number} nth - The nth matching Group member to search for.\r\n     * @param {boolean} [state=false] - The {@link Phaser.GameObjects.GameObject#active} value to match.\r\n     * @param {boolean} [createIfNull=false] - Create a new Game Object if no matching members are found, using the following arguments.\r\n     * @param {number} [x] - The horizontal position of the Game Object in the world.\r\n     * @param {number} [y] - The vertical position of the Game Object in the world.\r\n     * @param {string} [key=defaultKey] - The texture key assigned to a new Game Object (if one is created).\r\n     * @param {(string|number)} [frame=defaultFrame] - A texture frame assigned to a new Game Object (if one is created).\r\n     * @param {boolean} [visible=true] - The {@link Phaser.GameObjects.Components.Visible#visible} state of a new Game Object (if one is created).\r\n     *\r\n     * @return {?any} The first matching group member, or a newly created member, or null.\r\n     */\r\n    getFirstNth: function (nth, state, createIfNull, x, y, key, frame, visible)\r\n    {\r\n        return this.getHandler(true, nth, state, createIfNull, x, y, key, frame, visible);\r\n    },\r\n\r\n    /**\r\n     * Scans the Group for the last member that has an {@link Phaser.GameObjects.GameObject#active} state matching the argument,\r\n     * assigns `x` and `y`, and returns the member.\r\n     *\r\n     * If no matching member is found and `createIfNull` is true and the group isn't full then it will create a new Game Object using `x`, `y`, `key`, `frame`, and `visible`.\r\n     * Unless a new member is created, `key`, `frame`, and `visible` are ignored.\r\n     *\r\n     * @method Phaser.GameObjects.Group#getLast\r\n     * @since 3.6.0\r\n     *\r\n     * @param {boolean} [state=false] - The {@link Phaser.GameObjects.GameObject#active} value to match.\r\n     * @param {boolean} [createIfNull=false] - Create a new Game Object if no matching members are found, using the following arguments.\r\n     * @param {number} [x] - The horizontal position of the Game Object in the world.\r\n     * @param {number} [y] - The vertical position of the Game Object in the world.\r\n     * @param {string} [key=defaultKey] - The texture key assigned to a new Game Object (if one is created).\r\n     * @param {(string|number)} [frame=defaultFrame] - A texture frame assigned to a new Game Object (if one is created).\r\n     * @param {boolean} [visible=true] - The {@link Phaser.GameObjects.Components.Visible#visible} state of a new Game Object (if one is created).\r\n     *\r\n     * @return {?any} The first matching group member, or a newly created member, or null.\r\n     */\r\n    getLast: function (state, createIfNull, x, y, key, frame, visible)\r\n    {\r\n        return this.getHandler(false, 1, state, createIfNull, x, y, key, frame, visible);\r\n    },\r\n\r\n    /**\r\n     * Scans the Group for the last nth member that has an {@link Phaser.GameObjects.GameObject#active} state matching the argument,\r\n     * assigns `x` and `y`, and returns the member.\r\n     *\r\n     * If no matching member is found and `createIfNull` is true and the group isn't full then it will create a new Game Object using `x`, `y`, `key`, `frame`, and `visible`.\r\n     * Unless a new member is created, `key`, `frame`, and `visible` are ignored.\r\n     *\r\n     * @method Phaser.GameObjects.Group#getLastNth\r\n     * @since 3.6.0\r\n     *\r\n     * @param {number} nth - The nth matching Group member to search for.\r\n     * @param {boolean} [state=false] - The {@link Phaser.GameObjects.GameObject#active} value to match.\r\n     * @param {boolean} [createIfNull=false] - Create a new Game Object if no matching members are found, using the following arguments.\r\n     * @param {number} [x] - The horizontal position of the Game Object in the world.\r\n     * @param {number} [y] - The vertical position of the Game Object in the world.\r\n     * @param {string} [key=defaultKey] - The texture key assigned to a new Game Object (if one is created).\r\n     * @param {(string|number)} [frame=defaultFrame] - A texture frame assigned to a new Game Object (if one is created).\r\n     * @param {boolean} [visible=true] - The {@link Phaser.GameObjects.Components.Visible#visible} state of a new Game Object (if one is created).\r\n     *\r\n     * @return {?any} The first matching group member, or a newly created member, or null.\r\n     */\r\n    getLastNth: function (nth, state, createIfNull, x, y, key, frame, visible)\r\n    {\r\n        return this.getHandler(false, nth, state, createIfNull, x, y, key, frame, visible);\r\n    },\r\n\r\n    /**\r\n     * Scans the group for the last member that has an {@link Phaser.GameObjects.GameObject#active} state matching the argument,\r\n     * assigns `x` and `y`, and returns the member.\r\n     *\r\n     * If no matching member is found and `createIfNull` is true and the group isn't full then it will create a new Game Object using `x`, `y`, `key`, `frame`, and `visible`.\r\n     * Unless a new member is created, `key`, `frame`, and `visible` are ignored.\r\n     *\r\n     * @method Phaser.GameObjects.Group#getHandler\r\n     * @private\r\n     * @since 3.6.0\r\n     *\r\n     * @param {boolean} forwards - Search front to back or back to front?\r\n     * @param {number} nth - Stop matching after nth successful matches.\r\n     * @param {boolean} [state=false] - The {@link Phaser.GameObjects.GameObject#active} value to match.\r\n     * @param {boolean} [createIfNull=false] - Create a new Game Object if no matching members are found, using the following arguments.\r\n     * @param {number} [x] - The horizontal position of the Game Object in the world.\r\n     * @param {number} [y] - The vertical position of the Game Object in the world.\r\n     * @param {string} [key=defaultKey] - The texture key assigned to a new Game Object (if one is created).\r\n     * @param {(string|number)} [frame=defaultFrame] - A texture frame assigned to a new Game Object (if one is created).\r\n     * @param {boolean} [visible=true] - The {@link Phaser.GameObjects.Components.Visible#visible} state of a new Game Object (if one is created).\r\n     *\r\n     * @return {?any} The first matching group member, or a newly created member, or null.\r\n     */\r\n    getHandler: function (forwards, nth, state, createIfNull, x, y, key, frame, visible)\r\n    {\r\n        if (state === undefined) { state = false; }\r\n        if (createIfNull === undefined) { createIfNull = false; }\r\n\r\n        var gameObject;\r\n\r\n        var i;\r\n        var total = 0;\r\n        var children = this.children.entries;\r\n\r\n        if (forwards)\r\n        {\r\n            for (i = 0; i < children.length; i++)\r\n            {\r\n                gameObject = children[i];\r\n\r\n                if (gameObject.active === state)\r\n                {\r\n                    total++;\r\n\r\n                    if (total === nth)\r\n                    {\r\n                        break;\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    gameObject = null;\r\n                }\r\n            }\r\n        }\r\n        else\r\n        {\r\n            for (i = children.length - 1; i >= 0; i--)\r\n            {\r\n                gameObject = children[i];\r\n\r\n                if (gameObject.active === state)\r\n                {\r\n                    total++;\r\n\r\n                    if (total === nth)\r\n                    {\r\n                        break;\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    gameObject = null;\r\n                }\r\n            }\r\n        }\r\n\r\n        if (gameObject)\r\n        {\r\n            if (typeof(x) === 'number')\r\n            {\r\n                gameObject.x = x;\r\n            }\r\n\r\n            if (typeof(y) === 'number')\r\n            {\r\n                gameObject.y = y;\r\n            }\r\n\r\n            return gameObject;\r\n        }\r\n\r\n        //  Got this far? We need to create or bail\r\n        if (createIfNull)\r\n        {\r\n            return this.create(x, y, key, frame, visible);\r\n        }\r\n        else\r\n        {\r\n            return null;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Scans the group for the first member that has an {@link Phaser.GameObjects.GameObject#active} state set to `false`,\r\n     * assigns `x` and `y`, and returns the member.\r\n     *\r\n     * If no inactive member is found and the group isn't full then it will create a new Game Object using `x`, `y`, `key`, `frame`, and `visible`.\r\n     * The new Game Object will have its active state set to `true`.\r\n     * Unless a new member is created, `key`, `frame`, and `visible` are ignored.\r\n     *\r\n     * @method Phaser.GameObjects.Group#get\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x] - The horizontal position of the Game Object in the world.\r\n     * @param {number} [y] - The vertical position of the Game Object in the world.\r\n     * @param {string} [key=defaultKey] - The texture key assigned to a new Game Object (if one is created).\r\n     * @param {(string|number)} [frame=defaultFrame] - A texture frame assigned to a new Game Object (if one is created).\r\n     * @param {boolean} [visible=true] - The {@link Phaser.GameObjects.Components.Visible#visible} state of a new Game Object (if one is created).\r\n     *\r\n     * @return {?any} The first inactive group member, or a newly created member, or null.\r\n     */\r\n    get: function (x, y, key, frame, visible)\r\n    {\r\n        return this.getFirst(false, true, x, y, key, frame, visible);\r\n    },\r\n\r\n    /**\r\n     * Scans the group for the first member that has an {@link Phaser.GameObjects.GameObject#active} state set to `true`,\r\n     * assigns `x` and `y`, and returns the member.\r\n     *\r\n     * If no active member is found and `createIfNull` is `true` and the group isn't full then it will create a new one using `x`, `y`, `key`, `frame`, and `visible`.\r\n     * Unless a new member is created, `key`, `frame`, and `visible` are ignored.\r\n     *\r\n     * @method Phaser.GameObjects.Group#getFirstAlive\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} [createIfNull=false] - Create a new Game Object if no matching members are found, using the following arguments.\r\n     * @param {number} [x] - The horizontal position of the Game Object in the world.\r\n     * @param {number} [y] - The vertical position of the Game Object in the world.\r\n     * @param {string} [key=defaultKey] - The texture key assigned to a new Game Object (if one is created).\r\n     * @param {(string|number)} [frame=defaultFrame] - A texture frame assigned to a new Game Object (if one is created).\r\n     * @param {boolean} [visible=true] - The {@link Phaser.GameObjects.Components.Visible#visible} state of a new Game Object (if one is created).\r\n     *\r\n     * @return {any} The first active group member, or a newly created member, or null.\r\n     */\r\n    getFirstAlive: function (createIfNull, x, y, key, frame, visible)\r\n    {\r\n        return this.getFirst(true, createIfNull, x, y, key, frame, visible);\r\n    },\r\n\r\n    /**\r\n     * Scans the group for the first member that has an {@link Phaser.GameObjects.GameObject#active} state set to `false`,\r\n     * assigns `x` and `y`, and returns the member.\r\n     *\r\n     * If no inactive member is found and `createIfNull` is `true` and the group isn't full then it will create a new one using `x`, `y`, `key`, `frame`, and `visible`.\r\n     * The new Game Object will have an active state set to `true`.\r\n     * Unless a new member is created, `key`, `frame`, and `visible` are ignored.\r\n     *\r\n     * @method Phaser.GameObjects.Group#getFirstDead\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} [createIfNull=false] - Create a new Game Object if no matching members are found, using the following arguments.\r\n     * @param {number} [x] - The horizontal position of the Game Object in the world.\r\n     * @param {number} [y] - The vertical position of the Game Object in the world.\r\n     * @param {string} [key=defaultKey] - The texture key assigned to a new Game Object (if one is created).\r\n     * @param {(string|number)} [frame=defaultFrame] - A texture frame assigned to a new Game Object (if one is created).\r\n     * @param {boolean} [visible=true] - The {@link Phaser.GameObjects.Components.Visible#visible} state of a new Game Object (if one is created).\r\n     *\r\n     * @return {any} The first inactive group member, or a newly created member, or null.\r\n     */\r\n    getFirstDead: function (createIfNull, x, y, key, frame, visible)\r\n    {\r\n        return this.getFirst(false, createIfNull, x, y, key, frame, visible);\r\n    },\r\n\r\n    /**\r\n     * {@link Phaser.Animations.AnimationState#play Plays} an animation for all members of this group.\r\n     *\r\n     * @method Phaser.GameObjects.Group#playAnimation\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The string-based key of the animation to play.\r\n     * @param {string} [startFrame=0] - Optionally start the animation playing from this frame index.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    playAnimation: function (key, startFrame)\r\n    {\r\n        Actions.PlayAnimation(this.children.entries, key, startFrame);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Whether this group's size at its {@link Phaser.GameObjects.Group#maxSize maximum}.\r\n     *\r\n     * @method Phaser.GameObjects.Group#isFull\r\n     * @since 3.0.0\r\n     *\r\n     * @return {boolean} True if the number of members equals {@link Phaser.GameObjects.Group#maxSize}.\r\n     */\r\n    isFull: function ()\r\n    {\r\n        if (this.maxSize === -1)\r\n        {\r\n            return false;\r\n        }\r\n        else\r\n        {\r\n            return (this.children.size >= this.maxSize);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Counts the number of active (or inactive) group members.\r\n     *\r\n     * @method Phaser.GameObjects.Group#countActive\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} [value=true] - Count active (true) or inactive (false) group members.\r\n     *\r\n     * @return {number} The number of group members with an active state matching the `active` argument.\r\n     */\r\n    countActive: function (value)\r\n    {\r\n        if (value === undefined) { value = true; }\r\n\r\n        var total = 0;\r\n\r\n        for (var i = 0; i < this.children.size; i++)\r\n        {\r\n            if (this.children.entries[i].active === value)\r\n            {\r\n                total++;\r\n            }\r\n        }\r\n\r\n        return total;\r\n    },\r\n\r\n    /**\r\n     * Counts the number of in-use (active) group members.\r\n     *\r\n     * @method Phaser.GameObjects.Group#getTotalUsed\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The number of group members with an active state of true.\r\n     */\r\n    getTotalUsed: function ()\r\n    {\r\n        return this.countActive();\r\n    },\r\n\r\n    /**\r\n     * The difference of {@link Phaser.GameObjects.Group#maxSize} and the number of active group members.\r\n     *\r\n     * This represents the number of group members that could be created or reactivated before reaching the size limit.\r\n     *\r\n     * @method Phaser.GameObjects.Group#getTotalFree\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} maxSize minus the number of active group numbers; or a large number (if maxSize is -1).\r\n     */\r\n    getTotalFree: function ()\r\n    {\r\n        var used = this.getTotalUsed();\r\n        var capacity = (this.maxSize === -1) ? 999999999999 : this.maxSize;\r\n\r\n        return (capacity - used);\r\n    },\r\n\r\n    /**\r\n     * Sets the `active` property of this Group.\r\n     * When active, this Group runs its `preUpdate` method.\r\n     *\r\n     * @method Phaser.GameObjects.Group#setActive\r\n     * @since 3.24.0\r\n     *\r\n     * @param {boolean} value - True if this Group should be set as active, false if not.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    setActive: function (value)\r\n    {\r\n        this.active = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the `name` property of this Group.\r\n     * The `name` property is not populated by Phaser and is presented for your own use.\r\n     *\r\n     * @method Phaser.GameObjects.Group#setName\r\n     * @since 3.24.0\r\n     *\r\n     * @param {string} value - The name to be given to this Group.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    setName: function (value)\r\n    {\r\n        this.name = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the property as defined in `key` of each group member to the given value.\r\n     *\r\n     * @method Phaser.GameObjects.Group#propertyValueSet\r\n     * @since 3.21.0\r\n     *\r\n     * @param {string} key - The property to be updated.\r\n     * @param {number} value - The amount to set the property to.\r\n     * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n     * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n     * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    propertyValueSet: function (key, value, step, index, direction)\r\n    {\r\n        Actions.PropertyValueSet(this.children.entries, key, value, step, index, direction);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds the given value to the property as defined in `key` of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#propertyValueInc\r\n     * @since 3.21.0\r\n     *\r\n     * @param {string} key - The property to be updated.\r\n     * @param {number} value - The amount to set the property to.\r\n     * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n     * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n     * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    propertyValueInc: function (key, value, step, index, direction)\r\n    {\r\n        Actions.PropertyValueInc(this.children.entries, key, value, step, index, direction);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the x of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#setX\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} value - The amount to set the property to.\r\n     * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    setX: function (value, step)\r\n    {\r\n        Actions.SetX(this.children.entries, value, step);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the y of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#setY\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} value - The amount to set the property to.\r\n     * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    setY: function (value, step)\r\n    {\r\n        Actions.SetY(this.children.entries, value, step);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the x, y of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#setXY\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} x - The amount to set the `x` property to.\r\n     * @param {number} [y=x] - The amount to set the `y` property to. If `undefined` or `null` it uses the `x` value.\r\n     * @param {number} [stepX=0] - This is added to the `x` amount, multiplied by the iteration counter.\r\n     * @param {number} [stepY=0] - This is added to the `y` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    setXY: function (x, y, stepX, stepY)\r\n    {\r\n        Actions.SetXY(this.children.entries, x, y, stepX, stepY);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds the given value to the x of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#incX\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} value - The amount to be added to the `x` property.\r\n     * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    incX: function (value, step)\r\n    {\r\n        Actions.IncX(this.children.entries, value, step);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds the given value to the y of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#incY\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} value - The amount to be added to the `y` property.\r\n     * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    incY: function (value, step)\r\n    {\r\n        Actions.IncY(this.children.entries, value, step);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds the given value to the x, y of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#incXY\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} x - The amount to be added to the `x` property.\r\n     * @param {number} [y=x] - The amount to be added to the `y` property. If `undefined` or `null` it uses the `x` value.\r\n     * @param {number} [stepX=0] - This is added to the `x` amount, multiplied by the iteration counter.\r\n     * @param {number} [stepY=0] - This is added to the `y` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    incXY: function (x, y, stepX, stepY)\r\n    {\r\n        Actions.IncXY(this.children.entries, x, y, stepX, stepY);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Iterate through the group members changing the position of each element to be that of the element that came before\r\n     * it in the array (or after it if direction = 1)\r\n     *\r\n     * The first group member position is set to x/y.\r\n     *\r\n     * @method Phaser.GameObjects.Group#shiftPosition\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} x - The x coordinate to place the first item in the array at.\r\n     * @param {number} y - The y coordinate to place the first item in the array at.\r\n     * @param {number} [direction=0] - The iteration direction. 0 = first to last and 1 = last to first.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    shiftPosition: function (x, y, direction)\r\n    {\r\n        Actions.ShiftPosition(this.children.entries, x, y, direction);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the angle of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#angle\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} value - The amount to set the angle to, in degrees.\r\n     * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    angle: function (value, step)\r\n    {\r\n        Actions.Angle(this.children.entries, value, step);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the rotation of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#rotate\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} value - The amount to set the rotation to, in radians.\r\n     * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    rotate: function (value, step)\r\n    {\r\n        Actions.Rotate(this.children.entries, value, step);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Rotates each group member around the given point by the given angle.\r\n     *\r\n     * @method Phaser.GameObjects.Group#rotateAround\r\n     * @since 3.21.0\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} point - Any object with public `x` and `y` properties.\r\n     * @param {number} angle - The angle to rotate by, in radians.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    rotateAround: function (point, angle)\r\n    {\r\n        Actions.RotateAround(this.children.entries, point, angle);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Rotates each group member around the given point by the given angle and distance.\r\n     *\r\n     * @method Phaser.GameObjects.Group#rotateAroundDistance\r\n     * @since 3.21.0\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} point - Any object with public `x` and `y` properties.\r\n     * @param {number} angle - The angle to rotate by, in radians.\r\n     * @param {number} distance - The distance from the point of rotation in pixels.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    rotateAroundDistance: function (point, angle, distance)\r\n    {\r\n        Actions.RotateAroundDistance(this.children.entries, point, angle, distance);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the alpha of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#setAlpha\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} value - The amount to set the alpha to.\r\n     * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    setAlpha: function (value, step)\r\n    {\r\n        Actions.SetAlpha(this.children.entries, value, step);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the tint of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#setTint\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} topLeft - The tint being applied to top-left corner of item. If other parameters are given no value, this tint will be applied to whole item.\r\n     * @param {number} [topRight] - The tint to be applied to top-right corner of item.\r\n     * @param {number} [bottomLeft] - The tint to be applied to the bottom-left corner of item.\r\n     * @param {number} [bottomRight] - The tint to be applied to the bottom-right corner of item.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    setTint: function (topLeft, topRight, bottomLeft, bottomRight)\r\n    {\r\n        Actions.SetTint(this.children.entries, topLeft, topRight, bottomLeft, bottomRight);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the originX, originY of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#setOrigin\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} originX - The amount to set the `originX` property to.\r\n     * @param {number} [originY] - The amount to set the `originY` property to. If `undefined` or `null` it uses the `originX` value.\r\n     * @param {number} [stepX=0] - This is added to the `originX` amount, multiplied by the iteration counter.\r\n     * @param {number} [stepY=0] - This is added to the `originY` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    setOrigin: function (originX, originY, stepX, stepY)\r\n    {\r\n        Actions.SetOrigin(this.children.entries, originX, originY, stepX, stepY);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the scaleX of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#scaleX\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} value - The amount to set the property to.\r\n     * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    scaleX: function (value, step)\r\n    {\r\n        Actions.ScaleX(this.children.entries, value, step);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the scaleY of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#scaleY\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} value - The amount to set the property to.\r\n     * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    scaleY: function (value, step)\r\n    {\r\n        Actions.ScaleY(this.children.entries, value, step);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the scaleX, scaleY of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#scaleXY\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} scaleX - The amount to be added to the `scaleX` property.\r\n     * @param {number} [scaleY] - The amount to be added to the `scaleY` property. If `undefined` or `null` it uses the `scaleX` value.\r\n     * @param {number} [stepX=0] - This is added to the `scaleX` amount, multiplied by the iteration counter.\r\n     * @param {number} [stepY=0] - This is added to the `scaleY` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    scaleXY: function (scaleX, scaleY, stepX, stepY)\r\n    {\r\n        Actions.ScaleXY(this.children.entries, scaleX, scaleY, stepX, stepY);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the depth of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#setDepth\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} value - The amount to set the property to.\r\n     * @param {number} [step=0] - This is added to the `value` amount, multiplied by the iteration counter.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    setDepth: function (value, step)\r\n    {\r\n        Actions.SetDepth(this.children.entries, value, step);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the blendMode of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#setBlendMode\r\n     * @since 3.21.0\r\n     *\r\n     * @param {number} value - The amount to set the property to.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    setBlendMode: function (value)\r\n    {\r\n        Actions.SetBlendMode(this.children.entries, value);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Passes all group members to the Input Manager to enable them for input with identical areas and callbacks.\r\n     *\r\n     * @method Phaser.GameObjects.Group#setHitArea\r\n     * @since 3.21.0\r\n     *\r\n     * @param {*} hitArea - Either an input configuration object, or a geometric shape that defines the hit area for the Game Object. If not specified a Rectangle will be used.\r\n     * @param {Phaser.Types.Input.HitAreaCallback} hitAreaCallback - A callback to be invoked when the Game Object is interacted with. If you provide a shape you must also provide a callback.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    setHitArea: function (hitArea, hitAreaCallback)\r\n    {\r\n        Actions.SetHitArea(this.children.entries, hitArea, hitAreaCallback);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Shuffles the group members in place.\r\n     *\r\n     * @method Phaser.GameObjects.Group#shuffle\r\n     * @since 3.21.0\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    shuffle: function ()\r\n    {\r\n        Actions.Shuffle(this.children.entries);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Deactivates a member of this group.\r\n     *\r\n     * @method Phaser.GameObjects.Group#kill\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} gameObject - A member of this group.\r\n     */\r\n    kill: function (gameObject)\r\n    {\r\n        if (this.children.contains(gameObject))\r\n        {\r\n            gameObject.setActive(false);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Deactivates and hides a member of this group.\r\n     *\r\n     * @method Phaser.GameObjects.Group#killAndHide\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} gameObject - A member of this group.\r\n     */\r\n    killAndHide: function (gameObject)\r\n    {\r\n        if (this.children.contains(gameObject))\r\n        {\r\n            gameObject.setActive(false);\r\n            gameObject.setVisible(false);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Sets the visible of each group member.\r\n     *\r\n     * @method Phaser.GameObjects.Group#setVisible\r\n     * @since 3.21.0\r\n     *\r\n     * @param {boolean} value - The value to set the property to.\r\n     * @param {number} [index=0] - An optional offset to start searching from within the items array.\r\n     * @param {number} [direction=1] - The direction to iterate through the array. 1 is from beginning to end, -1 from end to beginning.\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    setVisible: function (value, index, direction)\r\n    {\r\n        Actions.SetVisible(this.children.entries, value, index, direction);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Toggles (flips) the visible state of each member of this group.\r\n     *\r\n     * @method Phaser.GameObjects.Group#toggleVisible\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Group object.\r\n     */\r\n    toggleVisible: function ()\r\n    {\r\n        Actions.ToggleVisible(this.children.entries);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Empties this Group of all children and removes it from the Scene.\r\n     *\r\n     * Does not call {@link Phaser.GameObjects.Group#removeCallback}.\r\n     *\r\n     * Children of this Group will _not_ be removed from the Scene by calling this method\r\n     * unless you specify the `removeFromScene` parameter.\r\n     *\r\n     * Children of this Group will also _not_ be destroyed by calling this method\r\n     * unless you specify the `destroyChildren` parameter.\r\n     *\r\n     * @method Phaser.GameObjects.Group#destroy\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} [destroyChildren=false] - Also {@link Phaser.GameObjects.GameObject#destroy} each Group member.\r\n     * @param {boolean} [removeFromScene=false] - Optionally remove each Group member from the Scene.\r\n     */\r\n    destroy: function (destroyChildren, removeFromScene)\r\n    {\r\n        if (destroyChildren === undefined) { destroyChildren = false; }\r\n        if (removeFromScene === undefined) { removeFromScene = false; }\r\n\r\n        //  This Game Object had already been destroyed\r\n        if (!this.scene || this.ignoreDestroy)\r\n        {\r\n            return;\r\n        }\r\n\r\n        this.emit(Events.DESTROY, this);\r\n\r\n        this.removeAllListeners();\r\n\r\n        this.scene.sys.updateList.remove(this);\r\n\r\n        this.clear(removeFromScene, destroyChildren);\r\n\r\n        this.scene = undefined;\r\n        this.children = undefined;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Group;\r\n\n\n/***/ }),\n\n/***/ 94975:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar Group = __webpack_require__(26479);\r\n\r\n/**\r\n * Creates a new Group Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Group Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#group\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Group.GroupConfig|Phaser.Types.GameObjects.Group.GroupCreateConfig} config - The configuration object this Game Object will use to create itself.\r\n *\r\n * @return {Phaser.GameObjects.Group} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('group', function (config)\r\n{\r\n    return new Group(this.scene, null, config);\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectCreator context.\r\n\n\n/***/ }),\n\n/***/ 3385:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Group = __webpack_require__(26479);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Group Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Group Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#group\r\n * @since 3.0.0\r\n *\r\n * @param {(Phaser.GameObjects.GameObject[]|Phaser.Types.GameObjects.Group.GroupConfig|Phaser.Types.GameObjects.Group.GroupConfig[]|Phaser.Types.GameObjects.Group.GroupCreateConfig)} [children] - Game Objects to add to this Group; or the `config` argument.\r\n * @param {Phaser.Types.GameObjects.Group.GroupConfig|Phaser.Types.GameObjects.Group.GroupCreateConfig} [config] - A Group Configuration object.\r\n *\r\n * @return {Phaser.GameObjects.Group} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('group', function (children, config)\r\n{\r\n    return this.updateList.add(new Group(this.scene, children, config));\r\n});\r\n\n\n/***/ }),\n\n/***/ 88571:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar GameObject = __webpack_require__(95643);\r\nvar ImageRender = __webpack_require__(59819);\r\n\r\n/**\r\n * @classdesc\r\n * An Image Game Object.\r\n *\r\n * An Image is a light-weight Game Object useful for the display of static images in your game,\r\n * such as logos, backgrounds, scenery or other non-animated elements. Images can have input\r\n * events and physics bodies, or be tweened, tinted or scrolled. The main difference between an\r\n * Image and a Sprite is that you cannot animate an Image as they do not have the Animation component.\r\n *\r\n * @class Image\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @extends Phaser.GameObjects.Components.Alpha\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Flip\r\n * @extends Phaser.GameObjects.Components.GetBounds\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Origin\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Size\r\n * @extends Phaser.GameObjects.Components.TextureCrop\r\n * @extends Phaser.GameObjects.Components.Tint\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {(string|Phaser.Textures.Texture)} texture - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {(string|number)} [frame] - An optional frame from the Texture this Game Object is rendering with.\r\n */\r\nvar Image = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.Alpha,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.Flip,\r\n        Components.GetBounds,\r\n        Components.Mask,\r\n        Components.Origin,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.ScrollFactor,\r\n        Components.Size,\r\n        Components.TextureCrop,\r\n        Components.Tint,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        ImageRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Image (scene, x, y, texture, frame)\r\n    {\r\n        GameObject.call(this, scene, 'Image');\r\n\r\n        /**\r\n         * The internal crop data object, as used by `setCrop` and passed to the `Frame.setCropUVs` method.\r\n         *\r\n         * @name Phaser.GameObjects.Image#_crop\r\n         * @type {object}\r\n         * @private\r\n         * @since 3.11.0\r\n         */\r\n        this._crop = this.resetCropObject();\r\n\r\n        this.setTexture(texture, frame);\r\n        this.setPosition(x, y);\r\n        this.setSizeToFrame();\r\n        this.setOriginFromFrame();\r\n        this.initPipeline();\r\n        this.initPostPipeline(true);\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Image;\r\n\n\n/***/ }),\n\n/***/ 40652:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Image#renderCanvas\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Image} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar ImageCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    renderer.batchSprite(src, src.frame, camera, parentMatrix);\r\n};\r\n\r\nmodule.exports = ImageCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 82459:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar Image = __webpack_require__(88571);\r\n\r\n/**\r\n * Creates a new Image Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Image Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#image\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Sprite.SpriteConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.Image} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('image', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var key = GetAdvancedValue(config, 'key', null);\r\n    var frame = GetAdvancedValue(config, 'frame', null);\r\n\r\n    var image = new Image(this.scene, 0, 0, key, frame);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, image, config);\r\n\r\n    return image;\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectCreator context.\r\n\n\n/***/ }),\n\n/***/ 2117:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Image = __webpack_require__(88571);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Image Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Image Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#image\r\n * @since 3.0.0\r\n *\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {(string|Phaser.Textures.Texture)} texture - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {(string|number)} [frame] - An optional frame from the Texture this Game Object is rendering with.\r\n *\r\n * @return {Phaser.GameObjects.Image} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('image', function (x, y, texture, frame)\r\n{\r\n    return this.displayList.add(new Image(this.scene, x, y, texture, frame));\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectFactory context.\r\n//\r\n//  There are several properties available to use:\r\n//\r\n//  this.scene - a reference to the Scene that owns the GameObjectFactory\r\n//  this.displayList - a reference to the Display List the Scene owns\r\n//  this.updateList - a reference to the Update List the Scene owns\r\n\n\n/***/ }),\n\n/***/ 59819:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(99517);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(40652);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 99517:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Image#renderWebGL\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Image} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar ImageWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    this.pipeline.batchSprite(src, camera, parentMatrix);\r\n};\r\n\r\nmodule.exports = ImageWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 77856:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.GameObjects\r\n */\r\n\r\nvar GameObjects = {\r\n\r\n    Events: __webpack_require__(51708),\r\n\r\n    DisplayList: __webpack_require__(8050),\r\n    GameObjectCreator: __webpack_require__(44603),\r\n    GameObjectFactory: __webpack_require__(39429),\r\n    UpdateList: __webpack_require__(45027),\r\n\r\n    Components: __webpack_require__(31401),\r\n    GetCalcMatrix: __webpack_require__(91296),\r\n\r\n    BuildGameObject: __webpack_require__(25305),\r\n    BuildGameObjectAnimation: __webpack_require__(13059),\r\n    GameObject: __webpack_require__(95643),\r\n    BitmapText: __webpack_require__(22186),\r\n    Blitter: __webpack_require__(6107),\r\n    Bob: __webpack_require__(46590),\r\n    Container: __webpack_require__(31559),\r\n    DOMElement: __webpack_require__(3069),\r\n    DynamicBitmapText: __webpack_require__(2638),\r\n    Extern: __webpack_require__(42421),\r\n    Graphics: __webpack_require__(43831),\r\n    Group: __webpack_require__(26479),\r\n    Image: __webpack_require__(88571),\r\n    Layer: __webpack_require__(93595),\r\n    Particles: __webpack_require__(18404),\r\n    PathFollower: __webpack_require__(1159),\r\n    RenderTexture: __webpack_require__(591),\r\n    RetroFont: __webpack_require__(196),\r\n    Rope: __webpack_require__(77757),\r\n    Sprite: __webpack_require__(68287),\r\n\r\n    Text: __webpack_require__(50171),\r\n    GetTextSize: __webpack_require__(14220),\r\n    MeasureText: __webpack_require__(79557),\r\n    TextStyle: __webpack_require__(35762),\r\n\r\n    TileSprite: __webpack_require__(20839),\r\n    Zone: __webpack_require__(41481),\r\n    Video: __webpack_require__(18471),\r\n\r\n    //  Shapes\r\n\r\n    Shape: __webpack_require__(17803),\r\n    Arc: __webpack_require__(23629),\r\n    Curve: __webpack_require__(89),\r\n    Ellipse: __webpack_require__(19921),\r\n    Grid: __webpack_require__(30479),\r\n    IsoBox: __webpack_require__(61475),\r\n    IsoTriangle: __webpack_require__(16933),\r\n    Line: __webpack_require__(57847),\r\n    Polygon: __webpack_require__(24949),\r\n    Rectangle: __webpack_require__(74561),\r\n    Star: __webpack_require__(55911),\r\n    Triangle: __webpack_require__(36931),\r\n\r\n    //  Game Object Factories\r\n\r\n    Factories: {\r\n        Blitter: __webpack_require__(12709),\r\n        Container: __webpack_require__(24961),\r\n        DOMElement: __webpack_require__(2611),\r\n        DynamicBitmapText: __webpack_require__(72566),\r\n        Extern: __webpack_require__(56315),\r\n        Graphics: __webpack_require__(1201),\r\n        Group: __webpack_require__(3385),\r\n        Image: __webpack_require__(2117),\r\n        Layer: __webpack_require__(20005),\r\n        Particles: __webpack_require__(676),\r\n        PathFollower: __webpack_require__(90145),\r\n        RenderTexture: __webpack_require__(60505),\r\n        Rope: __webpack_require__(96819),\r\n        Sprite: __webpack_require__(46409),\r\n        StaticBitmapText: __webpack_require__(34914),\r\n        Text: __webpack_require__(68005),\r\n        TileSprite: __webpack_require__(91681),\r\n        Zone: __webpack_require__(84175),\r\n        Video: __webpack_require__(89025),\r\n\r\n        //  Shapes\r\n        Arc: __webpack_require__(42563),\r\n        Curve: __webpack_require__(40511),\r\n        Ellipse: __webpack_require__(1543),\r\n        Grid: __webpack_require__(34137),\r\n        IsoBox: __webpack_require__(3933),\r\n        IsoTriangle: __webpack_require__(49803),\r\n        Line: __webpack_require__(2481),\r\n        Polygon: __webpack_require__(64827),\r\n        Rectangle: __webpack_require__(87959),\r\n        Star: __webpack_require__(93697),\r\n        Triangle: __webpack_require__(45245)\r\n    },\r\n\r\n    Creators: {\r\n        Blitter: __webpack_require__(9403),\r\n        Container: __webpack_require__(77143),\r\n        DynamicBitmapText: __webpack_require__(11164),\r\n        Graphics: __webpack_require__(87079),\r\n        Group: __webpack_require__(94975),\r\n        Image: __webpack_require__(82459),\r\n        Layer: __webpack_require__(25179),\r\n        Particles: __webpack_require__(92730),\r\n        RenderTexture: __webpack_require__(34495),\r\n        Rope: __webpack_require__(26209),\r\n        Sprite: __webpack_require__(15567),\r\n        StaticBitmapText: __webpack_require__(57336),\r\n        Text: __webpack_require__(71259),\r\n        TileSprite: __webpack_require__(14167),\r\n        Zone: __webpack_require__(95261),\r\n        Video: __webpack_require__(11511)\r\n    }\r\n\r\n};\r\n\r\n//  WebGL only Game Objects\r\nif (true)\r\n{\r\n    GameObjects.Shader = __webpack_require__(20071);\r\n    GameObjects.Mesh = __webpack_require__(4703);\r\n    GameObjects.NineSlice = __webpack_require__(28103);\r\n    GameObjects.PointLight = __webpack_require__(80321);\r\n    GameObjects.Plane = __webpack_require__(33663);\r\n\r\n    GameObjects.Factories.Shader = __webpack_require__(74177);\r\n    GameObjects.Factories.Mesh = __webpack_require__(9225);\r\n    GameObjects.Factories.NineSlice = __webpack_require__(47521);\r\n    GameObjects.Factories.PointLight = __webpack_require__(71255);\r\n    GameObjects.Factories.Plane = __webpack_require__(30985);\r\n\r\n    GameObjects.Creators.Shader = __webpack_require__(54935);\r\n    GameObjects.Creators.Mesh = __webpack_require__(20527);\r\n    GameObjects.Creators.NineSlice = __webpack_require__(28279);\r\n    GameObjects.Creators.PointLight = __webpack_require__(39829);\r\n    GameObjects.Creators.Plane = __webpack_require__(56015);\r\n\r\n    GameObjects.Light = __webpack_require__(41432);\r\n    GameObjects.LightsManager = __webpack_require__(61356);\r\n    GameObjects.LightsPlugin = __webpack_require__(88992);\r\n}\r\n\r\nmodule.exports = GameObjects;\r\n\n\n/***/ }),\n\n/***/ 93595:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BlendModes = __webpack_require__(10312);\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar ComponentsToJSON = __webpack_require__(53774);\r\nvar DataManager = __webpack_require__(45893);\r\nvar EventEmitter = __webpack_require__(50792);\r\nvar GameObjectEvents = __webpack_require__(51708);\r\nvar List = __webpack_require__(73162);\r\nvar Render = __webpack_require__(33963);\r\nvar SceneEvents = __webpack_require__(44594);\r\nvar StableSort = __webpack_require__(19186);\r\n\r\n/**\r\n * @classdesc\r\n * A Layer Game Object.\r\n *\r\n * A Layer is a special type of Game Object that acts as a Display List. You can add any type of Game Object\r\n * to a Layer, just as you would to a Scene. Layers can be used to visually group together 'layers' of Game\r\n * Objects:\r\n *\r\n * ```javascript\r\n * const spaceman = this.add.sprite(150, 300, 'spaceman');\r\n * const bunny = this.add.sprite(400, 300, 'bunny');\r\n * const elephant = this.add.sprite(650, 300, 'elephant');\r\n *\r\n * const layer = this.add.layer();\r\n *\r\n * layer.add([ spaceman, bunny, elephant ]);\r\n * ```\r\n *\r\n * The 3 sprites in the example above will now be managed by the Layer they were added to. Therefore,\r\n * if you then set `layer.setVisible(false)` they would all vanish from the display.\r\n *\r\n * You can also control the depth of the Game Objects within the Layer. For example, calling the\r\n * `setDepth` method of a child of a Layer will allow you to adjust the depth of that child _within the\r\n * Layer itself_, rather than the whole Scene. The Layer, too, can have its depth set as well.\r\n *\r\n * The Layer class also offers many different methods for manipulating the list, such as the\r\n * methods `moveUp`, `moveDown`, `sendToBack`, `bringToTop` and so on. These allow you to change the\r\n * display list position of the Layers children, causing it to adjust the order in which they are\r\n * rendered. Using `setDepth` on a child allows you to override this.\r\n *\r\n * Layers can have Post FX Pipelines set, which allows you to easily enable a post pipeline across\r\n * a whole range of children, which, depending on the effect, can often be far more efficient that doing so\r\n * on a per-child basis.\r\n *\r\n * Layers have no position or size within the Scene. This means you cannot enable a Layer for\r\n * physics or input, or change the position, rotation or scale of a Layer. They also have no scroll\r\n * factor, texture, tint, origin, crop or bounds.\r\n *\r\n * If you need those kind of features then you should use a Container instead. Containers can be added\r\n * to Layers, but Layers cannot be added to Containers.\r\n *\r\n * However, you can set the Alpha, Blend Mode, Depth, Mask and Visible state of a Layer. These settings\r\n * will impact all children being rendered by the Layer.\r\n *\r\n * @class Layer\r\n * @extends Phaser.Structs.List.<Phaser.GameObjects.GameObject>\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.50.0\r\n *\r\n * @extends Phaser.GameObjects.Components.AlphaSingle\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {Phaser.GameObjects.GameObject[]} [children] - An optional array of Game Objects to add to this Layer.\r\n */\r\nvar Layer = new Class({\r\n\r\n    Extends: List,\r\n\r\n    Mixins: [\r\n        Components.AlphaSingle,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.Mask,\r\n        Components.PostPipeline,\r\n        Components.Visible,\r\n        EventEmitter,\r\n        Render\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Layer (scene, children)\r\n    {\r\n        List.call(this, scene);\r\n        EventEmitter.call(this);\r\n\r\n        /**\r\n         * A reference to the Scene to which this Game Object belongs.\r\n         *\r\n         * Game Objects can only belong to one Scene.\r\n         *\r\n         * You should consider this property as being read-only. You cannot move a\r\n         * Game Object to another Scene by simply changing it.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#scene\r\n         * @type {Phaser.Scene}\r\n         * @since 3.50.0\r\n         */\r\n        this.scene = scene;\r\n\r\n        /**\r\n         * Holds a reference to the Display List that contains this Game Object.\r\n         *\r\n         * This is set automatically when this Game Object is added to a Scene or Layer.\r\n         *\r\n         * You should treat this property as being read-only.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#displayList\r\n         * @type {(Phaser.GameObjects.DisplayList|Phaser.GameObjects.Layer)}\r\n         * @default null\r\n         * @since 3.50.0\r\n         */\r\n        this.displayList = null;\r\n\r\n        /**\r\n         * A textual representation of this Game Object, i.e. `sprite`.\r\n         * Used internally by Phaser but is available for your own custom classes to populate.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#type\r\n         * @type {string}\r\n         * @since 3.50.0\r\n         */\r\n        this.type = 'Layer';\r\n\r\n        /**\r\n         * The current state of this Game Object.\r\n         *\r\n         * Phaser itself will never modify this value, although plugins may do so.\r\n         *\r\n         * Use this property to track the state of a Game Object during its lifetime. For example, it could change from\r\n         * a state of 'moving', to 'attacking', to 'dead'. The state value should be an integer (ideally mapped to a constant\r\n         * in your game code), or a string. These are recommended to keep it light and simple, with fast comparisons.\r\n         * If you need to store complex data about your Game Object, look at using the Data Component instead.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#state\r\n         * @type {(number|string)}\r\n         * @since 3.50.0\r\n         */\r\n        this.state = 0;\r\n\r\n        /**\r\n         * A Layer cannot be placed inside a Container.\r\n         *\r\n         * This property is kept purely so a Layer has the same\r\n         * shape as a Game Object.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#parentContainer\r\n         * @type {Phaser.GameObjects.Container}\r\n         * @since 3.51.0\r\n         */\r\n        this.parentContainer = null;\r\n\r\n        /**\r\n         * The name of this Game Object.\r\n         * Empty by default and never populated by Phaser, this is left for developers to use.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#name\r\n         * @type {string}\r\n         * @default ''\r\n         * @since 3.50.0\r\n         */\r\n        this.name = '';\r\n\r\n        /**\r\n         * The active state of this Game Object.\r\n         * A Game Object with an active state of `true` is processed by the Scenes UpdateList, if added to it.\r\n         * An active object is one which is having its logic and internal systems updated.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#active\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.50.0\r\n         */\r\n        this.active = true;\r\n\r\n        /**\r\n         * The Tab Index of the Game Object.\r\n         * Reserved for future use by plugins and the Input Manager.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#tabIndex\r\n         * @type {number}\r\n         * @default -1\r\n         * @since 3.51.0\r\n         */\r\n        this.tabIndex = -1;\r\n\r\n        /**\r\n         * A Data Manager.\r\n         * It allows you to store, query and get key/value paired information specific to this Game Object.\r\n         * `null` by default. Automatically created if you use `getData` or `setData` or `setDataEnabled`.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#data\r\n         * @type {Phaser.Data.DataManager}\r\n         * @default null\r\n         * @since 3.50.0\r\n         */\r\n        this.data = null;\r\n\r\n        /**\r\n         * The flags that are compared against `RENDER_MASK` to determine if this Game Object will render or not.\r\n         * The bits are 0001 | 0010 | 0100 | 1000 set by the components Visible, Alpha, Transform and Texture respectively.\r\n         * If those components are not used by your custom class then you can use this bitmask as you wish.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#renderFlags\r\n         * @type {number}\r\n         * @default 15\r\n         * @since 3.50.0\r\n         */\r\n        this.renderFlags = 15;\r\n\r\n        /**\r\n         * A bitmask that controls if this Game Object is drawn by a Camera or not.\r\n         * Not usually set directly, instead call `Camera.ignore`, however you can\r\n         * set this property directly using the Camera.id property:\r\n         *\r\n         * @example\r\n         * this.cameraFilter |= camera.id\r\n         *\r\n         * @name Phaser.GameObjects.Layer#cameraFilter\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.50.0\r\n         */\r\n        this.cameraFilter = 0;\r\n\r\n        /**\r\n         * This property is kept purely so a Layer has the same\r\n         * shape as a Game Object. You cannot input enable a Layer.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#input\r\n         * @type {?Phaser.Types.Input.InteractiveObject}\r\n         * @default null\r\n         * @since 3.51.0\r\n         */\r\n        this.input = null;\r\n\r\n        /**\r\n         * This property is kept purely so a Layer has the same\r\n         * shape as a Game Object. You cannot give a Layer a physics body.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#body\r\n         * @type {?(Phaser.Physics.Arcade.Body|Phaser.Physics.Arcade.StaticBody|MatterJS.BodyType)}\r\n         * @default null\r\n         * @since 3.51.0\r\n         */\r\n        this.body = null;\r\n\r\n        /**\r\n         * This Game Object will ignore all calls made to its destroy method if this flag is set to `true`.\r\n         * This includes calls that may come from a Group, Container or the Scene itself.\r\n         * While it allows you to persist a Game Object across Scenes, please understand you are entirely\r\n         * responsible for managing references to and from this Game Object.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#ignoreDestroy\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.50.0\r\n         */\r\n        this.ignoreDestroy = false;\r\n\r\n        /**\r\n         * A reference to the Scene Systems.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#systems\r\n         * @type {Phaser.Scenes.Systems}\r\n         * @since 3.50.0\r\n         */\r\n        this.systems = scene.sys;\r\n\r\n        /**\r\n         * A reference to the Scene Event Emitter.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#events\r\n         * @type {Phaser.Events.EventEmitter}\r\n         * @since 3.50.0\r\n         */\r\n        this.events = scene.sys.events;\r\n\r\n        /**\r\n         * The flag the determines whether Game Objects should be sorted when `depthSort()` is called.\r\n         *\r\n         * @name Phaser.GameObjects.Layer#sortChildrenFlag\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.50.0\r\n         */\r\n        this.sortChildrenFlag = false;\r\n\r\n        //  Set the List callbacks\r\n        this.addCallback = this.addChildCallback;\r\n        this.removeCallback = this.removeChildCallback;\r\n\r\n        this.initPostPipeline();\r\n\r\n        this.clearAlpha();\r\n\r\n        this.setBlendMode(BlendModes.SKIP_CHECK);\r\n\r\n        if (children)\r\n        {\r\n            this.add(children);\r\n        }\r\n\r\n        //  Tell the Scene to re-sort the children\r\n        scene.sys.queueDepthSort();\r\n    },\r\n\r\n    /**\r\n     * Sets the `active` property of this Game Object and returns this Game Object for further chaining.\r\n     * A Game Object with its `active` property set to `true` will be updated by the Scenes UpdateList.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#setActive\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} value - True if this Game Object should be set as active, false if not.\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    setActive: function (value)\r\n    {\r\n        this.active = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the `name` property of this Game Object and returns this Game Object for further chaining.\r\n     * The `name` property is not populated by Phaser and is presented for your own use.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#setName\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} value - The name to be given to this Game Object.\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    setName: function (value)\r\n    {\r\n        this.name = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the current state of this Game Object.\r\n     *\r\n     * Phaser itself will never modify the State of a Game Object, although plugins may do so.\r\n     *\r\n     * For example, a Game Object could change from a state of 'moving', to 'attacking', to 'dead'.\r\n     * The state value should typically be an integer (ideally mapped to a constant\r\n     * in your game code), but could also be a string. It is recommended to keep it light and simple.\r\n     * If you need to store complex data about your Game Object, look at using the Data Component instead.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#setState\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(number|string)} value - The state of the Game Object.\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    setState: function (value)\r\n    {\r\n        this.state = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds a Data Manager component to this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#setDataEnabled\r\n     * @since 3.50.0\r\n     * @see Phaser.Data.DataManager\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    setDataEnabled: function ()\r\n    {\r\n        if (!this.data)\r\n        {\r\n            this.data = new DataManager(this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Allows you to store a key value pair within this Game Objects Data Manager.\r\n     *\r\n     * If the Game Object has not been enabled for data (via `setDataEnabled`) then it will be enabled\r\n     * before setting the value.\r\n     *\r\n     * If the key doesn't already exist in the Data Manager then it is created.\r\n     *\r\n     * ```javascript\r\n     * sprite.setData('name', 'Red Gem Stone');\r\n     * ```\r\n     *\r\n     * You can also pass in an object of key value pairs as the first argument:\r\n     *\r\n     * ```javascript\r\n     * sprite.setData({ name: 'Red Gem Stone', level: 2, owner: 'Link', gold: 50 });\r\n     * ```\r\n     *\r\n     * To get a value back again you can call `getData`:\r\n     *\r\n     * ```javascript\r\n     * sprite.getData('gold');\r\n     * ```\r\n     *\r\n     * Or you can access the value directly via the `values` property, where it works like any other variable:\r\n     *\r\n     * ```javascript\r\n     * sprite.data.values.gold += 50;\r\n     * ```\r\n     *\r\n     * When the value is first set, a `setdata` event is emitted from this Game Object.\r\n     *\r\n     * If the key already exists, a `changedata` event is emitted instead, along an event named after the key.\r\n     * For example, if you updated an existing key called `PlayerLives` then it would emit the event `changedata-PlayerLives`.\r\n     * These events will be emitted regardless if you use this method to set the value, or the direct `values` setter.\r\n     *\r\n     * Please note that the data keys are case-sensitive and must be valid JavaScript Object property strings.\r\n     * This means the keys `gold` and `Gold` are treated as two unique values within the Data Manager.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#setData\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|object)} key - The key to set the value for. Or an object of key value pairs. If an object the `data` argument is ignored.\r\n     * @param {*} [data] - The value to set for the given key. If an object is provided as the key this argument is ignored.\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    setData: function (key, value)\r\n    {\r\n        if (!this.data)\r\n        {\r\n            this.data = new DataManager(this);\r\n        }\r\n\r\n        this.data.set(key, value);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Increase a value for the given key within this Game Objects Data Manager. If the key doesn't already exist in the Data Manager then it is increased from 0.\r\n     *\r\n     * If the Game Object has not been enabled for data (via `setDataEnabled`) then it will be enabled\r\n     * before setting the value.\r\n     *\r\n     * If the key doesn't already exist in the Data Manager then it is created.\r\n     *\r\n     * When the value is first set, a `setdata` event is emitted from this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#incData\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|object)} key - The key to increase the value for.\r\n     * @param {*} [data] - The value to increase for the given key.\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    incData: function (key, value)\r\n    {\r\n        if (!this.data)\r\n        {\r\n            this.data = new DataManager(this);\r\n        }\r\n\r\n        this.data.inc(key, value);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Toggle a boolean value for the given key within this Game Objects Data Manager. If the key doesn't already exist in the Data Manager then it is toggled from false.\r\n     *\r\n     * If the Game Object has not been enabled for data (via `setDataEnabled`) then it will be enabled\r\n     * before setting the value.\r\n     *\r\n     * If the key doesn't already exist in the Data Manager then it is created.\r\n     *\r\n     * When the value is first set, a `setdata` event is emitted from this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#toggleData\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|object)} key - The key to toggle the value for.\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    toggleData: function (key)\r\n    {\r\n        if (!this.data)\r\n        {\r\n            this.data = new DataManager(this);\r\n        }\r\n\r\n        this.data.toggle(key);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Retrieves the value for the given key in this Game Objects Data Manager, or undefined if it doesn't exist.\r\n     *\r\n     * You can also access values via the `values` object. For example, if you had a key called `gold` you can do either:\r\n     *\r\n     * ```javascript\r\n     * sprite.getData('gold');\r\n     * ```\r\n     *\r\n     * Or access the value directly:\r\n     *\r\n     * ```javascript\r\n     * sprite.data.values.gold;\r\n     * ```\r\n     *\r\n     * You can also pass in an array of keys, in which case an array of values will be returned:\r\n     *\r\n     * ```javascript\r\n     * sprite.getData([ 'gold', 'armor', 'health' ]);\r\n     * ```\r\n     *\r\n     * This approach is useful for destructuring arrays in ES6.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#getData\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|string[])} key - The key of the value to retrieve, or an array of keys.\r\n     *\r\n     * @return {*} The value belonging to the given key, or an array of values, the order of which will match the input array.\r\n     */\r\n    getData: function (key)\r\n    {\r\n        if (!this.data)\r\n        {\r\n            this.data = new DataManager(this);\r\n        }\r\n\r\n        return this.data.get(key);\r\n    },\r\n\r\n    /**\r\n     * A Layer cannot be enabled for input.\r\n     *\r\n     * This method does nothing and is kept to ensure\r\n     * the Layer has the same shape as a Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#setInteractive\r\n     * @since 3.51.0\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    setInteractive: function ()\r\n    {\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * A Layer cannot be enabled for input.\r\n     *\r\n     * This method does nothing and is kept to ensure\r\n     * the Layer has the same shape as a Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#disableInteractive\r\n     * @since 3.51.0\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    disableInteractive: function ()\r\n    {\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * A Layer cannot be enabled for input.\r\n     *\r\n     * This method does nothing and is kept to ensure\r\n     * the Layer has the same shape as a Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#removeInteractive\r\n     * @since 3.51.0\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    removeInteractive: function ()\r\n    {\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * This callback is invoked when this Game Object is added to a Scene.\r\n     *\r\n     * Can be overriden by custom Game Objects, but be aware of some Game Objects that\r\n     * will use this, such as Sprites, to add themselves into the Update List.\r\n     *\r\n     * You can also listen for the `ADDED_TO_SCENE` event from this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#addedToScene\r\n     * @since 3.50.0\r\n     */\r\n    addedToScene: function ()\r\n    {\r\n    },\r\n\r\n    /**\r\n     * This callback is invoked when this Game Object is removed from a Scene.\r\n     *\r\n     * Can be overriden by custom Game Objects, but be aware of some Game Objects that\r\n     * will use this, such as Sprites, to removed themselves from the Update List.\r\n     *\r\n     * You can also listen for the `REMOVED_FROM_SCENE` event from this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#removedFromScene\r\n     * @since 3.50.0\r\n     */\r\n    removedFromScene: function ()\r\n    {\r\n    },\r\n\r\n    /**\r\n     * To be overridden by custom GameObjects. Allows base objects to be used in a Pool.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#update\r\n     * @since 3.50.0\r\n     *\r\n     * @param {...*} [args] - args\r\n     */\r\n    update: function ()\r\n    {\r\n    },\r\n\r\n    /**\r\n     * Returns a JSON representation of the Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#toJSON\r\n     * @since 3.50.0\r\n     *\r\n     * @return {Phaser.Types.GameObjects.JSONGameObject} A JSON representation of the Game Object.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        return ComponentsToJSON(this);\r\n    },\r\n\r\n    /**\r\n     * Compares the renderMask with the renderFlags to see if this Game Object will render or not.\r\n     * Also checks the Game Object against the given Cameras exclusion list.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#willRender\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera to check against this Game Object.\r\n     *\r\n     * @return {boolean} True if the Game Object should be rendered, otherwise false.\r\n     */\r\n    willRender: function (camera)\r\n    {\r\n        return !(this.renderFlags !== 15 || this.list.length === 0 || (this.cameraFilter !== 0 && (this.cameraFilter & camera.id)));\r\n    },\r\n\r\n    /**\r\n     * Returns an array containing the display list index of either this Game Object, or if it has one,\r\n     * its parent Container. It then iterates up through all of the parent containers until it hits the\r\n     * root of the display list (which is index 0 in the returned array).\r\n     *\r\n     * Used internally by the InputPlugin but also useful if you wish to find out the display depth of\r\n     * this Game Object and all of its ancestors.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#getIndexList\r\n     * @since 3.51.0\r\n     *\r\n     * @return {number[]} An array of display list position indexes.\r\n     */\r\n    getIndexList: function ()\r\n    {\r\n        // eslint-disable-next-line consistent-this\r\n        var child = this;\r\n        var parent = this.parentContainer;\r\n\r\n        var indexes = [];\r\n\r\n        while (parent)\r\n        {\r\n            indexes.unshift(parent.getIndex(child));\r\n\r\n            child = parent;\r\n\r\n            if (!parent.parentContainer)\r\n            {\r\n                break;\r\n            }\r\n            else\r\n            {\r\n                parent = parent.parentContainer;\r\n            }\r\n        }\r\n\r\n        indexes.unshift(this.displayList.getIndex(child));\r\n\r\n        return indexes;\r\n    },\r\n\r\n    /**\r\n     * Internal method called from `List.addCallback`.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#addChildCallback\r\n     * @private\r\n     * @fires Phaser.Scenes.Events#ADDED_TO_SCENE\r\n     * @fires Phaser.GameObjects.Events#ADDED_TO_SCENE\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that was added to the list.\r\n     */\r\n    addChildCallback: function (gameObject)\r\n    {\r\n        var displayList = gameObject.displayList;\r\n\r\n        if (displayList && displayList !== this)\r\n        {\r\n            gameObject.removeFromDisplayList();\r\n        }\r\n\r\n        if (!gameObject.displayList)\r\n        {\r\n            this.queueDepthSort();\r\n\r\n            gameObject.displayList = this;\r\n\r\n            gameObject.emit(GameObjectEvents.ADDED_TO_SCENE, gameObject, this.scene);\r\n\r\n            this.events.emit(SceneEvents.ADDED_TO_SCENE, gameObject, this.scene);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Internal method called from `List.removeCallback`.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#removeChildCallback\r\n     * @private\r\n     * @fires Phaser.Scenes.Events#REMOVED_FROM_SCENE\r\n     * @fires Phaser.GameObjects.Events#REMOVED_FROM_SCENE\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} gameObject - The Game Object that was removed from the list.\r\n     */\r\n    removeChildCallback: function (gameObject)\r\n    {\r\n        this.queueDepthSort();\r\n\r\n        gameObject.displayList = null;\r\n\r\n        gameObject.emit(GameObjectEvents.REMOVED_FROM_SCENE, gameObject, this.scene);\r\n\r\n        this.events.emit(SceneEvents.REMOVED_FROM_SCENE, gameObject, this.scene);\r\n    },\r\n\r\n    /**\r\n     * Force a sort of the display list on the next call to depthSort.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#queueDepthSort\r\n     * @since 3.50.0\r\n     */\r\n    queueDepthSort: function ()\r\n    {\r\n        this.sortChildrenFlag = true;\r\n    },\r\n\r\n    /**\r\n     * Immediately sorts the display list if the flag is set.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#depthSort\r\n     * @since 3.50.0\r\n     */\r\n    depthSort: function ()\r\n    {\r\n        if (this.sortChildrenFlag)\r\n        {\r\n            StableSort(this.list, this.sortByDepth);\r\n\r\n            this.sortChildrenFlag = false;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Compare the depth of two Game Objects.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#sortByDepth\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.GameObjects.GameObject} childA - The first Game Object.\r\n     * @param {Phaser.GameObjects.GameObject} childB - The second Game Object.\r\n     *\r\n     * @return {number} The difference between the depths of each Game Object.\r\n     */\r\n    sortByDepth: function (childA, childB)\r\n    {\r\n        return childA._depth - childB._depth;\r\n    },\r\n\r\n    /**\r\n     * Returns a reference to the array which contains all Game Objects in this Layer.\r\n     *\r\n     * This is a reference, not a copy of it, so be very careful not to mutate it.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#getChildren\r\n     * @since 3.50.0\r\n     *\r\n     * @return {Phaser.GameObjects.GameObject[]} An array of Game Objects within this Layer.\r\n     */\r\n    getChildren: function ()\r\n    {\r\n        return this.list;\r\n    },\r\n\r\n    /**\r\n     * Adds this Layer to the given Display List.\r\n     *\r\n     * If no Display List is specified, it will default to the Display List owned by the Scene to which\r\n     * this Layer belongs.\r\n     *\r\n     * A Layer can only exist on one Display List at any given time, but may move freely between them.\r\n     *\r\n     * If this Layer is already on another Display List when this method is called, it will first\r\n     * be removed from it, before being added to the new list.\r\n     *\r\n     * You can query which list it is on by looking at the `Phaser.GameObjects.Layer#displayList` property.\r\n     *\r\n     * If a Layer isn't on any display list, it will not be rendered. If you just wish to temporarily\r\n     * disable it from rendering, consider using the `setVisible` method, instead.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#addToDisplayList\r\n     * @fires Phaser.Scenes.Events#ADDED_TO_SCENE\r\n     * @fires Phaser.GameObjects.Events#ADDED_TO_SCENE\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(Phaser.GameObjects.DisplayList|Phaser.GameObjects.Layer)} [displayList] - The Display List to add to. Defaults to the Scene Display List.\r\n     *\r\n     * @return {this} This Layer instance.\r\n     */\r\n    addToDisplayList: function (displayList)\r\n    {\r\n        if (displayList === undefined) { displayList = this.scene.sys.displayList; }\r\n\r\n        if (this.displayList && this.displayList !== displayList)\r\n        {\r\n            this.removeFromDisplayList();\r\n        }\r\n\r\n        //  Don't repeat if it's already on this list\r\n        if (!displayList.exists(this))\r\n        {\r\n            this.displayList = displayList;\r\n\r\n            displayList.add(this, true);\r\n\r\n            displayList.queueDepthSort();\r\n\r\n            this.emit(GameObjectEvents.ADDED_TO_SCENE, this, this.scene);\r\n\r\n            displayList.events.emit(SceneEvents.ADDED_TO_SCENE, this, this.scene);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes this Layer from the Display List it is currently on.\r\n     *\r\n     * A Layer can only exist on one Display List at any given time, but may move freely removed\r\n     * and added back at a later stage.\r\n     *\r\n     * You can query which list it is on by looking at the `Phaser.GameObjects.GameObject#displayList` property.\r\n     *\r\n     * If a Layer isn't on any Display List, it will not be rendered. If you just wish to temporarily\r\n     * disable it from rendering, consider using the `setVisible` method, instead.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#removeFromDisplayList\r\n     * @fires Phaser.Scenes.Events#REMOVED_FROM_SCENE\r\n     * @fires Phaser.GameObjects.Events#REMOVED_FROM_SCENE\r\n     * @since 3.60.0\r\n     *\r\n     * @return {this} This Layer instance.\r\n     */\r\n    removeFromDisplayList: function ()\r\n    {\r\n        var displayList = this.displayList || this.scene.sys.displayList;\r\n\r\n        if (displayList.exists(this))\r\n        {\r\n            displayList.remove(this, true);\r\n\r\n            displayList.queueDepthSort();\r\n\r\n            this.displayList = null;\r\n\r\n            this.emit(GameObjectEvents.REMOVED_FROM_SCENE, this, this.scene);\r\n\r\n            displayList.events.emit(SceneEvents.REMOVED_FROM_SCENE, this, this.scene);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Destroys this Layer removing it from the Display List and Update List and\r\n     * severing all ties to parent resources.\r\n     *\r\n     * Also destroys all children of this Layer. If you do not wish for the\r\n     * children to be destroyed, you should move them from this Layer first.\r\n     *\r\n     * Use this to remove this Layer from your game if you don't ever plan to use it again.\r\n     * As long as no reference to it exists within your own code it should become free for\r\n     * garbage collection by the browser.\r\n     *\r\n     * If you just want to temporarily disable an object then look at using the\r\n     * Game Object Pool instead of destroying it, as destroyed objects cannot be resurrected.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#destroy\r\n     * @fires Phaser.GameObjects.Events#DESTROY\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [fromScene=false] - `True` if this Game Object is being destroyed by the Scene, `false` if not.\r\n     */\r\n    destroy: function (fromScene)\r\n    {\r\n        //  This Game Object has already been destroyed\r\n        if (!this.scene || this.ignoreDestroy)\r\n        {\r\n            return;\r\n        }\r\n\r\n        this.emit(GameObjectEvents.DESTROY, this);\r\n\r\n        var list = this.list;\r\n\r\n        while (list.length)\r\n        {\r\n            list[0].destroy(fromScene);\r\n        }\r\n\r\n        this.removeAllListeners();\r\n\r\n        this.resetPostPipeline(true);\r\n\r\n        if (this.displayList)\r\n        {\r\n            this.displayList.remove(this, true, false);\r\n\r\n            this.displayList.queueDepthSort();\r\n        }\r\n\r\n        if (this.data)\r\n        {\r\n            this.data.destroy();\r\n\r\n            this.data = undefined;\r\n        }\r\n\r\n        this.active = false;\r\n        this.visible = false;\r\n\r\n        this.list = undefined;\r\n        this.scene = undefined;\r\n        this.displayList = undefined;\r\n        this.systems = undefined;\r\n        this.events = undefined;\r\n    }\r\n\r\n    /**\r\n     * Return an array listing the events for which the emitter has registered listeners.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#eventNames\r\n     * @since 3.50.0\r\n     *\r\n     * @return {Array.<string|symbol>}\r\n     */\r\n\r\n    /**\r\n     * Return the listeners registered for a given event.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#listeners\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|symbol)} event - The event name.\r\n     *\r\n     * @return {Function[]} The registered listeners.\r\n     */\r\n\r\n    /**\r\n     * Return the number of listeners listening to a given event.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#listenerCount\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|symbol)} event - The event name.\r\n     *\r\n     * @return {number} The number of listeners.\r\n     */\r\n\r\n    /**\r\n     * Calls each of the listeners registered for a given event.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#emit\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|symbol)} event - The event name.\r\n     * @param {...*} [args] - Additional arguments that will be passed to the event handler.\r\n     *\r\n     * @return {boolean} `true` if the event had listeners, else `false`.\r\n     */\r\n\r\n    /**\r\n     * Add a listener for a given event.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#on\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|symbol)} event - The event name.\r\n     * @param {function} fn - The listener function.\r\n     * @param {*} [context=this] - The context to invoke the listener with.\r\n     *\r\n     * @return {this} This Layer instance.\r\n     */\r\n\r\n    /**\r\n     * Add a listener for a given event.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#addListener\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|symbol)} event - The event name.\r\n     * @param {function} fn - The listener function.\r\n     * @param {*} [context=this] - The context to invoke the listener with.\r\n     *\r\n     * @return {this} This Layer instance.\r\n     */\r\n\r\n    /**\r\n     * Add a one-time listener for a given event.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#once\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|symbol)} event - The event name.\r\n     * @param {function} fn - The listener function.\r\n     * @param {*} [context=this] - The context to invoke the listener with.\r\n     *\r\n     * @return {this} This Layer instance.\r\n     */\r\n\r\n    /**\r\n     * Remove the listeners of a given event.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#removeListener\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|symbol)} event - The event name.\r\n     * @param {function} [fn] - Only remove the listeners that match this function.\r\n     * @param {*} [context] - Only remove the listeners that have this context.\r\n     * @param {boolean} [once] - Only remove one-time listeners.\r\n     *\r\n     * @return {this} This Layer instance.\r\n     */\r\n\r\n    /**\r\n     * Remove the listeners of a given event.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#off\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|symbol)} event - The event name.\r\n     * @param {function} [fn] - Only remove the listeners that match this function.\r\n     * @param {*} [context] - Only remove the listeners that have this context.\r\n     * @param {boolean} [once] - Only remove one-time listeners.\r\n     *\r\n     * @return {this} This Layer instance.\r\n     */\r\n\r\n    /**\r\n     * Remove all listeners, or those of the specified event.\r\n     *\r\n     * @method Phaser.GameObjects.Layer#removeAllListeners\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|symbol)} [event] - The event name.\r\n     *\r\n     * @return {this} This Layer instance.\r\n     */\r\n\r\n});\r\n\r\nmodule.exports = Layer;\r\n\n\n/***/ }),\n\n/***/ 2956:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Layer#renderCanvas\r\n * @since 3.50.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Layer} layer - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n */\r\nvar LayerCanvasRenderer = function (renderer, layer, camera)\r\n{\r\n    var children = layer.list;\r\n\r\n    if (children.length === 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    layer.depthSort();\r\n\r\n    var layerHasBlendMode = (layer.blendMode !== -1);\r\n\r\n    if (!layerHasBlendMode)\r\n    {\r\n        //  If Layer is SKIP_TEST then set blend mode to be Normal\r\n        renderer.setBlendMode(0);\r\n    }\r\n\r\n    var alpha = layer._alpha;\r\n\r\n    if (layer.mask)\r\n    {\r\n        layer.mask.preRenderCanvas(renderer, null, camera);\r\n    }\r\n\r\n    for (var i = 0; i < children.length; i++)\r\n    {\r\n        var child = children[i];\r\n\r\n        if (!child.willRender(camera))\r\n        {\r\n            continue;\r\n        }\r\n\r\n        var childAlpha = child.alpha;\r\n\r\n        if (!layerHasBlendMode && child.blendMode !== renderer.currentBlendMode)\r\n        {\r\n            //  If Layer doesn't have its own blend mode, then a child can have one\r\n            renderer.setBlendMode(child.blendMode);\r\n        }\r\n\r\n        //  Set parent values\r\n        child.setAlpha(childAlpha * alpha);\r\n\r\n        //  Render\r\n        child.renderCanvas(renderer, child, camera);\r\n\r\n        //  Restore original values\r\n        child.setAlpha(childAlpha);\r\n    }\r\n\r\n    if (layer.mask)\r\n    {\r\n        layer.mask.postRenderCanvas(renderer);\r\n    }\r\n};\r\n\r\nmodule.exports = LayerCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 25179:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar Layer = __webpack_require__(93595);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\n\r\n/**\r\n * Creates a new Layer Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Layer Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#layer\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Sprite.SpriteConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.Layer} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('layer', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var children = GetAdvancedValue(config, 'children', null);\r\n\r\n    var layer = new Layer(this.scene, children);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, layer, config);\r\n\r\n    return layer;\r\n});\r\n\n\n/***/ }),\n\n/***/ 20005:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Layer = __webpack_require__(93595);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Layer Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Layer Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#layer\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.GameObjects.GameObject|Phaser.GameObjects.GameObject[]} [children] - An optional array of Game Objects to add to this Layer.\r\n *\r\n * @return {Phaser.GameObjects.Layer} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('layer', function (children)\r\n{\r\n    return this.displayList.add(new Layer(this.scene, children));\r\n});\r\n\n\n/***/ }),\n\n/***/ 33963:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(15869);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(2956);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 15869:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Layer#renderWebGL\r\n * @since 3.50.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Layer} layer - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n */\r\nvar LayerWebGLRenderer = function (renderer, layer, camera)\r\n{\r\n    var children = layer.list;\r\n    var childCount = children.length;\r\n\r\n    if (childCount === 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    layer.depthSort();\r\n\r\n    renderer.pipelines.preBatch(layer);\r\n\r\n    var layerHasBlendMode = (layer.blendMode !== -1);\r\n\r\n    if (!layerHasBlendMode)\r\n    {\r\n        //  If Layer is SKIP_TEST then set blend mode to be Normal\r\n        renderer.setBlendMode(0);\r\n    }\r\n\r\n    var alpha = layer.alpha;\r\n\r\n    for (var i = 0; i < childCount; i++)\r\n    {\r\n        var child = children[i];\r\n\r\n        if (!child.willRender(camera))\r\n        {\r\n            continue;\r\n        }\r\n\r\n        var childAlphaTopLeft;\r\n        var childAlphaTopRight;\r\n        var childAlphaBottomLeft;\r\n        var childAlphaBottomRight;\r\n\r\n        if (child.alphaTopLeft !== undefined)\r\n        {\r\n            childAlphaTopLeft = child.alphaTopLeft;\r\n            childAlphaTopRight = child.alphaTopRight;\r\n            childAlphaBottomLeft = child.alphaBottomLeft;\r\n            childAlphaBottomRight = child.alphaBottomRight;\r\n        }\r\n        else\r\n        {\r\n            var childAlpha = child.alpha;\r\n\r\n            childAlphaTopLeft = childAlpha;\r\n            childAlphaTopRight = childAlpha;\r\n            childAlphaBottomLeft = childAlpha;\r\n            childAlphaBottomRight = childAlpha;\r\n        }\r\n\r\n        if (!layerHasBlendMode && child.blendMode !== renderer.currentBlendMode)\r\n        {\r\n            //  If Layer doesn't have its own blend mode, then a child can have one\r\n            renderer.setBlendMode(child.blendMode);\r\n        }\r\n\r\n        var mask = child.mask;\r\n\r\n        if (mask)\r\n        {\r\n            mask.preRenderWebGL(renderer, child, camera);\r\n        }\r\n\r\n        var type = child.type;\r\n\r\n        if (type !== renderer.currentType)\r\n        {\r\n            renderer.newType = true;\r\n            renderer.currentType = type;\r\n        }\r\n\r\n        renderer.nextTypeMatch = (i < childCount - 1) ? (children[i + 1].type === renderer.currentType) : false;\r\n\r\n        child.setAlpha(childAlphaTopLeft * alpha, childAlphaTopRight * alpha, childAlphaBottomLeft * alpha, childAlphaBottomRight * alpha);\r\n\r\n        //  Render\r\n        child.renderWebGL(renderer, child, camera);\r\n\r\n        //  Restore original values\r\n        child.setAlpha(childAlphaTopLeft, childAlphaTopRight, childAlphaBottomLeft, childAlphaBottomRight);\r\n\r\n        if (mask)\r\n        {\r\n            mask.postRenderWebGL(renderer, camera);\r\n        }\r\n\r\n        renderer.newType = false;\r\n    }\r\n\r\n    renderer.pipelines.postBatch(layer);\r\n};\r\n\r\nmodule.exports = LayerWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 41432:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Circle = __webpack_require__(96503);\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar RGB = __webpack_require__(51767);\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * @classdesc\r\n * A 2D Light.\r\n *\r\n * These are created by the {@link Phaser.GameObjects.LightsManager}, available from within a scene via `this.lights`.\r\n *\r\n * Any Game Objects using the Light2D pipeline will then be affected by these Lights as long as they have a normal map.\r\n *\r\n * They can also simply be used to represent a point light for your own purposes.\r\n *\r\n * Lights cannot be added to Containers. They are designed to exist in the root of a Scene.\r\n *\r\n * @class Light\r\n * @extends Phaser.Geom.Circle\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @extends Phaser.GameObjects.Components.Origin\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {number} x - The horizontal position of the light.\r\n * @param {number} y - The vertical position of the light.\r\n * @param {number} radius - The radius of the light.\r\n * @param {number} r - The red color of the light. A value between 0 and 1.\r\n * @param {number} g - The green color of the light. A value between 0 and 1.\r\n * @param {number} b - The blue color of the light. A value between 0 and 1.\r\n * @param {number} intensity - The intensity of the light.\r\n */\r\nvar Light = new Class({\r\n\r\n    Extends: Circle,\r\n\r\n    Mixins: [\r\n        Components.Origin,\r\n        Components.ScrollFactor,\r\n        Components.Visible\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Light (x, y, radius, r, g, b, intensity)\r\n    {\r\n        Circle.call(this, x, y, radius);\r\n\r\n        /**\r\n         * The color of the light.\r\n         *\r\n         * @name Phaser.GameObjects.Light#color\r\n         * @type {Phaser.Display.RGB}\r\n         * @since 3.50.0\r\n         */\r\n        this.color = new RGB(r, g, b);\r\n\r\n        /**\r\n         * The intensity of the light.\r\n         *\r\n         * @name Phaser.GameObjects.Light#intensity\r\n         * @type {number}\r\n         * @since 3.50.0\r\n         */\r\n        this.intensity = intensity;\r\n\r\n        /**\r\n         * The flags that are compared against `RENDER_MASK` to determine if this Game Object will render or not.\r\n         * The bits are 0001 | 0010 | 0100 | 1000 set by the components Visible, Alpha, Transform and Texture respectively.\r\n         * If those components are not used by your custom class then you can use this bitmask as you wish.\r\n         *\r\n         * @name Phaser.GameObjects.Light#renderFlags\r\n         * @type {number}\r\n         * @default 15\r\n         * @since 3.0.0\r\n         */\r\n        this.renderFlags = 15;\r\n\r\n        /**\r\n         * A bitmask that controls if this Game Object is drawn by a Camera or not.\r\n         * Not usually set directly, instead call `Camera.ignore`, however you can\r\n         * set this property directly using the Camera.id property:\r\n         *\r\n         * @example\r\n         * this.cameraFilter |= camera.id\r\n         *\r\n         * @name Phaser.GameObjects.Light#cameraFilter\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.cameraFilter = 0;\r\n\r\n        this.setScrollFactor(1, 1);\r\n        this.setOrigin();\r\n        this.setDisplayOrigin(radius);\r\n    },\r\n\r\n    /**\r\n     * The width of this Light Game Object. This is the same as `Light.diameter`.\r\n     *\r\n     * @name Phaser.GameObjects.Light#displayWidth\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    displayWidth: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.diameter;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.diameter = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The height of this Light Game Object. This is the same as `Light.diameter`.\r\n     *\r\n     * @name Phaser.GameObjects.Light#displayHeight\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    displayHeight: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.diameter;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.diameter = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The width of this Light Game Object. This is the same as `Light.diameter`.\r\n     *\r\n     * @name Phaser.GameObjects.Light#width\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    width: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.diameter;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.diameter = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The height of this Light Game Object. This is the same as `Light.diameter`.\r\n     *\r\n     * @name Phaser.GameObjects.Light#height\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    height: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.diameter;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.diameter = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Compares the renderMask with the renderFlags to see if this Game Object will render or not.\r\n     * Also checks the Game Object against the given Cameras exclusion list.\r\n     *\r\n     * @method Phaser.GameObjects.Light#willRender\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera to check against this Game Object.\r\n     *\r\n     * @return {boolean} True if the Game Object should be rendered, otherwise false.\r\n     */\r\n    willRender: function (camera)\r\n    {\r\n        return !(Light.RENDER_MASK !== this.renderFlags || (this.cameraFilter !== 0 && (this.cameraFilter & camera.id)));\r\n    },\r\n\r\n    /**\r\n     * Set the color of the light from a single integer RGB value.\r\n     *\r\n     * @method Phaser.GameObjects.Light#setColor\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} rgb - The integer RGB color of the light.\r\n     *\r\n     * @return {this} This Light object.\r\n     */\r\n    setColor: function (rgb)\r\n    {\r\n        var color = Utils.getFloatsFromUintRGB(rgb);\r\n\r\n        this.color.set(color[0], color[1], color[2]);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the intensity of the light.\r\n     *\r\n     * @method Phaser.GameObjects.Light#setIntensity\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} intensity - The intensity of the light.\r\n     *\r\n     * @return {this} This Light object.\r\n     */\r\n    setIntensity: function (intensity)\r\n    {\r\n        this.intensity = intensity;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the radius of the light.\r\n     *\r\n     * @method Phaser.GameObjects.Light#setRadius\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} radius - The radius of the light.\r\n     *\r\n     * @return {this} This Light object.\r\n     */\r\n    setRadius: function (radius)\r\n    {\r\n        this.radius = radius;\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\n/**\r\n * The bitmask that `GameObject.renderFlags` is compared against to determine if the Game Object will render or not.\r\n *\r\n * @constant {number} RENDER_MASK\r\n * @memberof Phaser.GameObjects.Light\r\n * @default\r\n */\r\nLight.RENDER_MASK = 15;\r\n\r\nmodule.exports = Light;\r\n\n\n/***/ }),\n\n/***/ 61356:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CircleToRectangle = __webpack_require__(81491);\r\nvar Class = __webpack_require__(83419);\r\nvar DistanceBetween = __webpack_require__(20339);\r\nvar Light = __webpack_require__(41432);\r\nvar PointLight = __webpack_require__(80321);\r\nvar RGB = __webpack_require__(51767);\r\nvar SpliceOne = __webpack_require__(19133);\r\nvar StableSort = __webpack_require__(19186);\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * @callback LightForEach\r\n *\r\n * @param {Phaser.GameObjects.Light} light - The Light.\r\n */\r\n\r\n/**\r\n * @classdesc\r\n * Manages Lights for a Scene.\r\n *\r\n * Affects the rendering of Game Objects using the `Light2D` pipeline.\r\n *\r\n * @class LightsManager\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n */\r\nvar LightsManager = new Class({\r\n\r\n    initialize:\r\n\r\n    function LightsManager ()\r\n    {\r\n        /**\r\n         * The Lights in the Scene.\r\n         *\r\n         * @name Phaser.GameObjects.LightsManager#lights\r\n         * @type {Phaser.GameObjects.Light[]}\r\n         * @default []\r\n         * @since 3.0.0\r\n         */\r\n        this.lights = [];\r\n\r\n        /**\r\n         * The ambient color.\r\n         *\r\n         * @name Phaser.GameObjects.LightsManager#ambientColor\r\n         * @type {Phaser.Display.RGB}\r\n         * @since 3.50.0\r\n         */\r\n        this.ambientColor = new RGB(0.1, 0.1, 0.1);\r\n\r\n        /**\r\n         * Whether the Lights Manager is enabled.\r\n         *\r\n         * @name Phaser.GameObjects.LightsManager#active\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.active = false;\r\n\r\n        /**\r\n         * The maximum number of lights that a single Camera and the lights shader can process.\r\n         * Change this via the `maxLights` property in your game config, as it cannot be changed at runtime.\r\n         *\r\n         * @name Phaser.GameObjects.LightsManager#maxLights\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.15.0\r\n         */\r\n        this.maxLights = -1;\r\n\r\n        /**\r\n         * The number of lights that the LightPipeline processed in the _previous_ frame.\r\n         *\r\n         * @name Phaser.GameObjects.LightsManager#visibleLights\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.50.0\r\n         */\r\n        this.visibleLights = 0;\r\n    },\r\n\r\n    /**\r\n     * Creates a new Point Light Game Object and adds it to the Scene.\r\n     *\r\n     * Note: This method will only be available if the Point Light Game Object has been built into Phaser.\r\n     *\r\n     * The Point Light Game Object provides a way to add a point light effect into your game,\r\n     * without the expensive shader processing requirements of the traditional Light Game Object.\r\n     *\r\n     * The difference is that the Point Light renders using a custom shader, designed to give the\r\n     * impression of a point light source, of variable radius, intensity and color, in your game.\r\n     * However, unlike the Light Game Object, it does not impact any other Game Objects, or use their\r\n     * normal maps for calcuations. This makes them extremely fast to render compared to Lights\r\n     * and perfect for special effects, such as flickering torches or muzzle flashes.\r\n     *\r\n     * For maximum performance you should batch Point Light Game Objects together. This means\r\n     * ensuring they follow each other consecutively on the display list. Ideally, use a Layer\r\n     * Game Object and then add just Point Lights to it, so that it can batch together the rendering\r\n     * of the lights. You don't _have_ to do this, and if you've only a handful of Point Lights in\r\n     * your game then it's perfectly safe to mix them into the dislay list as normal. However, if\r\n     * you're using a large number of them, please consider how they are mixed into the display list.\r\n     *\r\n     * The renderer will automatically cull Point Lights. Those with a radius that does not intersect\r\n     * with the Camera will be skipped in the rendering list. This happens automatically and the\r\n     * culled state is refreshed every frame, for every camera.\r\n     *\r\n     * The origin of a Point Light is always 0.5 and it cannot be changed.\r\n     *\r\n     * Point Lights are a WebGL only feature and do not have a Canvas counterpart.\r\n     *\r\n     * @method Phaser.GameObjects.LightsManager#addPointLight\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} x - The horizontal position of this Point Light in the world.\r\n     * @param {number} y - The vertical position of this Point Light in the world.\r\n     * @param {number} [color=0xffffff] - The color of the Point Light, given as a hex value.\r\n     * @param {number} [radius=128] - The radius of the Point Light.\r\n     * @param {number} [intensity=1] - The intensity, or color blend, of the Point Light.\r\n     * @param {number} [attenuation=0.1] - The attenuation  of the Point Light. This is the reduction of light from the center point.\r\n     *\r\n     * @return {Phaser.GameObjects.PointLight} The Game Object that was created.\r\n     */\r\n    addPointLight: function (x, y, color, radius, intensity, attenuation)\r\n    {\r\n        return this.systems.displayList.add(new PointLight(this.scene, x, y, color, radius, intensity, attenuation));\r\n    },\r\n\r\n    /**\r\n     * Enable the Lights Manager.\r\n     *\r\n     * @method Phaser.GameObjects.LightsManager#enable\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Lights Manager instance.\r\n     */\r\n    enable: function ()\r\n    {\r\n        if (this.maxLights === -1)\r\n        {\r\n            this.maxLights = this.systems.renderer.config.maxLights;\r\n        }\r\n\r\n        this.active = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Disable the Lights Manager.\r\n     *\r\n     * @method Phaser.GameObjects.LightsManager#disable\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Lights Manager instance.\r\n     */\r\n    disable: function ()\r\n    {\r\n        this.active = false;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Get all lights that can be seen by the given Camera.\r\n     *\r\n     * It will automatically cull lights that are outside the world view of the Camera.\r\n     *\r\n     * If more lights are returned than supported by the pipeline, the lights are then culled\r\n     * based on the distance from the center of the camera. Only those closest are rendered.\r\n     *\r\n     * @method Phaser.GameObjects.LightsManager#getLights\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera to cull Lights for.\r\n     *\r\n     * @return {Phaser.GameObjects.Light[]} The culled Lights.\r\n     */\r\n    getLights: function (camera)\r\n    {\r\n        var lights = this.lights;\r\n        var worldView = camera.worldView;\r\n\r\n        var visibleLights = [];\r\n\r\n        for (var i = 0; i < lights.length; i++)\r\n        {\r\n            var light = lights[i];\r\n\r\n            if (light.willRender(camera) && CircleToRectangle(light, worldView))\r\n            {\r\n                visibleLights.push({\r\n                    light: light,\r\n                    distance: DistanceBetween(light.x, light.y, worldView.centerX, worldView.centerY)\r\n                });\r\n            }\r\n        }\r\n\r\n        if (visibleLights.length > this.maxLights)\r\n        {\r\n            //  We've got too many lights, so sort by distance from camera and cull those far away\r\n            //  This isn't ideal because it doesn't factor in the radius of the lights, but it'll do for now\r\n            //  and is significantly better than we had before!\r\n\r\n            StableSort(visibleLights, this.sortByDistance);\r\n\r\n            visibleLights = visibleLights.slice(0, this.maxLights);\r\n        }\r\n\r\n        this.visibleLights = visibleLights.length;\r\n\r\n        return visibleLights;\r\n    },\r\n\r\n    sortByDistance: function (a, b)\r\n    {\r\n        return (a.distance >= b.distance);\r\n    },\r\n\r\n    /**\r\n     * Set the ambient light color.\r\n     *\r\n     * @method Phaser.GameObjects.LightsManager#setAmbientColor\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} rgb - The integer RGB color of the ambient light.\r\n     *\r\n     * @return {this} This Lights Manager instance.\r\n     */\r\n    setAmbientColor: function (rgb)\r\n    {\r\n        var color = Utils.getFloatsFromUintRGB(rgb);\r\n\r\n        this.ambientColor.set(color[0], color[1], color[2]);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns the maximum number of Lights allowed to appear at once.\r\n     *\r\n     * @method Phaser.GameObjects.LightsManager#getMaxVisibleLights\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The maximum number of Lights allowed to appear at once.\r\n     */\r\n    getMaxVisibleLights: function ()\r\n    {\r\n        return this.maxLights;\r\n    },\r\n\r\n    /**\r\n     * Get the number of Lights managed by this Lights Manager.\r\n     *\r\n     * @method Phaser.GameObjects.LightsManager#getLightCount\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The number of Lights managed by this Lights Manager.\r\n     */\r\n    getLightCount: function ()\r\n    {\r\n        return this.lights.length;\r\n    },\r\n\r\n    /**\r\n     * Add a Light.\r\n     *\r\n     * @method Phaser.GameObjects.LightsManager#addLight\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=0] - The horizontal position of the Light.\r\n     * @param {number} [y=0] - The vertical position of the Light.\r\n     * @param {number} [radius=128] - The radius of the Light.\r\n     * @param {number} [rgb=0xffffff] - The integer RGB color of the light.\r\n     * @param {number} [intensity=1] - The intensity of the Light.\r\n     *\r\n     * @return {Phaser.GameObjects.Light} The Light that was added.\r\n     */\r\n    addLight: function (x, y, radius, rgb, intensity)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (radius === undefined) { radius = 128; }\r\n        if (rgb === undefined) { rgb = 0xffffff; }\r\n        if (intensity === undefined) { intensity = 1; }\r\n\r\n        var color = Utils.getFloatsFromUintRGB(rgb);\r\n\r\n        var light = new Light(x, y, radius, color[0], color[1], color[2], intensity);\r\n\r\n        this.lights.push(light);\r\n\r\n        return light;\r\n    },\r\n\r\n    /**\r\n     * Remove a Light.\r\n     *\r\n     * @method Phaser.GameObjects.LightsManager#removeLight\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Light} light - The Light to remove.\r\n     *\r\n     * @return {this} This Lights Manager instance.\r\n     */\r\n    removeLight: function (light)\r\n    {\r\n        var index = this.lights.indexOf(light);\r\n\r\n        if (index >= 0)\r\n        {\r\n            SpliceOne(this.lights, index);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Shut down the Lights Manager.\r\n     *\r\n     * Recycles all active Lights into the Light pool, resets ambient light color and clears the lists of Lights and\r\n     * culled Lights.\r\n     *\r\n     * @method Phaser.GameObjects.LightsManager#shutdown\r\n     * @since 3.0.0\r\n     */\r\n    shutdown: function ()\r\n    {\r\n        this.lights.length = 0;\r\n    },\r\n\r\n    /**\r\n     * Destroy the Lights Manager.\r\n     *\r\n     * Cleans up all references by calling {@link Phaser.GameObjects.LightsManager#shutdown}.\r\n     *\r\n     * @method Phaser.GameObjects.LightsManager#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.shutdown();\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = LightsManager;\r\n\n\n/***/ }),\n\n/***/ 88992:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar LightsManager = __webpack_require__(61356);\r\nvar PluginCache = __webpack_require__(37277);\r\nvar SceneEvents = __webpack_require__(44594);\r\n\r\n/**\r\n * @classdesc\r\n * A Scene plugin that provides a {@link Phaser.GameObjects.LightsManager} for the Light2D pipeline.\r\n *\r\n * Available from within a Scene via `this.lights`.\r\n *\r\n * Add Lights using the {@link Phaser.GameObjects.LightsManager#addLight} method:\r\n *\r\n * ```javascript\r\n * // Enable the Lights Manager because it is disabled by default\r\n * this.lights.enable();\r\n *\r\n * // Create a Light at [400, 300] with a radius of 200\r\n * this.lights.addLight(400, 300, 200);\r\n * ```\r\n *\r\n * For Game Objects to be affected by the Lights when rendered, you will need to set them to use the `Light2D` pipeline like so:\r\n *\r\n * ```javascript\r\n * sprite.setPipeline('Light2D');\r\n * ```\r\n *\r\n * Note that you cannot use this pipeline on Graphics Game Objects or Shape Game Objects.\r\n *\r\n * @class LightsPlugin\r\n * @extends Phaser.GameObjects.LightsManager\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene that this Lights Plugin belongs to.\r\n */\r\nvar LightsPlugin = new Class({\r\n\r\n    Extends: LightsManager,\r\n\r\n    initialize:\r\n\r\n    function LightsPlugin (scene)\r\n    {\r\n        /**\r\n         * A reference to the Scene that this Lights Plugin belongs to.\r\n         *\r\n         * @name Phaser.GameObjects.LightsPlugin#scene\r\n         * @type {Phaser.Scene}\r\n         * @since 3.0.0\r\n         */\r\n        this.scene = scene;\r\n\r\n        /**\r\n         * A reference to the Scene's systems.\r\n         *\r\n         * @name Phaser.GameObjects.LightsPlugin#systems\r\n         * @type {Phaser.Scenes.Systems}\r\n         * @since 3.0.0\r\n         */\r\n        this.systems = scene.sys;\r\n\r\n        if (!scene.sys.settings.isBooted)\r\n        {\r\n            scene.sys.events.once(SceneEvents.BOOT, this.boot, this);\r\n        }\r\n\r\n        LightsManager.call(this);\r\n    },\r\n\r\n    /**\r\n     * Boot the Lights Plugin.\r\n     *\r\n     * @method Phaser.GameObjects.LightsPlugin#boot\r\n     * @since 3.0.0\r\n     */\r\n    boot: function ()\r\n    {\r\n        var eventEmitter = this.systems.events;\r\n\r\n        eventEmitter.on(SceneEvents.SHUTDOWN, this.shutdown, this);\r\n        eventEmitter.on(SceneEvents.DESTROY, this.destroy, this);\r\n    },\r\n\r\n    /**\r\n     * Destroy the Lights Plugin.\r\n     *\r\n     * Cleans up all references.\r\n     *\r\n     * @method Phaser.GameObjects.LightsPlugin#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.shutdown();\r\n\r\n        this.scene = undefined;\r\n        this.systems = undefined;\r\n    }\r\n\r\n});\r\n\r\nPluginCache.register('LightsPlugin', LightsPlugin, 'lights');\r\n\r\nmodule.exports = LightsPlugin;\r\n\n\n/***/ }),\n\n/***/ 4703:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar DegToRad = __webpack_require__(39506);\r\nvar Face = __webpack_require__(83997);\r\nvar GameObject = __webpack_require__(95643);\r\nvar GenerateObjVerts = __webpack_require__(34684);\r\nvar GenerateVerts = __webpack_require__(92515);\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar Matrix4 = __webpack_require__(37867);\r\nvar MeshRender = __webpack_require__(29807);\r\nvar RadToDeg = __webpack_require__(43396);\r\nvar StableSort = __webpack_require__(19186);\r\nvar Vector3 = __webpack_require__(25836);\r\nvar Vertex = __webpack_require__(39318);\r\n\r\n/**\r\n * @classdesc\r\n * A Mesh Game Object.\r\n *\r\n * The Mesh Game Object allows you to render a group of textured vertices and manipulate\r\n * the view of those vertices, such as rotation, translation or scaling.\r\n *\r\n * Support for generating mesh data from grids, model data or Wavefront OBJ Files is included.\r\n *\r\n * Although you can use this to render 3D objects, its primary use is for displaying more complex\r\n * Sprites, or Sprites where you need fine-grained control over the vertex positions in order to\r\n * achieve special effects in your games. Note that rendering still takes place using Phaser's\r\n * orthographic camera (after being transformed via `projectionMesh`, see `setPerspective`,\r\n * `setOrtho`, and `panZ` methods). As a result, all depth and face tests are done in an eventually\r\n * orthographic space.\r\n *\r\n * The rendering process will iterate through the faces of this Mesh and render out each face\r\n * that is considered as being in view of the camera. No depth buffer is used, and because of this,\r\n * you should be careful not to use model data with too many vertices, or overlapping geometry,\r\n * or you'll probably encounter z-depth fighting. The Mesh was designed to allow for more advanced\r\n * 2D layouts, rather than displaying 3D objects, even though it can do this to a degree.\r\n *\r\n * In short, if you want to remake Crysis, use a 3D engine, not a Mesh. However, if you want\r\n * to easily add some small fun 3D elements into your game, or create some special effects involving\r\n * vertex warping, this is the right object for you. Mesh data becomes part of the WebGL batch,\r\n * just like standard Sprites, so doesn't introduce any additional shader overhead. Because\r\n * the Mesh just generates vertices into the WebGL batch, like any other Sprite, you can use all of\r\n * the common Game Object components on a Mesh too, such as a custom pipeline, mask, blend mode\r\n * or texture.\r\n *\r\n * Note that the Mesh object is WebGL only and does not have a Canvas counterpart.\r\n *\r\n * The Mesh origin is always 0.5 x 0.5 and cannot be changed.\r\n *\r\n * @class Mesh\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @webglOnly\r\n * @since 3.0.0\r\n *\r\n * @extends Phaser.GameObjects.Components.AlphaSingle\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Size\r\n * @extends Phaser.GameObjects.Components.Texture\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y] - The vertical position of this Game Object in the world.\r\n * @param {string|Phaser.Textures.Texture} [texture] - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {string|number} [frame] - An optional frame from the Texture this Game Object is rendering with.\r\n * @param {number[]} [vertices] - The vertices array. Either `xy` pairs, or `xyz` if the `containsZ` parameter is `true` (but see note).\r\n * @param {number[]} [uvs] - The UVs pairs array.\r\n * @param {number[]} [indicies] - Optional vertex indicies array. If you don't have one, pass `null` or an empty array.\r\n * @param {boolean} [containsZ=false] - Does the vertices data include a `z` component? Note: If not, it will be assumed `z=0`, see method `panZ` or `setOrtho`.\r\n * @param {number[]} [normals] - Optional vertex normals array. If you don't have one, pass `null` or an empty array.\r\n * @param {number|number[]} [colors=0xffffff] - An array of colors, one per vertex, or a single color value applied to all vertices.\r\n * @param {number|number[]} [alphas=1] - An array of alpha values, one per vertex, or a single alpha value applied to all vertices.\r\n */\r\nvar Mesh = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.AlphaSingle,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.Mask,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.ScrollFactor,\r\n        Components.Size,\r\n        Components.Texture,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        MeshRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Mesh (scene, x, y, texture, frame, vertices, uvs, indicies, containsZ, normals, colors, alphas)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (texture === undefined) { texture = '__WHITE'; }\r\n\r\n        GameObject.call(this, scene, 'Mesh');\r\n\r\n        /**\r\n         * An array containing the Face instances belonging to this Mesh.\r\n         *\r\n         * A Face consists of 3 Vertex objects.\r\n         *\r\n         * This array is populated during calls such as `addVertices` or `addOBJ`.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#faces\r\n         * @type {Phaser.Geom.Mesh.Face[]}\r\n         * @since 3.50.0\r\n         */\r\n        this.faces = [];\r\n\r\n        /**\r\n         * An array containing Vertex instances. One instance per vertex in this Mesh.\r\n         *\r\n         * This array is populated during calls such as `addVertex` or `addOBJ`.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#vertices\r\n         * @type {Phaser.Geom.Mesh.Vertex[]}\r\n         * @since 3.50.0\r\n         */\r\n        this.vertices = [];\r\n\r\n        /**\r\n         * The tint fill mode.\r\n         *\r\n         * `false` = An additive tint (the default), where vertices colors are blended with the texture.\r\n         * `true` = A fill tint, where the vertex colors replace the texture, but respects texture alpha.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#tintFill\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.50.0\r\n         */\r\n        this.tintFill = false;\r\n\r\n        /**\r\n         * You can optionally choose to render the vertices of this Mesh to a Graphics instance.\r\n         *\r\n         * Achieve this by setting the `debugCallback` and the `debugGraphic` properties.\r\n         *\r\n         * You can do this in a single call via the `Mesh.setDebug` method, which will use the\r\n         * built-in debug function. You can also set it to your own callback. The callback\r\n         * will be invoked _once per render_ and sent the following parameters:\r\n         *\r\n         * `debugCallback(src, meshLength, verts)`\r\n         *\r\n         * `src` is the Mesh instance being debugged.\r\n         * `meshLength` is the number of mesh vertices in total.\r\n         * `verts` is an array of the translated vertex coordinates.\r\n         *\r\n         * To disable rendering, set this property back to `null`.\r\n         *\r\n         * Please note that high vertex count Meshes will struggle to debug properly.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#debugCallback\r\n         * @type {function}\r\n         * @since 3.50.0\r\n         */\r\n        this.debugCallback = null;\r\n\r\n        /**\r\n         * The Graphics instance that the debug vertices will be drawn to, if `setDebug` has\r\n         * been called.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#debugGraphic\r\n         * @type {Phaser.GameObjects.Graphics}\r\n         * @since 3.50.0\r\n         */\r\n        this.debugGraphic = null;\r\n\r\n        /**\r\n         * When rendering, skip any Face that isn't counter clockwise?\r\n         *\r\n         * Enable this to hide backward-facing Faces during rendering.\r\n         *\r\n         * Disable it to render all Faces.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#hideCCW\r\n         * @type {boolean}\r\n         * @since 3.50.0\r\n         */\r\n        this.hideCCW = true;\r\n\r\n        /**\r\n         * A Vector3 containing the 3D position of the vertices in this Mesh.\r\n         *\r\n         * Modifying the components of this property will allow you to reposition where\r\n         * the vertices are rendered within the Mesh. This happens in the `preUpdate` phase,\r\n         * where each vertex is transformed using the view and projection matrices.\r\n         *\r\n         * Changing this property will impact all vertices being rendered by this Mesh.\r\n         *\r\n         * You can also adjust the 'view' by using the `pan` methods.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#modelPosition\r\n         * @type {Phaser.Math.Vector3}\r\n         * @since 3.50.0\r\n         */\r\n        this.modelPosition = new Vector3();\r\n\r\n        /**\r\n         * A Vector3 containing the 3D scale of the vertices in this Mesh.\r\n         *\r\n         * Modifying the components of this property will allow you to scale\r\n         * the vertices within the Mesh. This happens in the `preUpdate` phase,\r\n         * where each vertex is transformed using the view and projection matrices.\r\n         *\r\n         * Changing this property will impact all vertices being rendered by this Mesh.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#modelScale\r\n         * @type {Phaser.Math.Vector3}\r\n         * @since 3.50.0\r\n         */\r\n        this.modelScale = new Vector3(1, 1, 1);\r\n\r\n        /**\r\n         * A Vector3 containing the 3D rotation of the vertices in this Mesh.\r\n         *\r\n         * The values should be given in radians, i.e. to rotate the vertices by 90\r\n         * degrees you can use `modelRotation.x = Phaser.Math.DegToRad(90)`.\r\n         *\r\n         * Modifying the components of this property will allow you to rotate\r\n         * the vertices within the Mesh. This happens in the `preUpdate` phase,\r\n         * where each vertex is transformed using the view and projection matrices.\r\n         *\r\n         * Changing this property will impact all vertices being rendered by this Mesh.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#modelRotation\r\n         * @type {Phaser.Math.Vector3}\r\n         * @since 3.50.0\r\n         */\r\n        this.modelRotation = new Vector3();\r\n\r\n        /**\r\n         * An internal cache, used to compare position, rotation, scale and face data\r\n         * each frame, to avoid math calculations in `preUpdate`.\r\n         *\r\n         * Cache structure = position xyz | rotation xyz | scale xyz | face count | view | ortho\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#dirtyCache\r\n         * @type {number[]}\r\n         * @private\r\n         * @since 3.50.0\r\n         */\r\n        this.dirtyCache = [ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 ];\r\n\r\n        /**\r\n         * The transformation matrix for this Mesh.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#transformMatrix\r\n         * @type {Phaser.Math.Matrix4}\r\n         * @since 3.50.0\r\n         */\r\n        this.transformMatrix = new Matrix4();\r\n\r\n        /**\r\n         * The view position for this Mesh.\r\n         *\r\n         * Use the methods`panX`, `panY` and `panZ` to adjust the view.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#viewPosition\r\n         * @type {Phaser.Math.Vector3}\r\n         * @since 3.50.0\r\n         */\r\n        this.viewPosition = new Vector3();\r\n\r\n        /**\r\n         * The view matrix for this Mesh.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#viewMatrix\r\n         * @type {Phaser.Math.Matrix4}\r\n         * @since 3.50.0\r\n         */\r\n        this.viewMatrix = new Matrix4();\r\n\r\n        /**\r\n         * The projection matrix for this Mesh.\r\n         *\r\n         * Update it with the `setPerspective` or `setOrtho` methods.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#projectionMatrix\r\n         * @type {Phaser.Math.Matrix4}\r\n         * @since 3.50.0\r\n         */\r\n        this.projectionMatrix = new Matrix4();\r\n\r\n        /**\r\n         * How many faces were rendered by this Mesh Game Object in the last\r\n         * draw? This is reset in the `preUpdate` method and then incremented\r\n         * each time a face is drawn. Note that in multi-camera Scenes this\r\n         * value may exceed that found in `Mesh.getFaceCount` due to\r\n         * cameras drawing the same faces more than once.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#totalRendered\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.50.0\r\n         */\r\n        this.totalRendered = 0;\r\n\r\n        /**\r\n         * Internal cache var for the total number of faces rendered this frame.\r\n         *\r\n         * See `totalRendered` instead for the actual value.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#totalFrame\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.50.0\r\n         */\r\n        this.totalFrame = 0;\r\n\r\n        /**\r\n         * By default, the Mesh will check to see if its model or view transform has\r\n         * changed each frame and only recalculate the vertex positions if they have.\r\n         *\r\n         * This avoids lots of additional math in the `preUpdate` step when not required.\r\n         *\r\n         * However, if you are performing per-Face or per-Vertex manipulation on this Mesh,\r\n         * such as tweening a Face, or moving it without moving the rest of the Mesh,\r\n         * then you may need to disable the dirty cache in order for the Mesh to re-render\r\n         * correctly. You can toggle this property to do that. Please note that leaving\r\n         * this set to `true` will cause the Mesh to recalculate the position of every single\r\n         * vertex in it, every single frame. So only really do this if you know you\r\n         * need it.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#ignoreDirtyCache\r\n         * @type {boolean}\r\n         * @since 3.50.0\r\n         */\r\n        this.ignoreDirtyCache = false;\r\n\r\n        /**\r\n         * The Camera fov (field of view) in degrees.\r\n         *\r\n         * This is set automatically as part of the `Mesh.setPerspective` call, but exposed\r\n         * here for additional math.\r\n         *\r\n         * Do not modify this property directly, doing so will not change the fov. For that,\r\n         * call the respective Mesh methods.\r\n         *\r\n         * @name Phaser.GameObjects.Mesh#fov\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.fov;\r\n\r\n        //  Set these to allow setInteractive to work\r\n        this.displayOriginX = 0;\r\n        this.displayOriginY = 0;\r\n\r\n        var renderer = scene.sys.renderer;\r\n\r\n        this.setPosition(x, y);\r\n        this.setTexture(texture, frame);\r\n        this.setSize(renderer.width, renderer.height);\r\n        this.initPipeline();\r\n        this.initPostPipeline();\r\n\r\n        this.setPerspective(renderer.width, renderer.height);\r\n\r\n        if (vertices)\r\n        {\r\n            this.addVertices(vertices, uvs, indicies, containsZ, normals, colors, alphas);\r\n        }\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    addedToScene: function ()\r\n    {\r\n        this.scene.sys.updateList.add(this);\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    removedFromScene: function ()\r\n    {\r\n        this.scene.sys.updateList.remove(this);\r\n    },\r\n\r\n    /**\r\n     * Translates the view position of this Mesh on the x axis by the given amount.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#panX\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} v - The amount to pan by.\r\n     */\r\n    panX: function (v)\r\n    {\r\n        this.viewPosition.addScale(Vector3.LEFT, v);\r\n\r\n        this.dirtyCache[10] = 1;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Translates the view position of this Mesh on the y axis by the given amount.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#panY\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} v - The amount to pan by.\r\n     */\r\n    panY: function (v)\r\n    {\r\n        this.viewPosition.y += Vector3.DOWN.y * v;\r\n\r\n        this.dirtyCache[10] = 1;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Translates the view position of this Mesh on the z axis by the given amount.\r\n     *\r\n     * As the default `panZ` value is 0, vertices with `z=0` (the default) need special\r\n     * care or else they will not display as they are \"behind\" the camera.\r\n     *\r\n     * Consider using `mesh.panZ(mesh.height / (2 * Math.tan(Math.PI / 16)))`,\r\n     * which will interpret vertex geometry 1:1 with pixel geometry (or see `setOrtho`).\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#panZ\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} v - The amount to pan by.\r\n     */\r\n    panZ: function (amount)\r\n    {\r\n        this.viewPosition.z += amount;\r\n\r\n        this.dirtyCache[10] = 1;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Builds a new perspective projection matrix from the given values.\r\n     *\r\n     * These are also the initial projection matrix and parameters for `Mesh` (see `Mesh.panZ` for more discussion).\r\n     *\r\n     * See also `setOrtho`.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#setPerspective\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} width - The width of the projection matrix. Typically the same as the Mesh and/or Renderer.\r\n     * @param {number} height - The height of the projection matrix. Typically the same as the Mesh and/or Renderer.\r\n     * @param {number} [fov=45] - The field of view, in degrees.\r\n     * @param {number} [near=0.01] - The near value of the view.\r\n     * @param {number} [far=1000] - The far value of the view.\r\n     */\r\n    setPerspective: function (width, height, fov, near, far)\r\n    {\r\n        if (fov === undefined) { fov = 45; }\r\n        if (near === undefined) { near = 0.01; }\r\n        if (far === undefined) { far = 1000; }\r\n\r\n        this.fov = fov;\r\n\r\n        this.projectionMatrix.perspective(DegToRad(fov), width / height, near, far);\r\n\r\n        this.dirtyCache[10] = 1;\r\n        this.dirtyCache[11] = 0;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Builds a new orthographic projection matrix from the given values.\r\n     *\r\n     * If using this mode you will often need to set `Mesh.hideCCW` to `false` as well.\r\n     *\r\n     * By default, calling this method with no parameters will set the scaleX value to\r\n     * match the renderer's aspect ratio. If you would like to render vertex positions 1:1\r\n     * to pixel positions, consider calling as `mesh.setOrtho(mesh.width, mesh.height)`.\r\n     *\r\n     * See also `setPerspective`.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#setOrtho\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} [scaleX=1] - The default horizontal scale in relation to the Mesh / Renderer dimensions.\r\n     * @param {number} [scaleY=1] - The default vertical scale in relation to the Mesh / Renderer dimensions.\r\n     * @param {number} [near=-1000] - The near value of the view.\r\n     * @param {number} [far=1000] - The far value of the view.\r\n     */\r\n    setOrtho: function (scaleX, scaleY, near, far)\r\n    {\r\n        if (scaleX === undefined) { scaleX = this.scene.sys.renderer.getAspectRatio(); }\r\n        if (scaleY === undefined) { scaleY = 1; }\r\n        if (near === undefined) { near = -1000; }\r\n        if (far === undefined) { far = 1000; }\r\n\r\n        this.fov = 0;\r\n\r\n        this.projectionMatrix.ortho(-scaleX, scaleX, -scaleY, scaleY, near, far);\r\n\r\n        this.dirtyCache[10] = 1;\r\n        this.dirtyCache[11] = 1;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Iterates and destroys all current Faces in this Mesh, then resets the\r\n     * `faces` and `vertices` arrays.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#clear\r\n     * @since 3.50.0\r\n     *\r\n     * @return {this} This Mesh Game Object.\r\n     */\r\n    clear: function ()\r\n    {\r\n        this.faces.forEach(function (face)\r\n        {\r\n            face.destroy();\r\n        });\r\n\r\n        this.faces = [];\r\n        this.vertices = [];\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * This method will add the data from a triangulated Wavefront OBJ model file to this Mesh.\r\n     *\r\n     * The data should have been loaded via the OBJFile:\r\n     *\r\n     * ```javascript\r\n     * this.load.obj(key, url);\r\n     * ```\r\n     *\r\n     * Then use the same `key` as the first parameter to this method.\r\n     *\r\n     * Multiple Mesh Game Objects can use the same model data without impacting on each other.\r\n     *\r\n     * Make sure your 3D package has triangulated the model data prior to exporting it.\r\n     *\r\n     * You can add multiple models to a single Mesh, although they will act as one when\r\n     * moved or rotated. You can scale the model data, should it be too small, or too large, to see.\r\n     * You can also offset the vertices of the model via the `x`, `y` and `z` parameters.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#addVerticesFromObj\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} key - The key of the model data in the OBJ Cache to add to this Mesh.\r\n     * @param {number} [scale=1] - An amount to scale the model data by. Use this if the model has exported too small, or large, to see.\r\n     * @param {number} [x=0] - Translate the model x position by this amount.\r\n     * @param {number} [y=0] - Translate the model y position by this amount.\r\n     * @param {number} [z=0] - Translate the model z position by this amount.\r\n     * @param {number} [rotateX=0] - Rotate the model on the x axis by this amount, in radians.\r\n     * @param {number} [rotateY=0] - Rotate the model on the y axis by this amount, in radians.\r\n     * @param {number} [rotateZ=0] - Rotate the model on the z axis by this amount, in radians.\r\n     * @param {boolean} [zIsUp=true] - Is the z axis up (true), or is y axis up (false)?\r\n     *\r\n     * @return {this} This Mesh Game Object.\r\n     */\r\n    addVerticesFromObj: function (key, scale, x, y, z, rotateX, rotateY, rotateZ, zIsUp)\r\n    {\r\n        var data = this.scene.sys.cache.obj.get(key);\r\n        var parsedData;\r\n\r\n        if (data)\r\n        {\r\n            parsedData = GenerateObjVerts(data, this, scale, x, y, z, rotateX, rotateY, rotateZ, zIsUp);\r\n        }\r\n\r\n        if (!parsedData || parsedData.verts.length === 0)\r\n        {\r\n            console.warn('Mesh.addVerticesFromObj data empty:', key);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Compare the depth of two Faces.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#sortByDepth\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.Geom.Mesh.Face} faceA - The first Face.\r\n     * @param {Phaser.Geom.Mesh.Face} faceB - The second Face.\r\n     *\r\n     * @return {number} The difference between the depths of each Face.\r\n     */\r\n    sortByDepth: function (faceA, faceB)\r\n    {\r\n        return faceA.depth - faceB.depth;\r\n    },\r\n\r\n    /**\r\n     * Runs a depth sort across all Faces in this Mesh, comparing their averaged depth.\r\n     *\r\n     * This is called automatically if you use any of the `rotate` methods, but you can\r\n     * also invoke it to sort the Faces should you manually position them.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#depthSort\r\n     * @since 3.50.0\r\n     *\r\n     * @return {this} This Mesh Game Object.\r\n     */\r\n    depthSort: function ()\r\n    {\r\n        StableSort(this.faces, this.sortByDepth);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds a new Vertex into the vertices array of this Mesh.\r\n     *\r\n     * Just adding a vertex isn't enough to render it. You need to also\r\n     * make it part of a Face, with 3 Vertex instances per Face.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#addVertex\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} x - The x position of the vertex.\r\n     * @param {number} y - The y position of the vertex.\r\n     * @param {number} z - The z position of the vertex.\r\n     * @param {number} u - The UV u coordinate of the vertex.\r\n     * @param {number} v - The UV v coordinate of the vertex.\r\n     * @param {number} [color=0xffffff] - The color value of the vertex.\r\n     * @param {number} [alpha=1] - The alpha value of the vertex.\r\n     *\r\n     * @return {this} This Mesh Game Object.\r\n     */\r\n    addVertex: function (x, y, z, u, v, color, alpha)\r\n    {\r\n        var vert = new Vertex(x, y, z, u, v, color, alpha);\r\n\r\n        this.vertices.push(vert);\r\n\r\n        return vert;\r\n    },\r\n\r\n    /**\r\n     * Adds a new Face into the faces array of this Mesh.\r\n     *\r\n     * A Face consists of references to 3 Vertex instances, which must be provided.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#addFace\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.Geom.Mesh.Vertex} vertex1 - The first vertex of the Face.\r\n     * @param {Phaser.Geom.Mesh.Vertex} vertex2 - The second vertex of the Face.\r\n     * @param {Phaser.Geom.Mesh.Vertex} vertex3 - The third vertex of the Face.\r\n     *\r\n     * @return {this} This Mesh Game Object.\r\n     */\r\n    addFace: function (vertex1, vertex2, vertex3)\r\n    {\r\n        var face = new Face(vertex1, vertex2, vertex3);\r\n\r\n        this.faces.push(face);\r\n\r\n        this.dirtyCache[9] = -1;\r\n\r\n        return face;\r\n    },\r\n\r\n    /**\r\n     * Adds new vertices to this Mesh by parsing the given data.\r\n     *\r\n     * This method will take vertex data in one of two formats, based on the `containsZ` parameter.\r\n     *\r\n     * If your vertex data are `x`, `y` pairs, then `containsZ` should be `false` (this is the default, and will result in `z=0` for each vertex).\r\n     *\r\n     * If your vertex data is groups of `x`, `y` and `z` values, then the `containsZ` parameter must be true.\r\n     *\r\n     * The `uvs` parameter is a numeric array consisting of `u` and `v` pairs.\r\n     *\r\n     * The `normals` parameter is a numeric array consisting of `x`, `y` vertex normal values and, if `containsZ` is true, `z` values as well.\r\n     *\r\n     * The `indicies` parameter is an optional array that, if given, is an indexed list of vertices to be added.\r\n     *\r\n     * The `colors` parameter is an optional array, or single value, that if given sets the color of each vertex created.\r\n     *\r\n     * The `alphas` parameter is an optional array, or single value, that if given sets the alpha of each vertex created.\r\n     *\r\n     * When providing indexed data it is assumed that _all_ of the arrays are indexed, not just the vertices.\r\n     *\r\n     * The following example will create a 256 x 256 sized quad using an index array:\r\n     *\r\n     * ```javascript\r\n     * let mesh = new Mesh(this);  // Assuming `this` is a scene!\r\n     * const vertices = [\r\n     *   -128, 128,\r\n     *   128, 128,\r\n     *   -128, -128,\r\n     *   128, -128\r\n     * ];\r\n     *\r\n     * const uvs = [\r\n     *   0, 1,\r\n     *   1, 1,\r\n     *   0, 0,\r\n     *   1, 0\r\n     * ];\r\n     *\r\n     * const indices = [ 0, 2, 1, 2, 3, 1 ];\r\n     *\r\n     * mesh.addVertices(vertices, uvs, indicies);\r\n     * // Note: Otherwise the added points will be \"behind\" the camera! This value will project vertex `x` & `y` values 1:1 to pixel values.\r\n     * mesh.hideCCW = false;\r\n     * mesh.setOrtho(mesh.width, mesh.height);\r\n     * ```\r\n     *\r\n     * If the data is not indexed, it's assumed that the arrays all contain sequential data.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#addVertices\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number[]} vertices - The vertices array. Either `xy` pairs, or `xyz` if the `containsZ` parameter is `true`.\r\n     * @param {number[]} uvs - The UVs pairs array.\r\n     * @param {number[]} [indicies] - Optional vertex indicies array. If you don't have one, pass `null` or an empty array.\r\n     * @param {boolean} [containsZ=false] - Does the vertices data include a `z` component? If not, it will be assumed `z=0`, see methods `panZ` or `setOrtho`.\r\n     * @param {number[]} [normals] - Optional vertex normals array. If you don't have one, pass `null` or an empty array.\r\n     * @param {number|number[]} [colors=0xffffff] - An array of colors, one per vertex, or a single color value applied to all vertices.\r\n     * @param {number|number[]} [alphas=1] - An array of alpha values, one per vertex, or a single alpha value applied to all vertices.\r\n     *\r\n     * @return {this} This Mesh Game Object.\r\n     */\r\n    addVertices: function (vertices, uvs, indicies, containsZ, normals, colors, alphas)\r\n    {\r\n        var result = GenerateVerts(vertices, uvs, indicies, containsZ, normals, colors, alphas);\r\n\r\n        if (result)\r\n        {\r\n            this.faces = this.faces.concat(result.faces);\r\n            this.vertices = this.vertices.concat(result.vertices);\r\n        }\r\n        else\r\n        {\r\n            console.warn('Mesh.addVertices data empty or invalid');\r\n        }\r\n\r\n        this.dirtyCache[9] = -1;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns the total number of Faces in this Mesh Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#getFaceCount\r\n     * @since 3.50.0\r\n     *\r\n     * @return {number} The number of Faces in this Mesh Game Object.\r\n     */\r\n    getFaceCount: function ()\r\n    {\r\n        return this.faces.length;\r\n    },\r\n\r\n    /**\r\n     * Returns the total number of Vertices in this Mesh Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#getVertexCount\r\n     * @since 3.50.0\r\n     *\r\n     * @return {number} The number of Vertices in this Mesh Game Object.\r\n     */\r\n    getVertexCount: function ()\r\n    {\r\n        return this.vertices.length;\r\n    },\r\n\r\n    /**\r\n     * Returns the Face at the given index in this Mesh Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#getFace\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} index - The index of the Face to get.\r\n     *\r\n     * @return {Phaser.Geom.Mesh.Face} The Face at the given index, or `undefined` if index out of range.\r\n     */\r\n    getFace: function (index)\r\n    {\r\n        return this.faces[index];\r\n    },\r\n\r\n    /**\r\n     * Tests to see if _any_ face in this Mesh intersects with the given coordinates.\r\n     *\r\n     * The given position is translated through the matrix of this Mesh and the given Camera,\r\n     * before being compared against the vertices.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#hasFaceAt\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} x - The x position to check against.\r\n     * @param {number} y - The y position to check against.\r\n     * @param {Phaser.Cameras.Scene2D.Camera} [camera] - The camera to pass the coordinates through. If not give, the default Scene Camera is used.\r\n     *\r\n     * @return {boolean} Returns `true` if _any_ face of this Mesh intersects with the given coordinate, otherwise `false`.\r\n     */\r\n    hasFaceAt: function (x, y, camera)\r\n    {\r\n        if (camera === undefined) { camera = this.scene.sys.cameras.main; }\r\n\r\n        var calcMatrix = GetCalcMatrix(this, camera).calc;\r\n\r\n        var faces = this.faces;\r\n\r\n        for (var i = 0; i < faces.length; i++)\r\n        {\r\n            var face = faces[i];\r\n\r\n            if (face.contains(x, y, calcMatrix))\r\n            {\r\n                return true;\r\n            }\r\n        }\r\n\r\n        return false;\r\n    },\r\n\r\n    /**\r\n     * Return an array of Face objects from this Mesh that intersect with the given coordinates.\r\n     *\r\n     * The given position is translated through the matrix of this Mesh and the given Camera,\r\n     * before being compared against the vertices.\r\n     *\r\n     * If more than one Face intersects, they will all be returned in the array, but the array will\r\n     * be depth sorted first, so the first element will always be that closest to the camera.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#getFaceAt\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} x - The x position to check against.\r\n     * @param {number} y - The y position to check against.\r\n     * @param {Phaser.Cameras.Scene2D.Camera} [camera] - The camera to pass the coordinates through. If not give, the default Scene Camera is used.\r\n     *\r\n     * @return {Phaser.Geom.Mesh.Face[]} An array of Face objects that intersect with the given point, ordered by depth.\r\n     */\r\n    getFaceAt: function (x, y, camera)\r\n    {\r\n        if (camera === undefined) { camera = this.scene.sys.cameras.main; }\r\n\r\n        var calcMatrix = GetCalcMatrix(this, camera).calc;\r\n\r\n        var faces = this.faces;\r\n        var results = [];\r\n\r\n        for (var i = 0; i < faces.length; i++)\r\n        {\r\n            var face = faces[i];\r\n\r\n            if (face.contains(x, y, calcMatrix))\r\n            {\r\n                results.push(face);\r\n            }\r\n        }\r\n\r\n        return StableSort(results, this.sortByDepth);\r\n    },\r\n\r\n    /**\r\n     * This method enables rendering of the Mesh vertices to the given Graphics instance.\r\n     *\r\n     * If you enable this feature, you **must** call `Graphics.clear()` in your Scene `update`,\r\n     * otherwise the Graphics instance you provide to debug will fill-up with draw calls,\r\n     * eventually crashing the browser. This is not done automatically to allow you to debug\r\n     * draw multiple Mesh objects to a single Graphics instance.\r\n     *\r\n     * The Mesh class has a built-in debug rendering callback `Mesh.renderDebug`, however\r\n     * you can also provide your own callback to be used instead. Do this by setting the `callback` parameter.\r\n     *\r\n     * The callback is invoked _once per render_ and sent the following parameters:\r\n     *\r\n     * `callback(src, faces)`\r\n     *\r\n     * `src` is the Mesh instance being debugged.\r\n     * `faces` is an array of the Faces that were rendered.\r\n     *\r\n     * You can get the final drawn vertex position from a Face object like this:\r\n     *\r\n     * ```javascript\r\n     * let face = faces[i];\r\n     *\r\n     * let x0 = face.vertex1.tx;\r\n     * let y0 = face.vertex1.ty;\r\n     * let x1 = face.vertex2.tx;\r\n     * let y1 = face.vertex2.ty;\r\n     * let x2 = face.vertex3.tx;\r\n     * let y2 = face.vertex3.ty;\r\n     *\r\n     * graphic.strokeTriangle(x0, y0, x1, y1, x2, y2);\r\n     * ```\r\n     *\r\n     * If using your own callback you do not have to provide a Graphics instance to this method.\r\n     *\r\n     * To disable debug rendering, to either your own callback or the built-in one, call this method\r\n     * with no arguments.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#setDebug\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.GameObjects.Graphics} [graphic] - The Graphic instance to render to if using the built-in callback.\r\n     * @param {function} [callback] - The callback to invoke during debug render. Leave as undefined to use the built-in callback.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setDebug: function (graphic, callback)\r\n    {\r\n        this.debugGraphic = graphic;\r\n\r\n        if (!graphic && !callback)\r\n        {\r\n            this.debugCallback = null;\r\n        }\r\n        else if (!callback)\r\n        {\r\n            this.debugCallback = this.renderDebug;\r\n        }\r\n        else\r\n        {\r\n            this.debugCallback = callback;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Checks if the transformation data in this mesh is dirty.\r\n     *\r\n     * This is used internally by the `preUpdate` step to determine if the vertices should\r\n     * be recalculated or not.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#isDirty\r\n     * @since 3.50.0\r\n     *\r\n     * @return {boolean} Returns `true` if the data of this mesh is dirty, otherwise `false`.\r\n     */\r\n    isDirty: function ()\r\n    {\r\n        var position = this.modelPosition;\r\n        var rotation = this.modelRotation;\r\n        var scale = this.modelScale;\r\n        var dirtyCache = this.dirtyCache;\r\n\r\n        var px = position.x;\r\n        var py = position.y;\r\n        var pz = position.z;\r\n\r\n        var rx = rotation.x;\r\n        var ry = rotation.y;\r\n        var rz = rotation.z;\r\n\r\n        var sx = scale.x;\r\n        var sy = scale.y;\r\n        var sz = scale.z;\r\n\r\n        var faces = this.getFaceCount();\r\n\r\n        var pxCached = dirtyCache[0];\r\n        var pyCached = dirtyCache[1];\r\n        var pzCached = dirtyCache[2];\r\n\r\n        var rxCached = dirtyCache[3];\r\n        var ryCached = dirtyCache[4];\r\n        var rzCached = dirtyCache[5];\r\n\r\n        var sxCached = dirtyCache[6];\r\n        var syCached = dirtyCache[7];\r\n        var szCached = dirtyCache[8];\r\n\r\n        var fCached = dirtyCache[9];\r\n\r\n        dirtyCache[0] = px;\r\n        dirtyCache[1] = py;\r\n        dirtyCache[2] = pz;\r\n\r\n        dirtyCache[3] = rx;\r\n        dirtyCache[4] = ry;\r\n        dirtyCache[5] = rz;\r\n\r\n        dirtyCache[6] = sx;\r\n        dirtyCache[7] = sy;\r\n        dirtyCache[8] = sz;\r\n\r\n        dirtyCache[9] = faces;\r\n\r\n        return (\r\n            pxCached !== px || pyCached !== py || pzCached !== pz ||\r\n            rxCached !== rx || ryCached !== ry || rzCached !== rz ||\r\n            sxCached !== sx || syCached !== sy || szCached !== sz ||\r\n            fCached !== faces\r\n        );\r\n    },\r\n\r\n    /**\r\n     * The Mesh update loop. The following takes place in this method:\r\n     *\r\n     * First, the `totalRendered` and `totalFrame` properties are set.\r\n     *\r\n     * If the view matrix of this Mesh isn't dirty, and the model position, rotate or scale properties are\r\n     * all clean, then the method returns at this point.\r\n     *\r\n     * Otherwise, if the viewPosition is dirty (i.e. from calling a method like `panZ`), then it will\r\n     * refresh the viewMatrix.\r\n     *\r\n     * After this, a new transformMatrix is built and it then iterates through all Faces in this\r\n     * Mesh, calling `transformCoordinatesLocal` on all of them. Internally, this updates every\r\n     * vertex, calculating its new transformed position, based on the new transform matrix.\r\n     *\r\n     * Finally, the faces are depth sorted.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#preUpdate\r\n     * @protected\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} time - The current timestamp.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    preUpdate: function ()\r\n    {\r\n        this.totalRendered = this.totalFrame;\r\n        this.totalFrame = 0;\r\n\r\n        var dirty = this.dirtyCache;\r\n\r\n        if (!this.ignoreDirtyCache && !dirty[10] && !this.isDirty())\r\n        {\r\n            //  If neither the view or the mesh is dirty we can bail out and save lots of math\r\n            return;\r\n        }\r\n\r\n        var width = this.width;\r\n        var height = this.height;\r\n\r\n        var viewMatrix = this.viewMatrix;\r\n        var viewPosition = this.viewPosition;\r\n\r\n        if (dirty[10])\r\n        {\r\n            viewMatrix.identity();\r\n            viewMatrix.translate(viewPosition);\r\n            viewMatrix.invert();\r\n\r\n            dirty[10] = 0;\r\n        }\r\n\r\n        var transformMatrix = this.transformMatrix;\r\n\r\n        transformMatrix.setWorldMatrix(\r\n            this.modelRotation,\r\n            this.modelPosition,\r\n            this.modelScale,\r\n            this.viewMatrix,\r\n            this.projectionMatrix\r\n        );\r\n\r\n        var z = viewPosition.z;\r\n\r\n        var faces = this.faces;\r\n\r\n        for (var i = 0; i < faces.length; i++)\r\n        {\r\n            faces[i].transformCoordinatesLocal(transformMatrix, width, height, z);\r\n        }\r\n\r\n        this.depthSort();\r\n    },\r\n\r\n    /**\r\n     * The built-in Mesh debug rendering method.\r\n     *\r\n     * See `Mesh.setDebug` for more details.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#renderDebug\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.GameObjects.Mesh} src - The Mesh object being rendered.\r\n     * @param {Phaser.Geom.Mesh.Face[]} faces - An array of Faces.\r\n     */\r\n    renderDebug: function (src, faces)\r\n    {\r\n        var graphic = src.debugGraphic;\r\n\r\n        for (var i = 0; i < faces.length; i++)\r\n        {\r\n            var face = faces[i];\r\n\r\n            var x0 = face.vertex1.tx;\r\n            var y0 = face.vertex1.ty;\r\n            var x1 = face.vertex2.tx;\r\n            var y1 = face.vertex2.ty;\r\n            var x2 = face.vertex3.tx;\r\n            var y2 = face.vertex3.ty;\r\n\r\n            graphic.strokeTriangle(x0, y0, x1, y1, x2, y2);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Handles the pre-destroy step for the Mesh, which removes the vertices and debug callbacks.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#preDestroy\r\n     * @private\r\n     * @since 3.50.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.clear();\r\n\r\n        this.debugCallback = null;\r\n        this.debugGraphic = null;\r\n    },\r\n\r\n    /**\r\n     * Clears all tint values associated with this Game Object.\r\n     *\r\n     * Immediately sets the color values back to 0xffffff on all vertices,\r\n     * which results in no visible change to the texture.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#clearTint\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    clearTint: function ()\r\n    {\r\n        return this.setTint();\r\n    },\r\n\r\n    /**\r\n     * Pass this Mesh Game Object to the Input Manager to enable it for Input.\r\n     *\r\n     * Unlike other Game Objects, the Mesh Game Object uses its own special hit area callback, which you cannot override.\r\n     *\r\n     * @example\r\n     * mesh.setInteractive();\r\n     * \r\n     * @example\r\n     * mesh.setInteractive({ useHandCursor: true });\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#setInteractive\r\n     * @since 3.60.0\r\n     * \r\n     * @param {(Phaser.Types.Input.InputConfiguration)} [config] - An input configuration object but it will ignore hitArea, hitAreaCallback and pixelPerfect with associated alphaTolerance properties.\r\n     *\r\n     * @return {this} This GameObject.\r\n     */\r\n    setInteractive: function (config)\r\n    {\r\n        if (config === undefined) { config = {}; }\r\n\r\n        var hitAreaCallback = function (area, x, y)\r\n        {\r\n            var faces = this.faces;\r\n\r\n            for (var i = 0; i < faces.length; i++)\r\n            {\r\n                var face = faces[i];\r\n\r\n                //  Don't pass a calcMatrix, as the x/y are already transformed\r\n                if (face.contains(x, y))\r\n                {\r\n                    return true;\r\n                }\r\n            }\r\n\r\n            return false;\r\n        }.bind(this);\r\n\r\n        this.scene.sys.input.enable(this, config, hitAreaCallback);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets an additive tint on all vertices of this Mesh Game Object.\r\n     *\r\n     * The tint works by taking the pixel color values from the Game Objects texture, and then\r\n     * multiplying it by the color value of the tint.\r\n     *\r\n     * To modify the tint color once set, either call this method again with new values or use the\r\n     * `tint` property to set all colors at once.\r\n     *\r\n     * To remove a tint call `clearTint`.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#setTint\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [tint=0xffffff] - The tint being applied to all vertices of this Mesh Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setTint: function (tint)\r\n    {\r\n        if (tint === undefined) { tint = 0xffffff; }\r\n\r\n        var vertices = this.vertices;\r\n\r\n        for (var i = 0; i < vertices.length; i++)\r\n        {\r\n            vertices[i].color = tint;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Scrolls the UV texture coordinates of all faces in this Mesh by\r\n     * adding the given x/y amounts to them.\r\n     *\r\n     * If you only wish to scroll one coordinate, pass a value of zero\r\n     * to the other.\r\n     *\r\n     * Use small values for scrolling. UVs are set from the range 0\r\n     * to 1, so you should increment (or decrement) them by suitably\r\n     * small values, such as 0.01.\r\n     *\r\n     * Due to a limitation in WebGL1 you can only UV scroll textures\r\n     * that are a power-of-two in size. Scrolling NPOT textures will\r\n     * work but will result in clamping the pixels to the edges.\r\n     *\r\n     * Note that if this Mesh is using a _frame_ from a texture atlas\r\n     * then you will be unable to UV scroll its texture.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#uvScroll\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} x - The amount to horizontally shift the UV coordinates by.\r\n     * @param {number} y - The amount to vertically shift the UV coordinates by.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    uvScroll: function (x, y)\r\n    {\r\n        var faces = this.faces;\r\n\r\n        for (var i = 0; i < faces.length; i++)\r\n        {\r\n            faces[i].scrollUV(x, y);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Scales the UV texture coordinates of all faces in this Mesh by\r\n     * the exact given amounts.\r\n     *\r\n     * If you only wish to scale one coordinate, pass a value of one\r\n     * to the other.\r\n     *\r\n     * Due to a limitation in WebGL1 you can only UV scale textures\r\n     * that are a power-of-two in size. Scaling NPOT textures will\r\n     * work but will result in clamping the pixels to the edges if\r\n     * you scale beyond a value of 1. Scaling below 1 will work\r\n     * regardless of texture size.\r\n     *\r\n     * Note that if this Mesh is using a _frame_ from a texture atlas\r\n     * then you will be unable to UV scale its texture.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#uvScale\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} x - The amount to horizontally scale the UV coordinates by.\r\n     * @param {number} y - The amount to vertically scale the UV coordinates by.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    uvScale: function (x, y)\r\n    {\r\n        var faces = this.faces;\r\n\r\n        for (var i = 0; i < faces.length; i++)\r\n        {\r\n            faces[i].scaleUV(x, y);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * The tint value being applied to the whole of the Game Object.\r\n     * This property is a setter-only.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#tint\r\n     * @type {number}\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     */\r\n    tint: {\r\n\r\n        set: function (value)\r\n        {\r\n            this.setTint(value);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * The x rotation of the Model in 3D space, as specified in degrees.\r\n     *\r\n     * If you need the value in radians use the `modelRotation.x` property directly.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#rotateX\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    rotateX: {\r\n\r\n        get: function ()\r\n        {\r\n            return RadToDeg(this.modelRotation.x);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.modelRotation.x = DegToRad(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The y rotation of the Model in 3D space, as specified in degrees.\r\n     *\r\n     * If you need the value in radians use the `modelRotation.y` property directly.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#rotateY\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    rotateY: {\r\n\r\n        get: function ()\r\n        {\r\n            return RadToDeg(this.modelRotation.y);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.modelRotation.y = DegToRad(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The z rotation of the Model in 3D space, as specified in degrees.\r\n     *\r\n     * If you need the value in radians use the `modelRotation.z` property directly.\r\n     *\r\n     * @method Phaser.GameObjects.Mesh#rotateZ\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    rotateZ: {\r\n\r\n        get: function ()\r\n        {\r\n            return RadToDeg(this.modelRotation.z);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.modelRotation.z = DegToRad(value);\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Mesh;\r\n\n\n/***/ }),\n\n/***/ 36488:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * This is a stub function for Mesh.Render. There is no Canvas renderer for Mesh objects.\r\n *\r\n * @method Phaser.GameObjects.Mesh#renderCanvas\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Mesh} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n */\r\nvar MeshCanvasRenderer = function ()\r\n{\r\n};\r\n\r\nmodule.exports = MeshCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 20527:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar GetValue = __webpack_require__(35154);\r\nvar Mesh = __webpack_require__(4703);\r\n\r\n/**\r\n * Creates a new Mesh Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Mesh Game Object and WebGL support have been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#mesh\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Mesh.MeshConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.Mesh} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('mesh', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var key = GetAdvancedValue(config, 'key', null);\r\n    var frame = GetAdvancedValue(config, 'frame', null);\r\n    var vertices = GetValue(config, 'vertices', []);\r\n    var uvs = GetValue(config, 'uvs', []);\r\n    var indicies = GetValue(config, 'indicies', []);\r\n    var containsZ = GetValue(config, 'containsZ', false);\r\n    var normals = GetValue(config, 'normals', []);\r\n    var colors = GetValue(config, 'colors', 0xffffff);\r\n    var alphas = GetValue(config, 'alphas', 1);\r\n\r\n    var mesh = new Mesh(this.scene, 0, 0, key, frame, vertices, uvs, indicies, containsZ, normals, colors, alphas);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, mesh, config);\r\n\r\n    return mesh;\r\n});\r\n\n\n/***/ }),\n\n/***/ 9225:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Mesh = __webpack_require__(4703);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Mesh Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Mesh Game Object and WebGL support have been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#mesh\r\n * @webglOnly\r\n * @since 3.0.0\r\n *\r\n * @param {number} [x] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y] - The vertical position of this Game Object in the world.\r\n * @param {string|Phaser.Textures.Texture} [texture] - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {string|number} [frame] - An optional frame from the Texture this Game Object is rendering with.\r\n * @param {number[]} [vertices] - The vertices array. Either `xy` pairs, or `xyz` if the `containsZ` parameter is `true`.\r\n * @param {number[]} [uvs] - The UVs pairs array.\r\n * @param {number[]} [indicies] - Optional vertex indicies array. If you don't have one, pass `null` or an empty array.\r\n * @param {boolean} [containsZ=false] - Does the vertices data include a `z` component?\r\n * @param {number[]} [normals] - Optional vertex normals array. If you don't have one, pass `null` or an empty array.\r\n * @param {number|number[]} [colors=0xffffff] - An array of colors, one per vertex, or a single color value applied to all vertices.\r\n * @param {number|number[]} [alphas=1] - An array of alpha values, one per vertex, or a single alpha value applied to all vertices.\r\n *\r\n * @return {Phaser.GameObjects.Mesh} The Game Object that was created.\r\n */\r\nif (true)\r\n{\r\n    GameObjectFactory.register('mesh', function (x, y, texture, frame, vertices, uvs, indicies, containsZ, normals, colors, alphas)\r\n    {\r\n        return this.displayList.add(new Mesh(this.scene, x, y, texture, frame, vertices, uvs, indicies, containsZ, normals, colors, alphas));\r\n    });\r\n}\r\n\n\n/***/ }),\n\n/***/ 29807:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(48833);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(36488);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 48833:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Mesh#renderWebGL\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Mesh} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar MeshWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    var faces = src.faces;\r\n    var totalFaces = faces.length;\r\n\r\n    if (totalFaces === 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline, src);\r\n\r\n    var calcMatrix = GetCalcMatrix(src, camera, parentMatrix).calc;\r\n\r\n    //  This causes a flush if the Mesh has a Post Pipeline\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    var textureUnit = pipeline.setGameObject(src);\r\n\r\n    var F32 = pipeline.vertexViewF32;\r\n    var U32 = pipeline.vertexViewU32;\r\n\r\n    var vertexOffset = (pipeline.vertexCount * pipeline.currentShader.vertexComponentCount) - 1;\r\n\r\n    var tintEffect = src.tintFill;\r\n\r\n    var debugFaces = [];\r\n    var debugCallback = src.debugCallback;\r\n\r\n    var a = calcMatrix.a;\r\n    var b = calcMatrix.b;\r\n    var c = calcMatrix.c;\r\n    var d = calcMatrix.d;\r\n    var e = calcMatrix.e;\r\n    var f = calcMatrix.f;\r\n\r\n    var z = src.viewPosition.z;\r\n\r\n    var hideCCW = src.hideCCW;\r\n    var roundPixels = camera.roundPixels;\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    var totalFacesRendered = 0;\r\n\r\n    for (var i = 0; i < totalFaces; i++)\r\n    {\r\n        var face = faces[i];\r\n\r\n        //  If face has alpha <= 0, or hideCCW + clockwise, or isn't in camera view, then don't draw it\r\n        if (!face.isInView(camera, hideCCW, z, alpha, a, b, c, d, e, f, roundPixels))\r\n        {\r\n            continue;\r\n        }\r\n\r\n        if (pipeline.shouldFlush(3))\r\n        {\r\n            pipeline.flush();\r\n\r\n            textureUnit = pipeline.setGameObject(src);\r\n\r\n            vertexOffset = (pipeline.vertexCount * pipeline.currentShader.vertexComponentCount) - 1;\r\n        }\r\n\r\n        vertexOffset = face.load(F32, U32, vertexOffset, textureUnit, tintEffect);\r\n\r\n        totalFacesRendered++;\r\n\r\n        pipeline.vertexCount += 3;\r\n\r\n        pipeline.currentBatch.count = (pipeline.vertexCount - pipeline.currentBatch.start);\r\n\r\n        if (debugCallback)\r\n        {\r\n            debugFaces.push(face);\r\n        }\r\n    }\r\n\r\n    src.totalFrame += totalFacesRendered;\r\n\r\n    if (debugCallback)\r\n    {\r\n        debugCallback.call(src, src, debugFaces);\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = MeshWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 28103:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar GameObject = __webpack_require__(95643);\r\nvar NineSliceRender = __webpack_require__(78023);\r\nvar Vertex = __webpack_require__(39318);\r\n\r\n/**\r\n * @classdesc\r\n * A Nine Slice Game Object allows you to display a texture-based object that\r\n * can be stretched both horizontally and vertically, but that retains\r\n * fixed-sized corners. The dimensions of the corners are set via the\r\n * parameters to this class.\r\n *\r\n * This is extremely useful for UI and button like elements, where you need\r\n * them to expand to accommodate the content without distorting the texture.\r\n *\r\n * The texture you provide for this Game Object should be based on the\r\n * following layout structure:\r\n *\r\n * ```\r\n *      A                          B\r\n *    +---+----------------------+---+\r\n *  C | 1 |          2           | 3 |\r\n *    +---+----------------------+---+\r\n *    |   |                      |   |\r\n *    | 4 |          5           | 6 |\r\n *    |   |                      |   |\r\n *    +---+----------------------+---+\r\n *  D | 7 |          8           | 9 |\r\n *    +---+----------------------+---+\r\n * ```\r\n *\r\n * When changing this objects width and / or height:\r\n *\r\n *     areas 1, 3, 7 and 9 (the corners) will remain unscaled\r\n *     areas 2 and 8 will be stretched horizontally only\r\n *     areas 4 and 6 will be stretched vertically only\r\n *     area 5 will be stretched both horizontally and vertically\r\n *\r\n * You can also create a 3 slice Game Object:\r\n *\r\n * This works in a similar way, except you can only stretch it horizontally.\r\n * Therefore, it requires less configuration:\r\n *\r\n * ```\r\n *      A                          B\r\n *    +---+----------------------+---+\r\n *    |   |                      |   |\r\n *  C | 1 |          2           | 3 |\r\n *    |   |                      |   |\r\n *    +---+----------------------+---+\r\n * ```\r\n *\r\n * When changing this objects width (you cannot change its height)\r\n *\r\n *     areas 1 and 3 will remain unscaled\r\n *     area 2 will be stretched horizontally\r\n *\r\n * The above configuration concept is adapted from the Pixi NineSlicePlane.\r\n *\r\n * To specify a 3 slice object instead of a 9 slice you should only\r\n * provide the `leftWidth` and `rightWidth` parameters. To create a 9 slice\r\n * you must supply all parameters.\r\n *\r\n * The _minimum_ width this Game Object can be is the total of\r\n * `leftWidth` + `rightWidth`.  The _minimum_ height this Game Object\r\n * can be is the total of `topHeight` + `bottomHeight`.\r\n * If you need to display this object at a smaller size, you can scale it.\r\n *\r\n * In terms of performance, using a 3 slice Game Object is the equivalent of\r\n * having 3 Sprites in a row. Using a 9 slice Game Object is the equivalent\r\n * of having 9 Sprites in a row. The vertices of this object are all batched\r\n * together and can co-exist with other Sprites and graphics on the display\r\n * list, without incurring any additional overhead.\r\n *\r\n * As of Phaser 3.60 this Game Object is WebGL only.\r\n *\r\n * As of Phaser 3.70 this Game Object can now populate its values automatically\r\n * if they have been set within Texture Packer 7.1.0 or above and exported with\r\n * the atlas json. If this is the case, you can just call this method without\r\n * specifying anything more than the texture key and frame and it will pull the\r\n * area data from the atlas.\r\n *\r\n * @class NineSlice\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @extends Phaser.GameObjects.Components.AlphaSingle\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.GetBounds\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Origin\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Texture\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} x - The horizontal position of the center of this Game Object in the world.\r\n * @param {number} y - The vertical position of the center of this Game Object in the world.\r\n * @param {(string|Phaser.Textures.Texture)} texture - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {(string|number)} [frame] - An optional frame from the Texture this Game Object is rendering with.\r\n * @param {number} [width=256] - The width of the Nine Slice Game Object. You can adjust the width post-creation.\r\n * @param {number} [height=256] - The height of the Nine Slice Game Object. If this is a 3 slice object the height will be fixed to the height of the texture and cannot be changed.\r\n * @param {number} [leftWidth=10] - The size of the left vertical column (A).\r\n * @param {number} [rightWidth=10] - The size of the right vertical column (B).\r\n * @param {number} [topHeight=0] - The size of the top horizontal row (C). Set to zero or undefined to create a 3 slice object.\r\n * @param {number} [bottomHeight=0] - The size of the bottom horizontal row (D). Set to zero or undefined to create a 3 slice object.\r\n */\r\nvar NineSlice = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.AlphaSingle,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.GetBounds,\r\n        Components.Mask,\r\n        Components.Origin,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.ScrollFactor,\r\n        Components.Texture,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        NineSliceRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function NineSlice (scene, x, y, texture, frame, width, height, leftWidth, rightWidth, topHeight, bottomHeight)\r\n    {\r\n        // if (width === undefined) { width = 256; }\r\n        // if (height === undefined) { height = 256; }\r\n\r\n        // if (leftWidth === undefined) { leftWidth = 10; }\r\n        // if (rightWidth === undefined) { rightWidth = 10; }\r\n        // if (topHeight === undefined) { topHeight = 0; }\r\n        // if (bottomHeight === undefined) { bottomHeight = 0; }\r\n\r\n        GameObject.call(this, scene, 'NineSlice');\r\n\r\n        /**\r\n         * Internal width value. Do not modify this property directly.\r\n         *\r\n         * @name Phaser.GameObjects.NineSlice#_width\r\n         * @private\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this._width;\r\n\r\n        /**\r\n         * Internal height value. Do not modify this property directly.\r\n         *\r\n         * @name Phaser.GameObjects.NineSlice#_height\r\n         * @private\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this._height;\r\n\r\n        /**\r\n         * Internal originX value. Do not modify this property directly.\r\n         *\r\n         * @name Phaser.GameObjects.NineSlice#_originX\r\n         * @private\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this._originX = 0.5;\r\n\r\n        /**\r\n         * Internal originY value. Do not modify this property directly.\r\n         *\r\n         * @name Phaser.GameObjects.NineSlice#_originY\r\n         * @private\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this._originY = 0.5;\r\n\r\n        /**\r\n         * Internal component value. Do not modify this property directly.\r\n         *\r\n         * @name Phaser.GameObjects.NineSlice#_sizeComponent\r\n         * @private\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this._sizeComponent = true;\r\n\r\n        /**\r\n         * An array of Vertex objects that correspond to the quads that make-up\r\n         * this Nine Slice Game Object. They are stored in the following order:\r\n         *\r\n         * Top Left - Indexes 0 - 5\r\n         * Top Center - Indexes 6 - 11\r\n         * Top Right - Indexes 12 - 17\r\n         * Center Left - Indexes 18 - 23\r\n         * Center - Indexes 24 - 29\r\n         * Center Right - Indexes 30 - 35\r\n         * Bottom Left - Indexes 36 - 41\r\n         * Bottom Center - Indexes 42 - 47\r\n         * Bottom Right - Indexes 48 - 53\r\n         *\r\n         * Each quad is represented by 6 Vertex instances.\r\n         *\r\n         * This array will contain 18 elements for a 3 slice object\r\n         * and 54 for a nine slice object.\r\n         *\r\n         * You should never modify this array once it has been populated.\r\n         *\r\n         * @name Phaser.GameObjects.NineSlice#vertices\r\n         * @type {Phaser.Geom.Mesh.Vertex[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.vertices = [];\r\n\r\n        /**\r\n         * The size of the left vertical bar (A).\r\n         *\r\n         * @name Phaser.GameObjects.NineSlice#leftWidth\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.leftWidth;\r\n\r\n        /**\r\n         * The size of the right vertical bar (B).\r\n         *\r\n         * @name Phaser.GameObjects.NineSlice#rightWidth\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.rightWidth;\r\n\r\n        /**\r\n         * The size of the top horizontal bar (C).\r\n         *\r\n         * If this is a 3 slice object this property will be set to the\r\n         * height of the texture being used.\r\n         *\r\n         * @name Phaser.GameObjects.NineSlice#topHeight\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.topHeight;\r\n\r\n        /**\r\n         * The size of the bottom horizontal bar (D).\r\n         *\r\n         * If this is a 3 slice object this property will be set to zero.\r\n         *\r\n         * @name Phaser.GameObjects.NineSlice#bottomHeight\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.bottomHeight;\r\n\r\n        /**\r\n         * The tint value being applied to the top-left vertice of the Game Object.\r\n         * This value is interpolated from the corner to the center of the Game Object.\r\n         * The value should be set as a hex number, i.e. 0xff0000 for red, or 0xff00ff for purple.\r\n         *\r\n         * @name Phaser.GameObjects.NineSlice#tint\r\n         * @type {number}\r\n         * @default 0xffffff\r\n         * @since 3.60.0\r\n         */\r\n        this.tint = 0xffffff;\r\n\r\n        /**\r\n         * The tint fill mode.\r\n         *\r\n         * `false` = An additive tint (the default), where vertices colors are blended with the texture.\r\n         * `true` = A fill tint, where the vertices colors replace the texture, but respects texture alpha.\r\n         *\r\n         * @name Phaser.GameObjects.NineSlice#tintFill\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.60.0\r\n         */\r\n        this.tintFill = false;\r\n\r\n        var textureFrame = scene.textures.getFrame(texture, frame);\r\n\r\n        /**\r\n         * This property is `true` if this Nine Slice Game Object was configured\r\n         * with just `leftWidth` and `rightWidth` values, making it a 3-slice\r\n         * instead of a 9-slice object.\r\n         *\r\n         * @name Phaser.GameObjects.NineSlice#is3Slice\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this.is3Slice = (!topHeight && !bottomHeight);\r\n\r\n        if (textureFrame && textureFrame.scale9)\r\n        {\r\n            //  If we're using the scale9 data from the frame, override the values from above\r\n            this.is3Slice = textureFrame.is3Slice;\r\n        }\r\n\r\n        var size = this.is3Slice ? 18 : 54;\r\n\r\n        for (var i = 0; i < size; i++)\r\n        {\r\n            this.vertices.push(new Vertex());\r\n        }\r\n\r\n        this.setPosition(x, y);\r\n\r\n        this.setTexture(texture, frame);\r\n\r\n        this.setSlices(width, height, leftWidth, rightWidth, topHeight, bottomHeight, false);\r\n\r\n        this.updateDisplayOrigin();\r\n\r\n        this.initPipeline();\r\n        this.initPostPipeline();\r\n    },\r\n\r\n    /**\r\n     * Resets the width, height and slices for this NineSlice Game Object.\r\n     *\r\n     * This allows you to modify the texture being used by this object and then reset the slice configuration,\r\n     * to avoid having to destroy this Game Object in order to use it for a different game element.\r\n     *\r\n     * Please note that you cannot change a 9-slice to a 3-slice or vice versa.\r\n     *\r\n     * @method Phaser.GameObjects.NineSlice#setSlices\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [width=256] - The width of the Nine Slice Game Object. You can adjust the width post-creation.\r\n     * @param {number} [height=256] - The height of the Nine Slice Game Object. If this is a 3 slice object the height will be fixed to the height of the texture and cannot be changed.\r\n     * @param {number} [leftWidth=10] - The size of the left vertical column (A).\r\n     * @param {number} [rightWidth=10] - The size of the right vertical column (B).\r\n     * @param {number} [topHeight=0] - The size of the top horizontal row (C). Set to zero or undefined to create a 3 slice object.\r\n     * @param {number} [bottomHeight=0] - The size of the bottom horizontal row (D). Set to zero or undefined to create a 3 slice object.\r\n     * @param {boolean} [skipScale9=false] -If this Nine Slice was created from Texture Packer scale9 atlas data, set this property to use the given column sizes instead of those specified in the JSON.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSlices: function (width, height, leftWidth, rightWidth, topHeight, bottomHeight, skipScale9)\r\n    {\r\n        if (leftWidth === undefined) { leftWidth = 10; }\r\n        if (rightWidth === undefined) { rightWidth = 10; }\r\n        if (topHeight === undefined) { topHeight = 0; }\r\n        if (bottomHeight === undefined) { bottomHeight = 0; }\r\n\r\n        if (skipScale9 === undefined) { skipScale9 = false; }\r\n\r\n        var frame = this.frame;\r\n\r\n        var sliceChange = false;\r\n\r\n        if (this.is3Slice && skipScale9 && topHeight !== 0 && bottomHeight !== 0)\r\n        {\r\n            sliceChange = true;\r\n        }\r\n\r\n        if (sliceChange)\r\n        {\r\n            console.warn('Cannot change 9 slice to 3 slice');\r\n        }\r\n        else\r\n        {\r\n            if (frame && frame.scale9 && !skipScale9)\r\n            {\r\n                var data = frame.data.scale9Borders;\r\n\r\n                var x = data.x;\r\n                var y = data.y;\r\n\r\n                leftWidth = x;\r\n                rightWidth = frame.width - data.w - x;\r\n                topHeight = y;\r\n                bottomHeight = frame.height - data.h - y;\r\n\r\n                if (width === undefined)\r\n                {\r\n                    width = frame.width;\r\n                }\r\n\r\n                if (height === undefined)\r\n                {\r\n                    height = frame.height;\r\n                }\r\n            }\r\n            else\r\n            {\r\n                if (width === undefined) { width = 256; }\r\n                if (height === undefined) { height = 256; }\r\n            }\r\n\r\n            this._width = width;\r\n            this._height = height;\r\n\r\n            this.leftWidth = leftWidth;\r\n            this.rightWidth = rightWidth;\r\n            this.topHeight = topHeight;\r\n            this.bottomHeight = bottomHeight;\r\n\r\n            if (this.is3Slice)\r\n            {\r\n                height = frame.height;\r\n\r\n                this._height = height;\r\n                this.topHeight = height;\r\n                this.bottomHeight = 0;\r\n            }\r\n\r\n            this.updateVertices();\r\n            this.updateUVs();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Updates all of the vertice UV coordinates. This is called automatically\r\n     * when the NineSlice Game Object is created, or if the texture frame changes.\r\n     *\r\n     * Unlike with the `updateVertice` method, you do not need to call this\r\n     * method if the Nine Slice changes size. Only if it changes texture frame.\r\n     *\r\n     * @method Phaser.GameObjects.NineSlice#updateUVs\r\n     * @since 3.60.0\r\n     */\r\n    updateUVs: function ()\r\n    {\r\n        var left = this.leftWidth;\r\n        var right = this.rightWidth;\r\n        var top = this.topHeight;\r\n        var bot = this.bottomHeight;\r\n\r\n        var width = this.frame.width;\r\n        var height = this.frame.height;\r\n\r\n        this.updateQuadUVs(0, 0, 0, left / width, top / height);\r\n        this.updateQuadUVs(6, left / width, 0, 1 - (right / width), top / height);\r\n        this.updateQuadUVs(12, 1 - (right / width), 0, 1, top / height);\r\n\r\n        if (!this.is3Slice)\r\n        {\r\n            this.updateQuadUVs(18, 0, top / height, left / width, 1 - (bot / height));\r\n            this.updateQuadUVs(24, left / width, top / height, 1 - right / width, 1 - (bot / height));\r\n            this.updateQuadUVs(30, 1 - right / width, top / height, 1, 1 - (bot / height));\r\n            this.updateQuadUVs(36, 0, 1 - bot / height, left / width, 1);\r\n            this.updateQuadUVs(42, left / width, 1 - bot / height, 1 - right / width, 1);\r\n            this.updateQuadUVs(48, 1 - right / width, 1 - bot / height, 1, 1);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Recalculates all of the vertices in this Nine Slice Game Object\r\n     * based on the `leftWidth`, `rightWidth`, `topHeight` and `bottomHeight`\r\n     * properties, combined with the Game Object size.\r\n     *\r\n     * This method is called automatically when this object is created\r\n     * or if it's origin is changed.\r\n     *\r\n     * You should not typically need to call this method directly, but it\r\n     * is left public should you find a need to modify one of those properties\r\n     * after creation.\r\n     *\r\n     * @method Phaser.GameObjects.NineSlice#updateVertices\r\n     * @since 3.60.0\r\n     */\r\n    updateVertices: function ()\r\n    {\r\n        var left = this.leftWidth;\r\n        var right = this.rightWidth;\r\n        var top = this.topHeight;\r\n        var bot = this.bottomHeight;\r\n\r\n        var width = this.width;\r\n        var height = this.height;\r\n\r\n        this.updateQuad(0, -0.5, 0.5, -0.5 + (left / width), 0.5 - (top / height));\r\n        this.updateQuad(6, -0.5 + (left / width), 0.5, 0.5 - (right / width), 0.5 - (top / height));\r\n        this.updateQuad(12, 0.5 - (right / width), 0.5, 0.5, 0.5 - (top / height));\r\n\r\n        if (!this.is3Slice)\r\n        {\r\n            this.updateQuad(18, -0.5, 0.5 - (top / height), -0.5 + (left / width), -0.5 + (bot / height));\r\n            this.updateQuad(24, -0.5 + (left / width), 0.5 - (top / height), 0.5 - (right / width), -0.5 + (bot / height));\r\n            this.updateQuad(30, 0.5 - (right / width), 0.5 - (top / height), 0.5, -0.5 + (bot / height));\r\n            this.updateQuad(36, -0.5, -0.5 + (bot / height), -0.5 + (left / width), -0.5);\r\n            this.updateQuad(42, -0.5 + (left / width), -0.5 + (bot / height), 0.5 - (right / width), -0.5);\r\n            this.updateQuad(48, 0.5 - (right / width), -0.5 + (bot / height), 0.5, -0.5);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Internally updates the position coordinates across all vertices of the\r\n     * given quad offset.\r\n     *\r\n     * You should not typically need to call this method directly, but it\r\n     * is left public should an extended class require it.\r\n     *\r\n     * @method Phaser.GameObjects.NineSlice#updateQuad\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} offset - The offset in the vertices array of the quad to update.\r\n     * @param {number} x1 - The top-left quad coordinate.\r\n     * @param {number} y1 - The top-left quad coordinate.\r\n     * @param {number} x2 - The bottom-right quad coordinate.\r\n     * @param {number} y2 - The bottom-right quad coordinate.\r\n     */\r\n    updateQuad: function (offset, x1, y1, x2, y2)\r\n    {\r\n        var width = this.width;\r\n        var height = this.height;\r\n        var originX = this.originX;\r\n        var originY = this.originY;\r\n\r\n        var verts = this.vertices;\r\n\r\n        verts[offset + 0].resize(x1, y1, width, height, originX, originY);\r\n        verts[offset + 1].resize(x1, y2, width, height, originX, originY);\r\n        verts[offset + 2].resize(x2, y1, width, height, originX, originY);\r\n        verts[offset + 3].resize(x1, y2, width, height, originX, originY);\r\n        verts[offset + 4].resize(x2, y2, width, height, originX, originY);\r\n        verts[offset + 5].resize(x2, y1, width, height, originX, originY);\r\n    },\r\n\r\n    /**\r\n     * Internally updates the UV coordinates across all vertices of the\r\n     * given quad offset, based on the frame size.\r\n     *\r\n     * You should not typically need to call this method directly, but it\r\n     * is left public should an extended class require it.\r\n     *\r\n     * @method Phaser.GameObjects.NineSlice#updateQuadUVs\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} offset - The offset in the vertices array of the quad to update.\r\n     * @param {number} u1 - The top-left UV coordinate.\r\n     * @param {number} v1 - The top-left UV coordinate.\r\n     * @param {number} u2 - The bottom-right UV coordinate.\r\n     * @param {number} v2 - The bottom-right UV coordinate.\r\n     */\r\n    updateQuadUVs: function (offset, u1, v1, u2, v2)\r\n    {\r\n        var verts = this.vertices;\r\n\r\n        //  Adjust for frame offset\r\n        //  Incoming values will always be in the range 0-1\r\n        var frame = this.frame;\r\n\r\n        var fu1 = frame.u0;\r\n        var fv1 = frame.v0;\r\n        var fu2 = frame.u1;\r\n        var fv2 = frame.v1;\r\n\r\n        if (fu1 !== 0 || fu2 !== 1)\r\n        {\r\n            //  adjust horizontal\r\n            var udiff = fu2 - fu1;\r\n            u1 = fu1 + u1 * udiff;\r\n            u2 = fu1 + u2 * udiff;\r\n        }\r\n\r\n        if (fv1 !== 0 || fv2 !== 1)\r\n        {\r\n            //  adjust vertical\r\n            var vdiff = fv2 - fv1;\r\n            v1 = fv1 + v1 * vdiff;\r\n            v2 = fv1 + v2 * vdiff;\r\n        }\r\n\r\n        verts[offset + 0].setUVs(u1, v1);\r\n        verts[offset + 1].setUVs(u1, v2);\r\n        verts[offset + 2].setUVs(u2, v1);\r\n        verts[offset + 3].setUVs(u1, v2);\r\n        verts[offset + 4].setUVs(u2, v2);\r\n        verts[offset + 5].setUVs(u2, v1);\r\n    },\r\n\r\n    /**\r\n     * Clears all tint values associated with this Game Object.\r\n     *\r\n     * Immediately sets the color values back to 0xffffff and the tint type to 'additive',\r\n     * which results in no visible change to the texture.\r\n     *\r\n     * @method Phaser.GameObjects.NineSlice#clearTint\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    clearTint: function ()\r\n    {\r\n        this.setTint(0xffffff);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets an additive tint on this Game Object.\r\n     *\r\n     * The tint works by taking the pixel color values from the Game Objects texture, and then\r\n     * multiplying it by the color value of the tint.\r\n     *\r\n     * To modify the tint color once set, either call this method again with new values or use the\r\n     * `tint` property.\r\n     *\r\n     * To remove a tint call `clearTint`, or call this method with no parameters.\r\n     *\r\n     * To swap this from being an additive tint to a fill based tint set the property `tintFill` to `true`.\r\n     *\r\n     * @method Phaser.GameObjects.NineSlice#setTint\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [color=0xffffff] - The tint being applied to the entire Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setTint: function (color)\r\n    {\r\n        if (color === undefined) { color = 0xffffff; }\r\n\r\n        this.tint = color;\r\n\r\n        this.tintFill = false;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets a fill-based tint on this Game Object.\r\n     *\r\n     * Unlike an additive tint, a fill-tint literally replaces the pixel colors from the texture\r\n     * with those in the tint. You can use this for effects such as making a player flash 'white'\r\n     * if hit by something. The whole Game Object will be rendered in the given color.\r\n     *\r\n     * To modify the tint color once set, either call this method again with new values or use the\r\n     * `tint` property.\r\n     *\r\n     * To remove a tint call `clearTint`, or call this method with no parameters.\r\n     *\r\n     * To swap this from being a fill-tint to an additive tint set the property `tintFill` to `false`.\r\n     *\r\n     * @method Phaser.GameObjects.NineSlice#setTintFill\r\n     * @webglOnly\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [color=0xffffff] - The tint being applied to the entire Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setTintFill: function (color)\r\n    {\r\n        this.setTint(color);\r\n\r\n        this.tintFill = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Does this Game Object have a tint applied?\r\n     *\r\n     * It checks to see if the tint property is set to a value other than 0xffffff.\r\n     * This indicates that a Game Object is tinted.\r\n     *\r\n     * @name Phaser.GameObjects.NineSlice#isTinted\r\n     * @type {boolean}\r\n     * @webglOnly\r\n     * @readonly\r\n     * @since 3.60.0\r\n     */\r\n    isTinted: {\r\n\r\n        get: function ()\r\n        {\r\n            return (this.tint !== 0xffffff);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The displayed width of this Game Object.\r\n     *\r\n     * Setting this value will adjust the way in which this Nine Slice\r\n     * object scales horizontally, if configured to do so.\r\n     *\r\n     * The _minimum_ width this Game Object can be is the total of\r\n     * `leftWidth` + `rightWidth`. If you need to display this object\r\n     * at a smaller size, you can also scale it.\r\n     *\r\n     * @name Phaser.GameObjects.NineSlice#width\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    width: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._width;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._width = Math.max(value, this.leftWidth + this.rightWidth);\r\n\r\n            this.updateVertices();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The displayed height of this Game Object.\r\n     *\r\n     * Setting this value will adjust the way in which this Nine Slice\r\n     * object scales vertically, if configured to do so.\r\n     *\r\n     * The _minimum_ height this Game Object can be is the total of\r\n     * `topHeight` + `bottomHeight`. If you need to display this object\r\n     * at a smaller size, you can also scale it.\r\n     *\r\n     * If this is a 3-slice object, you can only stretch it horizontally\r\n     * and changing the height will be ignored.\r\n     *\r\n     * @name Phaser.GameObjects.NineSlice#height\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    height: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._height;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            if (!this.is3Slice)\r\n            {\r\n                this._height = Math.max(value, this.topHeight + this.bottomHeight);\r\n\r\n                this.updateVertices();\r\n            }\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The displayed width of this Game Object.\r\n     *\r\n     * This value takes into account the scale factor.\r\n     *\r\n     * Setting this value will adjust the Game Object's scale property.\r\n     *\r\n     * @name Phaser.GameObjects.NineSlice#displayWidth\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    displayWidth: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.scaleX * this.width;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.scaleX = value / this.width;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The displayed height of this Game Object.\r\n     *\r\n     * This value takes into account the scale factor.\r\n     *\r\n     * Setting this value will adjust the Game Object's scale property.\r\n     *\r\n     * @name Phaser.GameObjects.NineSlice#displayHeight\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    displayHeight: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.scaleY * this.height;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.scaleY = value / this.height;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Sets the size of this Game Object.\r\n     *\r\n     * For a Nine Slice Game Object this means it will be stretched (or shrunk) horizontally\r\n     * and vertically depending on the dimensions given to this method, in accordance with\r\n     * how it has been configured for the various corner sizes.\r\n     *\r\n     * If this is a 3-slice object, you can only stretch it horizontally\r\n     * and changing the height will be ignored.\r\n     *\r\n     * If you have enabled this Game Object for input, changing the size will also change the\r\n     * size of the hit area.\r\n     *\r\n     * @method Phaser.GameObjects.NineSlice#setSize\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} width - The width of this Game Object.\r\n     * @param {number} height - The height of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSize: function (width, height)\r\n    {\r\n        this.width = width;\r\n        this.height = height;\r\n\r\n        this.updateDisplayOrigin();\r\n\r\n        var input = this.input;\r\n\r\n        if (input && !input.customHitArea)\r\n        {\r\n            input.hitArea.width = this.width;\r\n            input.hitArea.height = this.height;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the display size of this Game Object.\r\n     *\r\n     * Calling this will adjust the scale.\r\n     *\r\n     * @method Phaser.GameObjects.NineSlice#setDisplaySize\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} width - The width of this Game Object.\r\n     * @param {number} height - The height of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setDisplaySize: function (width, height)\r\n    {\r\n        this.displayWidth = width;\r\n        this.displayHeight = height;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * The horizontal origin of this Game Object.\r\n     * The origin maps the relationship between the size and position of the Game Object.\r\n     * The default value is 0.5, meaning all Game Objects are positioned based on their center.\r\n     * Setting the value to 0 means the position now relates to the left of the Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.NineSlice#originX\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    originX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._originX;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._originX = value;\r\n            this.updateVertices();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The vertical origin of this Game Object.\r\n     * The origin maps the relationship between the size and position of the Game Object.\r\n     * The default value is 0.5, meaning all Game Objects are positioned based on their center.\r\n     * Setting the value to 0 means the position now relates to the top of the Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.NineSlice#originY\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    originY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._originY;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._originY = value;\r\n            this.updateVertices();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Sets the origin of this Game Object.\r\n     *\r\n     * The values are given in the range 0 to 1.\r\n     *\r\n     * @method Phaser.GameObjects.NineSlice#setOrigin\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [x=0.5] - The horizontal origin value.\r\n     * @param {number} [y=x] - The vertical origin value. If not defined it will be set to the value of `x`.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setOrigin: function (x, y)\r\n    {\r\n        if (x === undefined) { x = 0.5; }\r\n        if (y === undefined) { y = x; }\r\n\r\n        this._originX = x;\r\n        this._originY = y;\r\n\r\n        this.updateVertices();\r\n\r\n        return this.updateDisplayOrigin();\r\n    },\r\n\r\n    /**\r\n     * This method is included but does nothing for the Nine Slice Game Object,\r\n     * because the size of the object isn't based on the texture frame.\r\n     *\r\n     * You should not call this method.\r\n     *\r\n     * @method Phaser.GameObjects.NineSlice#setSizeToFrame\r\n     * @since 3.60.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSizeToFrame: function ()\r\n    {\r\n        if (this.is3Slice)\r\n        {\r\n            var height = this.frame.height;\r\n\r\n            this._height = height;\r\n            this.topHeight = height;\r\n            this.bottomHeight = 0;\r\n        }\r\n\r\n        this.updateUVs();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Handles the pre-destroy step for the Nine Slice, which removes the vertices.\r\n     *\r\n     * @method Phaser.GameObjects.NineSlice#preDestroy\r\n     * @private\r\n     * @since 3.60.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.vertices = [];\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = NineSlice;\r\n\n\n/***/ }),\n\n/***/ 28279:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar GetValue = __webpack_require__(35154);\r\nvar NineSlice = __webpack_require__(28103);\r\n\r\n/**\r\n * Creates a new Nine Slice Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Nine Slice Game Object and WebGL support have been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#nineslice\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.Types.GameObjects.NineSlice.NineSliceConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.NineSlice} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('nineslice', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var key = GetAdvancedValue(config, 'key', null);\r\n    var frame = GetAdvancedValue(config, 'frame', null);\r\n    var width = GetValue(config, 'width', 256);\r\n    var height = GetValue(config, 'height', 256);\r\n    var leftWidth = GetValue(config, 'leftWidth', 10);\r\n    var rightWidth = GetValue(config, 'rightWidth', 10);\r\n    var topHeight = GetValue(config, 'topHeight', 0);\r\n    var bottomHeight = GetValue(config, 'bottomHeight', 0);\r\n\r\n    var nineslice = new NineSlice(this.scene, 0, 0, key, frame, width, height, leftWidth, rightWidth, topHeight, bottomHeight);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, nineslice, config);\r\n\r\n    return nineslice;\r\n});\r\n\n\n/***/ }),\n\n/***/ 47521:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NineSlice = __webpack_require__(28103);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * A Nine Slice Game Object allows you to display a texture-based object that\r\n * can be stretched both horizontally and vertically, but that retains\r\n * fixed-sized corners. The dimensions of the corners are set via the\r\n * parameters to this class.\r\n *\r\n * This is extremely useful for UI and button like elements, where you need\r\n * them to expand to accommodate the content without distorting the texture.\r\n *\r\n * The texture you provide for this Game Object should be based on the\r\n * following layout structure:\r\n *\r\n * ```\r\n *      A                          B\r\n *    +---+----------------------+---+\r\n *  C | 1 |          2           | 3 |\r\n *    +---+----------------------+---+\r\n *    |   |                      |   |\r\n *    | 4 |          5           | 6 |\r\n *    |   |                      |   |\r\n *    +---+----------------------+---+\r\n *  D | 7 |          8           | 9 |\r\n *    +---+----------------------+---+\r\n * ```\r\n *\r\n * When changing this objects width and / or height:\r\n *\r\n *     areas 1, 3, 7 and 9 (the corners) will remain unscaled\r\n *     areas 2 and 8 will be stretched horizontally only\r\n *     areas 4 and 6 will be stretched vertically only\r\n *     area 5 will be stretched both horizontally and vertically\r\n *\r\n * You can also create a 3 slice Game Object:\r\n *\r\n * This works in a similar way, except you can only stretch it horizontally.\r\n * Therefore, it requires less configuration:\r\n *\r\n * ```\r\n *      A                          B\r\n *    +---+----------------------+---+\r\n *    |   |                      |   |\r\n *  C | 1 |          2           | 3 |\r\n *    |   |                      |   |\r\n *    +---+----------------------+---+\r\n * ```\r\n *\r\n * When changing this objects width (you cannot change its height)\r\n *\r\n *     areas 1 and 3 will remain unscaled\r\n *     area 2 will be stretched horizontally\r\n *\r\n * The above configuration concept is adapted from the Pixi NineSlicePlane.\r\n *\r\n * To specify a 3 slice object instead of a 9 slice you should only\r\n * provide the `leftWidth` and `rightWidth` parameters. To create a 9 slice\r\n * you must supply all parameters.\r\n *\r\n * The _minimum_ width this Game Object can be is the total of\r\n * `leftWidth` + `rightWidth`.  The _minimum_ height this Game Object\r\n * can be is the total of `topHeight` + `bottomHeight`.\r\n * If you need to display this object at a smaller size, you can scale it.\r\n *\r\n * In terms of performance, using a 3 slice Game Object is the equivalent of\r\n * having 3 Sprites in a row. Using a 9 slice Game Object is the equivalent\r\n * of having 9 Sprites in a row. The vertices of this object are all batched\r\n * together and can co-exist with other Sprites and graphics on the display\r\n * list, without incurring any additional overhead.\r\n *\r\n * As of Phaser 3.60 this Game Object is WebGL only.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#nineslice\r\n * @webglOnly\r\n * @since 3.60.0\r\n *\r\n * @param {number} x - The horizontal position of the center of this Game Object in the world.\r\n * @param {number} y - The vertical position of the center of this Game Object in the world.\r\n * @param {(string|Phaser.Textures.Texture)} texture - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {(string|number)} [frame] - An optional frame from the Texture this Game Object is rendering with.\r\n * @param {number} [width=256] - The width of the Nine Slice Game Object. You can adjust the width post-creation.\r\n * @param {number} [height=256] - The height of the Nine Slice Game Object. If this is a 3 slice object the height will be fixed to the height of the texture and cannot be changed.\r\n * @param {number} [leftWidth=10] - The size of the left vertical column (A).\r\n * @param {number} [rightWidth=10] - The size of the right vertical column (B).\r\n * @param {number} [topHeight=0] - The size of the top horiztonal row (C). Set to zero or undefined to create a 3 slice object.\r\n * @param {number} [bottomHeight=0] - The size of the bottom horiztonal row (D). Set to zero or undefined to create a 3 slice object.\r\n *\r\n * @return {Phaser.GameObjects.NineSlice} The Game Object that was created.\r\n */\r\nif (true)\r\n{\r\n    GameObjectFactory.register('nineslice', function (x, y, texture, frame, width, height, leftWidth, rightWidth, topHeight, bottomHeight)\r\n    {\r\n        return this.displayList.add(new NineSlice(this.scene, x, y, texture, frame, width, height, leftWidth, rightWidth, topHeight, bottomHeight));\r\n    });\r\n}\r\n\n\n/***/ }),\n\n/***/ 78023:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(52230);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 52230:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Mesh#renderWebGL\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Mesh} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar NineSliceWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    var verts = src.vertices;\r\n    var totalVerts = verts.length;\r\n\r\n    if (totalVerts === 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline, src);\r\n\r\n    var calcMatrix = GetCalcMatrix(src, camera, parentMatrix, false).calc;\r\n\r\n    //  This causes a flush if the NineSlice has a Post Pipeline\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    var textureUnit = pipeline.setGameObject(src);\r\n\r\n    var F32 = pipeline.vertexViewF32;\r\n    var U32 = pipeline.vertexViewU32;\r\n\r\n    var vertexOffset = (pipeline.vertexCount * pipeline.currentShader.vertexComponentCount) - 1;\r\n\r\n    var roundPixels = camera.roundPixels;\r\n\r\n    var tintEffect = src.tintFill;\r\n    var alpha = camera.alpha * src.alpha;\r\n    var color = Utils.getTintAppendFloatAlpha(src.tint, alpha);\r\n\r\n    var available = pipeline.vertexAvailable();\r\n    var flushCount = -1;\r\n\r\n    if (available < totalVerts)\r\n    {\r\n        flushCount = available;\r\n    }\r\n\r\n    for (var i = 0; i < totalVerts; i++)\r\n    {\r\n        var vert = verts[i];\r\n\r\n        if (i === flushCount)\r\n        {\r\n            pipeline.flush();\r\n\r\n            textureUnit = pipeline.setGameObject(src);\r\n\r\n            vertexOffset = 0;\r\n        }\r\n\r\n        F32[++vertexOffset] = calcMatrix.getXRound(vert.vx, vert.vy, roundPixels);\r\n        F32[++vertexOffset] = calcMatrix.getYRound(vert.vx, vert.vy, roundPixels);\r\n        F32[++vertexOffset] = vert.u;\r\n        F32[++vertexOffset] = vert.v;\r\n        F32[++vertexOffset] = textureUnit;\r\n        F32[++vertexOffset] = tintEffect;\r\n        U32[++vertexOffset] = color;\r\n\r\n        pipeline.vertexCount++;\r\n\r\n        pipeline.currentBatch.count = (pipeline.vertexCount - pipeline.currentBatch.start);\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = NineSliceWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 76472:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar EmitterOp = __webpack_require__(44777);\r\nvar GetColor = __webpack_require__(37589);\r\nvar GetEaseFunction = __webpack_require__(6113);\r\nvar GetInterpolationFunction = __webpack_require__(91389);\r\nvar IntegerToRGB = __webpack_require__(90664);\r\n\r\n/**\r\n * @classdesc\r\n * This class is responsible for taking control over the color property\r\n * in the Particle class and managing its emission and updating functions.\r\n *\r\n * See the `ParticleEmitter` class for more details on emitter op configuration.\r\n *\r\n * @class EmitterColorOp\r\n * @extends Phaser.GameObjects.Particles.EmitterOp\r\n * @memberof Phaser.GameObjects.Particles\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {string} key - The name of the property.\r\n */\r\nvar EmitterColorOp = new Class({\r\n\r\n    Extends: EmitterOp,\r\n\r\n    initialize:\r\n\r\n    function EmitterColorOp (key)\r\n    {\r\n        EmitterOp.call(this, key, null, false);\r\n\r\n        this.active = false;\r\n\r\n        this.easeName = 'Linear';\r\n\r\n        /**\r\n         * An array containing the red color values.\r\n         *\r\n         * Populated during the `setMethods` method.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterColorOp#r\r\n         * @type {number[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.r = [];\r\n\r\n        /**\r\n         * An array containing the green color values.\r\n         *\r\n         * Populated during the `setMethods` method.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterColorOp#g\r\n         * @type {number[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.g = [];\r\n\r\n        /**\r\n         * An array containing the blue color values.\r\n         *\r\n         * Populated during the `setMethods` method.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterColorOp#b\r\n         * @type {number[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.b = [];\r\n    },\r\n\r\n    /**\r\n     * Checks the type of `EmitterOp.propertyValue` to determine which\r\n     * method is required in order to return values from this op function.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterColorOp#getMethod\r\n     * @since 3.60.0\r\n     *\r\n     * @return {number} A number between 0 and 9 which should be passed to `setMethods`.\r\n     */\r\n    getMethod: function ()\r\n    {\r\n        return (this.propertyValue === null) ? 0 : 9;\r\n    },\r\n\r\n    /**\r\n     * Sets the EmitterColorOp method values, if in use.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterColorOp#setMethods\r\n     * @since 3.60.0\r\n     *\r\n     * @return {this} This Emitter Op object.\r\n     */\r\n    setMethods: function ()\r\n    {\r\n        var value = this.propertyValue;\r\n        var current = value;\r\n\r\n        var onEmit = this.defaultEmit;\r\n        var onUpdate = this.defaultUpdate;\r\n\r\n        if (this.method === 9)\r\n        {\r\n            this.start = value[0];\r\n            this.ease = GetEaseFunction('Linear');\r\n            this.interpolation = GetInterpolationFunction('linear');\r\n\r\n            onEmit = this.easedValueEmit;\r\n            onUpdate = this.easeValueUpdate;\r\n            current = value[0];\r\n\r\n            this.active = true;\r\n\r\n            //  Populate the r,g,b arrays\r\n            for (var i = 0; i < value.length; i++)\r\n            {\r\n                //  in hex format 0xff0000\r\n                var color = IntegerToRGB(value[i]);\r\n\r\n                this.r.push(color.r);\r\n                this.g.push(color.g);\r\n                this.b.push(color.b);\r\n            }\r\n        }\r\n\r\n        this.onEmit = onEmit;\r\n        this.onUpdate = onUpdate;\r\n        this.current = current;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the Ease function to use for Color interpolation.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterColorOp#setEase\r\n     * @since 3.60.0\r\n     *\r\n     * @param {string} ease - The string-based name of the Ease function to use.\r\n     */\r\n    setEase: function (value)\r\n    {\r\n        this.easeName = value;\r\n\r\n        this.ease = GetEaseFunction(value);\r\n    },\r\n\r\n    /**\r\n     * An `onEmit` callback for an eased property.\r\n     *\r\n     * It prepares the particle for easing by {@link Phaser.GameObjects.Particles.EmitterColorOp#easeValueUpdate}.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterColorOp#easedValueEmit\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The particle.\r\n     * @param {string} key - The name of the property.\r\n     *\r\n     * @return {number} {@link Phaser.GameObjects.Particles.EmitterColorOp#start}, as the new value of the property.\r\n     */\r\n    easedValueEmit: function ()\r\n    {\r\n        this.current = this.start;\r\n\r\n        return this.start;\r\n    },\r\n\r\n    /**\r\n     * An `onUpdate` callback that returns an eased value between the\r\n     * {@link Phaser.GameObjects.Particles.EmitterColorOp#start} and {@link Phaser.GameObjects.Particles.EmitterColorOp#end}\r\n     * range.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterColorOp#easeValueUpdate\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The particle.\r\n     * @param {string} key - The name of the property.\r\n     * @param {number} t - The current normalized lifetime of the particle, between 0 (birth) and 1 (death).\r\n     *\r\n     * @return {number} The new value of the property.\r\n     */\r\n    easeValueUpdate: function (particle, key, t)\r\n    {\r\n        var v = this.ease(t);\r\n\r\n        var r = this.interpolation(this.r, v);\r\n        var g = this.interpolation(this.g, v);\r\n        var b = this.interpolation(this.b, v);\r\n\r\n        var current = GetColor(r, g, b);\r\n\r\n        this.current = current;\r\n\r\n        return current;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = EmitterColorOp;\r\n\n\n/***/ }),\n\n/***/ 44777:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Between = __webpack_require__(30976);\r\nvar Clamp = __webpack_require__(45319);\r\nvar Class = __webpack_require__(83419);\r\nvar FloatBetween = __webpack_require__(99472);\r\nvar GetEaseFunction = __webpack_require__(6113);\r\nvar GetFastValue = __webpack_require__(95540);\r\nvar GetInterpolationFunction = __webpack_require__(91389);\r\nvar SnapTo = __webpack_require__(77720);\r\nvar Wrap = __webpack_require__(15994);\r\n\r\n/**\r\n * @classdesc\r\n * This class is responsible for taking control over a single property\r\n * in the Particle class and managing its emission and updating functions.\r\n *\r\n * Particles properties such as `x`, `y`, `scaleX`, `lifespan` and others all use\r\n * EmitterOp instances to manage them, as they can be given in a variety of\r\n * formats: from simple values, to functions, to dynamic callbacks.\r\n *\r\n * See the `ParticleEmitter` class for more details on emitter op configuration.\r\n *\r\n * @class EmitterOp\r\n * @memberof Phaser.GameObjects.Particles\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {string} key - The name of the property.\r\n * @param {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType|Phaser.Types.GameObjects.Particles.EmitterOpOnUpdateType} defaultValue - The default value of the property.\r\n * @param {boolean} [emitOnly=false] - Whether the property can only be modified when a Particle is emitted.\r\n */\r\nvar EmitterOp = new Class({\r\n\r\n    initialize:\r\n\r\n    function EmitterOp (key, defaultValue, emitOnly)\r\n    {\r\n        if (emitOnly === undefined) { emitOnly = false; }\r\n\r\n        /**\r\n         * The name of this property.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#propertyKey\r\n         * @type {string}\r\n         * @since 3.0.0\r\n         */\r\n        this.propertyKey = key;\r\n\r\n        /**\r\n         * The current value of this property.\r\n         *\r\n         * This can be a simple value, an array, a function or an onEmit\r\n         * configuration object.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#propertyValue\r\n         * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType|Phaser.Types.GameObjects.Particles.EmitterOpOnUpdateType}\r\n         * @since 3.0.0\r\n         */\r\n        this.propertyValue = defaultValue;\r\n\r\n        /**\r\n         * The default value of this property.\r\n         *\r\n         * This can be a simple value, an array, a function or an onEmit\r\n         * configuration object.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#defaultValue\r\n         * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType|Phaser.Types.GameObjects.Particles.EmitterOpOnUpdateType}\r\n         * @since 3.0.0\r\n         */\r\n        this.defaultValue = defaultValue;\r\n\r\n        /**\r\n         * The number of steps for stepped easing between {@link Phaser.GameObjects.Particles.EmitterOp#start} and\r\n         * {@link Phaser.GameObjects.Particles.EmitterOp#end} values, per emit.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#steps\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.steps = 0;\r\n\r\n        /**\r\n         * The step counter for stepped easing, per emit.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#counter\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.counter = 0;\r\n\r\n        /**\r\n         * When the step counter reaches it's maximum, should it then\r\n         * yoyo back to the start again, or flip over to it?\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#yoyo\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.60.0\r\n         */\r\n        this.yoyo = false;\r\n\r\n        /**\r\n         * The counter direction. 0 for up and 1 for down.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#direction\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.60.0\r\n         */\r\n        this.direction = 0;\r\n\r\n        /**\r\n         * The start value for this property to ease between.\r\n         *\r\n         * If an interpolation this holds a reference to the number data array.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#start\r\n         * @type {number|number[]}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.start = 0;\r\n\r\n        /**\r\n         * The most recently calculated value. Updated every time an\r\n         * emission or update method is called. Treat as read-only.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#current\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.current = 0;\r\n\r\n        /**\r\n         * The end value for this property to ease between.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#end\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.end = 0;\r\n\r\n        /**\r\n         * The easing function to use for updating this property, if any.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#ease\r\n         * @type {?function}\r\n         * @since 3.0.0\r\n         */\r\n        this.ease = null;\r\n\r\n        /**\r\n         * The interpolation function to use for updating this property, if any.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#interpolation\r\n         * @type {?function}\r\n         * @since 3.60.0\r\n         */\r\n        this.interpolation = null;\r\n\r\n        /**\r\n         * Whether this property can only be modified when a Particle is emitted.\r\n         *\r\n         * Set to `true` to allow only {@link Phaser.GameObjects.Particles.EmitterOp#onEmit} callbacks to be set and\r\n         * affect this property.\r\n         *\r\n         * Set to `false` to allow both {@link Phaser.GameObjects.Particles.EmitterOp#onEmit} and\r\n         * {@link Phaser.GameObjects.Particles.EmitterOp#onUpdate} callbacks to be set and affect this property.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#emitOnly\r\n         * @type {boolean}\r\n         * @since 3.0.0\r\n         */\r\n        this.emitOnly = emitOnly;\r\n\r\n        /**\r\n         * The callback to run for Particles when they are emitted from the Particle Emitter.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#onEmit\r\n         * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitCallback}\r\n         * @since 3.0.0\r\n         */\r\n        this.onEmit = this.defaultEmit;\r\n\r\n        /**\r\n         * The callback to run for Particles when they are updated.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#onUpdate\r\n         * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnUpdateCallback}\r\n         * @since 3.0.0\r\n         */\r\n        this.onUpdate = this.defaultUpdate;\r\n\r\n        /**\r\n         * Set to `false` to disable this EmitterOp.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#active\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this.active = true;\r\n\r\n        /**\r\n         * The onEmit method type of this EmitterOp.\r\n         *\r\n         * Set as part of `setMethod` and cached here to avoid\r\n         * re-setting when only the value changes.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#method\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.method = 0;\r\n\r\n        /**\r\n         * The callback to run for Particles when they are emitted from the Particle Emitter.\r\n         * This is set during `setMethods` and used by `proxyEmit`.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#_onEmit\r\n         * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitCallback}\r\n         * @private\r\n         * @since 3.60.0\r\n         */\r\n        this._onEmit;\r\n\r\n        /**\r\n         * The callback to run for Particles when they are updated.\r\n         * This is set during `setMethods` and used by `proxyUpdate`.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.EmitterOp#_onUpdate\r\n         * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnUpdateCallback}\r\n         * @private\r\n         * @since 3.60.0\r\n         */\r\n        this._onUpdate;\r\n    },\r\n\r\n    /**\r\n     * Load the property from a Particle Emitter configuration object.\r\n     *\r\n     * Optionally accepts a new property key to use, replacing the current one.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#loadConfig\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.ParticleEmitterConfig} [config] - Settings for the Particle Emitter that owns this property.\r\n     * @param {string} [newKey] - The new key to use for this property, if any.\r\n     */\r\n    loadConfig: function (config, newKey)\r\n    {\r\n        if (config === undefined)\r\n        {\r\n            config = {};\r\n        }\r\n\r\n        if (newKey)\r\n        {\r\n            this.propertyKey = newKey;\r\n        }\r\n\r\n        this.propertyValue = GetFastValue(\r\n            config,\r\n            this.propertyKey,\r\n            this.defaultValue\r\n        );\r\n\r\n        this.method = this.getMethod();\r\n\r\n        this.setMethods();\r\n\r\n        if (this.emitOnly)\r\n        {\r\n            //  Reset it back again\r\n            this.onUpdate = this.defaultUpdate;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Build a JSON representation of this Particle Emitter property.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {object} A JSON representation of this Particle Emitter property.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        return JSON.stringify(this.propertyValue);\r\n    },\r\n\r\n    /**\r\n     * Change the current value of the property and update its callback methods.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#onChange\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} value - The new numeric value of this property.\r\n     *\r\n     * @return {this} This Emitter Op object.\r\n     */\r\n    onChange: function (value)\r\n    {\r\n        var current;\r\n\r\n        switch (this.method)\r\n        {\r\n            //  Number\r\n            //  Custom Callback (onEmit only)\r\n            //  Custom onEmit and/or onUpdate callbacks\r\n            case 1:\r\n            case 3:\r\n            case 8:\r\n                current = value;\r\n                break;\r\n\r\n            //  Random Array\r\n            case 2:\r\n                if (this.propertyValue.indexOf(value) >= 0)\r\n                {\r\n                    current = value;\r\n                }\r\n                break;\r\n\r\n            //  Stepped start/end\r\n            case 4:\r\n                var step = (this.end - this.start) / this.steps;\r\n                current = SnapTo(value, step);\r\n                this.counter = current;\r\n                break;\r\n\r\n            //  Eased start/end\r\n            //  min/max (random float or int)\r\n            //  Random object (random integer)\r\n            case 5:\r\n            case 6:\r\n            case 7:\r\n                current = Clamp(value, this.start, this.end);\r\n                break;\r\n\r\n            //  Interpolation\r\n            case 9:\r\n                current = this.start[0];\r\n                break;\r\n        }\r\n\r\n        this.current = current;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Checks the type of `EmitterOp.propertyValue` to determine which\r\n     * method is required in order to return values from this op function.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#getMethod\r\n     * @since 3.60.0\r\n     *\r\n     * @return {number} A number between 0 and 9 which should be passed to `setMethods`.\r\n     */\r\n    getMethod: function ()\r\n    {\r\n        var value = this.propertyValue;\r\n\r\n        //  `moveToX` and `moveToY` are null by default\r\n        if (value === null)\r\n        {\r\n            return 0;\r\n        }\r\n\r\n        var t = typeof value;\r\n\r\n        if (t === 'number')\r\n        {\r\n            //  Number\r\n            return 1;\r\n        }\r\n        else if (Array.isArray(value))\r\n        {\r\n            //  Random Array\r\n            return 2;\r\n        }\r\n        else if (t === 'function')\r\n        {\r\n            //  Custom Callback\r\n            return 3;\r\n        }\r\n        else if (t === 'object')\r\n        {\r\n            if (this.hasBoth(value, 'start', 'end'))\r\n            {\r\n                if (this.has(value, 'steps'))\r\n                {\r\n                    //  Stepped start/end\r\n                    return 4;\r\n                }\r\n                else\r\n                {\r\n                    //  Eased start/end\r\n                    return 5;\r\n                }\r\n            }\r\n            else if (this.hasBoth(value, 'min', 'max'))\r\n            {\r\n                //  min/max\r\n                return 6;\r\n            }\r\n            else if (this.has(value, 'random'))\r\n            {\r\n                //  Random object\r\n                return 7;\r\n            }\r\n            else if (this.hasEither(value, 'onEmit', 'onUpdate'))\r\n            {\r\n                //  Custom onEmit onUpdate\r\n                return 8;\r\n            }\r\n            else if (this.hasEither(value, 'values', 'interpolation'))\r\n            {\r\n                //  Interpolation\r\n                return 9;\r\n            }\r\n        }\r\n\r\n        return 0;\r\n    },\r\n\r\n    /**\r\n     * Update the {@link Phaser.GameObjects.Particles.EmitterOp#onEmit} and\r\n     * {@link Phaser.GameObjects.Particles.EmitterOp#onUpdate} callbacks based on the method returned\r\n     * from `getMethod`. The method is stored in the `EmitterOp.method` property\r\n     * and is a number between 0 and 9 inclusively.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#setMethods\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Emitter Op object.\r\n     */\r\n    setMethods: function ()\r\n    {\r\n        var value = this.propertyValue;\r\n        var current = value;\r\n\r\n        var onEmit = this.defaultEmit;\r\n        var onUpdate = this.defaultUpdate;\r\n\r\n        switch (this.method)\r\n        {\r\n            //  Number\r\n            case 1:\r\n                onEmit = this.staticValueEmit;\r\n                break;\r\n\r\n            //  Random Array\r\n            case 2:\r\n                onEmit = this.randomStaticValueEmit;\r\n                current = value[0];\r\n                break;\r\n\r\n            //  Custom Callback (onEmit only)\r\n            case 3:\r\n                this._onEmit = value;\r\n                onEmit = this.proxyEmit;\r\n                break;\r\n\r\n            //  Stepped start/end\r\n            case 4:\r\n                this.start = value.start;\r\n                this.end = value.end;\r\n                this.steps = value.steps;\r\n                this.counter = this.start;\r\n                this.yoyo = this.has(value, 'yoyo') ? value.yoyo : false;\r\n                this.direction = 0;\r\n                onEmit = this.steppedEmit;\r\n                current = this.start;\r\n                break;\r\n\r\n            //  Eased start/end\r\n            case 5:\r\n                this.start = value.start;\r\n                this.end = value.end;\r\n                var easeType = this.has(value, 'ease') ? value.ease : 'Linear';\r\n                this.ease = GetEaseFunction(easeType, value.easeParams);\r\n                onEmit = (this.has(value, 'random') && value.random) ? this.randomRangedValueEmit : this.easedValueEmit;\r\n                onUpdate = this.easeValueUpdate;\r\n                current = this.start;\r\n                break;\r\n\r\n            //  min/max (random float or int)\r\n            case 6:\r\n                this.start = value.min;\r\n                this.end = value.max;\r\n                onEmit = (this.has(value, 'int') && value.int) ? this.randomRangedIntEmit : this.randomRangedValueEmit;\r\n                current = this.start;\r\n                break;\r\n\r\n            //  Random object (random integer)\r\n            case 7:\r\n                var rnd = value.random;\r\n\r\n                if (Array.isArray(rnd))\r\n                {\r\n                    this.start = rnd[0];\r\n                    this.end = rnd[1];\r\n                }\r\n\r\n                onEmit = this.randomRangedIntEmit;\r\n                current = this.start;\r\n                break;\r\n\r\n            //  Custom onEmit and/or onUpdate callbacks\r\n            case 8:\r\n                this._onEmit = (this.has(value, 'onEmit')) ? value.onEmit : this.defaultEmit;\r\n                this._onUpdate = (this.has(value, 'onUpdate')) ? value.onUpdate : this.defaultUpdate;\r\n                onEmit = this.proxyEmit;\r\n                onUpdate = this.proxyUpdate;\r\n                break;\r\n\r\n            //  Interpolation\r\n            case 9:\r\n                this.start = value.values;\r\n                var easeTypeI = this.has(value, 'ease') ? value.ease : 'Linear';\r\n                this.ease = GetEaseFunction(easeTypeI, value.easeParams);\r\n                this.interpolation = GetInterpolationFunction(value.interpolation);\r\n                onEmit = this.easedValueEmit;\r\n                onUpdate = this.easeValueUpdate;\r\n                current = this.start[0];\r\n                break;\r\n        }\r\n\r\n        this.onEmit = onEmit;\r\n        this.onUpdate = onUpdate;\r\n        this.current = current;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Check whether an object has the given property.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#has\r\n     * @since 3.0.0\r\n     *\r\n     * @param {object} object - The object to check.\r\n     * @param {string} key - The key of the property to look for in the object.\r\n     *\r\n     * @return {boolean} `true` if the property exists in the object, `false` otherwise.\r\n     */\r\n    has: function (object, key)\r\n    {\r\n        return object.hasOwnProperty(key);\r\n    },\r\n\r\n    /**\r\n     * Check whether an object has both of the given properties.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#hasBoth\r\n     * @since 3.0.0\r\n     *\r\n     * @param {object} object - The object to check.\r\n     * @param {string} key1 - The key of the first property to check the object for.\r\n     * @param {string} key2 - The key of the second property to check the object for.\r\n     *\r\n     * @return {boolean} `true` if both properties exist in the object, `false` otherwise.\r\n     */\r\n    hasBoth: function (object, key1, key2)\r\n    {\r\n        return object.hasOwnProperty(key1) && object.hasOwnProperty(key2);\r\n    },\r\n\r\n    /**\r\n     * Check whether an object has at least one of the given properties.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#hasEither\r\n     * @since 3.0.0\r\n     *\r\n     * @param {object} object - The object to check.\r\n     * @param {string} key1 - The key of the first property to check the object for.\r\n     * @param {string} key2 - The key of the second property to check the object for.\r\n     *\r\n     * @return {boolean} `true` if at least one of the properties exists in the object, `false` if neither exist.\r\n     */\r\n    hasEither: function (object, key1, key2)\r\n    {\r\n        return object.hasOwnProperty(key1) || object.hasOwnProperty(key2);\r\n    },\r\n\r\n    /**\r\n     * The returned value sets what the property will be at the START of the particles life, on emit.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#defaultEmit\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The particle.\r\n     * @param {string} key - The name of the property.\r\n     * @param {number} [value] - The current value of the property.\r\n     *\r\n     * @return {number} The new value of the property.\r\n     */\r\n    defaultEmit: function (particle, key, value)\r\n    {\r\n        return value;\r\n    },\r\n\r\n    /**\r\n     * The returned value updates the property for the duration of the particles life.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#defaultUpdate\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The particle.\r\n     * @param {string} key - The name of the property.\r\n     * @param {number} t - The current normalized lifetime of the particle, between 0 (birth) and 1 (death).\r\n     * @param {number} value - The current value of the property.\r\n     *\r\n     * @return {number} The new value of the property.\r\n     */\r\n    defaultUpdate: function (particle, key, t, value)\r\n    {\r\n        return value;\r\n    },\r\n\r\n    /**\r\n     * The returned value sets what the property will be at the START of the particles life, on emit.\r\n     *\r\n     * This method is only used when you have provided a custom emit callback.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#proxyEmit\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The particle.\r\n     * @param {string} key - The name of the property.\r\n     * @param {number} [value] - The current value of the property.\r\n     *\r\n     * @return {number} The new value of the property.\r\n     */\r\n    proxyEmit: function (particle, key, value)\r\n    {\r\n        var result = this._onEmit(particle, key, value);\r\n\r\n        this.current = result;\r\n\r\n        return result;\r\n    },\r\n\r\n    /**\r\n     * The returned value updates the property for the duration of the particles life.\r\n     *\r\n     * This method is only used when you have provided a custom update callback.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#proxyUpdate\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The particle.\r\n     * @param {string} key - The name of the property.\r\n     * @param {number} t - The current normalized lifetime of the particle, between 0 (birth) and 1 (death).\r\n     * @param {number} value - The current value of the property.\r\n     *\r\n     * @return {number} The new value of the property.\r\n     */\r\n    proxyUpdate: function (particle, key, t, value)\r\n    {\r\n        var result = this._onUpdate(particle, key, t, value);\r\n\r\n        this.current = result;\r\n\r\n        return result;\r\n    },\r\n\r\n    /**\r\n     * An `onEmit` callback that returns the current value of the property.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#staticValueEmit\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The current value of the property.\r\n     */\r\n    staticValueEmit: function ()\r\n    {\r\n        return this.current;\r\n    },\r\n\r\n    /**\r\n     * An `onUpdate` callback that returns the current value of the property.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#staticValueUpdate\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The current value of the property.\r\n     */\r\n    staticValueUpdate: function ()\r\n    {\r\n        return this.current;\r\n    },\r\n\r\n    /**\r\n     * An `onEmit` callback that returns a random value from the current value array.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#randomStaticValueEmit\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The new value of the property.\r\n     */\r\n    randomStaticValueEmit: function ()\r\n    {\r\n        var randomIndex = Math.floor(Math.random() * this.propertyValue.length);\r\n\r\n        this.current = this.propertyValue[randomIndex];\r\n\r\n        return this.current;\r\n    },\r\n\r\n    /**\r\n     * An `onEmit` callback that returns a value between the {@link Phaser.GameObjects.Particles.EmitterOp#start} and\r\n     * {@link Phaser.GameObjects.Particles.EmitterOp#end} range.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#randomRangedValueEmit\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The particle.\r\n     * @param {string} key - The key of the property.\r\n     *\r\n     * @return {number} The new value of the property.\r\n     */\r\n    randomRangedValueEmit: function (particle, key)\r\n    {\r\n        var value = FloatBetween(this.start, this.end);\r\n\r\n        if (particle && particle.data[key])\r\n        {\r\n            particle.data[key].min = value;\r\n            particle.data[key].max = this.end;\r\n        }\r\n\r\n        this.current = value;\r\n\r\n        return value;\r\n    },\r\n\r\n    /**\r\n     * An `onEmit` callback that returns a value between the {@link Phaser.GameObjects.Particles.EmitterOp#start} and\r\n     * {@link Phaser.GameObjects.Particles.EmitterOp#end} range.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#randomRangedIntEmit\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The particle.\r\n     * @param {string} key - The key of the property.\r\n     *\r\n     * @return {number} The new value of the property.\r\n     */\r\n    randomRangedIntEmit: function (particle, key)\r\n    {\r\n        var value = Between(this.start, this.end);\r\n\r\n        if (particle && particle.data[key])\r\n        {\r\n            particle.data[key].min = value;\r\n            particle.data[key].max = this.end;\r\n        }\r\n\r\n        this.current = value;\r\n\r\n        return value;\r\n    },\r\n\r\n    /**\r\n     * An `onEmit` callback that returns a stepped value between the\r\n     * {@link Phaser.GameObjects.Particles.EmitterOp#start} and {@link Phaser.GameObjects.Particles.EmitterOp#end}\r\n     * range.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#steppedEmit\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The new value of the property.\r\n     */\r\n    steppedEmit: function ()\r\n    {\r\n        var current = this.counter;\r\n\r\n        var next = current;\r\n\r\n        var step = (this.end - this.start) / this.steps;\r\n\r\n        if (this.yoyo)\r\n        {\r\n            var over;\r\n\r\n            if (this.direction === 0)\r\n            {\r\n                //  Add step to the current value\r\n                next += step;\r\n\r\n                if (next >= this.end)\r\n                {\r\n                    over = next - this.end;\r\n\r\n                    next = this.end - over;\r\n\r\n                    this.direction = 1;\r\n                }\r\n            }\r\n            else\r\n            {\r\n                //  Down\r\n                next -= step;\r\n\r\n                if (next <= this.start)\r\n                {\r\n                    over = this.start - next;\r\n\r\n                    next = this.start + over;\r\n\r\n                    this.direction = 0;\r\n                }\r\n            }\r\n\r\n            this.counter = next;\r\n        }\r\n        else\r\n        {\r\n            this.counter = Wrap(next + step, this.start, this.end);\r\n        }\r\n\r\n        this.current = current;\r\n\r\n        return current;\r\n    },\r\n\r\n    /**\r\n     * An `onEmit` callback for an eased property.\r\n     *\r\n     * It prepares the particle for easing by {@link Phaser.GameObjects.Particles.EmitterOp#easeValueUpdate}.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#easedValueEmit\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The particle.\r\n     * @param {string} key - The name of the property.\r\n     *\r\n     * @return {number} {@link Phaser.GameObjects.Particles.EmitterOp#start}, as the new value of the property.\r\n     */\r\n    easedValueEmit: function (particle, key)\r\n    {\r\n        if (particle && particle.data[key])\r\n        {\r\n            var data = particle.data[key];\r\n\r\n            data.min = this.start;\r\n            data.max = this.end;\r\n        }\r\n\r\n        this.current = this.start;\r\n\r\n        return this.start;\r\n    },\r\n\r\n    /**\r\n     * An `onUpdate` callback that returns an eased value between the\r\n     * {@link Phaser.GameObjects.Particles.EmitterOp#start} and {@link Phaser.GameObjects.Particles.EmitterOp#end}\r\n     * range.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#easeValueUpdate\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The particle.\r\n     * @param {string} key - The name of the property.\r\n     * @param {number} t - The current normalized lifetime of the particle, between 0 (birth) and 1 (death).\r\n     *\r\n     * @return {number} The new value of the property.\r\n     */\r\n    easeValueUpdate: function (particle, key, t)\r\n    {\r\n        var data = particle.data[key];\r\n\r\n        var current;\r\n        var v = this.ease(t);\r\n\r\n        if (this.interpolation)\r\n        {\r\n            current = this.interpolation(this.start, v);\r\n        }\r\n        else\r\n        {\r\n            current = (data.max - data.min) * v + data.min;\r\n        }\r\n\r\n        this.current = current;\r\n\r\n        return current;\r\n    },\r\n\r\n    /**\r\n     * Destroys this EmitterOp instance and all of its references.\r\n     *\r\n     * Called automatically when the ParticleEmitter that owns this\r\n     * EmitterOp is destroyed.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.EmitterOp#destroy\r\n     * @since 3.60.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.propertyValue = null;\r\n        this.defaultValue = null;\r\n        this.ease = null;\r\n        this.interpolation = null;\r\n        this._onEmit = null;\r\n        this._onUpdate = null;\r\n    }\r\n});\r\n\r\nmodule.exports = EmitterOp;\r\n\n\n/***/ }),\n\n/***/ 24502:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar GetFastValue = __webpack_require__(95540);\r\nvar ParticleProcessor = __webpack_require__(20286);\r\n\r\n/**\r\n * @classdesc\r\n * The Gravity Well Particle Processor applies a force on the particles to draw\r\n * them towards, or repel them from, a single point.\r\n *\r\n * The force applied is inversely proportional to the square of the distance\r\n * from the particle to the point, in accordance with Newton's law of gravity.\r\n *\r\n * This simulates the effect of gravity over large distances (as between planets, for example).\r\n *\r\n * @class GravityWell\r\n * @extends Phaser.GameObjects.Particles.ParticleProcessor\r\n * @memberof Phaser.GameObjects.Particles\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {(number|Phaser.Types.GameObjects.Particles.GravityWellConfig)} [x=0] - The x coordinate of the Gravity Well, in world space.\r\n * @param {number} [y=0] - The y coordinate of the Gravity Well, in world space.\r\n * @param {number} [power=0] - The strength of the gravity force - larger numbers produce a stronger force.\r\n * @param {number} [epsilon=100] - The minimum distance for which the gravity force is calculated.\r\n * @param {number} [gravity=50] - The gravitational force of this Gravity Well.\r\n */\r\nvar GravityWell = new Class({\r\n\r\n    Extends: ParticleProcessor,\r\n\r\n    initialize:\r\n\r\n    function GravityWell (x, y, power, epsilon, gravity)\r\n    {\r\n        if (typeof x === 'object')\r\n        {\r\n            var config = x;\r\n\r\n            x = GetFastValue(config, 'x', 0);\r\n            y = GetFastValue(config, 'y', 0);\r\n            power = GetFastValue(config, 'power', 0);\r\n            epsilon = GetFastValue(config, 'epsilon', 100);\r\n            gravity = GetFastValue(config, 'gravity', 50);\r\n        }\r\n        else\r\n        {\r\n            if (x === undefined) { x = 0; }\r\n            if (y === undefined) { y = 0; }\r\n            if (power === undefined) { power = 0; }\r\n            if (epsilon === undefined) { epsilon = 100; }\r\n            if (gravity === undefined) { gravity = 50; }\r\n        }\r\n\r\n        ParticleProcessor.call(this, x, y, true);\r\n\r\n        /**\r\n         * Internal gravity value.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.GravityWell#_gravity\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._gravity = gravity;\r\n\r\n        /**\r\n         * Internal power value.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.GravityWell#_power\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._power = power * gravity;\r\n\r\n        /**\r\n         * Internal epsilon value.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.GravityWell#_epsilon\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._epsilon = epsilon * epsilon;\r\n    },\r\n\r\n    /**\r\n     * Takes a Particle and updates it based on the properties of this Gravity Well.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.GravityWell#update\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The Particle to update.\r\n     * @param {number} delta - The delta time in ms.\r\n     * @param {number} step - The delta value divided by 1000.\r\n     */\r\n    update: function (particle, delta)\r\n    {\r\n        var x = this.x - particle.x;\r\n        var y = this.y - particle.y;\r\n        var dSq = x * x + y * y;\r\n\r\n        if (dSq === 0)\r\n        {\r\n            return;\r\n        }\r\n\r\n        var d = Math.sqrt(dSq);\r\n\r\n        if (dSq < this._epsilon)\r\n        {\r\n            dSq = this._epsilon;\r\n        }\r\n\r\n        var factor = ((this._power * delta) / (dSq * d)) * 100;\r\n\r\n        particle.velocityX += x * factor;\r\n        particle.velocityY += y * factor;\r\n    },\r\n\r\n    /**\r\n     * The minimum distance for which the gravity force is calculated.\r\n     *\r\n     * Defaults to 100.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.GravityWell#epsilon\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    epsilon: {\r\n\r\n        get: function ()\r\n        {\r\n            return Math.sqrt(this._epsilon);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._epsilon = value * value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The strength of the gravity force - larger numbers produce a stronger force.\r\n     *\r\n     * Defaults to 0.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.GravityWell#power\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    power: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._power / this._gravity;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._power = value * this._gravity;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The gravitational force of this Gravity Well.\r\n     *\r\n     * Defaults to 50.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.GravityWell#gravity\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    gravity: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._gravity;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            var pwr = this.power;\r\n            this._gravity = value;\r\n            this.power = pwr;\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = GravityWell;\r\n\n\n/***/ }),\n\n/***/ 56480:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar AnimationState = __webpack_require__(9674);\r\nvar Clamp = __webpack_require__(45319);\r\nvar Class = __webpack_require__(83419);\r\nvar DegToRad = __webpack_require__(39506);\r\nvar Rectangle = __webpack_require__(87841);\r\nvar RotateAround = __webpack_require__(11520);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * A Particle is a simple object owned and controlled by a Particle Emitter.\r\n *\r\n * It encapsulates all of the properties required to move and update according\r\n * to the Emitters operations.\r\n *\r\n * @class Particle\r\n * @memberof Phaser.GameObjects.Particles\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.Particles.ParticleEmitter} emitter - The Emitter to which this Particle belongs.\r\n */\r\nvar Particle = new Class({\r\n\r\n    initialize:\r\n\r\n    function Particle (emitter)\r\n    {\r\n        /**\r\n         * The Emitter to which this Particle belongs.\r\n         *\r\n         * A Particle can only belong to a single Emitter and is created, updated and destroyed by it.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#emitter\r\n         * @type {Phaser.GameObjects.Particles.ParticleEmitter}\r\n         * @since 3.0.0\r\n         */\r\n        this.emitter = emitter;\r\n\r\n        /**\r\n         * The texture used by this Particle when it renders.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#texture\r\n         * @type {Phaser.Textures.Texture}\r\n         * @default null\r\n         * @since 3.60.0\r\n         */\r\n        this.texture = null;\r\n\r\n        /**\r\n         * The texture frame used by this Particle when it renders.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#frame\r\n         * @type {Phaser.Textures.Frame}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.frame = null;\r\n\r\n        /**\r\n         * The x coordinate of this Particle.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#x\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.x = 0;\r\n\r\n        /**\r\n         * The y coordinate of this Particle.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#y\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.y = 0;\r\n\r\n        /**\r\n         * The coordinates of this Particle in world space.\r\n         *\r\n         * Updated as part of `computeVelocity`.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#worldPosition\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.60.0\r\n         */\r\n        this.worldPosition = new Vector2();\r\n\r\n        /**\r\n         * The x velocity of this Particle.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#velocityX\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.velocityX = 0;\r\n\r\n        /**\r\n         * The y velocity of this Particle.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#velocityY\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.velocityY = 0;\r\n\r\n        /**\r\n         * The x acceleration of this Particle.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#accelerationX\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.accelerationX = 0;\r\n\r\n        /**\r\n         * The y acceleration of this Particle.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#accelerationY\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.accelerationY = 0;\r\n\r\n        /**\r\n         * The maximum horizontal velocity this Particle can travel at.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#maxVelocityX\r\n         * @type {number}\r\n         * @default 10000\r\n         * @since 3.0.0\r\n         */\r\n        this.maxVelocityX = 10000;\r\n\r\n        /**\r\n         * The maximum vertical velocity this Particle can travel at.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#maxVelocityY\r\n         * @type {number}\r\n         * @default 10000\r\n         * @since 3.0.0\r\n         */\r\n        this.maxVelocityY = 10000;\r\n\r\n        /**\r\n         * The bounciness, or restitution, of this Particle.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#bounce\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.bounce = 0;\r\n\r\n        /**\r\n         * The horizontal scale of this Particle.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#scaleX\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.0.0\r\n         */\r\n        this.scaleX = 1;\r\n\r\n        /**\r\n         * The vertical scale of this Particle.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#scaleY\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.0.0\r\n         */\r\n        this.scaleY = 1;\r\n\r\n        /**\r\n         * The alpha value of this Particle.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#alpha\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.0.0\r\n         */\r\n        this.alpha = 1;\r\n\r\n        /**\r\n         * The angle of this Particle in degrees.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#angle\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.angle = 0;\r\n\r\n        /**\r\n         * The angle of this Particle in radians.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#rotation\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.rotation = 0;\r\n\r\n        /**\r\n         * The tint applied to this Particle.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#tint\r\n         * @type {number}\r\n         * @webglOnly\r\n         * @since 3.0.0\r\n         */\r\n        this.tint = 0xffffff;\r\n\r\n        /**\r\n         * The lifespan of this Particle in ms.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#life\r\n         * @type {number}\r\n         * @default 1000\r\n         * @since 3.0.0\r\n         */\r\n        this.life = 1000;\r\n\r\n        /**\r\n         * The current life of this Particle in ms.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#lifeCurrent\r\n         * @type {number}\r\n         * @default 1000\r\n         * @since 3.0.0\r\n         */\r\n        this.lifeCurrent = 1000;\r\n\r\n        /**\r\n         * The delay applied to this Particle upon emission, in ms.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#delayCurrent\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.delayCurrent = 0;\r\n\r\n        /**\r\n         * The hold applied to this Particle before it expires, in ms.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#holdCurrent\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.60.0\r\n         */\r\n        this.holdCurrent = 0;\r\n\r\n        /**\r\n         * The normalized lifespan T value, where 0 is the start and 1 is the end.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#lifeT\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.lifeT = 0;\r\n\r\n        /**\r\n         * The data used by the ease equation.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#data\r\n         * @type {Phaser.Types.GameObjects.Particles.ParticleData}\r\n         * @since 3.0.0\r\n         */\r\n        this.data = {\r\n            tint: { min: 0xffffff, max: 0xffffff },\r\n            alpha: { min: 1, max: 1 },\r\n            rotate: { min: 0, max: 0 },\r\n            scaleX: { min: 1, max: 1 },\r\n            scaleY: { min: 1, max: 1 },\r\n            x: { min: 0, max: 0 },\r\n            y: { min: 0, max: 0 },\r\n            accelerationX: { min: 0, max: 0 },\r\n            accelerationY: { min: 0, max: 0 },\r\n            maxVelocityX: { min: 0, max: 0 },\r\n            maxVelocityY: { min: 0, max: 0 },\r\n            moveToX: { min: 0, max: 0 },\r\n            moveToY: { min: 0, max: 0 },\r\n            bounce: { min: 0, max: 0 }\r\n        };\r\n\r\n        /**\r\n         * Internal private value.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#isCropped\r\n         * @type {boolean}\r\n         * @private\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.isCropped = false;\r\n\r\n        /**\r\n         * A reference to the Scene to which this Game Object belongs.\r\n         *\r\n         * Game Objects can only belong to one Scene.\r\n         *\r\n         * You should consider this property as being read-only. You cannot move a\r\n         * Game Object to another Scene by simply changing it.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#scene\r\n         * @type {Phaser.Scene}\r\n         * @since 3.60.0\r\n         */\r\n        this.scene = emitter.scene;\r\n\r\n        /**\r\n         * The Animation State component of this Particle.\r\n         *\r\n         * This component provides features to apply animations to this Particle.\r\n         * It is responsible for playing, loading, queuing animations for later playback,\r\n         * mixing between animations and setting the current animation frame to this Particle.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#anims\r\n         * @type {Phaser.Animations.AnimationState}\r\n         * @since 3.60.0\r\n         */\r\n        this.anims = new AnimationState(this);\r\n\r\n        /**\r\n         * A rectangle that holds the bounds of this Particle after a call to\r\n         * the `Particle.getBounds` method has been made.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Particle#bounds\r\n         * @type {Phaser.Geom.Rectangle}\r\n         * @since 3.60.0\r\n         */\r\n        this.bounds = new Rectangle();\r\n    },\r\n\r\n    /**\r\n     * The Event Emitter proxy.\r\n     *\r\n     * Passes on all parameters to the `ParticleEmitter` to emit directly.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Particle#emit\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(string|Symbol)} event - The event name.\r\n     * @param {any} [a1] - Optional argument 1.\r\n     * @param {any} [a2] - Optional argument 2.\r\n     * @param {any} [a3] - Optional argument 3.\r\n     * @param {any} [a4] - Optional argument 4.\r\n     * @param {any} [a5] - Optional argument 5.\r\n     *\r\n     * @return {boolean} `true` if the event had listeners, else `false`.\r\n     */\r\n    emit: function (event, a1, a2, a3, a4, a5)\r\n    {\r\n        return this.emitter.emit(event, a1, a2, a3, a4, a5);\r\n    },\r\n\r\n    /**\r\n     * Checks to see if this Particle is alive and updating.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Particle#isAlive\r\n     * @since 3.0.0\r\n     *\r\n     * @return {boolean} `true` if this Particle is alive and updating, otherwise `false`.\r\n     */\r\n    isAlive: function ()\r\n    {\r\n        return (this.lifeCurrent > 0);\r\n    },\r\n\r\n    /**\r\n     * Kills this particle. This sets the `lifeCurrent` value to 0, which forces\r\n     * the Particle to be removed the next time its parent Emitter runs an update.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Particle#kill\r\n     * @since 3.60.0\r\n     */\r\n    kill: function ()\r\n    {\r\n        this.lifeCurrent = 0;\r\n    },\r\n\r\n    /**\r\n     * Sets the position of this particle to the given x/y coordinates.\r\n     *\r\n     * If the parameters are left undefined, it resets the particle back to 0x0.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Particle#setPosition\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [x=0] - The x coordinate to set this Particle to.\r\n     * @param {number} [y=0] - The y coordinate to set this Particle to.\r\n     */\r\n    setPosition: function (x, y)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n\r\n        this.x = x;\r\n        this.y = y;\r\n    },\r\n\r\n    /**\r\n     * Starts this Particle from the given coordinates.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Particle#fire\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x] - The x coordinate to launch this Particle from.\r\n     * @param {number} [y] - The y coordinate to launch this Particle from.\r\n     *\r\n     * @return {boolean} `true` if the Particle is alive, or `false` if it was spawned inside a DeathZone.\r\n     */\r\n    fire: function (x, y)\r\n    {\r\n        var emitter = this.emitter;\r\n        var ops = emitter.ops;\r\n\r\n        var anim = emitter.getAnim();\r\n\r\n        if (anim)\r\n        {\r\n            this.anims.play(anim);\r\n        }\r\n        else\r\n        {\r\n            this.frame = emitter.getFrame();\r\n            this.texture = this.frame.texture;\r\n        }\r\n\r\n        if (!this.frame)\r\n        {\r\n            throw new Error('Particle has no texture frame');\r\n        }\r\n\r\n        //  Updates particle.x and particle.y during this call\r\n        emitter.getEmitZone(this);\r\n\r\n        if (x === undefined)\r\n        {\r\n            this.x += ops.x.onEmit(this, 'x');\r\n        }\r\n        else if (ops.x.steps > 0)\r\n        {\r\n            //  EmitterOp is stepped but x was forced (follower?) so use it\r\n            this.x += x + ops.x.onEmit(this, 'x');\r\n        }\r\n        else\r\n        {\r\n            this.x += x;\r\n        }\r\n\r\n        if (y === undefined)\r\n        {\r\n            this.y += ops.y.onEmit(this, 'y');\r\n        }\r\n        else if (ops.y.steps > 0)\r\n        {\r\n            //  EmitterOp is stepped but y was forced (follower?) so use it\r\n            this.y += y + ops.y.onEmit(this, 'y');\r\n        }\r\n        else\r\n        {\r\n            this.y += y;\r\n        }\r\n\r\n        this.life = ops.lifespan.onEmit(this, 'lifespan');\r\n        this.lifeCurrent = this.life;\r\n        this.lifeT = 0;\r\n\r\n        this.delayCurrent = ops.delay.onEmit(this, 'delay');\r\n        this.holdCurrent = ops.hold.onEmit(this, 'hold');\r\n\r\n        this.scaleX = ops.scaleX.onEmit(this, 'scaleX');\r\n        this.scaleY = (ops.scaleY.active) ? ops.scaleY.onEmit(this, 'scaleY') : this.scaleX;\r\n\r\n        this.angle = ops.rotate.onEmit(this, 'rotate');\r\n\r\n        this.rotation = DegToRad(this.angle);\r\n\r\n        emitter.worldMatrix.transformPoint(this.x, this.y, this.worldPosition);\r\n\r\n        //  Check we didn't spawn in the middle of a DeathZone\r\n        if (this.delayCurrent === 0 && emitter.getDeathZone(this))\r\n        {\r\n            this.lifeCurrent = 0;\r\n\r\n            return false;\r\n        }\r\n\r\n        var sx = ops.speedX.onEmit(this, 'speedX');\r\n        var sy = (ops.speedY.active) ? ops.speedY.onEmit(this, 'speedY') : sx;\r\n\r\n        if (emitter.radial)\r\n        {\r\n            var rad = DegToRad(ops.angle.onEmit(this, 'angle'));\r\n\r\n            this.velocityX = Math.cos(rad) * Math.abs(sx);\r\n            this.velocityY = Math.sin(rad) * Math.abs(sy);\r\n        }\r\n        else if (emitter.moveTo)\r\n        {\r\n            var mx = ops.moveToX.onEmit(this, 'moveToX');\r\n            var my = ops.moveToY.onEmit(this, 'moveToY');\r\n            var lifeS = this.life / 1000;\r\n\r\n            this.velocityX = (mx - this.x) / lifeS;\r\n            this.velocityY = (my - this.y) / lifeS;\r\n        }\r\n        else\r\n        {\r\n            this.velocityX = sx;\r\n            this.velocityY = sy;\r\n        }\r\n\r\n        if (emitter.acceleration)\r\n        {\r\n            this.accelerationX = ops.accelerationX.onEmit(this, 'accelerationX');\r\n            this.accelerationY = ops.accelerationY.onEmit(this, 'accelerationY');\r\n        }\r\n\r\n        this.maxVelocityX = ops.maxVelocityX.onEmit(this, 'maxVelocityX');\r\n        this.maxVelocityY = ops.maxVelocityY.onEmit(this, 'maxVelocityY');\r\n\r\n        this.bounce = ops.bounce.onEmit(this, 'bounce');\r\n\r\n        this.alpha = ops.alpha.onEmit(this, 'alpha');\r\n\r\n        if (ops.color.active)\r\n        {\r\n            this.tint = ops.color.onEmit(this, 'tint');\r\n        }\r\n        else\r\n        {\r\n            this.tint = ops.tint.onEmit(this, 'tint');\r\n        }\r\n\r\n        return true;\r\n    },\r\n\r\n    /**\r\n     * The main update method for this Particle.\r\n     *\r\n     * Updates its life values, computes the velocity and repositions the Particle.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Particle#update\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} delta - The delta time in ms.\r\n     * @param {number} step - The delta value divided by 1000.\r\n     * @param {Phaser.GameObjects.Particles.ParticleProcessor[]} processors - An array of all active Particle Processors.\r\n     *\r\n     * @return {boolean} Returns `true` if this Particle has now expired and should be removed, otherwise `false` if still active.\r\n     */\r\n    update: function (delta, step, processors)\r\n    {\r\n        if (this.lifeCurrent <= 0)\r\n        {\r\n            //  Particle is dead via `Particle.kill` method, or being held\r\n            if (this.holdCurrent > 0)\r\n            {\r\n                this.holdCurrent -= delta;\r\n\r\n                return (this.holdCurrent <= 0);\r\n            }\r\n            else\r\n            {\r\n                return true;\r\n            }\r\n        }\r\n\r\n        if (this.delayCurrent > 0)\r\n        {\r\n            this.delayCurrent -= delta;\r\n\r\n            return false;\r\n        }\r\n\r\n        this.anims.update(0, delta);\r\n\r\n        var emitter = this.emitter;\r\n        var ops = emitter.ops;\r\n\r\n        //  How far along in life is this particle? (t = 0 to 1)\r\n        var t = 1 - (this.lifeCurrent / this.life);\r\n\r\n        this.lifeT = t;\r\n\r\n        this.x = ops.x.onUpdate(this, 'x', t, this.x);\r\n        this.y = ops.y.onUpdate(this, 'y', t, this.y);\r\n\r\n        if (emitter.moveTo)\r\n        {\r\n            var mx = ops.moveToX.onUpdate(this, 'moveToX', t, emitter.moveToX);\r\n            var my = ops.moveToY.onUpdate(this, 'moveToY', t, emitter.moveToY);\r\n            var lifeS = this.lifeCurrent / 1000;\r\n\r\n            this.velocityX = (mx - this.x) / lifeS;\r\n            this.velocityY = (my - this.y) / lifeS;\r\n        }\r\n\r\n        this.computeVelocity(emitter, delta, step, processors, t);\r\n\r\n        this.scaleX = ops.scaleX.onUpdate(this, 'scaleX', t, this.scaleX);\r\n\r\n        if (ops.scaleY.active)\r\n        {\r\n            this.scaleY = ops.scaleY.onUpdate(this, 'scaleY', t, this.scaleY);\r\n        }\r\n        else\r\n        {\r\n            this.scaleY = this.scaleX;\r\n        }\r\n\r\n        this.angle = ops.rotate.onUpdate(this, 'rotate', t, this.angle);\r\n\r\n        this.rotation = DegToRad(this.angle);\r\n\r\n        if (emitter.getDeathZone(this))\r\n        {\r\n            this.lifeCurrent = 0;\r\n\r\n            //  No need to go any further, particle has been killed\r\n            return true;\r\n        }\r\n\r\n        this.alpha = Clamp(ops.alpha.onUpdate(this, 'alpha', t, this.alpha), 0, 1);\r\n\r\n        if (ops.color.active)\r\n        {\r\n            this.tint = ops.color.onUpdate(this, 'color', t, this.tint);\r\n        }\r\n        else\r\n        {\r\n            this.tint = ops.tint.onUpdate(this, 'tint', t, this.tint);\r\n        }\r\n\r\n        this.lifeCurrent -= delta;\r\n\r\n        return (this.lifeCurrent <= 0 && this.holdCurrent <= 0);\r\n    },\r\n\r\n    /**\r\n     * An internal method that calculates the velocity of the Particle and\r\n     * its world position. It also runs it against any active Processors\r\n     * that are set on the Emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Particle#computeVelocity\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.ParticleEmitter} emitter - The Emitter that is updating this Particle.\r\n     * @param {number} delta - The delta time in ms.\r\n     * @param {number} step - The delta value divided by 1000.\r\n     * @param {Phaser.GameObjects.Particles.ParticleProcessor[]} processors - An array of all active Particle Processors.\r\n     * @param {number} t - The current normalized lifetime of the particle, between 0 (birth) and 1 (death).\r\n     */\r\n    computeVelocity: function (emitter, delta, step, processors, t)\r\n    {\r\n        var ops = emitter.ops;\r\n\r\n        var vx = this.velocityX;\r\n        var vy = this.velocityY;\r\n\r\n        var ax = ops.accelerationX.onUpdate(this, 'accelerationX', t, this.accelerationX);\r\n        var ay = ops.accelerationY.onUpdate(this, 'accelerationY', t, this.accelerationY);\r\n\r\n        var mx = ops.maxVelocityX.onUpdate(this, 'maxVelocityX', t, this.maxVelocityX);\r\n        var my = ops.maxVelocityY.onUpdate(this, 'maxVelocityY', t, this.maxVelocityY);\r\n\r\n        this.bounce = ops.bounce.onUpdate(this, 'bounce', t, this.bounce);\r\n\r\n        vx += (emitter.gravityX * step) + (ax * step);\r\n        vy += (emitter.gravityY * step) + (ay * step);\r\n\r\n        vx = Clamp(vx, -mx, mx);\r\n        vy = Clamp(vy, -my, my);\r\n\r\n        this.velocityX = vx;\r\n        this.velocityY = vy;\r\n\r\n        //  Integrate back in to the position\r\n        this.x += vx * step;\r\n        this.y += vy * step;\r\n\r\n        emitter.worldMatrix.transformPoint(this.x, this.y, this.worldPosition);\r\n\r\n        //  Apply any additional processors (these can update velocity and/or position)\r\n        for (var i = 0; i < processors.length; i++)\r\n        {\r\n            var processor = processors[i];\r\n\r\n            if (processor.active)\r\n            {\r\n                processor.update(this, delta, step, t);\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * This is a NOOP method and does nothing when called.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Particle#setSizeToFrame\r\n     * @since 3.60.0\r\n     */\r\n    setSizeToFrame: function ()\r\n    {\r\n        //  NOOP\r\n    },\r\n\r\n    /**\r\n     * Gets the bounds of this particle as a Geometry Rectangle, factoring in any\r\n     * transforms of the parent emitter and anything else above it in the display list.\r\n     *\r\n     * Once calculated the bounds can be accessed via the `Particle.bounds` property.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Particle#getBounds\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.GameObjects.Components.TransformMatrix} [matrix] - Optional transform matrix to apply to this particle.\r\n     *\r\n     * @return {Phaser.Geom.Rectangle} A Rectangle containing the transformed bounds of this particle.\r\n     */\r\n    getBounds: function (matrix)\r\n    {\r\n        if (matrix === undefined) { matrix = this.emitter.getWorldTransformMatrix(); }\r\n\r\n        var sx = Math.abs(matrix.scaleX) * this.scaleX;\r\n        var sy = Math.abs(matrix.scaleY) * this.scaleY;\r\n\r\n        var x = this.x;\r\n        var y = this.y;\r\n        var rotation = this.rotation;\r\n        var width = (this.frame.width * sx) / 2;\r\n        var height = (this.frame.height * sy) / 2;\r\n\r\n        var bounds = this.bounds;\r\n\r\n        var topLeft = new Vector2(x - width, y - height);\r\n        var topRight = new Vector2(x + width, y - height);\r\n        var bottomLeft = new Vector2(x - width, y + height);\r\n        var bottomRight = new Vector2(x + width, y + height);\r\n\r\n        if (rotation !== 0)\r\n        {\r\n            RotateAround(topLeft, x, y, rotation);\r\n            RotateAround(topRight, x, y, rotation);\r\n            RotateAround(bottomLeft, x, y, rotation);\r\n            RotateAround(bottomRight, x, y, rotation);\r\n        }\r\n\r\n        matrix.transformPoint(topLeft.x, topLeft.y, topLeft);\r\n        matrix.transformPoint(topRight.x, topRight.y, topRight);\r\n        matrix.transformPoint(bottomLeft.x, bottomLeft.y, bottomLeft);\r\n        matrix.transformPoint(bottomRight.x, bottomRight.y, bottomRight);\r\n\r\n        bounds.x = Math.min(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x);\r\n        bounds.y = Math.min(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y);\r\n        bounds.width = Math.max(topLeft.x, topRight.x, bottomLeft.x, bottomRight.x) - bounds.x;\r\n        bounds.height = Math.max(topLeft.y, topRight.y, bottomLeft.y, bottomRight.y) - bounds.y;\r\n\r\n        return bounds;\r\n    },\r\n\r\n    /**\r\n     * Destroys this Particle.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Particle#destroy\r\n     * @since 3.60.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.anims.destroy();\r\n\r\n        this.anims = null;\r\n        this.emitter = null;\r\n        this.texture = null;\r\n        this.frame = null;\r\n        this.scene = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Particle;\r\n\n\n/***/ }),\n\n/***/ 69601:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar ParticleProcessor = __webpack_require__(20286);\r\nvar Rectangle = __webpack_require__(87841);\r\n\r\n/**\r\n * @classdesc\r\n * The Particle Bounds Processor.\r\n *\r\n * Defines a rectangular region, in world space, within which particle movement\r\n * is restrained.\r\n *\r\n * Use the properties `collideLeft`, `collideRight`, `collideTop` and\r\n * `collideBottom` to control if a particle will rebound off the sides\r\n * of this boundary, or not.\r\n *\r\n * This happens when the particles worldPosition x/y coordinate hits the boundary.\r\n *\r\n * The strength of the rebound is determined by the `Particle.bounce` property.\r\n *\r\n * @class ParticleBounds\r\n * @extends Phaser.GameObjects.Particles.ParticleProcessor\r\n * @memberof Phaser.GameObjects.Particles\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {number} x - The x position (top-left) of the bounds, in world space.\r\n * @param {number} y - The y position (top-left) of the bounds, in world space.\r\n * @param {number} width - The width of the bounds.\r\n * @param {number} height - The height of the bounds.\r\n * @param {boolean} [collideLeft=true] - Whether particles interact with the left edge of the bounds.\r\n * @param {boolean} [collideRight=true] - Whether particles interact with the right edge of the bounds.\r\n * @param {boolean} [collideTop=true] - Whether particles interact with the top edge of the bounds.\r\n * @param {boolean} [collideBottom=true] - Whether particles interact with the bottom edge of the bounds.\r\n */\r\nvar ParticleBounds = new Class({\r\n\r\n    Extends: ParticleProcessor,\r\n\r\n    initialize:\r\n\r\n    function ParticleBounds (x, y, width, height, collideLeft, collideRight, collideTop, collideBottom)\r\n    {\r\n        if (collideLeft === undefined) { collideLeft = true; }\r\n        if (collideRight === undefined) { collideRight = true; }\r\n        if (collideTop === undefined) { collideTop = true; }\r\n        if (collideBottom === undefined) { collideBottom = true; }\r\n\r\n        ParticleProcessor.call(this, x, y, true);\r\n\r\n        /**\r\n         * A rectangular boundary constraining particle movement. Use the Emitter properties `collideLeft`,\r\n         * `collideRight`, `collideTop` and `collideBottom` to control if a particle will rebound off\r\n         * the sides of this boundary, or not. This happens when the particles x/y coordinate hits\r\n         * the boundary.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleBounds#bounds\r\n         * @type {Phaser.Geom.Rectangle}\r\n         * @since 3.60.0\r\n         */\r\n        this.bounds = new Rectangle(x, y, width, height);\r\n\r\n        /**\r\n         * Whether particles interact with the left edge of the emitter {@link Phaser.GameObjects.Particles.ParticleEmitter#bounds}.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleBounds#collideLeft\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.60.0\r\n         */\r\n        this.collideLeft = collideLeft;\r\n\r\n        /**\r\n         * Whether particles interact with the right edge of the emitter {@link Phaser.GameObjects.Particles.ParticleBounds#bounds}.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleBounds#collideRight\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.60.0\r\n         */\r\n        this.collideRight = collideRight;\r\n\r\n        /**\r\n         * Whether particles interact with the top edge of the emitter {@link Phaser.GameObjects.Particles.ParticleBounds#bounds}.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleBounds#collideTop\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.60.0\r\n         */\r\n        this.collideTop = collideTop;\r\n\r\n        /**\r\n         * Whether particles interact with the bottom edge of the emitter {@link Phaser.GameObjects.Particles.ParticleBounds#bounds}.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleBounds#collideBottom\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.60.0\r\n         */\r\n        this.collideBottom = collideBottom;\r\n    },\r\n\r\n    /**\r\n     * Takes a Particle and updates it against the bounds.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleBounds#update\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The Particle to update.\r\n     */\r\n    update: function (particle)\r\n    {\r\n        var bounds = this.bounds;\r\n        var bounce = -particle.bounce;\r\n        var pos = particle.worldPosition;\r\n\r\n        if (pos.x < bounds.x && this.collideLeft)\r\n        {\r\n            particle.x += bounds.x - pos.x;\r\n            particle.velocityX *= bounce;\r\n        }\r\n        else if (pos.x > bounds.right && this.collideRight)\r\n        {\r\n            particle.x -= pos.x - bounds.right;\r\n            particle.velocityX *= bounce;\r\n        }\r\n\r\n        if (pos.y < bounds.y && this.collideTop)\r\n        {\r\n            particle.y += bounds.y - pos.y;\r\n            particle.velocityY *= bounce;\r\n        }\r\n        else if (pos.y > bounds.bottom && this.collideBottom)\r\n        {\r\n            particle.y -= pos.y - bounds.bottom;\r\n            particle.velocityY *= bounce;\r\n        }\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = ParticleBounds;\r\n\n\n/***/ }),\n\n/***/ 31600:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar ComponentsToJSON = __webpack_require__(53774);\r\nvar CopyFrom = __webpack_require__(43459);\r\nvar DeathZone = __webpack_require__(26388);\r\nvar EdgeZone = __webpack_require__(19909);\r\nvar EmitterColorOp = __webpack_require__(76472);\r\nvar EmitterOp = __webpack_require__(44777);\r\nvar Events = __webpack_require__(20696);\r\nvar GameObject = __webpack_require__(95643);\r\nvar GetFastValue = __webpack_require__(95540);\r\nvar GetRandom = __webpack_require__(26546);\r\nvar GravityWell = __webpack_require__(24502);\r\nvar HasAny = __webpack_require__(1985);\r\nvar HasValue = __webpack_require__(97022);\r\nvar Inflate = __webpack_require__(86091);\r\nvar List = __webpack_require__(73162);\r\nvar MergeRect = __webpack_require__(20074);\r\nvar MergeRight = __webpack_require__(269);\r\nvar Particle = __webpack_require__(56480);\r\nvar ParticleBounds = __webpack_require__(69601);\r\nvar RandomZone = __webpack_require__(68875);\r\nvar Rectangle = __webpack_require__(87841);\r\nvar RectangleToRectangle = __webpack_require__(59996);\r\nvar Remove = __webpack_require__(72905);\r\nvar Render = __webpack_require__(90668);\r\nvar StableSort = __webpack_require__(19186);\r\nvar TransformMatrix = __webpack_require__(61340);\r\nvar Vector2 = __webpack_require__(26099);\r\nvar Wrap = __webpack_require__(15994);\r\n\r\n/**\r\n * Names of simple configuration properties.\r\n *\r\n * @ignore\r\n */\r\nvar configFastMap = [\r\n    'active',\r\n    'advance',\r\n    'blendMode',\r\n    'colorEase',\r\n    'deathCallback',\r\n    'deathCallbackScope',\r\n    'duration',\r\n    'emitCallback',\r\n    'emitCallbackScope',\r\n    'follow',\r\n    'frequency',\r\n    'gravityX',\r\n    'gravityY',\r\n    'maxAliveParticles',\r\n    'maxParticles',\r\n    'name',\r\n    'emitting',\r\n    'particleBringToTop',\r\n    'particleClass',\r\n    'radial',\r\n    'sortCallback',\r\n    'sortOrderAsc',\r\n    'sortProperty',\r\n    'stopAfter',\r\n    'tintFill',\r\n    'timeScale',\r\n    'trackVisible',\r\n    'visible'\r\n];\r\n\r\n/**\r\n * Names of complex configuration properties.\r\n *\r\n * @ignore\r\n */\r\nvar configOpMap = [\r\n    'accelerationX',\r\n    'accelerationY',\r\n    'alpha',\r\n    'angle',\r\n    'bounce',\r\n    'color',\r\n    'delay',\r\n    'hold',\r\n    'lifespan',\r\n    'maxVelocityX',\r\n    'maxVelocityY',\r\n    'moveToX',\r\n    'moveToY',\r\n    'quantity',\r\n    'rotate',\r\n    'scaleX',\r\n    'scaleY',\r\n    'speedX',\r\n    'speedY',\r\n    'tint',\r\n    'x',\r\n    'y'\r\n];\r\n\r\n/**\r\n * @classdesc\r\n * A Particle Emitter is a special kind of Game Object that controls a pool of {@link Phaser.GameObjects.Particles.Particle Particles}.\r\n *\r\n * Particle Emitters are created via a configuration object. The properties of this object\r\n * can be specified in a variety of formats, given you plenty of scope over the values they\r\n * return, leading to complex visual effects. Here are the different forms of configuration\r\n * value you can give:\r\n *\r\n * ## An explicit static value:\r\n *\r\n * ```js\r\n * x: 400\r\n * ```\r\n *\r\n * The x value will always be 400 when the particle is spawned.\r\n *\r\n * ## A random value:\r\n *\r\n * ```js\r\n * x: [ 100, 200, 300, 400 ]\r\n * ```\r\n *\r\n * The x value will be one of the 4 elements in the given array, picked at random on emission.\r\n *\r\n * ## A custom callback:\r\n *\r\n * ```js\r\n * x: (particle, key, t, value) => {\r\n *   return value + 50;\r\n * }\r\n * ```\r\n *\r\n * The x value is the result of calling this function. This is only used when the\r\n * particle is emitted, so it provides it's initial starting value. It is not used\r\n * when the particle is updated (see the onUpdate callback for that)\r\n *\r\n * ## A start / end object:\r\n *\r\n * This allows you to control the change in value between the given start and\r\n * end parameters over the course of the particles lifetime:\r\n *\r\n * ```js\r\n * scale: { start: 0, end: 1 }\r\n * ```\r\n *\r\n * The particle scale will start at 0 when emitted and ease to a scale of 1\r\n * over the course of its lifetime. You can also specify the ease function\r\n * used for this change (the default is Linear):\r\n *\r\n * ```js\r\n * scale: { start: 0, end: 1, ease: 'bounce.out' }\r\n * ```\r\n *\r\n * ## A start / end random object:\r\n *\r\n * The start and end object can have an optional `random` parameter.\r\n * This forces it to pick a random value between the two values and use\r\n * this as the starting value, then easing to the 'end' parameter over\r\n * its lifetime.\r\n *\r\n * ```js\r\n * scale: { start: 4, end: 0.5, random: true }\r\n * ```\r\n *\r\n * The particle will start with a random scale between 0.5 and 4 and then\r\n * scale to the end value over its lifetime. You can combine the above\r\n * with the `ease` parameter as well to control the value easing.\r\n *\r\n * ## An interpolation object:\r\n *\r\n * You can provide an array of values which will be used for interpolation\r\n * during the particles lifetime. You can also define the interpolation\r\n * function to be used. There are three provided: `linear` (the default),\r\n * `bezier` and `catmull`, or you can provide your own function.\r\n *\r\n * ```js\r\n * x: { values: [ 50, 500, 200, 800 ], interpolation: 'catmull' }\r\n * ```\r\n *\r\n * The particle scale will interpolate from 50 when emitted to 800 via the other\r\n * points over the course of its lifetime. You can also specify an ease function\r\n * used to control the rate of change through the values (the default is Linear):\r\n *\r\n * ```js\r\n * x: { values: [ 50, 500, 200, 800 ], interpolation: 'catmull', ease: 'bounce.out }\r\n * ```\r\n *\r\n * ## A stepped emitter object:\r\n *\r\n * The `steps` parameter allows you to control the placement of sequential\r\n * particles across the start-end range:\r\n *\r\n * ```js\r\n * x: { steps: 32, start: 0, end: 576 }\r\n * ```\r\n *\r\n * Here we have a range of 576 (start to end). This is divided into 32 steps.\r\n *\r\n * The first particle will emit at the x position of 0. The next will emit\r\n * at the next 'step' along, which would be 18. The following particle will emit\r\n * at the next step, which is 36, and so on. Because the range of 576 has been\r\n * divided by 32, creating 18 pixels steps. When a particle reaches the 'end'\r\n * value the next one will start from the beginning again.\r\n *\r\n * ## A stepped emitter object with yoyo:\r\n *\r\n * You can add the optional `yoyo` property to a stepped object:\r\n *\r\n * ```js\r\n * x: { steps: 32, start: 0, end: 576, yoyo: true }\r\n * ```\r\n *\r\n * As with the stepped emitter, particles are emitted in sequence, from 'start'\r\n * to 'end' in step sized jumps. Normally, when a stepped emitter reaches the\r\n * end it snaps around to the start value again. However, if you provide the 'yoyo'\r\n * parameter then when it reaches the end it will reverse direction and start\r\n * emitting back down to 'start' again. Depending on the effect you require this\r\n * can often look better.\r\n *\r\n * ## A min / max object:\r\n *\r\n * This allows you to pick a random float value between the min and max properties:\r\n *\r\n * ```js\r\n * x: { min: 100, max: 700 }\r\n * ```\r\n *\r\n * The x value will be a random float between min and max.\r\n *\r\n * You can force it select an integer by setting the 'int' flag:\r\n *\r\n * ```js\r\n * x: { min: 100, max: 700, int: true }\r\n * ```\r\n *\r\n * Or, you could use the 'random' array approach (see below)\r\n *\r\n * ## A random object:\r\n *\r\n * This allows you to pick a random integer value between the first and second array elements:\r\n *\r\n * ```js\r\n * x: { random: [ 100, 700 ] }\r\n * ```\r\n *\r\n * The x value will be a random integer between 100 and 700 as it takes the first\r\n * element in the 'random' array as the 'min' value and the 2nd element as the 'max' value.\r\n *\r\n * ## Custom onEmit and onUpdate callbacks:\r\n *\r\n * If the above won't give you the effect you're after, you can provide your own\r\n * callbacks that will be used when the particle is both emitted and updated:\r\n *\r\n * ```js\r\n * x: {\r\n *   onEmit: (particle, key, t, value) => {\r\n *     return value;\r\n *   },\r\n *   onUpdate: (particle, key, t, value) => {\r\n *     return value;\r\n *   }\r\n * }\r\n * ```\r\n *\r\n * You can provide either one or both functions. The `onEmit` is called at the\r\n * start of the particles life and defines the value of the property on birth.\r\n *\r\n * The `onUpdate` function is called every time the Particle Emitter updates\r\n * until the particle dies. Both must return a value.\r\n *\r\n * The properties are:\r\n *\r\n * particle - A reference to the Particle instance.\r\n * key - The string based key of the property, i.e. 'x' or 'lifespan'.\r\n * t - The current normalized lifetime of the particle, between 0 (birth) and 1 (death).\r\n * value - The current property value. At a minimum you should return this.\r\n *\r\n * By using the above configuration options you have an unlimited about of\r\n * control over how your particles behave.\r\n *\r\n * ## v3.55 Differences\r\n *\r\n * Prior to v3.60 Phaser used a `ParticleEmitterManager`. This was removed in v3.60\r\n * and now calling `this.add.particles` returns a `ParticleEmitter` instance instead.\r\n *\r\n * In order to streamline memory and the display list we have removed the\r\n * `ParticleEmitterManager` entirely. When you call `this.add.particles` you're now\r\n * creating a `ParticleEmitter` instance, which is being added directly to the\r\n * display list and can be manipulated just like any other Game Object, i.e.\r\n * scaled, rotated, positioned, added to a Container, etc. It now extends the\r\n * `GameObject` base class, meaning it's also an event emitter, which allowed us\r\n * to create some handy new events for particles.\r\n *\r\n * So, to create an emitter, you now give it an xy coordinate, a texture and an\r\n * emitter configuration object (you can also set this later, but most commonly\r\n * you'd do it on creation). I.e.:\r\n *\r\n * ```js\r\n * const emitter = this.add.particles(100, 300, 'flares', {\r\n *   frame: 'red',\r\n *   angle: { min: -30, max: 30 },\r\n *   speed: 150\r\n * });\r\n * ```\r\n *\r\n * This will create a 'red flare' emitter at 100 x 300.\r\n *\r\n * Please update your code to ensure it adheres to the new function signatures.\r\n *\r\n * @class ParticleEmitter\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects.Particles\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @extends Phaser.GameObjects.Components.AlphaSingle\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Texture\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y] - The vertical position of this Game Object in the world.\r\n * @param {(string|Phaser.Textures.Texture)} [texture] - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {Phaser.Types.GameObjects.Particles.ParticleEmitterConfig} [config] - Settings for this emitter.\r\n */\r\nvar ParticleEmitter = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.AlphaSingle,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.Mask,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.ScrollFactor,\r\n        Components.Texture,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        Render\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function ParticleEmitter (scene, x, y, texture, config)\r\n    {\r\n        GameObject.call(this, scene, 'ParticleEmitter');\r\n\r\n        /**\r\n         * The Particle Class which will be emitted by this Emitter.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#particleClass\r\n         * @type {function}\r\n         * @default Phaser.GameObjects.Particles.Particle\r\n         * @since 3.0.0\r\n         * @see Phaser.Types.GameObjects.Particles.ParticleClassConstructor\r\n         */\r\n        this.particleClass = Particle;\r\n\r\n        /**\r\n         * An internal object holding the configuration for the Emitter.\r\n         *\r\n         * These are populated as part of the Emitter configuration parsing.\r\n         *\r\n         * You typically do not access them directly, but instead use the\r\n         * `ParticleEmitter.setConfig` or `ParticleEmitter.updateConfig` methods.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#config\r\n         * @type {Phaser.Types.GameObjects.Particles.ParticleEmitterConfig}\r\n         * @since 3.85.0\r\n         */\r\n        this.config = null;\r\n            \r\n        /**\r\n         * An internal object holding all of the EmitterOp instances.\r\n         *\r\n         * These are populated as part of the Emitter configuration parsing.\r\n         *\r\n         * You typically do not access them directly, but instead use the\r\n         * provided getters and setters on this class, such as `ParticleEmitter.speedX` etc.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#ops\r\n         * @type {Phaser.Types.GameObjects.Particles.ParticleEmitterOps}\r\n         * @since 3.60.0\r\n         */\r\n        this.ops = {\r\n            accelerationX: new EmitterOp('accelerationX', 0),\r\n            accelerationY: new EmitterOp('accelerationY', 0),\r\n            alpha: new EmitterOp('alpha', 1),\r\n            angle: new EmitterOp('angle', { min: 0, max: 360 }, true),\r\n            bounce: new EmitterOp('bounce', 0),\r\n            color: new EmitterColorOp('color'),\r\n            delay: new EmitterOp('delay', 0, true),\r\n            hold: new EmitterOp('hold', 0, true),\r\n            lifespan: new EmitterOp('lifespan', 1000, true),\r\n            maxVelocityX: new EmitterOp('maxVelocityX', 10000),\r\n            maxVelocityY: new EmitterOp('maxVelocityY', 10000),\r\n            moveToX: new EmitterOp('moveToX', 0),\r\n            moveToY: new EmitterOp('moveToY', 0),\r\n            quantity: new EmitterOp('quantity', 1, true),\r\n            rotate: new EmitterOp('rotate', 0),\r\n            scaleX: new EmitterOp('scaleX', 1),\r\n            scaleY: new EmitterOp('scaleY', 1),\r\n            speedX: new EmitterOp('speedX', 0, true),\r\n            speedY: new EmitterOp('speedY', 0, true),\r\n            tint: new EmitterOp('tint', 0xffffff),\r\n            x: new EmitterOp('x', 0),\r\n            y: new EmitterOp('y', 0)\r\n        };\r\n\r\n        /**\r\n         * A radial emitter will emit particles in all directions between angle min and max,\r\n         * using {@link Phaser.GameObjects.Particles.ParticleEmitter#speed} as the value. If set to false then this acts as a point Emitter.\r\n         * A point emitter will emit particles only in the direction derived from the speedX and speedY values.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#radial\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#setRadial\r\n         */\r\n        this.radial = true;\r\n\r\n        /**\r\n         * Horizontal acceleration applied to emitted particles, in pixels per second squared.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#gravityX\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#setGravity\r\n         */\r\n        this.gravityX = 0;\r\n\r\n        /**\r\n         * Vertical acceleration applied to emitted particles, in pixels per second squared.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#gravityY\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#setGravity\r\n         */\r\n        this.gravityY = 0;\r\n\r\n        /**\r\n         * Whether accelerationX and accelerationY are non-zero. Set automatically during configuration.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#acceleration\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.acceleration = false;\r\n\r\n        /**\r\n         * Whether moveToX and moveToY are set. Set automatically during configuration.\r\n         *\r\n         * When true the particles move toward the moveToX and moveToY coordinates and arrive at the end of their life.\r\n         * Emitter angle, speedX, and speedY are ignored.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#moveTo\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.moveTo = false;\r\n\r\n        /**\r\n         * A function to call when a particle is emitted.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#emitCallback\r\n         * @type {?Phaser.Types.GameObjects.Particles.ParticleEmitterCallback}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.emitCallback = null;\r\n\r\n        /**\r\n         * The calling context for {@link Phaser.GameObjects.Particles.ParticleEmitter#emitCallback}.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#emitCallbackScope\r\n         * @type {?*}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.emitCallbackScope = null;\r\n\r\n        /**\r\n         * A function to call when a particle dies.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#deathCallback\r\n         * @type {?Phaser.Types.GameObjects.Particles.ParticleDeathCallback}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.deathCallback = null;\r\n\r\n        /**\r\n         * The calling context for {@link Phaser.GameObjects.Particles.ParticleEmitter#deathCallback}.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#deathCallbackScope\r\n         * @type {?*}\r\n         * @default null\r\n         * @since 3.0.0\r\n         */\r\n        this.deathCallbackScope = null;\r\n\r\n        /**\r\n         * Set to hard limit the amount of particle objects this emitter is allowed to create\r\n         * in total. This is the number of `Particle` instances it can create, not the number\r\n         * of 'alive' particles.\r\n         *\r\n         * 0 means unlimited.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#maxParticles\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.maxParticles = 0;\r\n\r\n        /**\r\n         * The maximum number of alive and rendering particles this emitter will update.\r\n         * When this limit is reached, a particle needs to die before another can be emitted.\r\n         *\r\n         * 0 means no limits.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#maxAliveParticles\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.60.0\r\n         */\r\n        this.maxAliveParticles = 0;\r\n\r\n        /**\r\n         * If set, either via the Emitter config, or by directly setting this property,\r\n         * the Particle Emitter will stop emitting particles once this total has been\r\n         * reached. It will then enter a 'stopped' state, firing the `STOP`\r\n         * event. Note that entering a stopped state doesn't mean all the particles\r\n         * have finished, just that it's not emitting any further ones.\r\n         *\r\n         * To know when the final particle expires, listen for the COMPLETE event.\r\n         *\r\n         * Use this if you wish to launch an exact number of particles and then stop\r\n         * your emitter afterwards.\r\n         *\r\n         * The counter is reset each time the `ParticleEmitter.start` method is called.\r\n         *\r\n         * 0 means the emitter will not stop based on total emitted particles.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#stopAfter\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.60.0\r\n         */\r\n        this.stopAfter = 0;\r\n\r\n        /**\r\n         * The number of milliseconds this emitter will emit particles for when in flow mode,\r\n         * before it stops emission. A value of 0 (the default) means there is no duration.\r\n         *\r\n         * When the duration expires the `STOP` event is emitted. Note that entering a\r\n         * stopped state doesn't mean all the particles have finished, just that it's\r\n         * not emitting any further ones.\r\n         *\r\n         * To know when the final particle expires, listen for the COMPLETE event.\r\n         *\r\n         * The counter is reset each time the `ParticleEmitter.start` method is called.\r\n         *\r\n         * 0 means the emitter will not stop based on duration.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#duration\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.60.0\r\n         */\r\n        this.duration = 0;\r\n\r\n        /**\r\n         * For a flow emitter, the time interval (>= 0) between particle flow cycles in ms.\r\n         * A value of 0 means there is one particle flow cycle for each logic update (the maximum flow frequency). This is the default setting.\r\n         * For an exploding emitter, this value will be -1.\r\n         * Calling {@link Phaser.GameObjects.Particles.ParticleEmitter#flow} also puts the emitter in flow mode (frequency >= 0).\r\n         * Calling {@link Phaser.GameObjects.Particles.ParticleEmitter#explode} also puts the emitter in explode mode (frequency = -1).\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#frequency\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#setFrequency\r\n         */\r\n        this.frequency = 0;\r\n\r\n        /**\r\n         * Controls if the emitter is currently emitting a particle flow (when frequency >= 0).\r\n         *\r\n         * Already alive particles will continue to update until they expire.\r\n         *\r\n         * Controlled by {@link Phaser.GameObjects.Particles.ParticleEmitter#start} and {@link Phaser.GameObjects.Particles.ParticleEmitter#stop}.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#emitting\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         */\r\n        this.emitting = true;\r\n\r\n        /**\r\n         * Newly emitted particles are added to the top of the particle list, i.e. rendered above those already alive.\r\n         *\r\n         * Set to false to send them to the back.\r\n         *\r\n         * Also see the `sortOrder` property for more complex particle sorting.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#particleBringToTop\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         */\r\n        this.particleBringToTop = true;\r\n\r\n        /**\r\n         * The time rate applied to active particles, affecting lifespan, movement, and tweens. Values larger than 1 are faster than normal.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#timeScale\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.0.0\r\n         */\r\n        this.timeScale = 1;\r\n\r\n        /**\r\n         * An array containing Particle Emission Zones. These can be either EdgeZones or RandomZones.\r\n         *\r\n         * Particles are emitted from a randomly selected zone from this array.\r\n         *\r\n         * Prior to Phaser v3.60 an Emitter could only have one single Emission Zone.\r\n         * In 3.60 they can now have an array of Emission Zones.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#emitZones\r\n         * @type {Phaser.Types.GameObjects.Particles.EmitZoneObject[]}\r\n         * @since 3.60.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#setEmitZone\r\n         */\r\n        this.emitZones = [];\r\n\r\n        /**\r\n         * An array containing Particle Death Zone objects. A particle is immediately killed as soon as its x/y coordinates\r\n         * intersect with any of the configured Death Zones.\r\n         *\r\n         * Prior to Phaser v3.60 an Emitter could only have one single Death Zone.\r\n         * In 3.60 they can now have an array of Death Zones.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#deathZones\r\n         * @type {Phaser.GameObjects.Particles.Zones.DeathZone[]}\r\n         * @since 3.60.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#setDeathZone\r\n         */\r\n        this.deathZones = [];\r\n\r\n        /**\r\n         * An optional Rectangle object that is used during rendering to cull Particles from\r\n         * display. For example, if your particles are limited to only move within a 300x300\r\n         * sized area from their origin, then you can set this Rectangle to those dimensions.\r\n         *\r\n         * The renderer will check to see if the `viewBounds` Rectangle intersects with the\r\n         * Camera bounds during the render step and if not it will skip rendering the Emitter\r\n         * entirely.\r\n         *\r\n         * This allows you to create many emitters in a Scene without the cost of\r\n         * rendering if the contents aren't visible.\r\n         *\r\n         * Note that the Emitter will not perform any checks to see if the Particles themselves\r\n         * are outside of these bounds, or not. It will simply check the bounds against the\r\n         * camera. Use the `getBounds` method with the `advance` parameter to help define\r\n         * the location and placement of the view bounds.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#viewBounds\r\n         * @type {?Phaser.Geom.Rectangle}\r\n         * @default null\r\n         * @since 3.60.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#setViewBounds\r\n         */\r\n        this.viewBounds = null;\r\n\r\n        /**\r\n         * A Game Object whose position is used as the particle origin.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#follow\r\n         * @type {?Phaser.Types.Math.Vector2Like}\r\n         * @default null\r\n         * @since 3.0.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#startFollow\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#stopFollow\r\n         */\r\n        this.follow = null;\r\n\r\n        /**\r\n         * The offset of the particle origin from the {@link Phaser.GameObjects.Particles.ParticleEmitter#follow} target.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#followOffset\r\n         * @type {Phaser.Math.Vector2}\r\n         * @since 3.0.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#startFollow\r\n         */\r\n        this.followOffset = new Vector2();\r\n\r\n        /**\r\n         * Whether the emitter's {@link Phaser.GameObjects.Particles.ParticleEmitter#visible} state will track\r\n         * the {@link Phaser.GameObjects.Particles.ParticleEmitter#follow} target's visibility state.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#trackVisible\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#startFollow\r\n         */\r\n        this.trackVisible = false;\r\n\r\n        /**\r\n         * The texture frames assigned to particles.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#frames\r\n         * @type {Phaser.Textures.Frame[]}\r\n         * @since 3.0.0\r\n         */\r\n        this.frames = [];\r\n\r\n        /**\r\n         * Whether texture {@link Phaser.GameObjects.Particles.ParticleEmitter#frames} are selected at random.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#randomFrame\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#setEmitterFrame\r\n         */\r\n        this.randomFrame = true;\r\n\r\n        /**\r\n         * The number of consecutive particles that receive a single texture frame (per frame cycle).\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#frameQuantity\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.0.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#setEmitterFrame\r\n         */\r\n        this.frameQuantity = 1;\r\n\r\n        /**\r\n         * The animations assigned to particles.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#anims\r\n         * @type {string[]}\r\n         * @since 3.60.0\r\n         */\r\n        this.anims = [];\r\n\r\n        /**\r\n         * Whether animations {@link Phaser.GameObjects.Particles.ParticleEmitter#anims} are selected at random.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#randomAnim\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.60.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#setAnim\r\n         */\r\n        this.randomAnim = true;\r\n\r\n        /**\r\n         * The number of consecutive particles that receive a single animation (per frame cycle).\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#animQuantity\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.60.0\r\n         * @see Phaser.GameObjects.Particles.ParticleEmitter#setAnim\r\n         */\r\n        this.animQuantity = 1;\r\n\r\n        /**\r\n         * An array containing all currently inactive Particle instances.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#dead\r\n         * @type {Phaser.GameObjects.Particles.Particle[]}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this.dead = [];\r\n\r\n        /**\r\n         * An array containing all currently live and rendering Particle instances.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#alive\r\n         * @type {Phaser.GameObjects.Particles.Particle[]}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this.alive = [];\r\n\r\n        /**\r\n         * Internal array that holds counter data:\r\n         *\r\n         * 0 - flowCounter - The time until next flow cycle.\r\n         * 1 - frameCounter - Counts up to {@link Phaser.GameObjects.Particles.ParticleEmitter#frameQuantity}.\r\n         * 2 - animCounter - Counts up to animQuantity.\r\n         * 3 - elapsed - The time remaining until the `duration` limit is reached.\r\n         * 4 - stopCounter - The number of particles remaining until `stopAfter` limit is reached.\r\n         * 5 - completeFlag - Has the COMPLETE event been emitted?\r\n         * 6 - zoneIndex - The emit zone index counter.\r\n         * 7 - zoneTotal - The emit zone total counter.\r\n         * 8 - currentFrame - The current texture frame, as an index of {@link Phaser.GameObjects.Particles.ParticleEmitter#frames}.\r\n         * 9 - currentAnim - The current animation, as an index of {@link Phaser.GameObjects.Particles.ParticleEmitter#anims}.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#counters\r\n         * @type {Float32Array}\r\n         * @private\r\n         * @since 3.60.0\r\n         */\r\n        this.counters = new Float32Array(10);\r\n\r\n        /**\r\n         * An internal property used to tell when the emitter is in fast-forwarc mode.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#skipping\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.60.0\r\n         */\r\n        this.skipping = false;\r\n\r\n        /**\r\n         * An internal Transform Matrix used to cache this emitters world matrix.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#worldMatrix\r\n         * @type {Phaser.GameObjects.Components.TransformMatrix}\r\n         * @since 3.60.0\r\n         */\r\n        this.worldMatrix = new TransformMatrix();\r\n\r\n        /**\r\n         * Optionally sort the particles before they render based on this\r\n         * property. The property must exist on the `Particle` class, such\r\n         * as `y`, `lifeT`, `scaleX`, etc.\r\n         *\r\n         * When set this overrides the `particleBringToTop` setting.\r\n         *\r\n         * To reset this and disable sorting, so this property to an empty string.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#sortProperty\r\n         * @type {string}\r\n         * @since 3.60.0\r\n         */\r\n        this.sortProperty = '';\r\n\r\n        /**\r\n         * When `sortProperty` is defined this controls the sorting order,\r\n         * either ascending or descending. Toggle to control the visual effect.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#sortOrderAsc\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this.sortOrderAsc = true;\r\n\r\n        /**\r\n         * The callback used to sort the particles. Only used if `sortProperty`\r\n         * has been set. Set this via the `setSortCallback` method.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#sortCallback\r\n         * @type {?Phaser.Types.GameObjects.Particles.ParticleSortCallback}\r\n         * @since 3.60.0\r\n         */\r\n        this.sortCallback = this.depthSortCallback;\r\n\r\n        /**\r\n         * A list of Particle Processors being managed by this Emitter.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#processors\r\n         * @type {Phaser.Structs.List.<Phaser.GameObjects.Particles.ParticleProcessor>}\r\n         * @since 3.60.0\r\n         */\r\n        this.processors = new List(this);\r\n\r\n        /**\r\n         * The tint fill mode used by the Particles in this Emitter.\r\n         *\r\n         * `false` = An additive tint (the default), where vertices colors are blended with the texture.\r\n         * `true` = A fill tint, where the vertices colors replace the texture, but respects texture alpha.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleEmitter#tintFill\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.60.0\r\n         */\r\n        this.tintFill = false;\r\n\r\n        this.initPipeline();\r\n        this.initPostPipeline();\r\n\r\n        this.setPosition(x, y);\r\n        this.setTexture(texture);\r\n\r\n        if (config)\r\n        {\r\n            this.setConfig(config);\r\n        }\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    addedToScene: function ()\r\n    {\r\n        this.scene.sys.updateList.add(this);\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    removedFromScene: function ()\r\n    {\r\n        this.scene.sys.updateList.remove(this);\r\n    },\r\n\r\n    /**\r\n     * Takes an Emitter Configuration file and resets this Emitter, using any\r\n     * properties defined in the config to then set it up again.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setConfig\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.ParticleEmitterConfig} config - Settings for this emitter.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setConfig: function (config)\r\n    {\r\n        if (!config)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        this.config = config;\r\n\r\n        var i = 0;\r\n        var key = '';\r\n\r\n        var ops = this.ops;\r\n\r\n        for (i = 0; i < configOpMap.length; i++)\r\n        {\r\n            key = configOpMap[i];\r\n\r\n            ops[key].loadConfig(config);\r\n        }\r\n\r\n        for (i = 0; i < configFastMap.length; i++)\r\n        {\r\n            key = configFastMap[i];\r\n\r\n            //  Only update properties from their current state if they exist in the given config\r\n            if (HasValue(config, key))\r\n            {\r\n                this[key] = GetFastValue(config, key);\r\n            }\r\n        }\r\n\r\n        this.acceleration = (this.accelerationX !== 0 || this.accelerationY !== 0);\r\n\r\n        this.moveTo = (this.moveToX !== 0 && this.moveToY !== 0);\r\n\r\n        //  Special 'speed' override\r\n\r\n        if (HasValue(config, 'speed'))\r\n        {\r\n            ops.speedX.loadConfig(config, 'speed');\r\n            ops.speedY.active = false;\r\n        }\r\n\r\n        //  If you specify speedX, speedY or moveTo then it changes the emitter from radial to a point emitter\r\n        if (HasAny(config, [ 'speedX', 'speedY' ]) || this.moveTo)\r\n        {\r\n            this.radial = false;\r\n        }\r\n\r\n        //  Special 'scale' override\r\n\r\n        if (HasValue(config, 'scale'))\r\n        {\r\n            ops.scaleX.loadConfig(config, 'scale');\r\n            ops.scaleY.active = false;\r\n        }\r\n\r\n        if (HasValue(config, 'callbackScope'))\r\n        {\r\n            var callbackScope = GetFastValue(config, 'callbackScope', null);\r\n\r\n            this.emitCallbackScope = callbackScope;\r\n            this.deathCallbackScope = callbackScope;\r\n        }\r\n\r\n        if (HasValue(config, 'emitZone'))\r\n        {\r\n            this.addEmitZone(config.emitZone);\r\n        }\r\n\r\n        if (HasValue(config, 'deathZone'))\r\n        {\r\n            this.addDeathZone(config.deathZone);\r\n        }\r\n\r\n        if (HasValue(config, 'bounds'))\r\n        {\r\n            var bounds = this.addParticleBounds(config.bounds);\r\n\r\n            bounds.collideLeft = GetFastValue(config, 'collideLeft', true);\r\n            bounds.collideRight = GetFastValue(config, 'collideRight', true);\r\n            bounds.collideTop = GetFastValue(config, 'collideTop', true);\r\n            bounds.collideBottom = GetFastValue(config, 'collideBottom', true);\r\n        }\r\n\r\n        if (HasValue(config, 'followOffset'))\r\n        {\r\n            this.followOffset.setFromObject(GetFastValue(config, 'followOffset', 0));\r\n        }\r\n\r\n        if (HasValue(config, 'texture'))\r\n        {\r\n            this.setTexture(config.texture);\r\n        }\r\n\r\n        if (HasValue(config, 'frame'))\r\n        {\r\n            this.setEmitterFrame(config.frame);\r\n        }\r\n        else if (HasValue(config, 'anim'))\r\n        {\r\n            this.setAnim(config.anim);\r\n        }\r\n\r\n        if (HasValue(config, 'reserve'))\r\n        {\r\n            this.reserve(config.reserve);\r\n        }\r\n\r\n        if (HasValue(config, 'advance'))\r\n        {\r\n            this.fastForward(config.advance);\r\n        }\r\n\r\n        this.resetCounters(this.frequency, this.emitting);\r\n\r\n        if (this.emitting)\r\n        {\r\n            this.emit(Events.START, this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Takes an existing Emitter Configuration file and updates this Emitter.\r\n     * Existing properties are overriden while new properties are added. The\r\n     * updated configuration is then passed to the `setConfig` method to reset\r\n     * the Emitter with the updated configuration.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#updateConfig\r\n     * @since 3.85.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.ParticleEmitterConfig} config - Settings for this emitter.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    updateConfig: function (config)\r\n    {\r\n        if (config)\r\n        {\r\n            if (!this.config)\r\n            {\r\n                this.setConfig(config);\r\n            }\r\n            else\r\n            {\r\n                this.setConfig(MergeRight(this.config, config));\r\n            }\r\n        }\r\n        \r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Creates a description of this emitter suitable for JSON serialization.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.GameObjects.JSONGameObject} A JSON representation of the Game Object.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        var output = ComponentsToJSON(this);\r\n\r\n        var i = 0;\r\n        var key = '';\r\n\r\n        for (i = 0; i < configFastMap.length; i++)\r\n        {\r\n            key = configFastMap[i];\r\n\r\n            output[key] = this[key];\r\n        }\r\n\r\n        var ops = this.ops;\r\n\r\n        for (i = 0; i < configOpMap.length; i++)\r\n        {\r\n            key = configOpMap[i];\r\n\r\n            if (ops[key])\r\n            {\r\n                output[key] = ops[key].toJSON();\r\n            }\r\n        }\r\n\r\n        //  special handlers\r\n        if (!ops.speedY.active)\r\n        {\r\n            delete output.speedX;\r\n            output.speed = ops.speedX.toJSON();\r\n        }\r\n\r\n        if (this.scaleX === this.scaleY)\r\n        {\r\n            delete output.scaleX;\r\n            delete output.scaleY;\r\n            output.scale = ops.scaleX.toJSON();\r\n        }\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Resets the internal counter trackers.\r\n     *\r\n     * You shouldn't ever need to call this directly.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#resetCounters\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} frequency - The frequency counter.\r\n     * @param {boolean} on - Set the complete flag.\r\n     */\r\n    resetCounters: function (frequency, on)\r\n    {\r\n        var counters = this.counters;\r\n\r\n        counters.fill(0);\r\n\r\n        counters[0] = frequency;\r\n\r\n        if (on)\r\n        {\r\n            counters[5] = 1;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Continuously moves the particle origin to follow a Game Object's position.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#startFollow\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.Math.Vector2Like} target - The Object to follow.\r\n     * @param {number} [offsetX=0] - Horizontal offset of the particle origin from the Game Object.\r\n     * @param {number} [offsetY=0] - Vertical offset of the particle origin from the Game Object.\r\n     * @param {boolean} [trackVisible=false] - Whether the emitter's visible state will track the target's visible state.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    startFollow: function (target, offsetX, offsetY, trackVisible)\r\n    {\r\n        if (offsetX === undefined) { offsetX = 0; }\r\n        if (offsetY === undefined) { offsetY = 0; }\r\n        if (trackVisible === undefined) { trackVisible = false; }\r\n\r\n        this.follow = target;\r\n        this.followOffset.set(offsetX, offsetY);\r\n        this.trackVisible = trackVisible;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stops following a Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#stopFollow\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    stopFollow: function ()\r\n    {\r\n        this.follow = null;\r\n        this.followOffset.set(0, 0);\r\n        this.trackVisible = false;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Chooses a texture frame from {@link Phaser.GameObjects.Particles.ParticleEmitter#frames}.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#getFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Textures.Frame} The texture frame.\r\n     */\r\n    getFrame: function ()\r\n    {\r\n        var frames = this.frames;\r\n        var len = frames.length;\r\n        var current;\r\n\r\n        if (len === 1)\r\n        {\r\n            current = frames[0];\r\n        }\r\n        else if (this.randomFrame)\r\n        {\r\n            current = GetRandom(frames);\r\n        }\r\n        else\r\n        {\r\n            current = frames[this.currentFrame];\r\n\r\n            this.frameCounter++;\r\n\r\n            if (this.frameCounter === this.frameQuantity)\r\n            {\r\n                this.frameCounter = 0;\r\n\r\n                this.currentFrame++;\r\n\r\n                if (this.currentFrame === len)\r\n                {\r\n                    this.currentFrame = 0;\r\n                }\r\n            }\r\n        }\r\n\r\n        return this.texture.get(current);\r\n    },\r\n\r\n    /**\r\n     * Sets a pattern for assigning texture frames to emitted particles. The `frames` configuration can be any of:\r\n     *\r\n     * frame: 0\r\n     * frame: 'red'\r\n     * frame: [ 0, 1, 2, 3 ]\r\n     * frame: [ 'red', 'green', 'blue', 'pink', 'white' ]\r\n     * frame: { frames: [ 'red', 'green', 'blue', 'pink', 'white' ], [cycle: bool], [quantity: int] }\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setEmitterFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(array|string|number|Phaser.Types.GameObjects.Particles.ParticleEmitterFrameConfig)} frames - One or more texture frames, or a configuration object.\r\n     * @param {boolean} [pickRandom=true] - Whether frames should be assigned at random from `frames`.\r\n     * @param {number} [quantity=1] - The number of consecutive particles that will receive each frame.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setEmitterFrame: function (frames, pickRandom, quantity)\r\n    {\r\n        if (pickRandom === undefined) { pickRandom = true; }\r\n        if (quantity === undefined) { quantity = 1; }\r\n\r\n        this.randomFrame = pickRandom;\r\n        this.frameQuantity = quantity;\r\n\r\n        this.currentFrame = 0;\r\n\r\n        var t = typeof (frames);\r\n\r\n        this.frames.length = 0;\r\n\r\n        if (Array.isArray(frames))\r\n        {\r\n            this.frames = this.frames.concat(frames);\r\n        }\r\n        else if (t === 'string' || t === 'number')\r\n        {\r\n            this.frames.push(frames);\r\n        }\r\n        else if (t === 'object')\r\n        {\r\n            var frameConfig = frames;\r\n\r\n            frames = GetFastValue(frameConfig, 'frames', null);\r\n\r\n            if (frames)\r\n            {\r\n                this.frames = this.frames.concat(frames);\r\n            }\r\n\r\n            var isCycle = GetFastValue(frameConfig, 'cycle', false);\r\n\r\n            this.randomFrame = (isCycle) ? false : true;\r\n\r\n            this.frameQuantity = GetFastValue(frameConfig, 'quantity', quantity);\r\n        }\r\n\r\n        if (this.frames.length === 1)\r\n        {\r\n            this.frameQuantity = 1;\r\n            this.randomFrame = false;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Chooses an animation from {@link Phaser.GameObjects.Particles.ParticleEmitter#anims}, if populated.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#getAnim\r\n     * @since 3.60.0\r\n     *\r\n     * @return {string} The animation to play, or `null` if there aren't any.\r\n     */\r\n    getAnim: function ()\r\n    {\r\n        var anims = this.anims;\r\n        var len = anims.length;\r\n\r\n        if (len === 0)\r\n        {\r\n            return null;\r\n        }\r\n        else if (len === 1)\r\n        {\r\n            return anims[0];\r\n        }\r\n        else if (this.randomAnim)\r\n        {\r\n            return GetRandom(anims);\r\n        }\r\n        else\r\n        {\r\n            var anim = anims[this.currentAnim];\r\n\r\n            this.animCounter++;\r\n\r\n            if (this.animCounter >= this.animQuantity)\r\n            {\r\n                this.animCounter = 0;\r\n                this.currentAnim = Wrap(this.currentAnim + 1, 0, len);\r\n            }\r\n\r\n            return anim;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Sets a pattern for assigning animations to emitted particles. The `anims` configuration can be any of:\r\n     *\r\n     * anim: 'red'\r\n     * anim: [ 'red', 'green', 'blue', 'pink', 'white' ]\r\n     * anim: { anims: [ 'red', 'green', 'blue', 'pink', 'white' ], [cycle: bool], [quantity: int] }\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setAnim\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(string|string[]|Phaser.Types.GameObjects.Particles.ParticleEmitterAnimConfig)} anims - One or more animations, or a configuration object.\r\n     * @param {boolean} [pickRandom=true] - Whether animations should be assigned at random from `anims`. If a config object is given, this parameter is ignored.\r\n     * @param {number} [quantity=1] - The number of consecutive particles that will receive each animation. If a config object is given, this parameter is ignored.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setAnim: function (anims, pickRandom, quantity)\r\n    {\r\n        if (pickRandom === undefined) { pickRandom = true; }\r\n        if (quantity === undefined) { quantity = 1; }\r\n\r\n        this.randomAnim = pickRandom;\r\n        this.animQuantity = quantity;\r\n\r\n        this.currentAnim = 0;\r\n\r\n        var t = typeof (anims);\r\n\r\n        this.anims.length = 0;\r\n\r\n        if (Array.isArray(anims))\r\n        {\r\n            this.anims = this.anims.concat(anims);\r\n        }\r\n        else if (t === 'string')\r\n        {\r\n            this.anims.push(anims);\r\n        }\r\n        else if (t === 'object')\r\n        {\r\n            var animConfig = anims;\r\n\r\n            anims = GetFastValue(animConfig, 'anims', null);\r\n\r\n            if (anims)\r\n            {\r\n                this.anims = this.anims.concat(anims);\r\n            }\r\n\r\n            var isCycle = GetFastValue(animConfig, 'cycle', false);\r\n\r\n            this.randomAnim = (isCycle) ? false : true;\r\n\r\n            this.animQuantity = GetFastValue(animConfig, 'quantity', quantity);\r\n        }\r\n\r\n        if (this.anims.length === 1)\r\n        {\r\n            this.animQuantity = 1;\r\n            this.randomAnim = false;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Turns {@link Phaser.GameObjects.Particles.ParticleEmitter#radial} particle movement on or off.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setRadial\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} [value=true] - Radial mode (true) or point mode (true).\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setRadial: function (value)\r\n    {\r\n        if (value === undefined) { value = true; }\r\n\r\n        this.radial = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Creates a Particle Bounds processor and adds it to this Emitter.\r\n     *\r\n     * This processor will check to see if any of the active Particles hit\r\n     * the defined boundary, as specified by a Rectangle shape in world-space.\r\n     *\r\n     * If so, they are 'rebounded' back again by having their velocity adjusted.\r\n     *\r\n     * The strength of the rebound is controlled by the `Particle.bounce`\r\n     * property.\r\n     *\r\n     * You should be careful to ensure that you emit particles within a bounds,\r\n     * if set, otherwise it will lead to unpredictable visual results as the\r\n     * particles are hastily repositioned.\r\n     *\r\n     * The Particle Bounds processor is returned from this method. If you wish\r\n     * to modify the area you can directly change its `bounds` property, along\r\n     * with the `collideLeft` etc values.\r\n     *\r\n     * To disable the bounds you can either set its `active` property to `false`,\r\n     * or if you no longer require it, call `ParticleEmitter.removeParticleProcessor`.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#addParticleBounds\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(number|Phaser.Types.GameObjects.Particles.ParticleEmitterBounds|Phaser.Types.GameObjects.Particles.ParticleEmitterBoundsAlt)} x - The x-coordinate of the left edge of the boundary, or an object representing a rectangle.\r\n     * @param {number} [y] - The y-coordinate of the top edge of the boundary.\r\n     * @param {number} [width] - The width of the boundary.\r\n     * @param {number} [height] - The height of the boundary.\r\n     * @param {boolean} [collideLeft=true] - Whether particles interact with the left edge of the bounds.\r\n     * @param {boolean} [collideRight=true] - Whether particles interact with the right edge of the bounds.\r\n     * @param {boolean} [collideTop=true] - Whether particles interact with the top edge of the bounds.\r\n     * @param {boolean} [collideBottom=true] - Whether particles interact with the bottom edge of the bounds.\r\n     *\r\n     * @return {Phaser.GameObjects.Particles.ParticleBounds} The Particle Bounds processor.\r\n     */\r\n    addParticleBounds: function (x, y, width, height, collideLeft, collideRight, collideTop, collideBottom)\r\n    {\r\n        if (typeof x === 'object')\r\n        {\r\n            var obj = x;\r\n\r\n            x = obj.x;\r\n            y = obj.y;\r\n            width = (HasValue(obj, 'w')) ? obj.w : obj.width;\r\n            height = (HasValue(obj, 'h')) ? obj.h : obj.height;\r\n        }\r\n\r\n        return this.addParticleProcessor(new ParticleBounds(x, y, width, height, collideLeft, collideRight, collideTop, collideBottom));\r\n    },\r\n\r\n    /**\r\n     * Sets the initial radial speed of emitted particles.\r\n     *\r\n     * Changes the emitter to radial mode.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setParticleSpeed\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} x - The horizontal speed of the emitted Particles.\r\n     * @param {number} [y=x] - The vertical speed of emitted Particles. If not set it will use the `x` value.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setParticleSpeed: function (x, y)\r\n    {\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.ops.speedX.onChange(x);\r\n\r\n        if (x === y)\r\n        {\r\n            this.ops.speedY.active = false;\r\n        }\r\n        else\r\n        {\r\n            this.ops.speedY.onChange(y);\r\n        }\r\n\r\n        //  If you specify speedX and Y then it changes the emitter from radial to a point emitter\r\n        this.radial = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the vertical and horizontal scale of the emitted particles.\r\n     *\r\n     * You can also set the scale of the entire emitter via `setScale`.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setParticleScale\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [x=1] - The horizontal scale of the emitted Particles.\r\n     * @param {number} [y=x] - The vertical scale of emitted Particles. If not set it will use the `x` value.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setParticleScale: function (x, y)\r\n    {\r\n        if (x === undefined) { x = 1; }\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.ops.scaleX.onChange(x);\r\n        this.ops.scaleY.onChange(y);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the gravity applied to emitted particles.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setParticleGravity\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} x - Horizontal acceleration due to gravity, in pixels per second squared. Set to zero for no gravity.\r\n     * @param {number} y - Vertical acceleration due to gravity, in pixels per second squared. Set to zero for no gravity.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setParticleGravity: function (x, y)\r\n    {\r\n        this.gravityX = x;\r\n        this.gravityY = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the opacity (alpha) of emitted particles.\r\n     *\r\n     * You can also set the alpha of the entire emitter via `setAlpha`.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setParticleAlpha\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType|Phaser.Types.GameObjects.Particles.EmitterOpOnUpdateType)} value - A value between 0 (transparent) and 1 (opaque).\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setParticleAlpha: function (value)\r\n    {\r\n        this.ops.alpha.onChange(value);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the color tint of emitted particles.\r\n     *\r\n     * This is a WebGL only feature.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setParticleTint\r\n     * @since 3.60.0\r\n     * @webglOnly\r\n     *\r\n     * @param {(Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType|Phaser.Types.GameObjects.Particles.EmitterOpOnUpdateType)} value - A value between 0 and 0xffffff.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setParticleTint: function (value)\r\n    {\r\n        this.ops.tint.onChange(value);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the angle of a {@link Phaser.GameObjects.Particles.ParticleEmitter#radial} particle stream.\r\n     *\r\n     * The value is given in degrees using Phaser's right-handed coordinate system.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setEmitterAngle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType} value - The angle of the initial velocity of emitted particles, in degrees.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setEmitterAngle: function (value)\r\n    {\r\n        this.ops.angle.onChange(value);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the lifespan of newly emitted particles in milliseconds.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setParticleLifespan\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType} value - The lifespan of a particle, in ms.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setParticleLifespan: function (value)\r\n    {\r\n        this.ops.lifespan.onChange(value);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the number of particles released at each flow cycle or explosion.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setQuantity\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType} quantity - The number of particles to release at each flow cycle or explosion.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setQuantity: function (quantity)\r\n    {\r\n        this.quantity = quantity;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the emitter's {@link Phaser.GameObjects.Particles.ParticleEmitter#frequency}\r\n     * and {@link Phaser.GameObjects.Particles.ParticleEmitter#quantity}.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setFrequency\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} frequency - The time interval (>= 0) of each flow cycle, in ms; or -1 to put the emitter in explosion mode.\r\n     * @param {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType} [quantity] - The number of particles to release at each flow cycle or explosion.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setFrequency: function (frequency, quantity)\r\n    {\r\n        this.frequency = frequency;\r\n\r\n        this.flowCounter = (frequency > 0) ? frequency : 0;\r\n\r\n        if (quantity)\r\n        {\r\n            this.quantity = quantity;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds a new Particle Death Zone to this Emitter.\r\n     *\r\n     * A particle is immediately killed as soon as its x/y coordinates intersect\r\n     * with any of the configured Death Zones.\r\n     *\r\n     * The `source` can be a Geometry Shape, such as a Circle, Rectangle or Triangle.\r\n     * Any valid object from the `Phaser.Geometry` namespace is allowed, as long as\r\n     * it supports a `contains` function. You can set the `type` to be either `onEnter`\r\n     * or `onLeave`.\r\n     *\r\n     * A single Death Zone instance can only exist once within this Emitter, but can belong\r\n     * to multiple Emitters.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#addDeathZone\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.DeathZoneObject|Phaser.Types.GameObjects.Particles.DeathZoneObject[]} config - A Death Zone configuration object, a Death Zone instance, a valid Geometry object or an array of them.\r\n     *\r\n     * @return {Phaser.GameObjects.Particles.Zones.DeathZone[]} An array of the Death Zones that were added to this Emitter.\r\n     */\r\n    addDeathZone: function (config)\r\n    {\r\n        if (!Array.isArray(config))\r\n        {\r\n            config = [ config ];\r\n        }\r\n\r\n        var zone;\r\n        var output = [];\r\n\r\n        for (var i = 0; i < config.length; i++)\r\n        {\r\n            zone = config[i];\r\n\r\n            if (zone instanceof DeathZone)\r\n            {\r\n                output.push(zone);\r\n            }\r\n            else if (typeof zone.contains === 'function')\r\n            {\r\n                zone = new DeathZone(zone, true);\r\n\r\n                output.push(zone);\r\n            }\r\n            else\r\n            {\r\n                var type = GetFastValue(zone, 'type', 'onEnter');\r\n                var source = GetFastValue(zone, 'source', null);\r\n\r\n                if (source && typeof source.contains === 'function')\r\n                {\r\n                    var killOnEnter = (type === 'onEnter') ? true : false;\r\n\r\n                    zone = new DeathZone(source, killOnEnter);\r\n\r\n                    output.push(zone);\r\n                }\r\n            }\r\n        }\r\n\r\n        this.deathZones = this.deathZones.concat(output);\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Removes the given Particle Death Zone from this Emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#removeDeathZone\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Zones.DeathZone} zone - The Death Zone that should be removed from this Emitter.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    removeDeathZone: function (zone)\r\n    {\r\n        Remove(this.deathZones, zone);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Clear all Death Zones from this Particle Emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#clearDeathZones\r\n     * @since 3.70.0\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    clearDeathZones: function ()\r\n    {\r\n        this.deathZones.length = 0;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds a new Particle Emission Zone to this Emitter.\r\n     *\r\n     * An {@link Phaser.Types.GameObjects.Particles.ParticleEmitterEdgeZoneConfig EdgeZone} places particles on its edges.\r\n     * Its {@link Phaser.Types.GameObjects.Particles.EdgeZoneSource source} can be a Curve, Path, Circle, Ellipse, Line, Polygon, Rectangle, or Triangle;\r\n     * or any object with a suitable {@link Phaser.Types.GameObjects.Particles.EdgeZoneSourceCallback getPoints} method.\r\n     *\r\n     * A {@link Phaser.Types.GameObjects.Particles.ParticleEmitterRandomZoneConfig RandomZone} places the particles randomly within its interior.\r\n     * Its {@link Phaser.GameObjects.Particles.Zones.RandomZone#source source} can be a Circle, Ellipse, Line, Polygon, Rectangle, or Triangle; or any object with a suitable {@link Phaser.Types.GameObjects.Particles.RandomZoneSourceCallback getRandomPoint} method.\r\n     *\r\n     * An Emission Zone can only exist once within this Emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#addEmitZone\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.EmitZoneData|Phaser.Types.GameObjects.Particles.EmitZoneData[]} zone - An Emission Zone configuration object, a RandomZone or EdgeZone instance, or an array of them.\r\n     *\r\n     * @return {Phaser.Types.GameObjects.Particles.EmitZoneObject[]} An array of the Emission Zones that were added to this Emitter.\r\n     */\r\n    addEmitZone: function (config)\r\n    {\r\n        if (!Array.isArray(config))\r\n        {\r\n            config = [ config ];\r\n        }\r\n\r\n        var zone;\r\n        var output = [];\r\n\r\n        for (var i = 0; i < config.length; i++)\r\n        {\r\n            zone = config[i];\r\n\r\n            if (zone instanceof RandomZone || zone instanceof EdgeZone)\r\n            {\r\n                output.push(zone);\r\n            }\r\n            else\r\n            {\r\n                //  Where source = Geom like Circle, or a Path or Curve\r\n                //  emitZone: { type: 'random', source: X }\r\n                //  emitZone: { type: 'edge', source: X, quantity: 32, [stepRate=0], [yoyo=false], [seamless=true], [total=1] }\r\n\r\n                var source = GetFastValue(zone, 'source', null);\r\n\r\n                if (source)\r\n                {\r\n                    var type = GetFastValue(zone, 'type', 'random');\r\n\r\n                    if (type === 'random' && typeof source.getRandomPoint === 'function')\r\n                    {\r\n                        zone = new RandomZone(source);\r\n\r\n                        output.push(zone);\r\n                    }\r\n                    else if (type === 'edge' && typeof source.getPoints === 'function')\r\n                    {\r\n                        var quantity = GetFastValue(zone, 'quantity', 1);\r\n                        var stepRate = GetFastValue(zone, 'stepRate', 0);\r\n                        var yoyo = GetFastValue(zone, 'yoyo', false);\r\n                        var seamless = GetFastValue(zone, 'seamless', true);\r\n                        var total = GetFastValue(zone, 'total', -1);\r\n\r\n                        zone = new EdgeZone(source, quantity, stepRate, yoyo, seamless, total);\r\n\r\n                        output.push(zone);\r\n                    }\r\n                }\r\n            }\r\n        }\r\n\r\n        this.emitZones = this.emitZones.concat(output);\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Removes the given Particle Emission Zone from this Emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#removeEmitZone\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Zones.EdgeZone|Phaser.GameObjects.Particles.Zones.RandomZone} zone - The Emission Zone that should be removed from this Emitter.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    removeEmitZone: function (zone)\r\n    {\r\n        Remove(this.emitZones, zone);\r\n\r\n        this.zoneIndex = 0;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Clear all Emission Zones from this Particle Emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#clearEmitZones\r\n     * @since 3.70.0\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    clearEmitZones: function ()\r\n    {\r\n        this.emitZones.length = 0;\r\n\r\n        this.zoneIndex = 0;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Takes the given particle and sets its x/y coordinates to match the next available\r\n     * emission zone, if any have been configured. This method is called automatically\r\n     * as part of the `Particle.fire` process.\r\n     *\r\n     * The Emit Zones are iterated in sequence. Once a zone has had a particle emitted\r\n     * from it, then the next zone is used and so on, in a loop.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#getEmitZone\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The particle to set the emission zone for.\r\n     */\r\n    getEmitZone: function (particle)\r\n    {\r\n        var zones = this.emitZones;\r\n        var len = zones.length;\r\n\r\n        if (len === 0)\r\n        {\r\n            return;\r\n        }\r\n        else\r\n        {\r\n            var zone = zones[this.zoneIndex];\r\n\r\n            zone.getPoint(particle);\r\n\r\n            if (zone.total > -1)\r\n            {\r\n                this.zoneTotal++;\r\n\r\n                if (this.zoneTotal === zone.total)\r\n                {\r\n                    this.zoneTotal = 0;\r\n\r\n                    this.zoneIndex++;\r\n\r\n                    if (this.zoneIndex === len)\r\n                    {\r\n                        this.zoneIndex = 0;\r\n                    }\r\n                }\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Takes the given particle and checks to see if any of the configured Death Zones\r\n     * will kill it and returns the result. This method is called automatically as part\r\n     * of the `Particle.update` process.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#getDeathZone\r\n     * @fires Phaser.GameObjects.Particles.Events#DEATH_ZONE\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The particle to test against the Death Zones.\r\n     *\r\n     * @return {boolean} `true` if the particle should be killed, otherwise `false`.\r\n     */\r\n    getDeathZone: function (particle)\r\n    {\r\n        var zones = this.deathZones;\r\n\r\n        for (var i = 0; i < zones.length; i++)\r\n        {\r\n            var zone = zones[i];\r\n\r\n            if (zone.willKill(particle))\r\n            {\r\n                this.emit(Events.DEATH_ZONE, this, particle, zone);\r\n\r\n                return true;\r\n            }\r\n        }\r\n\r\n        return false;\r\n    },\r\n\r\n    /**\r\n     * Changes the currently active Emission Zone. The zones should have already\r\n     * been added to this Emitter either via the emitter config, or the\r\n     * `addEmitZone` method.\r\n     *\r\n     * Call this method by passing either a numeric zone index value, or\r\n     * the zone instance itself.\r\n     *\r\n     * Prior to v3.60 an Emitter could only have a single Emit Zone and this\r\n     * method was how you set it. From 3.60 and up it now performs a different\r\n     * function and swaps between all available active zones.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setEmitZone\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number|Phaser.GameObjects.Particles.Zones.EdgeZone|Phaser.GameObjects.Particles.Zones.RandomZone} zone - The Emit Zone to set as the active zone.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setEmitZone: function (zone)\r\n    {\r\n        var index;\r\n\r\n        if (isFinite(zone))\r\n        {\r\n            index = zone;\r\n        }\r\n        else\r\n        {\r\n            index = this.emitZones.indexOf(zone);\r\n        }\r\n\r\n        if (index >= 0)\r\n        {\r\n            this.zoneIndex = index;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds a Particle Processor, such as a Gravity Well, to this Emitter.\r\n     *\r\n     * It will start processing particles from the next update as long as its `active`\r\n     * property is set.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#addParticleProcessor\r\n     * @since 3.60.0\r\n     *\r\n     * @generic {Phaser.GameObjects.Particles.ParticleProcessor} T\r\n     * @param {T} processor - The Particle Processor to add to this Emitter Manager.\r\n     *\r\n     * @return {T} The Particle Processor that was added to this Emitter Manager.\r\n     */\r\n    addParticleProcessor: function (processor)\r\n    {\r\n        if (!this.processors.exists(processor))\r\n        {\r\n            if (processor.emitter)\r\n            {\r\n                processor.emitter.removeParticleProcessor(processor);\r\n            }\r\n\r\n            this.processors.add(processor);\r\n\r\n            processor.emitter = this;\r\n        }\r\n\r\n        return processor;\r\n    },\r\n\r\n    /**\r\n     * Removes a Particle Processor from this Emitter.\r\n     *\r\n     * The Processor must belong to this Emitter to be removed.\r\n     *\r\n     * It is not destroyed when removed, allowing you to move it to another Emitter Manager,\r\n     * so if you no longer require it you should call its `destroy` method directly.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#removeParticleProcessor\r\n     * @since 3.60.0\r\n     *\r\n     * @generic {Phaser.GameObjects.Particles.ParticleProcessor} T\r\n     * @param {T} processor - The Particle Processor to remove from this Emitter Manager.\r\n     *\r\n     * @return {?T} The Particle Processor that was removed, or null if it could not be found.\r\n     */\r\n    removeParticleProcessor: function (processor)\r\n    {\r\n        if (this.processors.exists(processor))\r\n        {\r\n            this.processors.remove(processor, true);\r\n\r\n            processor.emitter = null;\r\n        }\r\n\r\n        return processor;\r\n    },\r\n\r\n    /**\r\n     * Gets all active Particle Processors.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#getProcessors\r\n     * @since 3.60.0\r\n     *\r\n     * @return {Phaser.GameObjects.Particles.ParticleProcessor[]} - An array of active Particle Processors.\r\n     */\r\n    getProcessors: function ()\r\n    {\r\n        return this.processors.getAll('active', true);\r\n    },\r\n\r\n    /**\r\n     * Creates a new Gravity Well, adds it to this Emitter and returns a reference to it.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#createGravityWell\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.GravityWellConfig} config - Configuration settings for the Gravity Well to create.\r\n     *\r\n     * @return {Phaser.GameObjects.Particles.GravityWell} The Gravity Well that was created.\r\n     */\r\n    createGravityWell: function (config)\r\n    {\r\n        return this.addParticleProcessor(new GravityWell(config));\r\n    },\r\n\r\n    /**\r\n     * Creates inactive particles and adds them to this emitter's pool.\r\n     *\r\n     * If `ParticleEmitter.maxParticles` is set it will limit the\r\n     * value passed to this method to make sure it's not exceeded.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#reserve\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} count - The number of particles to create.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    reserve: function (count)\r\n    {\r\n        var dead = this.dead;\r\n\r\n        if (this.maxParticles > 0)\r\n        {\r\n            var total = this.getParticleCount();\r\n\r\n            if (total + count > this.maxParticles)\r\n            {\r\n                count = this.maxParticles - (total + count);\r\n            }\r\n        }\r\n\r\n        for (var i = 0; i < count; i++)\r\n        {\r\n            dead.push(new this.particleClass(this));\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Gets the number of active (in-use) particles in this emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#getAliveParticleCount\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The number of particles with `active=true`.\r\n     */\r\n    getAliveParticleCount: function ()\r\n    {\r\n        return this.alive.length;\r\n    },\r\n\r\n    /**\r\n     * Gets the number of inactive (available) particles in this emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#getDeadParticleCount\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The number of particles with `active=false`.\r\n     */\r\n    getDeadParticleCount: function ()\r\n    {\r\n        return this.dead.length;\r\n    },\r\n\r\n    /**\r\n     * Gets the total number of particles in this emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#getParticleCount\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The number of particles, including both alive and dead.\r\n     */\r\n    getParticleCount: function ()\r\n    {\r\n        return this.getAliveParticleCount() + this.getDeadParticleCount();\r\n    },\r\n\r\n    /**\r\n     * Whether this emitter is at either its hard-cap limit (maxParticles), if set, or\r\n     * the max allowed number of 'alive' particles (maxAliveParticles).\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#atLimit\r\n     * @since 3.0.0\r\n     *\r\n     * @return {boolean} Returns `true` if this Emitter is at its limit, or `false` if no limit, or below the `maxParticles` level.\r\n     */\r\n    atLimit: function ()\r\n    {\r\n        if (this.maxParticles > 0 && this.getParticleCount() >= this.maxParticles)\r\n        {\r\n            return true;\r\n        }\r\n\r\n        return (this.maxAliveParticles > 0 && this.getAliveParticleCount() >= this.maxAliveParticles);\r\n    },\r\n\r\n    /**\r\n     * Sets a function to call for each newly emitted particle.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#onParticleEmit\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.ParticleEmitterCallback} callback - The function.\r\n     * @param {*} [context] - The calling context.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    onParticleEmit: function (callback, context)\r\n    {\r\n        if (callback === undefined)\r\n        {\r\n            //  Clear any previously set callback\r\n            this.emitCallback = null;\r\n            this.emitCallbackScope = null;\r\n        }\r\n        else if (typeof callback === 'function')\r\n        {\r\n            this.emitCallback = callback;\r\n\r\n            if (context)\r\n            {\r\n                this.emitCallbackScope = context;\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets a function to call for each particle death.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#onParticleDeath\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.ParticleDeathCallback} callback - The function.\r\n     * @param {*} [context] - The function's calling context.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    onParticleDeath: function (callback, context)\r\n    {\r\n        if (callback === undefined)\r\n        {\r\n            //  Clear any previously set callback\r\n            this.deathCallback = null;\r\n            this.deathCallbackScope = null;\r\n        }\r\n        else if (typeof callback === 'function')\r\n        {\r\n            this.deathCallback = callback;\r\n\r\n            if (context)\r\n            {\r\n                this.deathCallbackScope = context;\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Deactivates every particle in this emitter immediately.\r\n     *\r\n     * This particles are killed but do not emit an event or callback.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#killAll\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    killAll: function ()\r\n    {\r\n        var dead = this.dead;\r\n        var alive = this.alive;\r\n\r\n        while (alive.length > 0)\r\n        {\r\n            dead.push(alive.pop());\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Calls a function for each active particle in this emitter. The function is\r\n     * sent two parameters: a reference to the Particle instance and to this Emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#forEachAlive\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.ParticleEmitterCallback} callback - The function.\r\n     * @param {*} context - The functions calling context.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    forEachAlive: function (callback, context)\r\n    {\r\n        var alive = this.alive;\r\n        var length = alive.length;\r\n\r\n        for (var i = 0; i < length; i++)\r\n        {\r\n            //  Sends the Particle and the Emitter\r\n            callback.call(context, alive[i], this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Calls a function for each inactive particle in this emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#forEachDead\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.ParticleEmitterCallback} callback - The function.\r\n     * @param {*} context - The functions calling context.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    forEachDead: function (callback, context)\r\n    {\r\n        var dead = this.dead;\r\n        var length = dead.length;\r\n\r\n        for (var i = 0; i < length; i++)\r\n        {\r\n            callback.call(context, dead[i], this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Turns {@link Phaser.GameObjects.Particles.ParticleEmitter#on} the emitter and resets the flow counter.\r\n     *\r\n     * If this emitter is in flow mode (frequency >= 0; the default), the particle flow will start (or restart).\r\n     *\r\n     * If this emitter is in explode mode (frequency = -1), nothing will happen.\r\n     * Use {@link Phaser.GameObjects.Particles.ParticleEmitter#explode} or {@link Phaser.GameObjects.Particles.ParticleEmitter#flow} instead.\r\n     *\r\n     * Calling this method will emit the `START` event.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#start\r\n     * @fires Phaser.GameObjects.Particles.Events#START\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [advance=0] - Advance this number of ms in time through the emitter.\r\n     * @param {number} [duration=0] - Limit this emitter to only emit particles for the given number of ms. Setting this parameter will override any duration already set in the Emitter configuration object.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    start: function (advance, duration)\r\n    {\r\n        if (advance === undefined) { advance = 0; }\r\n\r\n        if (!this.emitting)\r\n        {\r\n            if (advance > 0)\r\n            {\r\n                this.fastForward(advance);\r\n            }\r\n\r\n            this.emitting = true;\r\n\r\n            this.resetCounters(this.frequency, true);\r\n\r\n            if (duration !== undefined)\r\n            {\r\n                this.duration = Math.abs(duration);\r\n            }\r\n\r\n            this.emit(Events.START, this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Turns {@link Phaser.GameObjects.Particles.ParticleEmitter#emitting off} the emitter and\r\n     * stops it from emitting further particles. Currently alive particles will remain\r\n     * active until they naturally expire unless you set the `kill` parameter to `true`.\r\n     *\r\n     * Calling this method will emit the `STOP` event. When the final particle has\r\n     * expired the `COMPLETE` event will be emitted.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#stop\r\n     * @fires Phaser.GameObjects.Particles.Events#STOP\r\n     * @since 3.11.0\r\n     *\r\n     * @param {boolean} [kill=false] - Kill all particles immediately (true), or leave them to die after their lifespan expires? (false, the default)\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    stop: function (kill)\r\n    {\r\n        if (kill === undefined) { kill = false; }\r\n\r\n        if (this.emitting)\r\n        {\r\n            this.emitting = false;\r\n\r\n            if (kill)\r\n            {\r\n                this.killAll();\r\n            }\r\n\r\n            this.emit(Events.STOP, this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * {@link Phaser.GameObjects.Particles.ParticleEmitter#active Deactivates} the emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#pause\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    pause: function ()\r\n    {\r\n        this.active = false;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * {@link Phaser.GameObjects.Particles.ParticleEmitter#active Activates} the emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#resume\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    resume: function ()\r\n    {\r\n        this.active = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the property by which active particles are sorted prior to be rendered.\r\n     *\r\n     * It allows you to control the rendering order of the particles.\r\n     *\r\n     * This can be any valid property of the `Particle` class, such as `y`, `alpha`\r\n     * or `lifeT`.\r\n     *\r\n     * The 'alive' particles array is sorted in place each game frame. Setting a\r\n     * sort property will override the `particleBringToTop` setting.\r\n     *\r\n     * If you wish to use your own sorting function, see `setSortCallback` instead.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setSortProperty\r\n     * @since 3.60.0\r\n     *\r\n     * @param {string} [property] - The property on the `Particle` class to sort by.\r\n     * @param {boolean} [ascending=true] - Should the particles be sorted in ascending or descending order?\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setSortProperty: function (property, ascending)\r\n    {\r\n        if (property === undefined) { property = ''; }\r\n        if (ascending === undefined) { ascending = this.true; }\r\n\r\n        this.sortProperty = property;\r\n        this.sortOrderAsc = ascending;\r\n        this.sortCallback = this.depthSortCallback;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets a callback to be used to sort the particles before rendering each frame.\r\n     *\r\n     * This allows you to define your own logic and behavior in the callback.\r\n     *\r\n     * The callback will be sent two parameters: the two Particles being compared,\r\n     * and must adhere to the criteria of the `compareFn` in `Array.sort`:\r\n     *\r\n     * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#description\r\n     *\r\n     * Call this method with no parameters to reset the sort callback.\r\n     *\r\n     * Setting your own callback will override both the `particleBringToTop` and\r\n     * `sortProperty` settings of this Emitter.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#setSortCallback\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.ParticleSortCallback} [callback] - The callback to invoke when the particles are sorted. Leave undefined to reset to the default.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    setSortCallback: function (callback)\r\n    {\r\n        if (this.sortProperty !== '')\r\n        {\r\n            callback = this.depthSortCallback;\r\n        }\r\n        else\r\n        {\r\n            callback = null;\r\n        }\r\n\r\n        this.sortCallback = callback;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sorts active particles with {@link Phaser.GameObjects.Particles.ParticleEmitter#depthSortCallback}.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#depthSort\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    depthSort: function ()\r\n    {\r\n        StableSort(this.alive, this.sortCallback.bind(this));\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Calculates the difference of two particles, for sorting them by depth.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#depthSortCallback\r\n     * @since 3.0.0\r\n     *\r\n     * @param {object} a - The first particle.\r\n     * @param {object} b - The second particle.\r\n     *\r\n     * @return {number} The difference of a and b's y coordinates.\r\n     */\r\n    depthSortCallback: function (a, b)\r\n    {\r\n        var key = this.sortProperty;\r\n\r\n        if (this.sortOrderAsc)\r\n        {\r\n            return a[key] - b[key];\r\n        }\r\n        else\r\n        {\r\n            return b[key] - a[key];\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Puts the emitter in flow mode (frequency >= 0) and starts (or restarts) a particle flow.\r\n     *\r\n     * To resume a flow at the current frequency and quantity, use {@link Phaser.GameObjects.Particles.ParticleEmitter#start} instead.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#flow\r\n     * @fires Phaser.GameObjects.Particles.Events#START\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} frequency - The time interval (>= 0) of each flow cycle, in ms.\r\n     * @param {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType} [count=1] - The number of particles to emit at each flow cycle.\r\n     * @param {number} [stopAfter] - Stop this emitter from firing any more particles once this value is reached. Set to zero for unlimited. Setting this parameter will override any `stopAfter` value already set in the Emitter configuration object.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    flow: function (frequency, count, stopAfter)\r\n    {\r\n        if (count === undefined) { count = 1; }\r\n\r\n        this.emitting = false;\r\n\r\n        this.frequency = frequency;\r\n        this.quantity = count;\r\n\r\n        if (stopAfter !== undefined)\r\n        {\r\n            this.stopAfter = stopAfter;\r\n        }\r\n\r\n        return this.start();\r\n    },\r\n\r\n    /**\r\n     * Puts the emitter in explode mode (frequency = -1), stopping any current particle flow, and emits several particles all at once.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#explode\r\n     * @fires Phaser.GameObjects.Particles.Events#EXPLODE\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [count=this.quantity] - The number of Particles to emit.\r\n     * @param {number} [x=this.x] - The x coordinate to emit the Particles from.\r\n     * @param {number} [y=this.x] - The y coordinate to emit the Particles from.\r\n     *\r\n     * @return {(Phaser.GameObjects.Particles.Particle|undefined)} The most recently emitted Particle, or `undefined` if the emitter is at its limit.\r\n     */\r\n    explode: function (count, x, y)\r\n    {\r\n        this.frequency = -1;\r\n\r\n        this.resetCounters(-1, true);\r\n\r\n        var particle = this.emitParticle(count, x, y);\r\n\r\n        this.emit(Events.EXPLODE, this, particle);\r\n\r\n        return particle;\r\n    },\r\n\r\n    /**\r\n     * Emits particles at the given position. If no position is given, it will\r\n     * emit from this Emitters current location.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#emitParticleAt\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=this.x] - The x coordinate to emit the Particles from.\r\n     * @param {number} [y=this.x] - The y coordinate to emit the Particles from.\r\n     * @param {number} [count=this.quantity] - The number of Particles to emit.\r\n     *\r\n     * @return {(Phaser.GameObjects.Particles.Particle|undefined)} The most recently emitted Particle, or `undefined` if the emitter is at its limit.\r\n     */\r\n    emitParticleAt: function (x, y, count)\r\n    {\r\n        return this.emitParticle(count, x, y);\r\n    },\r\n\r\n    /**\r\n     * Emits particles at a given position (or the emitters current position).\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#emitParticle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [count=this.quantity] - The number of Particles to emit.\r\n     * @param {number} [x=this.x] - The x coordinate to emit the Particles from.\r\n     * @param {number} [y=this.x] - The y coordinate to emit the Particles from.\r\n     *\r\n     * @return {(Phaser.GameObjects.Particles.Particle|undefined)} The most recently emitted Particle, or `undefined` if the emitter is at its limit.\r\n     *\r\n     * @see Phaser.GameObjects.Particles.Particle#fire\r\n     */\r\n    emitParticle: function (count, x, y)\r\n    {\r\n        if (this.atLimit())\r\n        {\r\n            return;\r\n        }\r\n\r\n        if (count === undefined)\r\n        {\r\n            count = this.ops.quantity.onEmit();\r\n        }\r\n\r\n        var dead = this.dead;\r\n        var stopAfter = this.stopAfter;\r\n\r\n        var followX = (this.follow) ? this.follow.x + this.followOffset.x : x;\r\n        var followY = (this.follow) ? this.follow.y + this.followOffset.y : y;\r\n\r\n        for (var i = 0; i < count; i++)\r\n        {\r\n            var particle = dead.pop();\r\n\r\n            if (!particle)\r\n            {\r\n                particle = new this.particleClass(this);\r\n            }\r\n\r\n            if (particle.fire(followX, followY))\r\n            {\r\n                if (this.particleBringToTop)\r\n                {\r\n                    this.alive.push(particle);\r\n                }\r\n                else\r\n                {\r\n                    this.alive.unshift(particle);\r\n                }\r\n\r\n                if (this.emitCallback)\r\n                {\r\n                    this.emitCallback.call(this.emitCallbackScope, particle, this);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                this.dead.push(particle);\r\n            }\r\n\r\n            if (stopAfter > 0)\r\n            {\r\n                this.stopCounter++;\r\n\r\n                if (this.stopCounter >= stopAfter)\r\n                {\r\n                    break;\r\n                }\r\n            }\r\n\r\n            if (this.atLimit())\r\n            {\r\n                break;\r\n            }\r\n        }\r\n\r\n        return particle;\r\n    },\r\n\r\n    /**\r\n     * Fast forwards this Particle Emitter and all of its particles.\r\n     *\r\n     * Works by running the Emitter `preUpdate` handler in a loop until the `time`\r\n     * has been reached at `delta` steps per loop.\r\n     *\r\n     * All callbacks and emitter related events that would normally be fired\r\n     * will still be invoked.\r\n     *\r\n     * You can make an emitter 'fast forward' via the emitter config using the\r\n     * `advance` property. Set this value to the number of ms you wish the\r\n     * emitter to be fast-forwarded by. Or, call this method post-creation.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#fastForward\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} time - The number of ms to advance the Particle Emitter by.\r\n     * @param {number} [delta] - The amount of delta to use for each step. Defaults to 1000 / 60.\r\n     *\r\n     * @return {this} This Particle Emitter.\r\n     */\r\n    fastForward: function (time, delta)\r\n    {\r\n        if (delta === undefined) { delta = 1000 / 60; }\r\n\r\n        var total = 0;\r\n\r\n        this.skipping = true;\r\n\r\n        while (total < Math.abs(time))\r\n        {\r\n            this.preUpdate(0, delta);\r\n\r\n            total += delta;\r\n        }\r\n\r\n        this.skipping = false;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Updates this emitter and its particles.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#preUpdate\r\n     * @fires Phaser.GameObjects.Particles.Events#COMPLETE\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} time - The current timestamp as generated by the Request Animation Frame or SetTimeout.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    preUpdate: function (time, delta)\r\n    {\r\n        //  Scale the delta\r\n        delta *= this.timeScale;\r\n\r\n        var step = (delta / 1000);\r\n\r\n        if (this.trackVisible)\r\n        {\r\n            this.visible = this.follow.visible;\r\n        }\r\n\r\n        this.getWorldTransformMatrix(this.worldMatrix);\r\n\r\n        //  Any particle processors?\r\n        var processors = this.getProcessors();\r\n\r\n        var particles = this.alive;\r\n        var dead = this.dead;\r\n\r\n        var i = 0;\r\n        var rip = [];\r\n        var length = particles.length;\r\n\r\n        for (i = 0; i < length; i++)\r\n        {\r\n            var particle = particles[i];\r\n\r\n            //  update returns `true` if the particle is now dead (lifeCurrent <= 0)\r\n            if (particle.update(delta, step, processors))\r\n            {\r\n                rip.push({ index: i, particle: particle });\r\n            }\r\n        }\r\n\r\n        //  Move dead particles to the dead array\r\n        length = rip.length;\r\n\r\n        if (length > 0)\r\n        {\r\n            var deathCallback = this.deathCallback;\r\n            var deathCallbackScope = this.deathCallbackScope;\r\n\r\n            for (i = length - 1; i >= 0; i--)\r\n            {\r\n                var entry = rip[i];\r\n\r\n                //  Remove from particles array\r\n                particles.splice(entry.index, 1);\r\n\r\n                //  Add to dead array\r\n                dead.push(entry.particle);\r\n\r\n                //  Callback\r\n                if (deathCallback)\r\n                {\r\n                    deathCallback.call(deathCallbackScope, entry.particle);\r\n                }\r\n\r\n                entry.particle.setPosition();\r\n            }\r\n        }\r\n\r\n        if (!this.emitting && !this.skipping)\r\n        {\r\n            if (this.completeFlag === 1 && particles.length === 0)\r\n            {\r\n                this.completeFlag = 0;\r\n\r\n                this.emit(Events.COMPLETE, this);\r\n            }\r\n\r\n            return;\r\n        }\r\n\r\n        if (this.frequency === 0)\r\n        {\r\n            this.emitParticle();\r\n        }\r\n        else if (this.frequency > 0)\r\n        {\r\n            this.flowCounter -= delta;\r\n\r\n            while (this.flowCounter <= 0)\r\n            {\r\n                //  Emits the 'quantity' number of particles\r\n                this.emitParticle();\r\n\r\n                //  counter = frequency - remainder from previous delta\r\n                this.flowCounter += this.frequency;\r\n            }\r\n        }\r\n\r\n        //  Duration or stopAfter set?\r\n        if (!this.skipping)\r\n        {\r\n            if (this.duration > 0)\r\n            {\r\n                //  elapsed\r\n                this.elapsed += delta;\r\n\r\n                if (this.elapsed >= this.duration)\r\n                {\r\n                    this.stop();\r\n                }\r\n            }\r\n\r\n            if (this.stopAfter > 0 && this.stopCounter >= this.stopAfter)\r\n            {\r\n                this.stop();\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Takes either a Rectangle Geometry object or an Arcade Physics Body and tests\r\n     * to see if it intersects with any currently alive Particle in this Emitter.\r\n     *\r\n     * Overlapping particles are returned in an array, where you can perform further\r\n     * processing on them. If nothing overlaps then the array will be empty.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#overlap\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(Phaser.Geom.Rectangle|Phaser.Physics.Arcade.Body)} target - A Rectangle or Arcade Physics Body to check for intersection against all alive particles.\r\n     *\r\n     * @return {Phaser.GameObjects.Particles.Particle[]} An array of Particles that overlap with the given target.\r\n     */\r\n    overlap: function (target)\r\n    {\r\n        var matrix = this.getWorldTransformMatrix();\r\n\r\n        var alive = this.alive;\r\n        var length = alive.length;\r\n\r\n        var output = [];\r\n\r\n        for (var i = 0; i < length; i++)\r\n        {\r\n            var particle = alive[i];\r\n\r\n            if (RectangleToRectangle(target, particle.getBounds(matrix)))\r\n            {\r\n                output.push(particle);\r\n            }\r\n        }\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Returns a bounds Rectangle calculated from the bounds of all currently\r\n     * _active_ Particles in this Emitter. If this Emitter has only just been\r\n     * created and not yet rendered, then calling this method will return a Rectangle\r\n     * with a max safe integer for dimensions. Use the `advance` parameter to\r\n     * avoid this.\r\n     *\r\n     * Typically it takes a few seconds for a flow Emitter to 'warm up'. You can\r\n     * use the `advance` and `delta` parameters to force the Emitter to\r\n     * 'fast forward' in time to try and allow the bounds to be more accurate,\r\n     * as it will calculate the bounds based on the particle bounds across all\r\n     * timesteps, giving a better result.\r\n     *\r\n     * You can also use the `padding` parameter to increase the size of the\r\n     * bounds. Emitters with a lot of randomness in terms of direction or lifespan\r\n     * can often return a bounds smaller than their possible maximum. By using\r\n     * the `padding` (and `advance` if needed) you can help limit this.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#getBounds\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [padding] - The amount of padding, in pixels, to add to the bounds Rectangle.\r\n     * @param {number} [advance] - The number of ms to advance the Particle Emitter by. Defaults to 0, i.e. not used.\r\n     * @param {number} [delta] - The amount of delta to use for each step. Defaults to 1000 / 60.\r\n     * @param {Phaser.Geom.Rectangle} [output] - The Rectangle to store the results in. If not given a new one will be created.\r\n     *\r\n     * @return {Phaser.Geom.Rectangle} A Rectangle containing the calculated bounds of this Emitter.\r\n     */\r\n    getBounds: function (padding, advance, delta, output)\r\n    {\r\n        if (padding === undefined) { padding = 0; }\r\n        if (advance === undefined) { advance = 0; }\r\n        if (delta === undefined) { delta = 1000 / 60; }\r\n        if (output === undefined) { output = new Rectangle(); }\r\n\r\n        var matrix = this.getWorldTransformMatrix();\r\n\r\n        var i;\r\n        var bounds;\r\n        var alive = this.alive;\r\n        var setFirst = false;\r\n\r\n        output.setTo(0, 0, 0, 0);\r\n\r\n        if (advance > 0)\r\n        {\r\n            var total = 0;\r\n\r\n            this.skipping = true;\r\n\r\n            while (total < Math.abs(advance))\r\n            {\r\n                this.preUpdate(0, delta);\r\n\r\n                for (i = 0; i < alive.length; i++)\r\n                {\r\n                    bounds = alive[i].getBounds(matrix);\r\n\r\n                    if (!setFirst)\r\n                    {\r\n                        setFirst = true;\r\n\r\n                        CopyFrom(bounds, output);\r\n                    }\r\n                    else\r\n                    {\r\n                        MergeRect(output, bounds);\r\n                    }\r\n                }\r\n\r\n                total += delta;\r\n            }\r\n\r\n            this.skipping = false;\r\n        }\r\n        else\r\n        {\r\n            for (i = 0; i < alive.length; i++)\r\n            {\r\n                bounds = alive[i].getBounds(matrix);\r\n\r\n                if (!setFirst)\r\n                {\r\n                    setFirst = true;\r\n\r\n                    CopyFrom(bounds, output);\r\n                }\r\n                else\r\n                {\r\n                    MergeRect(output, bounds);\r\n                }\r\n            }\r\n        }\r\n\r\n        if (padding > 0)\r\n        {\r\n            Inflate(output, padding, padding);\r\n        }\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Prints a warning to the console if you mistakenly call this function\r\n     * thinking it works the same way as Phaser v3.55.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#createEmitter\r\n     * @since 3.60.0\r\n     */\r\n    createEmitter: function ()\r\n    {\r\n        throw new Error('createEmitter removed. See ParticleEmitter docs for info');\r\n    },\r\n\r\n    /**\r\n     * The x coordinate the particles are emitted from.\r\n     *\r\n     * This is relative to the Emitters x coordinate and that of any parent.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#particleX\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType|Phaser.Types.GameObjects.Particles.EmitterOpOnUpdateType}\r\n     * @since 3.60.0\r\n     */\r\n    particleX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.x.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.x.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The y coordinate the particles are emitted from.\r\n     *\r\n     * This is relative to the Emitters x coordinate and that of any parent.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#particleY\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType|Phaser.Types.GameObjects.Particles.EmitterOpOnUpdateType}\r\n     * @since 3.60.0\r\n     */\r\n    particleY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.y.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.y.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The horizontal acceleration applied to emitted particles, in pixels per second squared.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#accelerationX\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    accelerationX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.accelerationX.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.accelerationX.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The vertical acceleration applied to emitted particles, in pixels per second squared.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#accelerationY\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    accelerationY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.accelerationY.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.accelerationY.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The maximum horizontal velocity emitted particles can reach, in pixels per second squared.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#maxVelocityX\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     * @default 10000\r\n     */\r\n    maxVelocityX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.maxVelocityX.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.maxVelocityX.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The maximum vertical velocity emitted particles can reach, in pixels per second squared.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#maxVelocityY\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     * @default 10000\r\n     */\r\n    maxVelocityY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.maxVelocityY.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.maxVelocityY.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The initial speed of emitted particles, in pixels per second.\r\n     *\r\n     * If using this as a getter it will return the `speedX` value.\r\n     *\r\n     * If using it as a setter it will update both `speedX` and `speedY` to the\r\n     * given value.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#speed\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    speed: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.speedX.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.speedX.onChange(value);\r\n            this.ops.speedY.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The initial horizontal speed of emitted particles, in pixels per second.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#speedX\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    speedX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.speedX.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.speedX.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The initial vertical speed of emitted particles, in pixels per second.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#speedY\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    speedY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.speedY.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.speedY.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The x coordinate emitted particles move toward, when {@link Phaser.GameObjects.Particles.ParticleEmitter#moveTo} is true.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#moveToX\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    moveToX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.moveToX.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.moveToX.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The y coordinate emitted particles move toward, when {@link Phaser.GameObjects.Particles.ParticleEmitter#moveTo} is true.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#moveToY\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    moveToY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.moveToY.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.moveToY.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The amount of velocity particles will use when rebounding off the\r\n     * emitter bounds, if set. A value of 0 means no bounce. A value of 1\r\n     * means a full rebound.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#bounce\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    bounce: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.bounce.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.bounce.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The horizontal scale of emitted particles.\r\n     *\r\n     * This is relative to the Emitters scale and that of any parent.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#particleScaleX\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    particleScaleX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.scaleX.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.scaleX.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The vertical scale of emitted particles.\r\n     *\r\n     * This is relative to the Emitters scale and that of any parent.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#particleScaleY\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    particleScaleY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.scaleY.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.scaleY.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * A color tint value that is applied to the texture of the emitted\r\n     * particle. The value should be given in hex format, i.e. 0xff0000\r\n     * for a red tint, and should not include the alpha channel.\r\n     *\r\n     * Tints are additive, meaning a tint value of white (0xffffff) will\r\n     * effectively reset the tint to nothing.\r\n     *\r\n     * Modify the `ParticleEmitter.tintFill` property to change between\r\n     * an additive and replacement tint mode.\r\n     *\r\n     * When you define the color via the Emitter config you should give\r\n     * it as an array of color values. The Particle will then interpolate\r\n     * through these colors over the course of its lifespan. Setting this\r\n     * will override any `tint` value that may also be given.\r\n     *\r\n     * This is a WebGL only feature.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#particleColor\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    particleColor: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.color.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.color.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Controls the easing function used when you have created an\r\n     * Emitter that uses the `color` property to interpolate the\r\n     * tint of Particles over their lifetime.\r\n     *\r\n     * Setting this has no effect if you haven't also applied a\r\n     * `particleColor` to this Emitter.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#colorEase\r\n     * @type {string}\r\n     * @since 3.60.0\r\n     */\r\n    colorEase: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.color.easeName;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.color.setEase(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * A color tint value that is applied to the texture of the emitted\r\n     * particle. The value should be given in hex format, i.e. 0xff0000\r\n     * for a red tint, and should not include the alpha channel.\r\n     *\r\n     * Tints are additive, meaning a tint value of white (0xffffff) will\r\n     * effectively reset the tint to nothing.\r\n     *\r\n     * Modify the `ParticleEmitter.tintFill` property to change between\r\n     * an additive and replacement tint mode.\r\n     *\r\n     * The `tint` value will be overriden if a `color` array is provided.\r\n     *\r\n     * This is a WebGL only feature.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#particleTint\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    particleTint: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.tint.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.tint.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The alpha value of the emitted particles. This is a value\r\n     * between 0 and 1. Particles with alpha zero are invisible\r\n     * and are therefore not rendered, but are still processed\r\n     * by the Emitter.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#particleAlpha\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    particleAlpha: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.alpha.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.alpha.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The lifespan of the emitted particles. This value is given\r\n     * in milliseconds and defaults to 1000ms (1 second). When a\r\n     * particle reaches this amount it is killed.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#lifespan\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    lifespan: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.lifespan.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.lifespan.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The angle at which the particles are emitted. The values are\r\n     * given in degrees. This allows you to control the direction\r\n     * of the emitter. If you wish instead to change the rotation\r\n     * of the particles themselves, see the `particleRotate` property.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#particleAngle\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    particleAngle: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.angle.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.angle.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The rotation (or angle) of each particle when it is emitted.\r\n     * The value is given in degrees and uses a right-handed\r\n     * coordinate system, where 0 degrees points to the right, 90 degrees\r\n     * points down and -90 degrees points up.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#particleRotate\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    particleRotate: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.rotate.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.rotate.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The number of particles that are emitted each time an emission\r\n     * occurs, i.e. from one 'explosion' or each frame in a 'flow' cycle.\r\n     *\r\n     * The default is 1.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#quantity\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @see Phaser.GameObjects.Particles.ParticleEmitter#setFrequency\r\n     * @see Phaser.GameObjects.Particles.ParticleEmitter#setQuantity\r\n     * @since 3.60.0\r\n     */\r\n    quantity: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.quantity.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.quantity.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The number of milliseconds to wait after emission before\r\n     * the particles start updating. This allows you to emit particles\r\n     * that appear 'static' or still on-screen and then, after this value,\r\n     * begin to move.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#delay\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    delay: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.delay.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.delay.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The number of milliseconds to wait after a particle has finished\r\n     * its life before it will be removed. This allows you to 'hold' a\r\n     * particle on the screen once it has reached its final state\r\n     * before it then vanishes.\r\n     *\r\n     * Note that all particle updates will cease, including changing\r\n     * alpha, scale, movement or animation.\r\n     *\r\n     * Accessing this property should typically return a number.\r\n     * However, it can be set to any valid EmitterOp onEmit type.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#hold\r\n     * @type {Phaser.Types.GameObjects.Particles.EmitterOpOnEmitType}\r\n     * @since 3.60.0\r\n     */\r\n    hold: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.ops.hold.current;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.ops.hold.onChange(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The internal flow counter.\r\n     *\r\n     * Treat this property as read-only.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#flowCounter\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    flowCounter: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.counters[0];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.counters[0] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The internal frame counter.\r\n     *\r\n     * Treat this property as read-only.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#frameCounter\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    frameCounter: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.counters[1];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.counters[1] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The internal animation counter.\r\n     *\r\n     * Treat this property as read-only.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#animCounter\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    animCounter: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.counters[2];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.counters[2] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The internal elasped counter.\r\n     *\r\n     * Treat this property as read-only.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#elapsed\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    elapsed: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.counters[3];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.counters[3] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The internal stop counter.\r\n     *\r\n     * Treat this property as read-only.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#stopCounter\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    stopCounter: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.counters[4];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.counters[4] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The internal complete flag.\r\n     *\r\n     * Treat this property as read-only.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#completeFlag\r\n     * @type {boolean}\r\n     * @since 3.60.0\r\n     */\r\n    completeFlag: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.counters[5];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.counters[5] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The internal zone index.\r\n     *\r\n     * Treat this property as read-only.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#zoneIndex\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    zoneIndex: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.counters[6];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.counters[6] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The internal zone total.\r\n     *\r\n     * Treat this property as read-only.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#zoneTotal\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    zoneTotal: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.counters[7];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.counters[7] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The current frame index.\r\n     *\r\n     * Treat this property as read-only.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#currentFrame\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    currentFrame: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.counters[8];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.counters[8] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The current animation index.\r\n     *\r\n     * Treat this property as read-only.\r\n     *\r\n     * @name Phaser.GameObjects.Particles.ParticleEmitter#currentAnim\r\n     * @type {number}\r\n     * @since 3.60.0\r\n     */\r\n    currentAnim: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.counters[9];\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.counters[9] = value;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Destroys this Particle Emitter and all Particles it owns.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleEmitter#preDestroy\r\n     * @since 3.60.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.texture = null;\r\n        this.frames = null;\r\n        this.anims = null;\r\n        this.emitCallback = null;\r\n        this.emitCallbackScope = null;\r\n        this.deathCallback = null;\r\n        this.deathCallbackScope = null;\r\n        this.emitZones = null;\r\n        this.deathZones = null;\r\n        this.bounds = null;\r\n        this.follow = null;\r\n        this.counters = null;\r\n\r\n        var i;\r\n\r\n        var ops = this.ops;\r\n\r\n        for (i = 0; i < configOpMap.length; i++)\r\n        {\r\n            var key = configOpMap[i];\r\n\r\n            ops[key].destroy();\r\n        }\r\n\r\n        for (i = 0; i < this.alive.length; i++)\r\n        {\r\n            this.alive[i].destroy();\r\n        }\r\n\r\n        for (i = 0; i < this.dead.length; i++)\r\n        {\r\n            this.dead[i].destroy();\r\n        }\r\n\r\n        this.ops = null;\r\n        this.alive = [];\r\n        this.dead = [];\r\n        this.worldMatrix.destroy();\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = ParticleEmitter;\r\n\n\n/***/ }),\n\n/***/ 9871:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar RectangleToRectangle = __webpack_require__(59996);\r\nvar TransformMatrix = __webpack_require__(61340);\r\n\r\nvar tempMatrix1 = new TransformMatrix();\r\nvar tempMatrix2 = new TransformMatrix();\r\nvar tempMatrix3 = new TransformMatrix();\r\nvar tempMatrix4 = new TransformMatrix();\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Particles.Emitter#renderCanvas\r\n * @since 3.60.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Particles.ParticleEmitter} emitter - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar ParticleEmitterCanvasRenderer = function (renderer, emitter, camera, parentMatrix)\r\n{\r\n    var camMatrix = tempMatrix1;\r\n    var calcMatrix = tempMatrix2;\r\n    var particleMatrix = tempMatrix3;\r\n    var managerMatrix = tempMatrix4;\r\n\r\n    if (parentMatrix)\r\n    {\r\n        managerMatrix.loadIdentity();\r\n        managerMatrix.multiply(parentMatrix);\r\n        managerMatrix.translate(emitter.x, emitter.y);\r\n        managerMatrix.rotate(emitter.rotation);\r\n        managerMatrix.scale(emitter.scaleX, emitter.scaleY);\r\n    }\r\n    else\r\n    {\r\n        managerMatrix.applyITRS(emitter.x, emitter.y, emitter.rotation, emitter.scaleX, emitter.scaleY);\r\n    }\r\n\r\n    var ctx = renderer.currentContext;\r\n    var roundPixels = camera.roundPixels;\r\n    var camerAlpha = camera.alpha;\r\n    var emitterAlpha = emitter.alpha;\r\n\r\n    var particles = emitter.alive;\r\n    var particleCount = particles.length;\r\n    var viewBounds = emitter.viewBounds;\r\n\r\n    if (!emitter.visible || particleCount === 0 || (viewBounds && !RectangleToRectangle(viewBounds, camera.worldView)))\r\n    {\r\n        return;\r\n    }\r\n\r\n    if (emitter.sortCallback)\r\n    {\r\n        emitter.depthSort();\r\n    }\r\n\r\n    camera.addToRenderList(emitter);\r\n\r\n    var scrollFactorX = emitter.scrollFactorX;\r\n    var scrollFactorY = emitter.scrollFactorY;\r\n\r\n    ctx.save();\r\n\r\n    ctx.globalCompositeOperation = renderer.blendModes[emitter.blendMode];\r\n\r\n    for (var i = 0; i < particleCount; i++)\r\n    {\r\n        var particle = particles[i];\r\n\r\n        var alpha = particle.alpha * emitterAlpha * camerAlpha;\r\n\r\n        if (alpha <= 0 || particle.scaleX === 0 || particle.scaleY === 0)\r\n        {\r\n            continue;\r\n        }\r\n\r\n        particleMatrix.applyITRS(particle.x, particle.y, particle.rotation, particle.scaleX, particle.scaleY);\r\n\r\n        camMatrix.copyFrom(camera.matrix);\r\n\r\n        camMatrix.multiplyWithOffset(managerMatrix, -camera.scrollX * scrollFactorX, -camera.scrollY * scrollFactorY);\r\n\r\n        //  Undo the camera scroll\r\n        particleMatrix.e = particle.x;\r\n        particleMatrix.f = particle.y;\r\n\r\n        //  Multiply by the particle matrix, store result in calcMatrix\r\n        camMatrix.multiply(particleMatrix, calcMatrix);\r\n\r\n        var frame = particle.frame;\r\n        var cd = frame.canvasData;\r\n\r\n        if (cd.width > 0 && cd.height > 0)\r\n        {\r\n            var x = -(frame.halfWidth);\r\n            var y = -(frame.halfHeight);\r\n\r\n            ctx.globalAlpha = alpha;\r\n\r\n            ctx.save();\r\n\r\n            calcMatrix.setToContext(ctx);\r\n\r\n            if (roundPixels)\r\n            {\r\n                x = Math.round(x);\r\n                y = Math.round(y);\r\n            }\r\n\r\n            ctx.imageSmoothingEnabled = !frame.source.scaleMode;\r\n\r\n            ctx.drawImage(frame.source.image, cd.x, cd.y, cd.width, cd.height, x, y, cd.width, cd.height);\r\n\r\n            ctx.restore();\r\n        }\r\n    }\r\n\r\n    ctx.restore();\r\n};\r\n\r\nmodule.exports = ParticleEmitterCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 92730:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar GetFastValue = __webpack_require__(95540);\r\nvar ParticleEmitter = __webpack_require__(31600);\r\n\r\n/**\r\n * Creates a new Particle Emitter Game Object and returns it.\r\n *\r\n * Prior to Phaser v3.60 this function would create a `ParticleEmitterManager`. These were removed\r\n * in v3.60 and replaced with creating a `ParticleEmitter` instance directly. Please see the\r\n * updated function parameters and class documentation for more details.\r\n *\r\n * Note: This method will only be available if the Particles Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#particles\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Particles.ParticleEmitterCreatorConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.Particles.ParticleEmitter} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('particles', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var key = GetAdvancedValue(config, 'key', null);\r\n    var emitterConfig = GetFastValue(config, 'config', null);\r\n\r\n    var emitter = new ParticleEmitter(this.scene, 0, 0, key);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, emitter, config);\r\n\r\n    if (emitterConfig)\r\n    {\r\n        emitter.setConfig(emitterConfig);\r\n    }\r\n\r\n    return emitter;\r\n});\r\n\n\n/***/ }),\n\n/***/ 676:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar ParticleEmitter = __webpack_require__(31600);\r\n\r\n/**\r\n * Creates a new Particle Emitter Game Object and adds it to the Scene.\r\n *\r\n * If you wish to configure the Emitter after creating it, use the `ParticleEmitter.setConfig` method.\r\n *\r\n * Prior to Phaser v3.60 this function would create a `ParticleEmitterManager`. These were removed\r\n * in v3.60 and replaced with creating a `ParticleEmitter` instance directly. Please see the\r\n * updated function parameters and class documentation for more details.\r\n *\r\n * Note: This method will only be available if the Particles Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#particles\r\n * @since 3.60.0\r\n *\r\n * @param {number} [x] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y] - The vertical position of this Game Object in the world.\r\n * @param {(string|Phaser.Textures.Texture)} [texture] - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {Phaser.Types.GameObjects.Particles.ParticleEmitterConfig} [config] - Configuration settings for the Particle Emitter.\r\n *\r\n * @return {Phaser.GameObjects.Particles.ParticleEmitter} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('particles', function (x, y, texture, config)\r\n{\r\n    if (x !== undefined && typeof x === 'string')\r\n    {\r\n        console.warn('ParticleEmitterManager was removed in Phaser 3.60. See documentation for details');\r\n    }\r\n\r\n    return this.displayList.add(new ParticleEmitter(this.scene, x, y, texture, config));\r\n});\r\n\n\n/***/ }),\n\n/***/ 90668:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(21188);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(9871);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 21188:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar RectangleToRectangle = __webpack_require__(59996);\r\nvar TransformMatrix = __webpack_require__(61340);\r\nvar Utils = __webpack_require__(70554);\r\n\r\nvar tempMatrix1 = new TransformMatrix();\r\nvar tempMatrix2 = new TransformMatrix();\r\nvar tempMatrix3 = new TransformMatrix();\r\nvar tempMatrix4 = new TransformMatrix();\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Particles.Emitter#renderWebGL\r\n * @since 3.60.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Particles.ParticleEmitter} emitter - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar ParticleEmitterWebGLRenderer = function (renderer, emitter, camera, parentMatrix)\r\n{\r\n    var pipeline = renderer.pipelines.set(emitter.pipeline);\r\n\r\n    var camMatrix = tempMatrix1;\r\n    var calcMatrix = tempMatrix2;\r\n    var particleMatrix = tempMatrix3;\r\n    var managerMatrix = tempMatrix4;\r\n\r\n    if (parentMatrix)\r\n    {\r\n        managerMatrix.loadIdentity();\r\n        managerMatrix.multiply(parentMatrix);\r\n        managerMatrix.translate(emitter.x, emitter.y);\r\n        managerMatrix.rotate(emitter.rotation);\r\n        managerMatrix.scale(emitter.scaleX, emitter.scaleY);\r\n    }\r\n    else\r\n    {\r\n        managerMatrix.applyITRS(emitter.x, emitter.y, emitter.rotation, emitter.scaleX, emitter.scaleY);\r\n    }\r\n\r\n    var getTint = Utils.getTintAppendFloatAlpha;\r\n    var camerAlpha = camera.alpha;\r\n    var emitterAlpha = emitter.alpha;\r\n\r\n    renderer.pipelines.preBatch(emitter);\r\n\r\n    var particles = emitter.alive;\r\n    var particleCount = particles.length;\r\n    var viewBounds = emitter.viewBounds;\r\n\r\n    if (particleCount === 0 || (viewBounds && !RectangleToRectangle(viewBounds, camera.worldView)))\r\n    {\r\n        return;\r\n    }\r\n\r\n    if (emitter.sortCallback)\r\n    {\r\n        emitter.depthSort();\r\n    }\r\n\r\n    camera.addToRenderList(emitter);\r\n\r\n    camMatrix.copyFrom(camera.matrix);\r\n\r\n    camMatrix.multiplyWithOffset(managerMatrix, -camera.scrollX * emitter.scrollFactorX, -camera.scrollY * emitter.scrollFactorY);\r\n\r\n    renderer.setBlendMode(emitter.blendMode);\r\n\r\n    if (emitter.mask)\r\n    {\r\n        emitter.mask.preRenderWebGL(renderer, emitter, camera);\r\n\r\n        renderer.pipelines.set(emitter.pipeline);\r\n    }\r\n\r\n    var tintEffect = emitter.tintFill;\r\n    var textureUnit;\r\n    var glTexture;\r\n\r\n    for (var i = 0; i < particleCount; i++)\r\n    {\r\n        var particle = particles[i];\r\n\r\n        var alpha = particle.alpha * emitterAlpha * camerAlpha;\r\n\r\n        if (alpha <= 0 || particle.scaleX === 0 || particle.scaleY === 0)\r\n        {\r\n            continue;\r\n        }\r\n\r\n        particleMatrix.applyITRS(particle.x, particle.y, particle.rotation, particle.scaleX, particle.scaleY);\r\n\r\n        //  Undo the camera scroll\r\n        particleMatrix.e = particle.x;\r\n        particleMatrix.f = particle.y;\r\n\r\n        //  Multiply by the particle matrix, store result in calcMatrix\r\n        camMatrix.multiply(particleMatrix, calcMatrix);\r\n\r\n        var frame = particle.frame;\r\n\r\n        if (frame.glTexture !== glTexture)\r\n        {\r\n            glTexture = frame.glTexture;\r\n\r\n            textureUnit = pipeline.setGameObject(emitter, frame);\r\n        }\r\n\r\n        var x = -frame.halfWidth;\r\n        var y = -frame.halfHeight;\r\n\r\n        var quad = calcMatrix.setQuad(x, y, x + frame.width, y + frame.height);\r\n\r\n        var tint = getTint(particle.tint, alpha);\r\n\r\n        if (pipeline.shouldFlush(6))\r\n        {\r\n            pipeline.flush();\r\n\r\n            textureUnit = pipeline.setGameObject(emitter, frame);\r\n        }\r\n\r\n        pipeline.batchQuad(\r\n            emitter,\r\n            quad[0], quad[1], quad[2], quad[3], quad[4], quad[5], quad[6], quad[7],\r\n            frame.u0, frame.v0, frame.u1, frame.v1,\r\n            tint, tint, tint, tint,\r\n            tintEffect,\r\n            glTexture,\r\n            textureUnit\r\n        );\r\n    }\r\n\r\n    if (emitter.mask)\r\n    {\r\n        emitter.mask.postRenderWebGL(renderer, camera);\r\n    }\r\n\r\n    renderer.pipelines.postBatch(emitter);\r\n};\r\n\r\nmodule.exports = ParticleEmitterWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 20286:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\n\r\n/**\r\n * @classdesc\r\n * This class provides the structured required for all Particle Processors.\r\n *\r\n * You should extend it and add the functionality required for your processor,\r\n * including tidying up any resources this may create in the `destroy` method.\r\n *\r\n * See the GravityWell for an example of a processor.\r\n *\r\n * @class ParticleProcessor\r\n * @memberof Phaser.GameObjects.Particles\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {number} [x=0] - The x coordinate of the Particle Processor, in world space.\r\n * @param {number} [y=0] - The y coordinate of the Particle Processor, in world space.\r\n * @param {boolean} [active=true] - The active state of this Particle Processor.\r\n */\r\nvar ParticleProcessor = new Class({\r\n\r\n    initialize:\r\n\r\n    function ParticleProcessor (x, y, active)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (active === undefined) { active = true; }\r\n\r\n        /**\r\n         * A reference to the Particle Emitter that owns this Processor.\r\n         * This is set automatically when the Processor is added to an Emitter\r\n         * and nulled when removed or destroyed.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleProcessor#manager\r\n         * @type {Phaser.GameObjects.Particles.ParticleEmitter}\r\n         * @since 3.60.0\r\n         */\r\n        this.emitter;\r\n\r\n        /**\r\n         * The x coordinate of the Particle Processor, in world space.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleProcessor#x\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.x = x;\r\n\r\n        /**\r\n         * The y coordinate of the Particle Processor, in world space.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleProcessor#y\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.y = y;\r\n\r\n        /**\r\n         * The active state of the Particle Processor.\r\n         *\r\n         * An inactive Particle Processor will be skipped for processing by\r\n         * its parent Emitter.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.ParticleProcessor#active\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this.active = active;\r\n    },\r\n\r\n    /**\r\n     * The Particle Processor update method should be overriden by your own\r\n     * method and handle the processing of the particles, typically modifying\r\n     * their velocityX/Y values based on the criteria of this processor.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleProcessor#update\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The Particle to update.\r\n     * @param {number} delta - The delta time in ms.\r\n     * @param {number} step - The delta value divided by 1000.\r\n     * @param {number} t - The current normalized lifetime of the particle, between 0 (birth) and 1 (death).\r\n     */\r\n    update: function ()\r\n    {\r\n    },\r\n\r\n    /**\r\n     * Destroys this Particle Processor by removing all external references.\r\n     *\r\n     * This is called automatically when the owning Particle Emitter is destroyed.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.ParticleProcessor#destroy\r\n     * @since 3.60.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.emitter = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = ParticleProcessor;\r\n\n\n/***/ }),\n\n/***/ 9774:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Particle Emitter Complete Event.\r\n *\r\n * This event is dispatched when the final particle, emitted from a Particle Emitter that\r\n * has been stopped, dies. Upon receipt of this event you know that no particles are\r\n * still rendering at this point in time.\r\n *\r\n * Listen for it on a Particle Emitter instance using `ParticleEmitter.on('complete', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Particles.Events#COMPLETE\r\n * @type {string}\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.Particles.ParticleEmitter} emitter - A reference to the Particle Emitter that just completed.\r\n */\r\nmodule.exports = 'complete';\r\n\n\n/***/ }),\n\n/***/ 812:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Particle Emitter Death Zone Event.\r\n *\r\n * This event is dispatched when a Death Zone kills a Particle instance.\r\n *\r\n * Listen for it on a Particle Emitter instance using `ParticleEmitter.on('deathzone', listener)`.\r\n *\r\n * If you wish to know when the final particle is killed, see the `COMPLETE` event.\r\n *\r\n * @event Phaser.GameObjects.Particles.Events#DEATH_ZONE\r\n * @type {string}\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.Particles.ParticleEmitter} emitter - A reference to the Particle Emitter that owns the Particle and Death Zone.\r\n * @param {Phaser.GameObjects.Particles.Particle} particle - The Particle that has been killed.\r\n * @param {Phaser.GameObjects.Particles.Zones.DeathZone} zone - The Death Zone that killed the particle.\r\n */\r\nmodule.exports = 'deathzone';\r\n\n\n/***/ }),\n\n/***/ 30522:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Particle Emitter Explode Event.\r\n *\r\n * This event is dispatched when a Particle Emitter explodes a set of particles.\r\n *\r\n * Listen for it on a Particle Emitter instance using `ParticleEmitter.on('explode', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Particles.Events#EXPLODE\r\n * @type {string}\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.Particles.ParticleEmitter} emitter - A reference to the Particle Emitter that just completed.\r\n * @param {Phaser.GameObjects.Particles.Particle} particle - The most recently emitted Particle.\r\n */\r\nmodule.exports = 'explode';\r\n\n\n/***/ }),\n\n/***/ 96695:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Particle Emitter Start Event.\r\n *\r\n * This event is dispatched when a Particle Emitter starts emission of particles.\r\n *\r\n * Listen for it on a Particle Emitter instance using `ParticleEmitter.on('start', listener)`.\r\n *\r\n * @event Phaser.GameObjects.Particles.Events#START\r\n * @type {string}\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.Particles.ParticleEmitter} emitter - A reference to the Particle Emitter that just completed.\r\n */\r\nmodule.exports = 'start';\r\n\n\n/***/ }),\n\n/***/ 18677:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * The Particle Emitter Stop Event.\r\n *\r\n * This event is dispatched when a Particle Emitter is stopped. This can happen either\r\n * when you directly call the `ParticleEmitter.stop` method, or if the emitter has\r\n * been configured to stop after a set time via the `duration` property, or after a\r\n * set number of particles via the `stopAfter` property.\r\n *\r\n * Listen for it on a Particle Emitter instance using `ParticleEmitter.on('stop', listener)`.\r\n *\r\n * Note that just because the emitter has stopped, that doesn't mean there aren't still\r\n * particles alive and rendering. It just means the emitter has stopped emitting particles.\r\n *\r\n * If you wish to know when the final particle is killed, see the `COMPLETE` event.\r\n *\r\n * @event Phaser.GameObjects.Particles.Events#STOP\r\n * @type {string}\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.GameObjects.Particles.ParticleEmitter} emitter - A reference to the Particle Emitter that just completed.\r\n */\r\nmodule.exports = 'stop';\r\n\n\n/***/ }),\n\n/***/ 20696:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.GameObjects.Particles.Events\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    COMPLETE: __webpack_require__(9774),\r\n    DEATH_ZONE: __webpack_require__(812),\r\n    EXPLODE: __webpack_require__(30522),\r\n    START: __webpack_require__(96695),\r\n    STOP: __webpack_require__(18677)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 18404:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.GameObjects.Particles\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    EmitterColorOp: __webpack_require__(76472),\r\n    EmitterOp: __webpack_require__(44777),\r\n    Events: __webpack_require__(20696),\r\n    GravityWell: __webpack_require__(24502),\r\n    Particle: __webpack_require__(56480),\r\n    ParticleBounds: __webpack_require__(69601),\r\n    ParticleEmitter: __webpack_require__(31600),\r\n    ParticleProcessor: __webpack_require__(20286),\r\n    Zones: __webpack_require__(21024)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 26388:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\n\r\n/**\r\n * @classdesc\r\n * A Death Zone.\r\n *\r\n * A Death Zone is a special type of zone that will kill a Particle as soon as it either enters, or leaves, the zone.\r\n *\r\n * The zone consists of a `source` which could be a Geometric shape, such as a Rectangle or Ellipse, or your own\r\n * object as long as it includes a `contains` method for which the Particles can be tested against.\r\n *\r\n * @class DeathZone\r\n * @memberof Phaser.GameObjects.Particles.Zones\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Particles.DeathZoneSource} source - An object instance that has a `contains` method that returns a boolean when given `x` and `y` arguments.\r\n * @param {boolean} killOnEnter - Should the Particle be killed when it enters the zone? `true` or leaves it? `false`\r\n */\r\nvar DeathZone = new Class({\r\n\r\n    initialize:\r\n\r\n    function DeathZone (source, killOnEnter)\r\n    {\r\n        /**\r\n         * An object instance that has a `contains` method that returns a boolean when given `x` and `y` arguments.\r\n         * This could be a Geometry shape, such as `Phaser.Geom.Circle`, or your own custom object.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.DeathZone#source\r\n         * @type {Phaser.Types.GameObjects.Particles.DeathZoneSource}\r\n         * @since 3.0.0\r\n         */\r\n        this.source = source;\r\n\r\n        /**\r\n         * Set to `true` if the Particle should be killed if it enters this zone.\r\n         * Set to `false` to kill the Particle if it leaves this zone.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.DeathZone#killOnEnter\r\n         * @type {boolean}\r\n         * @since 3.0.0\r\n         */\r\n        this.killOnEnter = killOnEnter;\r\n    },\r\n\r\n    /**\r\n     * Checks if the given Particle will be killed or not by this zone.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Zones.DeathZone#willKill\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The particle to test against this Death Zones.\r\n     *\r\n     * @return {boolean} Return `true` if the Particle is to be killed, otherwise return `false`.\r\n     */\r\n    willKill: function (particle)\r\n    {\r\n        var withinZone = this.source.contains(particle.x, particle.y);\r\n\r\n        return (withinZone && this.killOnEnter || !withinZone && !this.killOnEnter);\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = DeathZone;\r\n\n\n/***/ }),\n\n/***/ 19909:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\n\r\n/**\r\n * @classdesc\r\n * A zone that places particles on a shape's edges.\r\n *\r\n * @class EdgeZone\r\n * @memberof Phaser.GameObjects.Particles.Zones\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Particles.EdgeZoneSource} source - An object instance with a `getPoints(quantity, stepRate)` method returning an array of points.\r\n * @param {number} quantity - The number of particles to place on the source edge. Set to 0 to use `stepRate` instead.\r\n * @param {number} [stepRate] - The distance between each particle. When set, `quantity` is implied and should be set to 0.\r\n * @param {boolean} [yoyo=false] - Whether particles are placed from start to end and then end to start.\r\n * @param {boolean} [seamless=true] - Whether one endpoint will be removed if it's identical to the other.\r\n * @param {number} [total=-1] - The total number of particles this zone will emit before passing over to the next emission zone in the Emitter. -1 means it will never pass over and you must use `setEmitZone` to change it.\r\n */\r\nvar EdgeZone = new Class({\r\n\r\n    initialize:\r\n\r\n    function EdgeZone (source, quantity, stepRate, yoyo, seamless, total)\r\n    {\r\n        if (yoyo === undefined) { yoyo = false; }\r\n        if (seamless === undefined) { seamless = true; }\r\n        if (total === undefined) { total = -1; }\r\n\r\n        /**\r\n         * An object instance with a `getPoints(quantity, stepRate)` method returning an array of points.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.EdgeZone#source\r\n         * @type {Phaser.Types.GameObjects.Particles.EdgeZoneSource|Phaser.Types.GameObjects.Particles.RandomZoneSource}\r\n         * @since 3.0.0\r\n         */\r\n        this.source = source;\r\n\r\n        /**\r\n         * The points placed on the source edge.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.EdgeZone#points\r\n         * @type {Phaser.Geom.Point[]}\r\n         * @default []\r\n         * @since 3.0.0\r\n         */\r\n        this.points = [];\r\n\r\n        /**\r\n         * The number of particles to place on the source edge. Set to 0 to use `stepRate` instead.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.EdgeZone#quantity\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         */\r\n        this.quantity = quantity;\r\n\r\n        /**\r\n         * The distance between each particle. When set, `quantity` is implied and should be set to 0.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.EdgeZone#stepRate\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         */\r\n        this.stepRate = stepRate;\r\n\r\n        /**\r\n         * Whether particles are placed from start to end and then end to start.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.EdgeZone#yoyo\r\n         * @type {boolean}\r\n         * @since 3.0.0\r\n         */\r\n        this.yoyo = yoyo;\r\n\r\n        /**\r\n         * The counter used for iterating the EdgeZone's points.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.EdgeZone#counter\r\n         * @type {number}\r\n         * @default -1\r\n         * @since 3.0.0\r\n         */\r\n        this.counter = -1;\r\n\r\n        /**\r\n         * Whether one endpoint will be removed if it's identical to the other.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.EdgeZone#seamless\r\n         * @type {boolean}\r\n         * @since 3.0.0\r\n         */\r\n        this.seamless = seamless;\r\n\r\n        /**\r\n         * An internal count of the points belonging to this EdgeZone.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.EdgeZone#_length\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._length = 0;\r\n\r\n        /**\r\n         * An internal value used to keep track of the current iteration direction for the EdgeZone's points.\r\n         *\r\n         * 0 = forwards, 1 = backwards\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.EdgeZone#_direction\r\n         * @type {number}\r\n         * @private\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this._direction = 0;\r\n\r\n        /**\r\n         * The total number of particles this zone will emit before the Emitter\r\n         * transfers control over to the next zone in its emission zone list.\r\n         *\r\n         * By default this is -1, meaning it will never pass over from this\r\n         * zone to another one. You can call the `ParticleEmitter.setEmitZone`\r\n         * method to change it, or set this value to something else via the\r\n         * config, or directly at runtime.\r\n         *\r\n         * A value of 1 would mean the zones rotate in order, but it can\r\n         * be set to any integer value.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.EdgeZone#total\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.total = total;\r\n\r\n        this.updateSource();\r\n    },\r\n\r\n    /**\r\n     * Update the {@link Phaser.GameObjects.Particles.Zones.EdgeZone#points} from the EdgeZone's\r\n     * {@link Phaser.GameObjects.Particles.Zones.EdgeZone#source}.\r\n     *\r\n     * Also updates internal properties.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Zones.EdgeZone#updateSource\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Edge Zone.\r\n     */\r\n    updateSource: function ()\r\n    {\r\n        this.points = this.source.getPoints(this.quantity, this.stepRate);\r\n\r\n        //  Remove ends?\r\n        if (this.seamless)\r\n        {\r\n            var a = this.points[0];\r\n            var b = this.points[this.points.length - 1];\r\n\r\n            if (a.x === b.x && a.y === b.y)\r\n            {\r\n                this.points.pop();\r\n            }\r\n        }\r\n\r\n        var oldLength = this._length;\r\n\r\n        this._length = this.points.length;\r\n\r\n        //  Adjust counter if we now have less points than before\r\n        if (this._length < oldLength && this.counter > this._length)\r\n        {\r\n            this.counter = this._length - 1;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Change the source of the EdgeZone.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Zones.EdgeZone#changeSource\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Particles.EdgeZoneSource} source - An object instance with a `getPoints(quantity, stepRate)` method returning an array of points.\r\n     *\r\n     * @return {this} This Edge Zone.\r\n     */\r\n    changeSource: function (source)\r\n    {\r\n        this.source = source;\r\n\r\n        return this.updateSource();\r\n    },\r\n\r\n    /**\r\n     * Get the next point in the Zone and set its coordinates on the given Particle.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Zones.EdgeZone#getPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The Particle.\r\n     */\r\n    getPoint: function (particle)\r\n    {\r\n        if (this._direction === 0)\r\n        {\r\n            this.counter++;\r\n\r\n            if (this.counter >= this._length)\r\n            {\r\n                if (this.yoyo)\r\n                {\r\n                    this._direction = 1;\r\n                    this.counter = this._length - 1;\r\n                }\r\n                else\r\n                {\r\n                    this.counter = 0;\r\n                }\r\n            }\r\n        }\r\n        else\r\n        {\r\n            this.counter--;\r\n\r\n            if (this.counter === -1)\r\n            {\r\n                if (this.yoyo)\r\n                {\r\n                    this._direction = 0;\r\n                    this.counter = 0;\r\n                }\r\n                else\r\n                {\r\n                    this.counter = this._length - 1;\r\n                }\r\n            }\r\n        }\r\n\r\n        var point = this.points[this.counter];\r\n\r\n        if (point)\r\n        {\r\n            particle.x = point.x;\r\n            particle.y = point.y;\r\n        }\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = EdgeZone;\r\n\n\n/***/ }),\n\n/***/ 68875:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * A zone that places particles randomly within a shapes area.\r\n *\r\n * @class RandomZone\r\n * @memberof Phaser.GameObjects.Particles.Zones\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Particles.RandomZoneSource} source - An object instance with a `getRandomPoint(point)` method.\r\n */\r\nvar RandomZone = new Class({\r\n\r\n    initialize:\r\n\r\n    function RandomZone (source)\r\n    {\r\n        /**\r\n         * An object instance with a `getRandomPoint(point)` method.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.RandomZone#source\r\n         * @type {Phaser.Types.GameObjects.Particles.RandomZoneSource}\r\n         * @since 3.0.0\r\n         */\r\n        this.source = source;\r\n\r\n        /**\r\n         * Internal calculation vector.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.RandomZone#_tempVec\r\n         * @type {Phaser.Math.Vector2}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._tempVec = new Vector2();\r\n\r\n        /**\r\n         * The total number of particles this zone will emit before the Emitter\r\n         * transfers control over to the next zone in its emission zone list.\r\n         *\r\n         * By default this is -1, meaning it will never pass over from this\r\n         * zone to another one. You can call the `ParticleEmitter.setEmitZone`\r\n         * method to change it, or set this value to something else via the\r\n         * config, or directly at runtime.\r\n         *\r\n         * A value of 1 would mean the zones rotate in order, but it can\r\n         * be set to any integer value.\r\n         *\r\n         * @name Phaser.GameObjects.Particles.Zones.RandomZone#total\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.total = -1;\r\n    },\r\n\r\n    /**\r\n     * Get the next point in the Zone and set its coordinates on the given Particle.\r\n     *\r\n     * @method Phaser.GameObjects.Particles.Zones.RandomZone#getPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.GameObjects.Particles.Particle} particle - The Particle.\r\n     */\r\n    getPoint: function (particle)\r\n    {\r\n        var vec = this._tempVec;\r\n\r\n        this.source.getRandomPoint(vec);\r\n\r\n        particle.x = vec.x;\r\n        particle.y = vec.y;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = RandomZone;\r\n\n\n/***/ }),\n\n/***/ 21024:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * @namespace Phaser.GameObjects.Particles.Zones\r\n */\r\n\r\nmodule.exports = {\r\n\r\n    DeathZone: __webpack_require__(26388),\r\n    EdgeZone: __webpack_require__(19909),\r\n    RandomZone: __webpack_require__(68875)\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 1159:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar Sprite = __webpack_require__(68287);\r\n\r\n/**\r\n * @classdesc\r\n * A PathFollower Game Object.\r\n *\r\n * A PathFollower is a Sprite Game Object with some extra helpers to allow it to follow a Path automatically.\r\n *\r\n * Anything you can do with a standard Sprite can be done with this PathFollower, such as animate it, tint it,\r\n * scale it and so on.\r\n *\r\n * PathFollowers are bound to a single Path at any one time and can traverse the length of the Path, from start\r\n * to finish, forwards or backwards, or from any given point on the Path to its end. They can optionally rotate\r\n * to face the direction of the path, be offset from the path coordinates or rotate independently of the Path.\r\n *\r\n * @class PathFollower\r\n * @extends Phaser.GameObjects.Sprite\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @extends Phaser.GameObjects.Components.PathFollower\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this PathFollower belongs.\r\n * @param {Phaser.Curves.Path} path - The Path this PathFollower is following. It can only follow one Path at a time.\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {(string|Phaser.Textures.Texture)} texture - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {(string|number)} [frame] - An optional frame from the Texture this Game Object is rendering with.\r\n */\r\nvar PathFollower = new Class({\r\n\r\n    Extends: Sprite,\r\n\r\n    Mixins: [\r\n        Components.PathFollower\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function PathFollower (scene, path, x, y, texture, frame)\r\n    {\r\n        Sprite.call(this, scene, x, y, texture, frame);\r\n\r\n        this.path = path;\r\n    },\r\n\r\n    /**\r\n     * Internal update handler that advances this PathFollower along the path.\r\n     *\r\n     * Called automatically by the Scene step, should not typically be called directly.\r\n     *\r\n     * @method Phaser.GameObjects.PathFollower#preUpdate\r\n     * @protected\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} time - The current timestamp as generated by the Request Animation Frame or SetTimeout.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    preUpdate: function (time, delta)\r\n    {\r\n        this.anims.update(time, delta);\r\n        this.pathUpdate(time);\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = PathFollower;\r\n\n\n/***/ }),\n\n/***/ 90145:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar PathFollower = __webpack_require__(1159);\r\n\r\n/**\r\n * Creates a new PathFollower Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the PathFollower Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#follower\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Curves.Path} path - The Path this PathFollower is connected to.\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {(string|Phaser.Textures.Texture)} texture - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {(string|number)} [frame] - An optional frame from the Texture this Game Object is rendering with.\r\n *\r\n * @return {Phaser.GameObjects.PathFollower} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('follower', function (path, x, y, key, frame)\r\n{\r\n    var sprite = new PathFollower(this.scene, path, x, y, key, frame);\r\n\r\n    this.displayList.add(sprite);\r\n    this.updateList.add(sprite);\r\n\r\n    return sprite;\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectFactory context.\r\n//\r\n//  There are several properties available to use:\r\n//\r\n//  this.scene - a reference to the Scene that owns the GameObjectFactory\r\n//  this.displayList - a reference to the Display List the Scene owns\r\n//  this.updateList - a reference to the Update List the Scene owns\r\n\n\n/***/ }),\n\n/***/ 33663:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar AnimationState = __webpack_require__(9674);\r\nvar Class = __webpack_require__(83419);\r\nvar GenerateGridVerts = __webpack_require__(48803);\r\nvar IntegerToRGB = __webpack_require__(90664);\r\nvar Mesh = __webpack_require__(4703);\r\nvar UUID = __webpack_require__(45650);\r\n\r\n/**\r\n * @classdesc\r\n * A Plane Game Object.\r\n *\r\n * The Plane Game Object is a helper class that takes the Mesh Game Object and extends it,\r\n * allowing for fast and easy creation of Planes. A Plane is a one-sided grid of cells,\r\n * where you specify the number of cells in each dimension. The Plane can have a texture\r\n * that is either repeated (tiled) across each cell, or applied to the full Plane.\r\n *\r\n * The Plane can then be manipulated in 3D space, with rotation across all 3 axis.\r\n *\r\n * This allows you to create effects not possible with regular Sprites, such as perspective\r\n * distortion. You can also adjust the vertices on a per-vertex basis. Plane data becomes\r\n * part of the WebGL batch, just like standard Sprites, so doesn't introduce any additional\r\n * shader overhead. Because the Plane just generates vertices into the WebGL batch, like any\r\n * other Sprite, you can use all of the common Game Object components on a Plane too,\r\n * such as a custom pipeline, mask, blend mode or texture.\r\n *\r\n * You can use the `uvScroll` and `uvScale` methods to adjust the placement and scaling\r\n * of the texture if this Plane is using a single texture, and not a frame from a texture\r\n * atlas or sprite sheet.\r\n *\r\n * The Plane Game Object also has the Animation component, allowing you to play animations\r\n * across the Plane just as you would with a Sprite. The animation frame size must be fixed\r\n * as the first frame will be the size of the entire animation, for example use a `SpriteSheet`.\r\n *\r\n * Note that the Plane object is WebGL only and does not have a Canvas counterpart.\r\n *\r\n * The Plane origin is always 0.5 x 0.5 and cannot be changed.\r\n *\r\n * @class Plane\r\n * @extends Phaser.GameObjects.Mesh\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Plane belongs. A Plane can only belong to one Scene at a time.\r\n * @param {number} [x] - The horizontal position of this Plane in the world.\r\n * @param {number} [y] - The vertical position of this Plane in the world.\r\n * @param {string|Phaser.Textures.Texture} [texture] - The key, or instance of the Texture this Plane will use to render with, as stored in the Texture Manager.\r\n * @param {string|number} [frame] - An optional frame from the Texture this Plane is rendering with.\r\n * @param {number} [width=8] - The width of this Plane, in cells, not pixels.\r\n * @param {number} [height=8] - The height of this Plane, in cells, not pixels.\r\n * @param {boolean} [tile=false] - Is the texture tiled? I.e. repeated across each cell.\r\n */\r\nvar Plane = new Class({\r\n\r\n    Extends: Mesh,\r\n\r\n    initialize:\r\n\r\n    function Plane (scene, x, y, texture, frame, width, height, tile)\r\n    {\r\n        if (!texture) { texture = '__DEFAULT'; }\r\n\r\n        Mesh.call(this, scene, x, y, texture, frame);\r\n\r\n        this.type = 'Plane';\r\n\r\n        /**\r\n         * The Animation State component of this Sprite.\r\n         *\r\n         * This component provides features to apply animations to this Sprite.\r\n         * It is responsible for playing, loading, queuing animations for later playback,\r\n         * mixing between animations and setting the current animation frame to this Sprite.\r\n         *\r\n         * @name Phaser.GameObjects.Plane#anims\r\n         * @type {Phaser.Animations.AnimationState}\r\n         * @since 3.60.0\r\n         */\r\n        this.anims = new AnimationState(this);\r\n\r\n        /**\r\n         * The width of this Plane in cells, not pixels.\r\n         *\r\n         * This value is read-only. To adjust it, see the `setGridSize` method.\r\n         *\r\n         * @name Phaser.GameObjects.Plane#gridWidth\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.gridWidth;\r\n\r\n        /**\r\n         * The height of this Plane in cells, not pixels.\r\n         *\r\n         * This value is read-only. To adjust it, see the `setGridSize` method.\r\n         *\r\n         * @name Phaser.GameObjects.Plane#gridHeight\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.gridHeight;\r\n\r\n        /**\r\n         * Is the texture of this Plane tiled across all cells, or not?\r\n         *\r\n         * This value is read-only. To adjust it, see the `setGridSize` method.\r\n         *\r\n         * @name Phaser.GameObjects.Plane#isTiled\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.isTiled;\r\n\r\n        /**\r\n         * If this Plane has a checkboard texture, this is a reference to\r\n         * the WebGLTexture being used. Otherwise, it's null.\r\n         *\r\n         * @name Phaser.GameObjects.Plane#_checkerboard\r\n         * @type {?WebGLTexture}\r\n         * @private\r\n         * @since 3.60.0\r\n         */\r\n        this._checkerboard = null;\r\n\r\n        this.hideCCW = false;\r\n\r\n        this.setGridSize(width, height, tile);\r\n        this.setSizeToFrame(false);\r\n        this.setViewHeight();\r\n    },\r\n\r\n    /**\r\n     * Do not change this value. It has no effect other than to break things.\r\n     *\r\n     * @name Phaser.GameObjects.Plane#originX\r\n     * @type {number}\r\n     * @readonly\r\n     * @override\r\n     * @since 3.70.0\r\n     */\r\n    originX: {\r\n\r\n        get: function ()\r\n        {\r\n            return 0.5;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Do not change this value. It has no effect other than to break things.\r\n     *\r\n     * @name Phaser.GameObjects.Plane#originY\r\n     * @type {number}\r\n     * @readonly\r\n     * @override\r\n     * @since 3.70.0\r\n     */\r\n    originY: {\r\n\r\n        get: function ()\r\n        {\r\n            return 0.5;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Modifies the layout of this Plane by adjusting the grid dimensions to the\r\n     * given width and height. The values are given in cells, not pixels.\r\n     *\r\n     * The `tile` parameter allows you to control if the texture is tiled, or\r\n     * applied across the entire Plane? A tiled texture will repeat with one\r\n     * iteration per cell. A non-tiled texture will be applied across the whole\r\n     * Plane.\r\n     *\r\n     * Note that if this Plane is using a single texture, not from a texture atlas\r\n     * or sprite sheet, then you can use the `Plane.uvScale` method to have much\r\n     * more fine-grained control over the texture tiling.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#preDestroy\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [width=8] - The width of this Plane, in cells, not pixels.\r\n     * @param {number} [height=8] - The height of this Plane, in cells, not pixels.\r\n     * @param {boolean} [tile=false] - Is the texture tiled? I.e. repeated across each cell.\r\n     */\r\n    setGridSize: function (width, height, tile)\r\n    {\r\n        if (width === undefined) { width = 8; }\r\n        if (height === undefined) { height = 8; }\r\n        if (tile === undefined) { tile = false; }\r\n\r\n        var flipY = false;\r\n\r\n        if (tile)\r\n        {\r\n            flipY = true;\r\n        }\r\n\r\n        this.gridWidth = width;\r\n        this.gridHeight = height;\r\n        this.isTiled = tile;\r\n\r\n        this.clear();\r\n\r\n        GenerateGridVerts({\r\n            mesh: this,\r\n            widthSegments: width,\r\n            heightSegments: height,\r\n            isOrtho: false,\r\n            tile: tile,\r\n            flipY: flipY\r\n        });\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * An internal method that resets the perspective projection for this Plane\r\n     * when it changes texture or frame, and also resets the cell UV coordinates,\r\n     * if required.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#setSizeToFrame\r\n     * @since 3.60.0\r\n     * @override\r\n     *\r\n     * @param {boolean} [resetUV=true] - Reset all of the cell UV coordinates?\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSizeToFrame: function (resetUV)\r\n    {\r\n        if (resetUV === undefined) { resetUV = true; }\r\n\r\n        var frame = this.frame;\r\n\r\n        this.setPerspective(this.width / frame.width, this.height / frame.height);\r\n\r\n        if (this._checkerboard && this._checkerboard !== this.texture)\r\n        {\r\n            this.removeCheckerboard();\r\n        }\r\n\r\n        if (!resetUV)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        //  Reset UV coordinates if frame has changed\r\n\r\n        var gridX = this.gridWidth;\r\n        var gridY = this.gridHeight;\r\n\r\n        var verts = this.vertices;\r\n\r\n        var frameU0 = frame.u0;\r\n        var frameU1 = frame.u1;\r\n        var frameV0 = frame.v0;\r\n        var frameV1 = frame.v1;\r\n\r\n        var x;\r\n        var y;\r\n        var i = 0;\r\n\r\n        if (this.isTiled)\r\n        {\r\n            //  flipY\r\n            frameV0 = frame.v1;\r\n            frameV1 = frame.v0;\r\n\r\n            for (y = 0; y < gridY; y++)\r\n            {\r\n                for (x = 0; x < gridX; x++)\r\n                {\r\n                    verts[i++].setUVs(frameU0, frameV1);\r\n                    verts[i++].setUVs(frameU0, frameV0);\r\n                    verts[i++].setUVs(frameU1, frameV1);\r\n                    verts[i++].setUVs(frameU0, frameV0);\r\n                    verts[i++].setUVs(frameU1, frameV0);\r\n                    verts[i++].setUVs(frameU1, frameV1);\r\n                }\r\n            }\r\n        }\r\n        else\r\n        {\r\n            var gridX1 = gridX + 1;\r\n            var gridY1 = gridY + 1;\r\n\r\n            var frameU = frameU1 - frameU0;\r\n            var frameV = frameV1 - frameV0;\r\n\r\n            var uvs = [];\r\n\r\n            for (y = 0; y < gridY1; y++)\r\n            {\r\n                for (x = 0; x < gridX1; x++)\r\n                {\r\n                    var tu = frameU0 + frameU * (x / gridX);\r\n                    var tv = frameV0 + frameV * (y / gridY);\r\n\r\n                    uvs.push(tu, tv);\r\n                }\r\n            }\r\n\r\n            for (y = 0; y < gridY; y++)\r\n            {\r\n                for (x = 0; x < gridX; x++)\r\n                {\r\n                    var a = (x + gridX1 * y) * 2;\r\n                    var b = (x + gridX1 * (y + 1)) * 2;\r\n                    var c = ((x + 1) + gridX1 * (y + 1)) * 2;\r\n                    var d = ((x + 1) + gridX1 * y) * 2;\r\n\r\n                    verts[i++].setUVs(uvs[a], uvs[a + 1]);\r\n                    verts[i++].setUVs(uvs[b], uvs[b + 1]);\r\n                    verts[i++].setUVs(uvs[d], uvs[d + 1]);\r\n                    verts[i++].setUVs(uvs[b], uvs[b + 1]);\r\n                    verts[i++].setUVs(uvs[c], uvs[c + 1]);\r\n                    verts[i++].setUVs(uvs[d], uvs[d + 1]);\r\n                }\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the height of this Plane to match the given value, in pixels.\r\n     *\r\n     * This adjusts the `Plane.viewPosition.z` value to achieve this.\r\n     *\r\n     * If no `value` parameter is given, it will set the view height to match\r\n     * that of the current texture frame the Plane is using.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#setViewHeight\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [value] - The height, in pixels, to set this Plane view height to.\r\n     */\r\n    setViewHeight: function (value)\r\n    {\r\n        if (value === undefined) { value = this.frame.height; }\r\n\r\n        var vFOV = this.fov * (Math.PI / 180);\r\n\r\n        this.viewPosition.z = (this.height / value) / (Math.tan(vFOV / 2));\r\n\r\n        this.dirtyCache[10] = 1;\r\n    },\r\n\r\n    /**\r\n     * Creates a checkerboard style texture, based on the given colors and alpha\r\n     * values and applies it to this Plane, replacing any current texture it may\r\n     * have.\r\n     *\r\n     * The colors are used in an alternating pattern, like a chess board.\r\n     *\r\n     * Calling this method generates a brand new 16x16 pixel WebGLTexture internally\r\n     * and applies it to this Plane. While quite fast to do, you should still be\r\n     * mindful of calling this method either extensively, or in tight parts of\r\n     * your game.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#createCheckerboard\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [color1=0xffffff] - The odd cell color, specified as a hex value.\r\n     * @param {number} [color2=0x0000ff] - The even cell color, specified as a hex value.\r\n     * @param {number} [alpha1=255] - The odd cell alpha value, specified as a number between 0 and 255.\r\n     * @param {number} [alpha2=255] - The even cell alpha value, specified as a number between 0 and 255.\r\n     * @param {number} [height=128] - The view height of the Plane after creation, in pixels.\r\n     */\r\n    createCheckerboard: function (color1, color2, alpha1, alpha2, height)\r\n    {\r\n        if (color1 === undefined) { color1 = 0xffffff; }\r\n        if (color2 === undefined) { color2 = 0x0000ff; }\r\n        if (alpha1 === undefined) { alpha1 = 255; }\r\n        if (alpha2 === undefined) { alpha2 = 255; }\r\n        if (height === undefined) { height = 128; }\r\n\r\n        //  Let's assume 16x16 for our texture size and 8x8 cell size\r\n\r\n        var c1 = IntegerToRGB(color1);\r\n        var c2 = IntegerToRGB(color2);\r\n\r\n        var colors = [];\r\n\r\n        for (var h = 0; h < 16; h++)\r\n        {\r\n            for (var w = 0; w < 16; w++)\r\n            {\r\n                if ((h < 8 && w < 8) || (h > 7 && w > 7))\r\n                {\r\n                    colors.push(c1.r, c1.g, c1.b, alpha1);\r\n                }\r\n                else\r\n                {\r\n                    colors.push(c2.r, c2.g, c2.b, alpha2);\r\n                }\r\n            }\r\n        }\r\n\r\n        var texture = this.scene.sys.textures.addUint8Array(UUID(), new Uint8Array(colors), 16, 16);\r\n\r\n        this.removeCheckerboard();\r\n\r\n        this.setTexture(texture);\r\n\r\n        this.setSizeToFrame();\r\n\r\n        this.setViewHeight(height);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * If this Plane has a Checkerboard Texture, this method will destroy it\r\n     * and reset the internal flag for it.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#removeCheckerboard\r\n     * @since 3.60.0\r\n     */\r\n    removeCheckerboard: function ()\r\n    {\r\n        if (this._checkerboard)\r\n        {\r\n            this._checkerboard.destroy();\r\n\r\n            this._checkerboard = null;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Start playing the given animation on this Plane.\r\n     *\r\n     * Animations in Phaser can either belong to the global Animation Manager, or specifically to this Plane.\r\n     *\r\n     * The benefit of a global animation is that multiple Game Objects can all play the same animation, without\r\n     * having to duplicate the data. You can just create it once and then play it on any animating Game Object.\r\n     *\r\n     * The following code shows how to create a global repeating animation. The animation will be created\r\n     * from all of the frames within the sprite sheet that was loaded with the key 'muybridge':\r\n     *\r\n     * ```javascript\r\n     * var config = {\r\n     *     key: 'run',\r\n     *     frames: 'muybridge',\r\n     *     frameRate: 15,\r\n     *     repeat: -1\r\n     * };\r\n     *\r\n     * //  This code should be run from within a Scene:\r\n     * this.anims.create(config);\r\n     * ```\r\n     *\r\n     * However, if you wish to create an animation that is unique to this Plane, and this Plane alone,\r\n     * you can call the `Animation.create` method instead. It accepts the exact same parameters as when\r\n     * creating a global animation, however the resulting data is kept locally in this Plane.\r\n     *\r\n     * With the animation created, either globally or locally, you can now play it on this Plane:\r\n     *\r\n     * ```javascript\r\n     * const plane = this.add.plane(...);\r\n     * plane.play('run');\r\n     * ```\r\n     *\r\n     * Alternatively, if you wish to run it at a different frame rate for example, you can pass a config\r\n     * object instead:\r\n     *\r\n     * ```javascript\r\n     * const plane = this.add.plane(...);\r\n     * plane.play({ key: 'run', frameRate: 24 });\r\n     * ```\r\n     *\r\n     * When playing an animation on a Plane it will first check to see if it can find a matching key\r\n     * locally within the Plane. If it can, it will play the local animation. If not, it will then\r\n     * search the global Animation Manager and look for it there.\r\n     *\r\n     * If you need a Plane to be able to play both local and global animations, make sure they don't\r\n     * have conflicting keys.\r\n     *\r\n     * See the documentation for the `PlayAnimationConfig` config object for more details about this.\r\n     *\r\n     * Also, see the documentation in the Animation Manager for further details on creating animations.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#play\r\n     * @fires Phaser.Animations.Events#ANIMATION_START\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {boolean} [ignoreIfPlaying=false] - If an animation is already playing then ignore this call.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    play: function (key, ignoreIfPlaying)\r\n    {\r\n        return this.anims.play(key, ignoreIfPlaying);\r\n    },\r\n\r\n    /**\r\n     * Start playing the given animation on this Plane, in reverse.\r\n     *\r\n     * Animations in Phaser can either belong to the global Animation Manager, or specifically to a Game Object.\r\n     *\r\n     * The benefit of a global animation is that multiple Game Objects can all play the same animation, without\r\n     * having to duplicate the data. You can just create it once and then play it on any animating Game Object.\r\n     *\r\n     * The following code shows how to create a global repeating animation. The animation will be created\r\n     * from all of the frames within the sprite sheet that was loaded with the key 'muybridge':\r\n     *\r\n     * ```javascript\r\n     * var config = {\r\n     *     key: 'run',\r\n     *     frames: 'muybridge',\r\n     *     frameRate: 15,\r\n     *     repeat: -1\r\n     * };\r\n     *\r\n     * //  This code should be run from within a Scene:\r\n     * this.anims.create(config);\r\n     * ```\r\n     *\r\n     * However, if you wish to create an animation that is unique to this Game Object, and this Game Object alone,\r\n     * you can call the `Animation.create` method instead. It accepts the exact same parameters as when\r\n     * creating a global animation, however the resulting data is kept locally in this Game Object.\r\n     *\r\n     * With the animation created, either globally or locally, you can now play it on this Game Object:\r\n     *\r\n     * ```javascript\r\n     * const plane = this.add.plane(...);\r\n     * plane.playReverse('run');\r\n     * ```\r\n     *\r\n     * Alternatively, if you wish to run it at a different frame rate, for example, you can pass a config\r\n     * object instead:\r\n     *\r\n     * ```javascript\r\n     * const plane = this.add.plane(...);\r\n     * plane.playReverse({ key: 'run', frameRate: 24 });\r\n     * ```\r\n     *\r\n     * When playing an animation on a Game Object it will first check to see if it can find a matching key\r\n     * locally within the Game Object. If it can, it will play the local animation. If not, it will then\r\n     * search the global Animation Manager and look for it there.\r\n     *\r\n     * If you need a Game Object to be able to play both local and global animations, make sure they don't\r\n     * have conflicting keys.\r\n     *\r\n     * See the documentation for the `PlayAnimationConfig` config object for more details about this.\r\n     *\r\n     * Also, see the documentation in the Animation Manager for further details on creating animations.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#playReverse\r\n     * @fires Phaser.Animations.Events#ANIMATION_START\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {boolean} [ignoreIfPlaying=false] - If an animation is already playing then ignore this call.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    playReverse: function (key, ignoreIfPlaying)\r\n    {\r\n        return this.anims.playReverse(key, ignoreIfPlaying);\r\n    },\r\n\r\n    /**\r\n     * Waits for the specified delay, in milliseconds, then starts playback of the given animation.\r\n     *\r\n     * If the animation _also_ has a delay value set in its config, it will be **added** to the delay given here.\r\n     *\r\n     * If an animation is already running and a new animation is given to this method, it will wait for\r\n     * the given delay before starting the new animation.\r\n     *\r\n     * If no animation is currently running, the given one begins after the delay.\r\n     *\r\n     * When playing an animation on a Game Object it will first check to see if it can find a matching key\r\n     * locally within the Game Object. If it can, it will play the local animation. If not, it will then\r\n     * search the global Animation Manager and look for it there.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#playAfterDelay\r\n     * @fires Phaser.Animations.Events#ANIMATION_START\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {number} delay - The delay, in milliseconds, to wait before starting the animation playing.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    playAfterDelay: function (key, delay)\r\n    {\r\n        return this.anims.playAfterDelay(key, delay);\r\n    },\r\n\r\n    /**\r\n     * Waits for the current animation to complete the `repeatCount` number of repeat cycles, then starts playback\r\n     * of the given animation.\r\n     *\r\n     * You can use this to ensure there are no harsh jumps between two sets of animations, i.e. going from an\r\n     * idle animation to a walking animation, by making them blend smoothly into each other.\r\n     *\r\n     * If no animation is currently running, the given one will start immediately.\r\n     *\r\n     * When playing an animation on a Game Object it will first check to see if it can find a matching key\r\n     * locally within the Game Object. If it can, it will play the local animation. If not, it will then\r\n     * search the global Animation Manager and look for it there.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#playAfterRepeat\r\n     * @fires Phaser.Animations.Events#ANIMATION_START\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {number} [repeatCount=1] - How many times should the animation repeat before the next one starts?\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    playAfterRepeat: function (key, repeatCount)\r\n    {\r\n        return this.anims.playAfterRepeat(key, repeatCount);\r\n    },\r\n\r\n    /**\r\n     * Immediately stops the current animation from playing and dispatches the `ANIMATION_STOP` events.\r\n     *\r\n     * If no animation is playing, no event will be dispatched.\r\n     *\r\n     * If there is another animation queued (via the `chain` method) then it will start playing immediately.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#stop\r\n     * @fires Phaser.Animations.Events#ANIMATION_STOP\r\n     * @since 3.60.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    stop: function ()\r\n    {\r\n        return this.anims.stop();\r\n    },\r\n\r\n    /**\r\n     * Stops the current animation from playing after the specified time delay, given in milliseconds.\r\n     *\r\n     * It then dispatches the `ANIMATION_STOP` event.\r\n     *\r\n     * If no animation is running, no events will be dispatched.\r\n     *\r\n     * If there is another animation in the queue (set via the `chain` method) then it will start playing,\r\n     * when the current one stops.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#stopAfterDelay\r\n     * @fires Phaser.Animations.Events#ANIMATION_STOP\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} delay - The number of milliseconds to wait before stopping this animation.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    stopAfterDelay: function (delay)\r\n    {\r\n        return this.anims.stopAfterDelay(delay);\r\n    },\r\n\r\n    /**\r\n     * Stops the current animation from playing after the given number of repeats.\r\n     *\r\n     * It then dispatches the `ANIMATION_STOP` event.\r\n     *\r\n     * If no animation is running, no events will be dispatched.\r\n     *\r\n     * If there is another animation in the queue (set via the `chain` method) then it will start playing,\r\n     * when the current one stops.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#stopAfterRepeat\r\n     * @fires Phaser.Animations.Events#ANIMATION_STOP\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} [repeatCount=1] - How many times should the animation repeat before stopping?\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    stopAfterRepeat: function (repeatCount)\r\n    {\r\n        return this.anims.stopAfterRepeat(repeatCount);\r\n    },\r\n\r\n    /**\r\n     * Stops the current animation from playing when it next sets the given frame.\r\n     * If this frame doesn't exist within the animation it will not stop it from playing.\r\n     *\r\n     * It then dispatches the `ANIMATION_STOP` event.\r\n     *\r\n     * If no animation is running, no events will be dispatched.\r\n     *\r\n     * If there is another animation in the queue (set via the `chain` method) then it will start playing,\r\n     * when the current one stops.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#stopOnFrame\r\n     * @fires Phaser.Animations.Events#ANIMATION_STOP\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationFrame} frame - The frame to check before stopping this animation.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    stopOnFrame: function (frame)\r\n    {\r\n        return this.anims.stopOnFrame(frame);\r\n    },\r\n\r\n    /**\r\n     * Runs the preUpdate for this Plane, which will check its Animation State,\r\n     * if one is playing, and refresh view / model matrices, if updated.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#preUpdate\r\n     * @protected\r\n     * @since 3.60.0\r\n     *\r\n     * @param {number} time - The current timestamp.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    preUpdate: function (time, delta)\r\n    {\r\n        Mesh.prototype.preUpdate.call(this, time, delta);\r\n\r\n        this.anims.update(time, delta);\r\n    },\r\n\r\n    /**\r\n     * Handles the pre-destroy step for the Plane, which removes the vertices and debug callbacks.\r\n     *\r\n     * @method Phaser.GameObjects.Plane#preDestroy\r\n     * @private\r\n     * @since 3.60.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.clear();\r\n        this.removeCheckerboard();\r\n\r\n        this.anims.destroy();\r\n\r\n        this.anims = undefined;\r\n\r\n        this.debugCallback = null;\r\n        this.debugGraphic = null;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Plane;\r\n\n\n/***/ }),\n\n/***/ 56015:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar BuildGameObjectAnimation = __webpack_require__(13059);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar GetValue = __webpack_require__(35154);\r\nvar Plane = __webpack_require__(33663);\r\n\r\n/**\r\n * Creates a new Plane Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Plane Game Object and WebGL support have been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#plane\r\n * @since 3.60.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Plane.PlaneConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.Plane} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('plane', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var key = GetAdvancedValue(config, 'key', null);\r\n    var frame = GetAdvancedValue(config, 'frame', null);\r\n    var width = GetValue(config, 'width', 8);\r\n    var height = GetValue(config, 'height', 8);\r\n    var tile = GetValue(config, 'tile', false);\r\n\r\n    var plane = new Plane(this.scene, 0, 0, key, frame, width, height, tile);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    var checkerboard = GetValue(config, 'checkerboard', null);\r\n\r\n    if (checkerboard)\r\n    {\r\n        var color1 = GetValue(checkerboard, 'color1', 0xffffff);\r\n        var color2 = GetValue(checkerboard, 'color2', 0x0000ff);\r\n        var alpha1 = GetValue(checkerboard, 'alpha1', 255);\r\n        var alpha2 = GetValue(checkerboard, 'alpha2', 255);\r\n        var checkheight = GetValue(checkerboard, 'height', 128);\r\n\r\n        plane.createCheckerboard(color1, color2, alpha1, alpha2, checkheight);\r\n    }\r\n\r\n    BuildGameObject(this.scene, plane, config);\r\n\r\n    BuildGameObjectAnimation(plane, config);\r\n\r\n    return plane;\r\n});\r\n\n\n/***/ }),\n\n/***/ 30985:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Plane = __webpack_require__(33663);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Plane Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Plane Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#plane\r\n * @since 3.60.0\r\n *\r\n * @param {number} [x] - The horizontal position of this Plane in the world.\r\n * @param {number} [y] - The vertical position of this Plane in the world.\r\n * @param {string|Phaser.Textures.Texture} [texture] - The key, or instance of the Texture this Plane will use to render with, as stored in the Texture Manager.\r\n * @param {string|number} [frame] - An optional frame from the Texture this Plane is rendering with.\r\n * @param {number} [width=8] - The width of this Plane, in cells, not pixels.\r\n * @param {number} [height=8] - The height of this Plane, in cells, not pixels.\r\n * @param {boolean} [tile=false] - Is the texture tiled? I.e. repeated across each cell.\r\n *\r\n * @return {Phaser.GameObjects.Plane} The Plane Game Object that was created.\r\n */\r\nGameObjectFactory.register('plane', function (x, y, texture, frame, width, height, tile)\r\n{\r\n    return this.displayList.add(new Plane(this.scene, x, y, texture, frame, width, height, tile));\r\n});\r\n\n\n/***/ }),\n\n/***/ 80321:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar GameObject = __webpack_require__(95643);\r\nvar IntegerToColor = __webpack_require__(30100);\r\nvar PIPELINES_CONST = __webpack_require__(36060);\r\nvar Render = __webpack_require__(67277);\r\n\r\n/**\r\n * @classdesc\r\n * The Point Light Game Object provides a way to add a point light effect into your game,\r\n * without the expensive shader processing requirements of the traditional Light Game Object.\r\n *\r\n * The difference is that the Point Light renders using a custom shader, designed to give the\r\n * impression of a point light source, of variable radius, intensity and color, in your game.\r\n * However, unlike the Light Game Object, it does not impact any other Game Objects, or use their\r\n * normal maps for calcuations. This makes them extremely fast to render compared to Lights\r\n * and perfect for special effects, such as flickering torches or muzzle flashes.\r\n *\r\n * For maximum performance you should batch Point Light Game Objects together. This means\r\n * ensuring they follow each other consecutively on the display list. Ideally, use a Layer\r\n * Game Object and then add just Point Lights to it, so that it can batch together the rendering\r\n * of the lights. You don't _have_ to do this, and if you've only a handful of Point Lights in\r\n * your game then it's perfectly safe to mix them into the dislay list as normal. However, if\r\n * you're using a large number of them, please consider how they are mixed into the display list.\r\n *\r\n * The renderer will automatically cull Point Lights. Those with a radius that does not intersect\r\n * with the Camera will be skipped in the rendering list. This happens automatically and the\r\n * culled state is refreshed every frame, for every camera.\r\n *\r\n * The origin of a Point Light is always 0.5 and it cannot be changed.\r\n *\r\n * Point Lights are a WebGL only feature and do not have a Canvas counterpart.\r\n *\r\n * @class PointLight\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.50.0\r\n *\r\n * @extends Phaser.GameObjects.Components.AlphaSingle\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.GetBounds\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Point Light belongs. A Point Light can only belong to one Scene at a time.\r\n * @param {number} x - The horizontal position of this Point Light in the world.\r\n * @param {number} y - The vertical position of this Point Light in the world.\r\n * @param {number} [color=0xffffff] - The color of the Point Light, given as a hex value.\r\n * @param {number} [radius=128] - The radius of the Point Light.\r\n * @param {number} [intensity=1] - The intensity, or color blend, of the Point Light.\r\n * @param {number} [attenuation=0.1] - The attenuation  of the Point Light. This is the reduction of light from the center point.\r\n */\r\nvar PointLight = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.AlphaSingle,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.Mask,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.ScrollFactor,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        Render\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function PointLight (scene, x, y, color, radius, intensity, attenuation)\r\n    {\r\n        if (color === undefined) { color = 0xffffff; }\r\n        if (radius === undefined) { radius = 128; }\r\n        if (intensity === undefined) { intensity = 1; }\r\n        if (attenuation === undefined) { attenuation = 0.1; }\r\n\r\n        GameObject.call(this, scene, 'PointLight');\r\n\r\n        this.initPipeline(PIPELINES_CONST.POINTLIGHT_PIPELINE);\r\n        this.initPostPipeline();\r\n\r\n        this.setPosition(x, y);\r\n\r\n        /**\r\n         * The color of this Point Light. This property is an instance of a\r\n         * Color object, so you can use the methods within it, such as `setTo(r, g, b)`\r\n         * to change the color value.\r\n         *\r\n         * @name Phaser.GameObjects.PointLight#color\r\n         * @type {Phaser.Display.Color}\r\n         * @since 3.50.0\r\n         */\r\n        this.color = IntegerToColor(color);\r\n\r\n        /**\r\n         * The intensity of the Point Light.\r\n         *\r\n         * The colors of the light are multiplied by this value during rendering.\r\n         *\r\n         * @name Phaser.GameObjects.PointLight#intensity\r\n         * @type {number}\r\n         * @since 3.50.0\r\n         */\r\n        this.intensity = intensity;\r\n\r\n        /**\r\n         * The attenuation of the Point Light.\r\n         *\r\n         * This value controls the force with which the light falls-off from the center of the light.\r\n         *\r\n         * Use small float-based values, i.e. 0.1.\r\n         *\r\n         * @name Phaser.GameObjects.PointLight#attenuation\r\n         * @type {number}\r\n         * @since 3.50.0\r\n         */\r\n        this.attenuation = attenuation;\r\n\r\n        //  read only:\r\n        this.width = radius * 2;\r\n        this.height = radius * 2;\r\n\r\n        this._radius = radius;\r\n    },\r\n\r\n    /**\r\n     * The radius of the Point Light.\r\n     *\r\n     * @name Phaser.GameObjects.PointLight#radius\r\n     * @type {number}\r\n     * @since 3.50.0\r\n     */\r\n    radius: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._radius;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._radius = value;\r\n            this.width = value * 2;\r\n            this.height = value * 2;\r\n        }\r\n\r\n    },\r\n\r\n    originX: {\r\n\r\n        get: function ()\r\n        {\r\n            return 0.5;\r\n        }\r\n\r\n    },\r\n\r\n    originY: {\r\n\r\n        get: function ()\r\n        {\r\n            return 0.5;\r\n        }\r\n\r\n    },\r\n\r\n    displayOriginX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._radius;\r\n        }\r\n\r\n    },\r\n\r\n    displayOriginY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._radius;\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = PointLight;\r\n\n\n/***/ }),\n\n/***/ 39829:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar PointLight = __webpack_require__(80321);\r\n\r\n/**\r\n * Creates a new Point Light Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Point Light Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#pointlight\r\n * @since 3.50.0\r\n *\r\n * @param {object} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.PointLight} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('pointlight', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var color = GetAdvancedValue(config, 'color', 0xffffff);\r\n    var radius = GetAdvancedValue(config, 'radius', 128);\r\n    var intensity = GetAdvancedValue(config, 'intensity', 1);\r\n    var attenuation = GetAdvancedValue(config, 'attenuation', 0.1);\r\n\r\n    var layer = new PointLight(this.scene, 0, 0, color, radius, intensity, attenuation);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, layer, config);\r\n\r\n    return layer;\r\n});\r\n\n\n/***/ }),\n\n/***/ 71255:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar PointLight = __webpack_require__(80321);\r\n\r\n/**\r\n * Creates a new Point Light Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Point Light Game Object has been built into Phaser.\r\n *\r\n * The Point Light Game Object provides a way to add a point light effect into your game,\r\n * without the expensive shader processing requirements of the traditional Light Game Object.\r\n *\r\n * The difference is that the Point Light renders using a custom shader, designed to give the\r\n * impression of a point light source, of variable radius, intensity and color, in your game.\r\n * However, unlike the Light Game Object, it does not impact any other Game Objects, or use their\r\n * normal maps for calcuations. This makes them extremely fast to render compared to Lights\r\n * and perfect for special effects, such as flickering torches or muzzle flashes.\r\n *\r\n * For maximum performance you should batch Point Light Game Objects together. This means\r\n * ensuring they follow each other consecutively on the display list. Ideally, use a Layer\r\n * Game Object and then add just Point Lights to it, so that it can batch together the rendering\r\n * of the lights. You don't _have_ to do this, and if you've only a handful of Point Lights in\r\n * your game then it's perfectly safe to mix them into the dislay list as normal. However, if\r\n * you're using a large number of them, please consider how they are mixed into the display list.\r\n *\r\n * The renderer will automatically cull Point Lights. Those with a radius that does not intersect\r\n * with the Camera will be skipped in the rendering list. This happens automatically and the\r\n * culled state is refreshed every frame, for every camera.\r\n *\r\n * The origin of a Point Light is always 0.5 and it cannot be changed.\r\n *\r\n * Point Lights are a WebGL only feature and do not have a Canvas counterpart.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#pointlight\r\n * @since 3.50.0\r\n *\r\n * @param {number} x - The horizontal position of this Point Light in the world.\r\n * @param {number} y - The vertical position of this Point Light in the world.\r\n * @param {number} [color=0xffffff] - The color of the Point Light, given as a hex value.\r\n * @param {number} [radius=128] - The radius of the Point Light.\r\n * @param {number} [intensity=1] - The intensity, or color blend, of the Point Light.\r\n * @param {number} [attenuation=0.1] - The attenuation  of the Point Light. This is the reduction of light from the center point.\r\n *\r\n * @return {Phaser.GameObjects.PointLight} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('pointlight', function (x, y, color, radius, intensity, attenuation)\r\n{\r\n    return this.displayList.add(new PointLight(this.scene, x, y, color, radius, intensity, attenuation));\r\n});\r\n\n\n/***/ }),\n\n/***/ 67277:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(57787);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 57787:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.PointLight#renderWebGL\r\n * @since 3.50.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.PointLight} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar PointLightWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline);\r\n\r\n    var calcMatrix = GetCalcMatrix(src, camera, parentMatrix).calc;\r\n\r\n    var width = src.width;\r\n    var height = src.height;\r\n\r\n    var x = -src._radius;\r\n    var y = -src._radius;\r\n\r\n    var xw = x + width;\r\n    var yh = y + height;\r\n\r\n    var lightX = calcMatrix.getX(0, 0);\r\n    var lightY = calcMatrix.getY(0, 0);\r\n\r\n    var tx0 = calcMatrix.getX(x, y);\r\n    var ty0 = calcMatrix.getY(x, y);\r\n\r\n    var tx1 = calcMatrix.getX(x, yh);\r\n    var ty1 = calcMatrix.getY(x, yh);\r\n\r\n    var tx2 = calcMatrix.getX(xw, yh);\r\n    var ty2 = calcMatrix.getY(xw, yh);\r\n\r\n    var tx3 = calcMatrix.getX(xw, y);\r\n    var ty3 = calcMatrix.getY(xw, y);\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    pipeline.batchPointLight(src, camera, tx0, ty0, tx1, ty1, tx2, ty2, tx3, ty3, lightX, lightY);\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = PointLightWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 591:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar DynamicTexture = __webpack_require__(81320);\r\nvar Image = __webpack_require__(88571);\r\n\r\n/**\r\n * @classdesc\r\n * A Render Texture is a combination of Dynamic Texture and an Image Game Object, that uses the\r\n * Dynamic Texture to display itself with.\r\n *\r\n * A Dynamic Texture is a special texture that allows you to draw textures, frames and most kind of\r\n * Game Objects directly to it.\r\n *\r\n * You can take many complex objects and draw them to this one texture, which can then be used as the\r\n * base texture for other Game Objects, such as Sprites. Should you then update this texture, all\r\n * Game Objects using it will instantly be updated as well, reflecting the changes immediately.\r\n *\r\n * It's a powerful way to generate dynamic textures at run-time that are WebGL friendly and don't invoke\r\n * expensive GPU uploads on each change.\r\n *\r\n * In versions of Phaser before 3.60 a Render Texture was the only way you could create a texture\r\n * like this, that had the ability to be drawn on. But in 3.60 we split the core functions out to\r\n * the Dynamic Texture class as it made a lot more sense for them to reside in there. As a result,\r\n * the Render Texture is now a light-weight shim that sits on-top of an Image Game Object and offers\r\n * proxy methods to the features available from a Dynamic Texture.\r\n *\r\n * **When should you use a Render Texture vs. a Dynamic Texture?**\r\n *\r\n * You should use a Dynamic Texture if the texture is going to be used by multiple Game Objects,\r\n * or you want to use it across multiple Scenes, because textures are globally stored.\r\n *\r\n * You should use a Dynamic Texture if the texture isn't going to be displayed in-game, but is\r\n * instead going to be used for something like a mask or shader.\r\n *\r\n * You should use a Render Texture if you need to display the texture in-game on a single Game Object,\r\n * as it provides the convenience of wrapping an Image and Dynamic Texture together for you.\r\n *\r\n * Under WebGL1, a FrameBuffer, which is what this Dynamic Texture uses internally, cannot be anti-aliased.\r\n * This means that when drawing objects such as Shapes or Graphics instances to this texture, they may appear\r\n * to be drawn with no aliasing around the edges. This is a technical limitation of WebGL1. To get around it,\r\n * create your shape as a texture in an art package, then draw that to this texture.\r\n *\r\n * @class RenderTexture\r\n * @extends Phaser.GameObjects.Image\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.2.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [width=32] - The width of the Render Texture.\r\n * @param {number} [height=32] - The height of the Render Texture.\r\n */\r\nvar RenderTexture = new Class({\r\n\r\n    Extends: Image,\r\n\r\n    initialize:\r\n\r\n    function RenderTexture (scene, x, y, width, height)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (width === undefined) { width = 32; }\r\n        if (height === undefined) { height = 32; }\r\n\r\n        var dynamicTexture = new DynamicTexture(scene.sys.textures, '', width, height);\r\n\r\n        Image.call(this, scene, x, y, dynamicTexture);\r\n\r\n        this.type = 'RenderTexture';\r\n\r\n        /**\r\n         * An internal Camera that can be used to move around this Render Texture.\r\n         *\r\n         * Control it just like you would any Scene Camera. The difference is that it only impacts\r\n         * the placement of Game Objects that you then draw to this texture.\r\n         *\r\n         * You can scroll, zoom and rotate this Camera.\r\n         *\r\n         * This property is a reference to `RenderTexture.texture.camera`.\r\n         *\r\n         * @name Phaser.GameObjects.RenderTexture#camera\r\n         * @type {Phaser.Cameras.Scene2D.BaseCamera}\r\n         * @since 3.12.0\r\n         */\r\n        this.camera = this.texture.camera;\r\n\r\n        /**\r\n         * Internal saved texture flag.\r\n         *\r\n         * @name Phaser.GameObjects.RenderTexture#_saved\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.12.0\r\n         */\r\n        this._saved = false;\r\n    },\r\n\r\n    /**\r\n     * Sets the internal size of this Render Texture, as used for frame or physics body creation.\r\n     *\r\n     * This will not change the size that the Game Object is rendered in-game.\r\n     * For that you need to either set the scale of the Game Object (`setScale`) or call the\r\n     * `setDisplaySize` method, which is the same thing as changing the scale but allows you\r\n     * to do so by giving pixel values.\r\n     *\r\n     * If you have enabled this Game Object for input, changing the size will _not_ change the\r\n     * size of the hit area. To do this you should adjust the `input.hitArea` object directly.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#setSize\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} width - The width of this Game Object.\r\n     * @param {number} height - The height of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSize: function (width, height)\r\n    {\r\n        this.width = width;\r\n        this.height = height;\r\n\r\n        this.texture.setSize(width, height);\r\n\r\n        this.updateDisplayOrigin();\r\n\r\n        var input = this.input;\r\n\r\n        if (input && !input.customHitArea)\r\n        {\r\n            input.hitArea.width = width;\r\n            input.hitArea.height = height;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Resizes the Render Texture to the new dimensions given.\r\n     *\r\n     * In WebGL it will destroy and then re-create the frame buffer being used by the Render Texture.\r\n     * In Canvas it will resize the underlying canvas element.\r\n     *\r\n     * Both approaches will erase everything currently drawn to the Render Texture.\r\n     *\r\n     * If the dimensions given are the same as those already being used, calling this method will do nothing.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#resize\r\n     * @since 3.10.0\r\n     *\r\n     * @param {number} width - The new width of the Render Texture.\r\n     * @param {number} [height=width] - The new height of the Render Texture. If not specified, will be set the same as the `width`.\r\n     *\r\n     * @return {this} This Render Texture.\r\n     */\r\n    resize: function (width, height)\r\n    {\r\n        this.setSize(width, height);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Stores a copy of this Render Texture in the Texture Manager using the given key.\r\n     *\r\n     * After doing this, any texture based Game Object, such as a Sprite, can use the contents of this\r\n     * Render Texture by using the texture key:\r\n     *\r\n     * ```javascript\r\n     * var rt = this.add.renderTexture(0, 0, 128, 128);\r\n     *\r\n     * // Draw something to the Render Texture\r\n     *\r\n     * rt.saveTexture('doodle');\r\n     *\r\n     * this.add.image(400, 300, 'doodle');\r\n     * ```\r\n     *\r\n     * Updating the contents of this Render Texture will automatically update _any_ Game Object\r\n     * that is using it as a texture. Calling `saveTexture` again will not save another copy\r\n     * of the same texture, it will just rename the key of the existing copy.\r\n     *\r\n     * By default it will create a single base texture. You can add frames to the texture\r\n     * by using the `Texture.add` method. After doing this, you can then allow Game Objects\r\n     * to use a specific frame from a Render Texture.\r\n     *\r\n     * If you destroy this Render Texture, any Game Object using it via the Texture Manager will\r\n     * stop rendering. Ensure you remove the texture from the Texture Manager and any Game Objects\r\n     * using it first, before destroying this Render Texture.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#saveTexture\r\n     * @since 3.12.0\r\n     *\r\n     * @param {string} key - The unique key to store the texture as within the global Texture Manager.\r\n     *\r\n     * @return {Phaser.Textures.DynamicTexture} The Texture that was saved.\r\n     */\r\n    saveTexture: function (key)\r\n    {\r\n        var texture = this.texture;\r\n\r\n        texture.key = key;\r\n\r\n        if (texture.manager.addDynamicTexture(texture))\r\n        {\r\n            this._saved = true;\r\n        }\r\n\r\n        return texture;\r\n    },\r\n\r\n    /**\r\n     * Fills this Render Texture with the given color.\r\n     *\r\n     * By default it will fill the entire texture, however you can set it to fill a specific\r\n     * rectangular area by using the x, y, width and height arguments.\r\n     *\r\n     * The color should be given in hex format, i.e. 0xff0000 for red, 0x00ff00 for green, etc.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#fill\r\n     * @since 3.2.0\r\n     *\r\n     * @param {number} rgb - The color to fill this Render Texture with, such as 0xff0000 for red.\r\n     * @param {number} [alpha=1] - The alpha value used by the fill.\r\n     * @param {number} [x=0] - The left coordinate of the fill rectangle.\r\n     * @param {number} [y=0] - The top coordinate of the fill rectangle.\r\n     * @param {number} [width=this.width] - The width of the fill rectangle.\r\n     * @param {number} [height=this.height] - The height of the fill rectangle.\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    fill: function (rgb, alpha, x, y, width, height)\r\n    {\r\n        this.texture.fill(rgb, alpha, x, y, width, height);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Fully clears this Render Texture, erasing everything from it and resetting it back to\r\n     * a blank, transparent, texture.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#clear\r\n     * @since 3.2.0\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    clear: function ()\r\n    {\r\n        this.texture.clear();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Takes the given texture key and frame and then stamps it at the given\r\n     * x and y coordinates. You can use the optional 'config' argument to provide\r\n     * lots more options about how the stamp is applied, including the alpha,\r\n     * tint, angle, scale and origin.\r\n     *\r\n     * By default, the frame will stamp on the x/y coordinates based on its center.\r\n     *\r\n     * If you wish to stamp from the top-left, set the config `originX` and\r\n     * `originY` properties both to zero.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#stamp\r\n     * @since 3.60.0\r\n     *\r\n     * @param {string} key - The key of the texture to be used, as stored in the Texture Manager.\r\n     * @param {(string|number)} [frame] - The name or index of the frame within the Texture. Set to `null` to skip this argument if not required.\r\n     * @param {number} [x=0] - The x position to draw the frame at.\r\n     * @param {number} [y=0] - The y position to draw the frame at.\r\n     * @param {Phaser.Types.Textures.StampConfig} [config] - The stamp configuration object, allowing you to set the alpha, tint, angle, scale and origin of the stamp.\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    stamp: function (key, frame, x, y, config)\r\n    {\r\n        this.texture.stamp(key, frame, x, y, config);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Draws the given object, or an array of objects, to this Render Texture using a blend mode of ERASE.\r\n     * This has the effect of erasing any filled pixels present in the objects from this texture.\r\n     *\r\n     * It can accept any of the following:\r\n     *\r\n     * * Any renderable Game Object, such as a Sprite, Text, Graphics or TileSprite.\r\n     * * Tilemap Layers.\r\n     * * A Group. The contents of which will be iterated and drawn in turn.\r\n     * * A Container. The contents of which will be iterated fully, and drawn in turn.\r\n     * * A Scene Display List. Pass in `Scene.children` to draw the whole list.\r\n     * * Another Dynamic Texture, or a Render Texture.\r\n     * * A Texture Frame instance.\r\n     * * A string. This is used to look-up the texture from the Texture Manager.\r\n     *\r\n     * Note: You cannot erase a Render Texture from itself.\r\n     *\r\n     * If passing in a Group or Container it will only draw children that return `true`\r\n     * when their `willRender()` method is called. I.e. a Container with 10 children,\r\n     * 5 of which have `visible=false` will only draw the 5 visible ones.\r\n     *\r\n     * If passing in an array of Game Objects it will draw them all, regardless if\r\n     * they pass a `willRender` check or not.\r\n     *\r\n     * You can pass in a string in which case it will look for a texture in the Texture\r\n     * Manager matching that string, and draw the base frame.\r\n     *\r\n     * You can pass in the `x` and `y` coordinates to draw the objects at. The use of\r\n     * the coordinates differ based on what objects are being drawn. If the object is\r\n     * a Group, Container or Display List, the coordinates are _added_ to the positions\r\n     * of the children. For all other types of object, the coordinates are exact.\r\n     *\r\n     * Calling this method causes the WebGL batch to flush, so it can write the texture\r\n     * data to the framebuffer being used internally. The batch is flushed at the end,\r\n     * after the entries have been iterated. So if you've a bunch of objects to draw,\r\n     * try and pass them in an array in one single call, rather than making lots of\r\n     * separate calls.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#erase\r\n     * @since 3.16.0\r\n     *\r\n     * @param {any} entries - Any renderable Game Object, or Group, Container, Display List, Render Texture, Texture Frame, or an array of any of these.\r\n     * @param {number} [x=0] - The x position to draw the Frame at, or the offset applied to the object.\r\n     * @param {number} [y=0] - The y position to draw the Frame at, or the offset applied to the object.\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    erase: function (entries, x, y)\r\n    {\r\n        this.texture.erase(entries, x, y);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Draws the given object, or an array of objects, to this Render Texture.\r\n     *\r\n     * It can accept any of the following:\r\n     *\r\n     * * Any renderable Game Object, such as a Sprite, Text, Graphics or TileSprite.\r\n     * * Tilemap Layers.\r\n     * * A Group. The contents of which will be iterated and drawn in turn.\r\n     * * A Container. The contents of which will be iterated fully, and drawn in turn.\r\n     * * A Scene Display List. Pass in `Scene.children` to draw the whole list.\r\n     * * Another Dynamic Texture, or a Render Texture.\r\n     * * A Texture Frame instance.\r\n     * * A string. This is used to look-up the texture from the Texture Manager.\r\n     *\r\n     * Note 1: You cannot draw a Render Texture to itself.\r\n     *\r\n     * Note 2: For Game Objects that have Post FX Pipelines, the pipeline _cannot_ be\r\n     * used when drawn to this texture.\r\n     *\r\n     * If passing in a Group or Container it will only draw children that return `true`\r\n     * when their `willRender()` method is called. I.e. a Container with 10 children,\r\n     * 5 of which have `visible=false` will only draw the 5 visible ones.\r\n     *\r\n     * If passing in an array of Game Objects it will draw them all, regardless if\r\n     * they pass a `willRender` check or not.\r\n     *\r\n     * You can pass in a string in which case it will look for a texture in the Texture\r\n     * Manager matching that string, and draw the base frame. If you need to specify\r\n     * exactly which frame to draw then use the method `drawFrame` instead.\r\n     *\r\n     * You can pass in the `x` and `y` coordinates to draw the objects at. The use of\r\n     * the coordinates differ based on what objects are being drawn. If the object is\r\n     * a Group, Container or Display List, the coordinates are _added_ to the positions\r\n     * of the children. For all other types of object, the coordinates are exact.\r\n     *\r\n     * The `alpha` and `tint` values are only used by Texture Frames.\r\n     * Game Objects use their own alpha and tint values when being drawn.\r\n     *\r\n     * Calling this method causes the WebGL batch to flush, so it can write the texture\r\n     * data to the framebuffer being used internally. The batch is flushed at the end,\r\n     * after the entries have been iterated. So if you've a bunch of objects to draw,\r\n     * try and pass them in an array in one single call, rather than making lots of\r\n     * separate calls.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#draw\r\n     * @since 3.2.0\r\n     *\r\n     * @param {any} entries - Any renderable Game Object, or Group, Container, Display List, other Render Texture, Texture Frame or an array of any of these.\r\n     * @param {number} [x=0] - The x position to draw the Frame at, or the offset applied to the object.\r\n     * @param {number} [y=0] - The y position to draw the Frame at, or the offset applied to the object.\r\n     * @param {number} [alpha=1] -  The alpha value. Only used when drawing Texture Frames to this texture. Game Objects use their own alpha.\r\n     * @param {number} [tint=0xffffff] -  The tint color value. Only used when drawing Texture Frames to this texture. Game Objects use their own tint. WebGL only.\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    draw: function (entries, x, y, alpha, tint)\r\n    {\r\n        this.texture.draw(entries, x, y, alpha, tint);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Draws the Texture Frame to the Render Texture at the given position.\r\n     *\r\n     * Textures are referenced by their string-based keys, as stored in the Texture Manager.\r\n     *\r\n     * ```javascript\r\n     * var rt = this.add.renderTexture(0, 0, 800, 600);\r\n     * rt.drawFrame(key, frame);\r\n     * ```\r\n     *\r\n     * You can optionally provide a position, alpha and tint value to apply to the frame\r\n     * before it is drawn.\r\n     *\r\n     * Calling this method will cause a batch flush, so if you've got a stack of things to draw\r\n     * in a tight loop, try using the `draw` method instead.\r\n     *\r\n     * If you need to draw a Sprite to this Render Texture, use the `draw` method instead.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#drawFrame\r\n     * @since 3.12.0\r\n     *\r\n     * @param {string} key - The key of the texture to be used, as stored in the Texture Manager.\r\n     * @param {(string|number)} [frame] - The name or index of the frame within the Texture. Set to `null` to skip this argument if not required.\r\n     * @param {number} [x=0] - The x position to draw the frame at.\r\n     * @param {number} [y=0] - The y position to draw the frame at.\r\n     * @param {number} [alpha=1] -  The alpha value. Only used when drawing Texture Frames to this texture.\r\n     * @param {number} [tint=0xffffff] -  The tint color value. Only used when drawing Texture Frames to this texture. WebGL only.\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    drawFrame: function (key, frame, x, y, alpha, tint)\r\n    {\r\n        this.texture.drawFrame(key, frame, x, y, alpha, tint);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Takes the given Texture Frame and draws it to this Render Texture as a fill pattern,\r\n     * i.e. in a grid-layout based on the frame dimensions.\r\n     *\r\n     * Textures are referenced by their string-based keys, as stored in the Texture Manager.\r\n     *\r\n     * You can optionally provide a position, width, height, alpha and tint value to apply to\r\n     * the frames before they are drawn. The position controls the top-left where the repeating\r\n     * fill will start from. The width and height control the size of the filled area.\r\n     *\r\n     * The position can be negative if required, but the dimensions cannot.\r\n     *\r\n     * Calling this method will cause a batch flush by default. Use the `skipBatch` argument\r\n     * to disable this if this call is part of a larger batch draw.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#repeat\r\n     * @since 3.60.0\r\n     *\r\n     * @param {string} key - The key of the texture to be used, as stored in the Texture Manager.\r\n     * @param {(string|number)} [frame] - The name or index of the frame within the Texture. Set to `null` to skip this argument if not required.\r\n     * @param {number} [x=0] - The x position to start drawing the frames from (can be negative to offset).\r\n     * @param {number} [y=0] - The y position to start drawing the frames from (can be negative to offset).\r\n     * @param {number} [width=this.width] - The width of the area to repeat the frame within. Defaults to the width of this Dynamic Texture.\r\n     * @param {number} [height=this.height] - The height of the area to repeat the frame within. Defaults to the height of this Dynamic Texture.\r\n     * @param {number} [alpha=1] - The alpha to use. Defaults to 1, no alpha.\r\n     * @param {number} [tint=0xffffff] - WebGL only. The tint color to use. Leave as undefined, or 0xffffff to have no tint.\r\n     * @param {boolean} [skipBatch=false] - Skip beginning and ending a batch with this call. Use if this is part of a bigger batched draw.\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    repeat: function (key, frame, x, y, width, height, alpha, tint, skipBatch)\r\n    {\r\n        this.texture.repeat(key, frame, x, y, width, height, alpha, tint, skipBatch);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Use this method if you need to batch draw a large number of Game Objects to\r\n     * this Render Texture in a single pass, or on a frequent basis. This is especially\r\n     * useful under WebGL, however, if your game is using Canvas only, it will not make\r\n     * any speed difference in that situation.\r\n     *\r\n     * This method starts the beginning of a batched draw, unless one is already open.\r\n     *\r\n     * Batched drawing is faster than calling `draw` in loop, but you must be careful\r\n     * to manage the flow of code and remember to call `endDraw()` when you're finished.\r\n     *\r\n     * If you don't need to draw large numbers of objects it's much safer and easier\r\n     * to use the `draw` method instead.\r\n     *\r\n     * The flow should be:\r\n     *\r\n     * ```javascript\r\n     * // Call once:\r\n     * RenderTexture.beginDraw();\r\n     *\r\n     * // repeat n times:\r\n     * RenderTexture.batchDraw();\r\n     * // or\r\n     * RenderTexture.batchDrawFrame();\r\n     *\r\n     * // Call once:\r\n     * RenderTexture.endDraw();\r\n     * ```\r\n     *\r\n     * Do not call any methods other than `batchDraw`, `batchDrawFrame`, or `endDraw` once you\r\n     * have started a batch. Also, be very careful not to destroy this Render Texture while the\r\n     * batch is still open. Doing so will cause a run-time error in the WebGL Renderer.\r\n     *\r\n     * You can use the `RenderTexture.texture.isDrawing` boolean property to tell if a batch is\r\n     * currently open, or not.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#beginDraw\r\n     * @since 3.50.0\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    beginDraw: function ()\r\n    {\r\n        this.texture.beginDraw();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Use this method if you have already called `beginDraw` and need to batch\r\n     * draw a large number of objects to this Render Texture.\r\n     *\r\n     * This method batches the drawing of the given objects to this texture,\r\n     * without causing a WebGL bind or batch flush for each one.\r\n     *\r\n     * It is faster than calling `draw`, but you must be careful to manage the\r\n     * flow of code and remember to call `endDraw()`. If you don't need to draw large\r\n     * numbers of objects it's much safer and easier to use the `draw` method instead.\r\n     *\r\n     * The flow should be:\r\n     *\r\n     * ```javascript\r\n     * // Call once:\r\n     * RenderTexture.beginDraw();\r\n     *\r\n     * // repeat n times:\r\n     * RenderTexture.batchDraw();\r\n     * // or\r\n     * RenderTexture.batchDrawFrame();\r\n     *\r\n     * // Call once:\r\n     * RenderTexture.endDraw();\r\n     * ```\r\n     *\r\n     * Do not call any methods other than `batchDraw`, `batchDrawFrame`, or `endDraw` once you\r\n     * have started a batch. Also, be very careful not to destroy this Render Texture while the\r\n     * batch is still open. Doing so will cause a run-time error in the WebGL Renderer.\r\n     *\r\n     * You can use the `RenderTexture.texture.isDrawing` boolean property to tell if a batch is\r\n     * currently open, or not.\r\n     *\r\n     * This method can accept any of the following:\r\n     *\r\n     * * Any renderable Game Object, such as a Sprite, Text, Graphics or TileSprite.\r\n     * * Tilemap Layers.\r\n     * * A Group. The contents of which will be iterated and drawn in turn.\r\n     * * A Container. The contents of which will be iterated fully, and drawn in turn.\r\n     * * A Scene's Display List. Pass in `Scene.children` to draw the whole list.\r\n     * * Another Dynamic Texture or Render Texture.\r\n     * * A Texture Frame instance.\r\n     * * A string. This is used to look-up a texture from the Texture Manager.\r\n     *\r\n     * Note: You cannot draw a Render Texture to itself.\r\n     *\r\n     * If passing in a Group or Container it will only draw children that return `true`\r\n     * when their `willRender()` method is called. I.e. a Container with 10 children,\r\n     * 5 of which have `visible=false` will only draw the 5 visible ones.\r\n     *\r\n     * If passing in an array of Game Objects it will draw them all, regardless if\r\n     * they pass a `willRender` check or not.\r\n     *\r\n     * You can pass in a string in which case it will look for a texture in the Texture\r\n     * Manager matching that string, and draw the base frame. If you need to specify\r\n     * exactly which frame to draw then use the method `drawFrame` instead.\r\n     *\r\n     * You can pass in the `x` and `y` coordinates to draw the objects at. The use of\r\n     * the coordinates differ based on what objects are being drawn. If the object is\r\n     * a Group, Container or Display List, the coordinates are _added_ to the positions\r\n     * of the children. For all other types of object, the coordinates are exact.\r\n     *\r\n     * The `alpha` and `tint` values are only used by Texture Frames.\r\n     * Game Objects use their own alpha and tint values when being drawn.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#batchDraw\r\n     * @since 3.50.0\r\n     *\r\n     * @param {any} entries - Any renderable Game Object, or Group, Container, Display List, other Dynamic or Texture, Texture Frame or an array of any of these.\r\n     * @param {number} [x=0] - The x position to draw the Frame at, or the offset applied to the object.\r\n     * @param {number} [y=0] - The y position to draw the Frame at, or the offset applied to the object.\r\n     * @param {number} [alpha=1] -  The alpha value. Only used when drawing Texture Frames to this texture. Game Objects use their own alpha.\r\n     * @param {number} [tint=0xffffff] -  The tint color value. Only used when drawing Texture Frames to this texture. Game Objects use their own tint. WebGL only.\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    batchDraw: function (entries, x, y, alpha, tint)\r\n    {\r\n        this.texture.batchDraw(entries, x, y, alpha, tint);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Use this method if you have already called `beginDraw` and need to batch\r\n     * draw a large number of texture frames to this Render Texture.\r\n     *\r\n     * This method batches the drawing of the given frames to this Render Texture,\r\n     * without causing a WebGL bind or batch flush for each one.\r\n     *\r\n     * It is faster than calling `drawFrame`, but you must be careful to manage the\r\n     * flow of code and remember to call `endDraw()`. If you don't need to draw large\r\n     * numbers of frames it's much safer and easier to use the `drawFrame` method instead.\r\n     *\r\n     * The flow should be:\r\n     *\r\n     * ```javascript\r\n     * // Call once:\r\n     * RenderTexture.beginDraw();\r\n     *\r\n     * // repeat n times:\r\n     * RenderTexture.batchDraw();\r\n     * // or\r\n     * RenderTexture.batchDrawFrame();\r\n     *\r\n     * // Call once:\r\n     * RenderTexture.endDraw();\r\n     * ```\r\n     *\r\n     * Do not call any methods other than `batchDraw`, `batchDrawFrame`, or `endDraw` once you\r\n     * have started a batch. Also, be very careful not to destroy this Render Texture while the\r\n     * batch is still open. Doing so will cause a run-time error in the WebGL Renderer.\r\n     *\r\n     * You can use the `RenderTexture.texture.isDrawing` boolean property to tell if a batch is\r\n     * currently open, or not.\r\n     *\r\n     * Textures are referenced by their string-based keys, as stored in the Texture Manager.\r\n     *\r\n     * You can optionally provide a position, alpha and tint value to apply to the frame\r\n     * before it is drawn.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#batchDrawFrame\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} key - The key of the texture to be used, as stored in the Texture Manager.\r\n     * @param {(string|number)} [frame] - The name or index of the frame within the Texture.\r\n     * @param {number} [x=0] - The x position to draw the frame at.\r\n     * @param {number} [y=0] - The y position to draw the frame at.\r\n     * @param {number} [alpha=1] -  The alpha value. Only used when drawing Texture Frames to this texture. Game Objects use their own alpha.\r\n     * @param {number} [tint=0xffffff] -  The tint color value. Only used when drawing Texture Frames to this texture. Game Objects use their own tint. WebGL only.\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    batchDrawFrame: function (key, frame, x, y, alpha, tint)\r\n    {\r\n        this.texture.batchDrawFrame(key, frame, x, y, alpha, tint);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Use this method to finish batch drawing to this Render Texture.\r\n     *\r\n     * Doing so will stop the WebGL Renderer from capturing draws and then blit the\r\n     * framebuffer to the Render Target owned by this texture.\r\n     *\r\n     * Calling this method without first calling `beginDraw` will have no effect.\r\n     *\r\n     * Batch drawing is faster than calling `draw`, but you must be careful to manage the\r\n     * flow of code and remember to call `endDraw()` when you're finished.\r\n     *\r\n     * If you don't need to draw large numbers of objects it's much safer and easier\r\n     * to use the `draw` method instead.\r\n     *\r\n     * The flow should be:\r\n     *\r\n     * ```javascript\r\n     * // Call once:\r\n     * RenderTexture.beginDraw();\r\n     *\r\n     * // repeat n times:\r\n     * RenderTexture.batchDraw();\r\n     * // or\r\n     * RenderTexture.batchDrawFrame();\r\n     *\r\n     * // Call once:\r\n     * RenderTexture.endDraw();\r\n     * ```\r\n     *\r\n     * Do not call any methods other than `batchDraw`, `batchDrawFrame`, or `endDraw` once you\r\n     * have started a batch. Also, be very careful not to destroy this Render Texture while the\r\n     * batch is still open. Doing so will cause a run-time error in the WebGL Renderer.\r\n     *\r\n     * You can use the `RenderTexture.texture.isDrawing` boolean property to tell if a batch is\r\n     * currently open, or not.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#endDraw\r\n     * @since 3.50.0\r\n     *\r\n     * @param {boolean} [erase=false] - Draws all objects in this batch using a blend mode of ERASE. This has the effect of erasing any filled pixels in the objects being drawn.\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    endDraw: function (erase)\r\n    {\r\n        this.texture.endDraw(erase);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Takes a snapshot of the given area of this Render Texture.\r\n     *\r\n     * The snapshot is taken immediately, but the results are returned via the given callback.\r\n     *\r\n     * To capture the whole Render Texture see the `snapshot` method.\r\n     * To capture just a specific pixel, see the `snapshotPixel` method.\r\n     *\r\n     * Snapshots work by using the WebGL `readPixels` feature to grab every pixel from the frame buffer\r\n     * into an ArrayBufferView. It then parses this, copying the contents to a temporary Canvas and finally\r\n     * creating an Image object from it, which is the image returned to the callback provided.\r\n     *\r\n     * All in all, this is a computationally expensive and blocking process, which gets more expensive\r\n     * the larger the resolution this Render Texture has, so please be careful how you employ this in your game.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#snapshotArea\r\n     * @since 3.19.0\r\n     *\r\n     * @param {number} x - The x coordinate to grab from.\r\n     * @param {number} y - The y coordinate to grab from.\r\n     * @param {number} width - The width of the area to grab.\r\n     * @param {number} height - The height of the area to grab.\r\n     * @param {Phaser.Types.Renderer.Snapshot.SnapshotCallback} callback - The Function to invoke after the snapshot image is created.\r\n     * @param {string} [type='image/png'] - The format of the image to create, usually `image/png` or `image/jpeg`.\r\n     * @param {number} [encoderOptions=0.92] - The image quality, between 0 and 1. Used for image formats with lossy compression, such as `image/jpeg`.\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    snapshotArea: function (x, y, width, height, callback, type, encoderOptions)\r\n    {\r\n        this.texture.snapshotArea(x, y, width, height, callback, type, encoderOptions);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Takes a snapshot of the whole of this Render Texture.\r\n     *\r\n     * The snapshot is taken immediately, but the results are returned via the given callback.\r\n     *\r\n     * To capture a portion of this Render Texture see the `snapshotArea` method.\r\n     * To capture just a specific pixel, see the `snapshotPixel` method.\r\n     *\r\n     * Snapshots work by using the WebGL `readPixels` feature to grab every pixel from the frame buffer\r\n     * into an ArrayBufferView. It then parses this, copying the contents to a temporary Canvas and finally\r\n     * creating an Image object from it, which is the image returned to the callback provided.\r\n     *\r\n     * All in all, this is a computationally expensive and blocking process, which gets more expensive\r\n     * the larger the resolution this Render Texture has, so please be careful how you employ this in your game.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#snapshot\r\n     * @since 3.19.0\r\n     *\r\n     * @param {Phaser.Types.Renderer.Snapshot.SnapshotCallback} callback - The Function to invoke after the snapshot image is created.\r\n     * @param {string} [type='image/png'] - The format of the image to create, usually `image/png` or `image/jpeg`.\r\n     * @param {number} [encoderOptions=0.92] - The image quality, between 0 and 1. Used for image formats with lossy compression, such as `image/jpeg`.\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    snapshot: function (callback, type, encoderOptions)\r\n    {\r\n        return this.snapshotArea(0, 0, this.width, this.height, callback, type, encoderOptions);\r\n    },\r\n\r\n    /**\r\n     * Takes a snapshot of the given pixel from this Render Texture.\r\n     *\r\n     * The snapshot is taken immediately, but the results are returned via the given callback.\r\n     *\r\n     * To capture the whole Render Texture see the `snapshot` method.\r\n     * To capture a portion of this Render Texture see the `snapshotArea` method.\r\n     *\r\n     * Unlike the two other snapshot methods, this one will send your callback a `Color` object\r\n     * containing the color data for the requested pixel. It doesn't need to create an internal\r\n     * Canvas or Image object, so is a lot faster to execute, using less memory than the other snapshot methods.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#snapshotPixel\r\n     * @since 3.19.0\r\n     *\r\n     * @param {number} x - The x coordinate of the pixel to get.\r\n     * @param {number} y - The y coordinate of the pixel to get.\r\n     * @param {Phaser.Types.Renderer.Snapshot.SnapshotCallback} callback - The Function to invoke after the snapshot pixel data is extracted.\r\n     *\r\n     * @return {this} This Render Texture instance.\r\n     */\r\n    snapshotPixel: function (x, y, callback)\r\n    {\r\n        return this.snapshotArea(x, y, 1, 1, callback, 'pixel');\r\n    },\r\n\r\n    /**\r\n     * Internal destroy handler, called as part of the destroy process.\r\n     *\r\n     * @method Phaser.GameObjects.RenderTexture#preDestroy\r\n     * @protected\r\n     * @since 3.9.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.camera = null;\r\n\r\n        if (!this._saved)\r\n        {\r\n            this.texture.destroy();\r\n        }\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = RenderTexture;\r\n\n\n/***/ }),\n\n/***/ 34495:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar RenderTexture = __webpack_require__(591);\r\n\r\n/**\r\n * Creates a new Render Texture Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Render Texture Game Object has been built into Phaser.\r\n *\r\n * A Render Texture is a combination of Dynamic Texture and an Image Game Object, that uses the\r\n * Dynamic Texture to display itself with.\r\n *\r\n * A Dynamic Texture is a special texture that allows you to draw textures, frames and most kind of\r\n * Game Objects directly to it.\r\n *\r\n * You can take many complex objects and draw them to this one texture, which can then be used as the\r\n * base texture for other Game Objects, such as Sprites. Should you then update this texture, all\r\n * Game Objects using it will instantly be updated as well, reflecting the changes immediately.\r\n *\r\n * It's a powerful way to generate dynamic textures at run-time that are WebGL friendly and don't invoke\r\n * expensive GPU uploads on each change.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#renderTexture\r\n * @since 3.2.0\r\n *\r\n * @param {Phaser.Types.GameObjects.RenderTexture.RenderTextureConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.RenderTexture} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('renderTexture', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var x = GetAdvancedValue(config, 'x', 0);\r\n    var y = GetAdvancedValue(config, 'y', 0);\r\n    var width = GetAdvancedValue(config, 'width', 32);\r\n    var height = GetAdvancedValue(config, 'height', 32);\r\n\r\n    var renderTexture = new RenderTexture(this.scene, x, y, width, height);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, renderTexture, config);\r\n\r\n    return renderTexture;\r\n});\r\n\n\n/***/ }),\n\n/***/ 60505:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar RenderTexture = __webpack_require__(591);\r\n\r\n/**\r\n * Creates a new Render Texture Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Render Texture Game Object has been built into Phaser.\r\n *\r\n * A Render Texture is a combination of Dynamic Texture and an Image Game Object, that uses the\r\n * Dynamic Texture to display itself with.\r\n *\r\n * A Dynamic Texture is a special texture that allows you to draw textures, frames and most kind of\r\n * Game Objects directly to it.\r\n *\r\n * You can take many complex objects and draw them to this one texture, which can then be used as the\r\n * base texture for other Game Objects, such as Sprites. Should you then update this texture, all\r\n * Game Objects using it will instantly be updated as well, reflecting the changes immediately.\r\n *\r\n * It's a powerful way to generate dynamic textures at run-time that are WebGL friendly and don't invoke\r\n * expensive GPU uploads on each change.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#renderTexture\r\n * @since 3.2.0\r\n *\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {number} [width=32] - The width of the Render Texture.\r\n * @param {number} [height=32] - The height of the Render Texture.\r\n *\r\n * @return {Phaser.GameObjects.RenderTexture} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('renderTexture', function (x, y, width, height)\r\n{\r\n    return this.displayList.add(new RenderTexture(this.scene, x, y, width, height));\r\n});\r\n\n\n/***/ }),\n\n/***/ 77757:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar AnimationState = __webpack_require__(9674);\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar GameObject = __webpack_require__(95643);\r\nvar PIPELINE_CONST = __webpack_require__(36060);\r\nvar RopeRender = __webpack_require__(38745);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n/**\r\n * @classdesc\r\n * A Rope Game Object.\r\n *\r\n * The Rope object is WebGL only and does not have a Canvas counterpart.\r\n *\r\n * A Rope is a special kind of Game Object that has a texture is stretched along its entire length.\r\n *\r\n * Unlike a Sprite, it isn't restricted to using just a quad and can have as many vertices as you define\r\n * when creating it. The vertices can be arranged in a horizontal or vertical strip and have their own\r\n * color and alpha values as well.\r\n *\r\n * A Ropes origin is always 0.5 x 0.5 and cannot be changed.\r\n *\r\n * @class Rope\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @webglOnly\r\n * @since 3.23.0\r\n *\r\n * @extends Phaser.GameObjects.Components.AlphaSingle\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Flip\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.Size\r\n * @extends Phaser.GameObjects.Components.Texture\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {string} [texture] - The key of the Texture this Game Object will use to render with, as stored in the Texture Manager. If not given, `__DEFAULT` is used.\r\n * @param {(string|number|null)} [frame] - An optional frame from the Texture this Game Object is rendering with.\r\n * @param {(number|Phaser.Types.Math.Vector2Like[])} [points=2] - An array containing the vertices data for this Rope, or a number that indicates how many segments to split the texture frame into. If none is provided a simple quad is created. See `setPoints` to set this post-creation.\r\n * @param {boolean} [horizontal=true] - Should the vertices of this Rope be aligned horizontally (`true`), or vertically (`false`)?\r\n * @param {number[]} [colors] - An optional array containing the color data for this Rope. You should provide one color value per pair of vertices.\r\n * @param {number[]} [alphas] - An optional array containing the alpha data for this Rope. You should provide one alpha value per pair of vertices.\r\n */\r\nvar Rope = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.AlphaSingle,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.Flip,\r\n        Components.Mask,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.Size,\r\n        Components.Texture,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        Components.ScrollFactor,\r\n        RopeRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Rope (scene, x, y, texture, frame, points, horizontal, colors, alphas)\r\n    {\r\n        if (texture === undefined) { texture = '__DEFAULT'; }\r\n        if (points === undefined) { points = 2; }\r\n        if (horizontal === undefined) { horizontal = true; }\r\n\r\n        GameObject.call(this, scene, 'Rope');\r\n\r\n        /**\r\n         * The Animation State of this Rope.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#anims\r\n         * @type {Phaser.Animations.AnimationState}\r\n         * @since 3.23.0\r\n         */\r\n        this.anims = new AnimationState(this);\r\n\r\n        /**\r\n         * An array containing the points data for this Rope.\r\n         *\r\n         * Each point should be given as a Vector2Like object (i.e. a Vector2, Geom.Point or object with public x/y properties).\r\n         *\r\n         * The point coordinates are given in local space, where 0 x 0 is the start of the Rope strip.\r\n         *\r\n         * You can modify the contents of this array directly in real-time to create interesting effects.\r\n         * If you do so, be sure to call `setDirty` _after_ modifying this array, so that the vertices data is\r\n         * updated before the next render. Alternatively, you can use the `setPoints` method instead.\r\n         *\r\n         * Should you need to change the _size_ of this array, then you should always use the `setPoints` method.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#points\r\n         * @type {Phaser.Types.Math.Vector2Like[]}\r\n         * @since 3.23.0\r\n         */\r\n        this.points = points;\r\n\r\n        /**\r\n         * An array containing the vertices data for this Rope.\r\n         *\r\n         * This data is calculated automatically in the `updateVertices` method, based on the points provided.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#vertices\r\n         * @type {Float32Array}\r\n         * @since 3.23.0\r\n         */\r\n        this.vertices;\r\n\r\n        /**\r\n         * An array containing the uv data for this Rope.\r\n         *\r\n         * This data is calculated automatically in the `setPoints` method, based on the points provided.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#uv\r\n         * @type {Float32Array}\r\n         * @since 3.23.0\r\n         */\r\n        this.uv;\r\n\r\n        /**\r\n         * An array containing the color data for this Rope.\r\n         *\r\n         * Colors should be given as numeric RGB values, such as 0xff0000.\r\n         * You should provide _two_ color values for every point in the Rope, one for the top and one for the bottom of each quad.\r\n         *\r\n         * You can modify the contents of this array directly in real-time, however, should you need to change the _size_\r\n         * of the array, then you should use the `setColors` method instead.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#colors\r\n         * @type {Uint32Array}\r\n         * @since 3.23.0\r\n         */\r\n        this.colors;\r\n\r\n        /**\r\n         * An array containing the alpha data for this Rope.\r\n         *\r\n         * Alphas should be given as float values, such as 0.5.\r\n         * You should provide _two_ alpha values for every point in the Rope, one for the top and one for the bottom of each quad.\r\n         *\r\n         * You can modify the contents of this array directly in real-time, however, should you need to change the _size_\r\n         * of the array, then you should use the `setAlphas` method instead.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#alphas\r\n         * @type {Float32Array}\r\n         * @since 3.23.0\r\n         */\r\n        this.alphas;\r\n\r\n        /**\r\n         * The tint fill mode.\r\n         *\r\n        * `false` = An additive tint (the default), where vertices colors are blended with the texture.\r\n        * `true` = A fill tint, where the vertices colors replace the texture, but respects texture alpha.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#tintFill\r\n         * @type {boolean}\r\n         * @since 3.23.0\r\n         */\r\n        this.tintFill = (texture === '__DEFAULT') ? true : false;\r\n\r\n        /**\r\n         * If the Rope is marked as `dirty` it will automatically recalculate its vertices\r\n         * the next time it renders. You can also force this by calling `updateVertices`.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#dirty\r\n         * @type {boolean}\r\n         * @since 3.23.0\r\n         */\r\n        this.dirty = false;\r\n\r\n        /**\r\n         * Are the Rope vertices aligned horizontally, in a strip, or vertically, in a column?\r\n         *\r\n         * This property is set during instantiation and cannot be changed directly.\r\n         * See the `setVertical` and `setHorizontal` methods.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#horizontal\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @since 3.23.0\r\n         */\r\n        this.horizontal = horizontal;\r\n\r\n        /**\r\n         * The horizontally flipped state of the Game Object.\r\n         *\r\n         * A Game Object that is flipped horizontally will render inversed on the horizontal axis.\r\n         * Flipping always takes place from the middle of the texture and does not impact the scale value.\r\n         * If this Game Object has a physics body, it will not change the body. This is a rendering toggle only.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#_flipX\r\n         * @type {boolean}\r\n         * @default false\r\n         * @private\r\n         * @since 3.23.0\r\n         */\r\n        this._flipX = false;\r\n\r\n        /**\r\n         * The vertically flipped state of the Game Object.\r\n         *\r\n         * A Game Object that is flipped vertically will render inversed on the vertical axis (i.e. upside down)\r\n         * Flipping always takes place from the middle of the texture and does not impact the scale value.\r\n         * If this Game Object has a physics body, it will not change the body. This is a rendering toggle only.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#_flipY\r\n         * @type {boolean}\r\n         * @default false\r\n         * @private\r\n         * @since 3.23.0\r\n         */\r\n        this._flipY = false;\r\n\r\n        /**\r\n         * Internal Vector2 used for vertices updates.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#_perp\r\n         * @type {Phaser.Math.Vector2}\r\n         * @private\r\n         * @since 3.23.0\r\n         */\r\n        this._perp = new Vector2();\r\n\r\n        /**\r\n         * You can optionally choose to render the vertices of this Rope to a Graphics instance.\r\n         *\r\n         * Achieve this by setting the `debugCallback` and the `debugGraphic` properties.\r\n         *\r\n         * You can do this in a single call via the `Rope.setDebug` method, which will use the\r\n         * built-in debug function. You can also set it to your own callback. The callback\r\n         * will be invoked _once per render_ and sent the following parameters:\r\n         *\r\n         * `debugCallback(src, meshLength, verts)`\r\n         *\r\n         * `src` is the Rope instance being debugged.\r\n         * `meshLength` is the number of mesh vertices in total.\r\n         * `verts` is an array of the translated vertex coordinates.\r\n         *\r\n         * To disable rendering, set this property back to `null`.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#debugCallback\r\n         * @type {function}\r\n         * @since 3.23.0\r\n         */\r\n        this.debugCallback = null;\r\n\r\n        /**\r\n         * The Graphics instance that the debug vertices will be drawn to, if `setDebug` has\r\n         * been called.\r\n         *\r\n         * @name Phaser.GameObjects.Rope#debugGraphic\r\n         * @type {Phaser.GameObjects.Graphics}\r\n         * @since 3.23.0\r\n         */\r\n        this.debugGraphic = null;\r\n\r\n        this.setTexture(texture, frame);\r\n        this.setPosition(x, y);\r\n        this.setSizeToFrame();\r\n        this.initPipeline(PIPELINE_CONST.ROPE_PIPELINE);\r\n        this.initPostPipeline();\r\n\r\n        if (Array.isArray(points))\r\n        {\r\n            this.resizeArrays(points.length);\r\n        }\r\n\r\n        this.setPoints(points, colors, alphas);\r\n\r\n        this.updateVertices();\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    addedToScene: function ()\r\n    {\r\n        this.scene.sys.updateList.add(this);\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    removedFromScene: function ()\r\n    {\r\n        this.scene.sys.updateList.remove(this);\r\n    },\r\n\r\n    /**\r\n     * The Rope update loop.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#preUpdate\r\n     * @protected\r\n     * @since 3.23.0\r\n     *\r\n     * @param {number} time - The current timestamp.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    preUpdate: function (time, delta)\r\n    {\r\n        var prevFrame = this.anims.currentFrame;\r\n\r\n        this.anims.update(time, delta);\r\n\r\n        if (this.anims.currentFrame !== prevFrame)\r\n        {\r\n            this.updateUVs();\r\n            this.updateVertices();\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Start playing the given animation.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#play\r\n     * @since 3.23.0\r\n     *\r\n     * @param {string} key - The string-based key of the animation to play.\r\n     * @param {boolean} [ignoreIfPlaying=false] - If an animation is already playing then ignore this call.\r\n     * @param {number} [startFrame=0] - Optionally start the animation playing from this frame index.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    play: function (key, ignoreIfPlaying, startFrame)\r\n    {\r\n        this.anims.play(key, ignoreIfPlaying, startFrame);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Flags this Rope as being dirty. A dirty rope will recalculate all of its vertices data\r\n     * the _next_ time it renders. You should set this rope as dirty if you update the points\r\n     * array directly.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#setDirty\r\n     * @since 3.23.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setDirty: function ()\r\n    {\r\n        this.dirty = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the alignment of the points in this Rope to be horizontal, in a strip format.\r\n     *\r\n     * Calling this method will reset this Rope. The current points, vertices, colors and alpha\r\n     * values will be reset to thoes values given as parameters.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#setHorizontal\r\n     * @since 3.23.0\r\n     *\r\n     * @param {(number|Phaser.Types.Math.Vector2Like[])} [points] - An array containing the vertices data for this Rope, or a number that indicates how many segments to split the texture frame into. If none is provided the current points length is used.\r\n     * @param {(number|number[])} [colors] - Either a single color value, or an array of values.\r\n     * @param {(number|number[])} [alphas] - Either a single alpha value, or an array of values.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setHorizontal: function (points, colors, alphas)\r\n    {\r\n        if (points === undefined) { points = this.points.length; }\r\n\r\n        if (this.horizontal)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        this.horizontal = true;\r\n\r\n        return this.setPoints(points, colors, alphas);\r\n    },\r\n\r\n    /**\r\n     * Sets the alignment of the points in this Rope to be vertical, in a column format.\r\n     *\r\n     * Calling this method will reset this Rope. The current points, vertices, colors and alpha\r\n     * values will be reset to thoes values given as parameters.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#setVertical\r\n     * @since 3.23.0\r\n     *\r\n     * @param {(number|Phaser.Types.Math.Vector2Like[])} [points] - An array containing the vertices data for this Rope, or a number that indicates how many segments to split the texture frame into. If none is provided the current points length is used.\r\n     * @param {(number|number[])} [colors] - Either a single color value, or an array of values.\r\n     * @param {(number|number[])} [alphas] - Either a single alpha value, or an array of values.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setVertical: function (points, colors, alphas)\r\n    {\r\n        if (points === undefined) { points = this.points.length; }\r\n\r\n        if (!this.horizontal)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        this.horizontal = false;\r\n\r\n        return this.setPoints(points, colors, alphas);\r\n    },\r\n\r\n    /**\r\n     * Sets the tint fill mode.\r\n     *\r\n     * Mode 0 (`false`) is an additive tint, the default, which blends the vertices colors with the texture.\r\n     * This mode respects the texture alpha.\r\n     *\r\n     * Mode 1 (`true`) is a fill tint. Unlike an additive tint, a fill-tint literally replaces the pixel colors\r\n     * from the texture with those in the tint. You can use this for effects such as making a player flash 'white'\r\n     * if hit by something. This mode respects the texture alpha.\r\n     *\r\n     * See the `setColors` method for details of how to color each of the vertices.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#setTintFill\r\n     * @webglOnly\r\n     * @since 3.23.0\r\n     *\r\n     * @param {boolean} [value=false] - Set to `false` for an Additive tint or `true` fill tint with alpha.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setTintFill: function (value)\r\n    {\r\n        if (value === undefined) { value = false; }\r\n\r\n        this.tintFill = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the alpha values used by the Rope during rendering.\r\n     *\r\n     * You can provide the values in a number of ways:\r\n     *\r\n     * 1) One single numeric value: `setAlphas(0.5)` - This will set a single alpha for the whole Rope.\r\n     * 2) Two numeric value: `setAlphas(1, 0.5)` - This will set a 'top' and 'bottom' alpha value across the whole Rope.\r\n     * 3) An array of values: `setAlphas([ 1, 0.5, 0.2 ])`\r\n     *\r\n     * If you provide an array of values and the array has exactly the same number of values as `points` in the Rope, it\r\n     * will use each alpha value per rope segment.\r\n     *\r\n     * If the provided array has a different number of values than `points` then it will use the values in order, from\r\n     * the first Rope segment and on, until it runs out of values. This allows you to control the alpha values at all\r\n     * vertices in the Rope.\r\n     *\r\n     * Note this method is called `setAlphas` (plural) and not `setAlpha`.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#setAlphas\r\n     * @since 3.23.0\r\n     *\r\n     * @param {(number|number[])} [alphas] - Either a single alpha value, or an array of values. If nothing is provided alpha is reset to 1.\r\n     * @param {number} [bottomAlpha] - An optional bottom alpha value. See the method description for details.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setAlphas: function (alphas, bottomAlpha)\r\n    {\r\n        var total = this.points.length;\r\n\r\n        if (total < 1)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        var currentAlphas = this.alphas;\r\n\r\n        if (alphas === undefined)\r\n        {\r\n            alphas = [ 1 ];\r\n        }\r\n        else if (!Array.isArray(alphas) && bottomAlpha === undefined)\r\n        {\r\n            alphas = [ alphas ];\r\n        }\r\n\r\n        var i;\r\n        var index = 0;\r\n\r\n        if (bottomAlpha !== undefined)\r\n        {\r\n            //  Top / Bottom alpha pair\r\n            for (i = 0; i < total; i++)\r\n            {\r\n                index = i * 2;\r\n\r\n                currentAlphas[index] = alphas;\r\n                currentAlphas[index + 1] = bottomAlpha;\r\n            }\r\n        }\r\n        else if (alphas.length === total)\r\n        {\r\n            //  If there are exactly the same number of alphas as points, we'll combine the alphas\r\n            for (i = 0; i < total; i++)\r\n            {\r\n                index = i * 2;\r\n\r\n                currentAlphas[index] = alphas[i];\r\n                currentAlphas[index + 1] = alphas[i];\r\n            }\r\n        }\r\n        else\r\n        {\r\n            var prevAlpha = alphas[0];\r\n\r\n            for (i = 0; i < total; i++)\r\n            {\r\n                index = i * 2;\r\n\r\n                if (alphas.length > index)\r\n                {\r\n                    prevAlpha = alphas[index];\r\n                }\r\n\r\n                currentAlphas[index] = prevAlpha;\r\n\r\n                if (alphas.length > index + 1)\r\n                {\r\n                    prevAlpha = alphas[index + 1];\r\n                }\r\n\r\n                currentAlphas[index + 1] = prevAlpha;\r\n            }\r\n        }\r\n\r\n        return this;\r\n\r\n    },\r\n\r\n    /**\r\n     * Set the color values used by the Rope during rendering.\r\n     *\r\n     * Colors are used to control the level of tint applied across the Rope texture.\r\n     *\r\n     * You can provide the values in a number of ways:\r\n     *\r\n     * * One single numeric value: `setColors(0xff0000)` - This will set a single color tint for the whole Rope.\r\n     * * An array of values: `setColors([ 0xff0000, 0x00ff00, 0x0000ff ])`\r\n     *\r\n     * If you provide an array of values and the array has exactly the same number of values as `points` in the Rope, it\r\n     * will use each color per rope segment.\r\n     *\r\n     * If the provided array has a different number of values than `points` then it will use the values in order, from\r\n     * the first Rope segment and on, until it runs out of values. This allows you to control the color values at all\r\n     * vertices in the Rope.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#setColors\r\n     * @since 3.23.0\r\n     *\r\n     * @param {(number|number[])} [colors] - Either a single color value, or an array of values. If nothing is provided color is reset to 0xffffff.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setColors: function (colors)\r\n    {\r\n        var total = this.points.length;\r\n\r\n        if (total < 1)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        var currentColors = this.colors;\r\n\r\n        if (colors === undefined)\r\n        {\r\n            colors = [ 0xffffff ];\r\n        }\r\n        else if (!Array.isArray(colors))\r\n        {\r\n            colors = [ colors ];\r\n        }\r\n\r\n        var i;\r\n        var index = 0;\r\n\r\n        if (colors.length === total)\r\n        {\r\n            //  If there are exactly the same number of colors as points, we'll combine the colors\r\n            for (i = 0; i < total; i++)\r\n            {\r\n                index = i * 2;\r\n\r\n                currentColors[index] = colors[i];\r\n                currentColors[index + 1] = colors[i];\r\n            }\r\n        }\r\n        else\r\n        {\r\n            var prevColor = colors[0];\r\n\r\n            for (i = 0; i < total; i++)\r\n            {\r\n                index = i * 2;\r\n\r\n                if (colors.length > index)\r\n                {\r\n                    prevColor = colors[index];\r\n                }\r\n\r\n                currentColors[index] = prevColor;\r\n\r\n                if (colors.length > index + 1)\r\n                {\r\n                    prevColor = colors[index + 1];\r\n                }\r\n\r\n                currentColors[index + 1] = prevColor;\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the points used by this Rope.\r\n     *\r\n     * The points should be provided as an array of Vector2, or vector2-like objects (i.e. those with public x/y properties).\r\n     *\r\n     * Each point corresponds to one segment of the Rope. The more points in the array, the more segments the rope has.\r\n     *\r\n     * Point coordinates are given in local-space, not world-space, and are directly related to the size of the texture\r\n     * this Rope object is using.\r\n     *\r\n     * For example, a Rope using a 512 px wide texture, split into 4 segments (128px each) would use the following points:\r\n     *\r\n     * ```javascript\r\n     * rope.setPoints([\r\n     *   { x: 0, y: 0 },\r\n     *   { x: 128, y: 0 },\r\n     *   { x: 256, y: 0 },\r\n     *   { x: 384, y: 0 }\r\n     * ]);\r\n     * ```\r\n     *\r\n     * Or, you can provide an integer to do the same thing:\r\n     *\r\n     * ```javascript\r\n     * rope.setPoints(4);\r\n     * ```\r\n     *\r\n     * Which will divide the Rope into 4 equally sized segments based on the frame width.\r\n     *\r\n     * Note that calling this method with a different number of points than the Rope has currently will\r\n     * _reset_ the color and alpha values, unless you provide them as arguments to this method.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#setPoints\r\n     * @since 3.23.0\r\n     *\r\n     * @param {(number|Phaser.Types.Math.Vector2Like[])} [points=2] - An array containing the vertices data for this Rope, or a number that indicates how many segments to split the texture frame into. If none is provided a simple quad is created.\r\n     * @param {(number|number[])} [colors] - Either a single color value, or an array of values.\r\n     * @param {(number|number[])} [alphas] - Either a single alpha value, or an array of values.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setPoints: function (points, colors, alphas)\r\n    {\r\n        if (points === undefined) { points = 2; }\r\n\r\n        if (typeof points === 'number')\r\n        {\r\n            //  Generate an array based on the points\r\n            var segments = points;\r\n\r\n            if (segments < 2)\r\n            {\r\n                segments = 2;\r\n            }\r\n\r\n            points = [];\r\n\r\n            var s;\r\n            var frameSegment;\r\n            var offset;\r\n\r\n            if (this.horizontal)\r\n            {\r\n                offset = -(this.frame.halfWidth);\r\n                frameSegment = this.frame.width / (segments - 1);\r\n\r\n                for (s = 0; s < segments; s++)\r\n                {\r\n                    points.push({ x: offset + s * frameSegment, y: 0 });\r\n                }\r\n            }\r\n            else\r\n            {\r\n                offset = -(this.frame.halfHeight);\r\n                frameSegment = this.frame.height / (segments - 1);\r\n\r\n                for (s = 0; s < segments; s++)\r\n                {\r\n                    points.push({ x: 0, y: offset + s * frameSegment });\r\n                }\r\n            }\r\n        }\r\n\r\n        var total = points.length;\r\n        var currentTotal = this.points.length;\r\n\r\n        if (total < 1)\r\n        {\r\n            console.warn('Rope: Not enough points given');\r\n\r\n            return this;\r\n        }\r\n        else if (total === 1)\r\n        {\r\n            points.unshift({ x: 0, y: 0 });\r\n            total++;\r\n        }\r\n\r\n        if (currentTotal !== total)\r\n        {\r\n            this.resizeArrays(total);\r\n        }\r\n\r\n        this.dirty = true;\r\n\r\n        this.points = points;\r\n\r\n        this.updateUVs();\r\n\r\n        if (colors !== undefined && colors !== null)\r\n        {\r\n            this.setColors(colors);\r\n        }\r\n\r\n        if (alphas !== undefined && alphas !== null)\r\n        {\r\n            this.setAlphas(alphas);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Updates all of the UVs based on the Rope.points and `flipX` and `flipY` settings.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#updateUVs\r\n     * @since 3.23.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    updateUVs: function ()\r\n    {\r\n        var currentUVs = this.uv;\r\n        var total = this.points.length;\r\n\r\n        var u0 = this.frame.u0;\r\n        var v0 = this.frame.v0;\r\n        var u1 = this.frame.u1;\r\n        var v1 = this.frame.v1;\r\n\r\n        var partH = (u1 - u0) / (total - 1);\r\n        var partV = (v1 - v0) / (total - 1);\r\n\r\n        for (var i = 0; i < total; i++)\r\n        {\r\n            var index = i * 4;\r\n\r\n            var uv0;\r\n            var uv1;\r\n            var uv2;\r\n            var uv3;\r\n\r\n            if (this.horizontal)\r\n            {\r\n                if (this._flipX)\r\n                {\r\n                    uv0 = u1 - (i * partH);\r\n                    uv2 = u1 - (i * partH);\r\n                }\r\n                else\r\n                {\r\n                    uv0 = u0 + (i * partH);\r\n                    uv2 = u0 + (i * partH);\r\n                }\r\n\r\n                if (this._flipY)\r\n                {\r\n                    uv1 = v1;\r\n                    uv3 = v0;\r\n                }\r\n                else\r\n                {\r\n                    uv1 = v0;\r\n                    uv3 = v1;\r\n                }\r\n            }\r\n            else\r\n            {\r\n                if (this._flipX)\r\n                {\r\n                    uv0 = u0;\r\n                    uv2 = u1;\r\n                }\r\n                else\r\n                {\r\n                    uv0 = u1;\r\n                    uv2 = u0;\r\n                }\r\n\r\n                if (this._flipY)\r\n                {\r\n                    uv1 = v1 - (i * partV);\r\n                    uv3 = v1 - (i * partV);\r\n                }\r\n                else\r\n                {\r\n                    uv1 = v0 + (i * partV);\r\n                    uv3 = v0 + (i * partV);\r\n                }\r\n            }\r\n\r\n            currentUVs[index + 0] = uv0;\r\n            currentUVs[index + 1] = uv1;\r\n            currentUVs[index + 2] = uv2;\r\n            currentUVs[index + 3] = uv3;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Resizes all of the internal arrays: `vertices`, `uv`, `colors` and `alphas` to the new\r\n     * given Rope segment total.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#resizeArrays\r\n     * @since 3.23.0\r\n     *\r\n     * @param {number} newSize - The amount of segments to split the Rope in to.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    resizeArrays: function (newSize)\r\n    {\r\n        var colors = this.colors;\r\n        var alphas = this.alphas;\r\n\r\n        this.vertices = new Float32Array(newSize * 4);\r\n        this.uv = new Float32Array(newSize * 4);\r\n\r\n        colors = new Uint32Array(newSize * 2);\r\n        alphas = new Float32Array(newSize * 2);\r\n\r\n        for (var i = 0; i < newSize * 2; i++)\r\n        {\r\n            colors[i] = 0xffffff;\r\n            alphas[i] = 1;\r\n        }\r\n\r\n        this.colors = colors;\r\n        this.alphas = alphas;\r\n\r\n        //  updateVertices during next render\r\n        this.dirty = true;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Updates the vertices based on the Rope points.\r\n     *\r\n     * This method is called automatically during rendering if `Rope.dirty` is `true`, which is set\r\n     * by the `setPoints` and `setDirty` methods. You should flag the Rope as being dirty if you modify\r\n     * the Rope points directly.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#updateVertices\r\n     * @since 3.23.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    updateVertices: function ()\r\n    {\r\n        var perp = this._perp;\r\n        var points = this.points;\r\n        var vertices = this.vertices;\r\n\r\n        var total = points.length;\r\n\r\n        this.dirty = false;\r\n\r\n        if (total < 1)\r\n        {\r\n            return;\r\n        }\r\n\r\n        var nextPoint;\r\n        var lastPoint = points[0];\r\n\r\n        var frameSize = (this.horizontal) ? this.frame.halfHeight : this.frame.halfWidth;\r\n\r\n        for (var i = 0; i < total; i++)\r\n        {\r\n            var point = points[i];\r\n            var index = i * 4;\r\n\r\n            if (i < total - 1)\r\n            {\r\n                nextPoint = points[i + 1];\r\n            }\r\n            else\r\n            {\r\n                nextPoint = point;\r\n            }\r\n\r\n            perp.x = nextPoint.y - lastPoint.y;\r\n            perp.y = -(nextPoint.x - lastPoint.x);\r\n\r\n            var perpLength = perp.length();\r\n\r\n            perp.x /= perpLength;\r\n            perp.y /= perpLength;\r\n\r\n            perp.x *= frameSize;\r\n            perp.y *= frameSize;\r\n\r\n            vertices[index] = point.x + perp.x;\r\n            vertices[index + 1] = point.y + perp.y;\r\n            vertices[index + 2] = point.x - perp.x;\r\n            vertices[index + 3] = point.y - perp.y;\r\n\r\n            lastPoint = point;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * This method enables rendering of the Rope vertices to the given Graphics instance.\r\n     *\r\n     * If you enable this feature, you **must** call `Graphics.clear()` in your Scene `update`,\r\n     * otherwise the Graphics instance you provide to debug will fill-up with draw calls,\r\n     * eventually crashing the browser. This is not done automatically to allow you to debug\r\n     * draw multiple Rope objects to a single Graphics instance.\r\n     *\r\n     * The Rope class has a built-in debug rendering callback `Rope.renderDebugVerts`, however\r\n     * you can also provide your own callback to be used instead. Do this by setting the `callback` parameter.\r\n     *\r\n     * The callback is invoked _once per render_ and sent the following parameters:\r\n     *\r\n     * `callback(src, meshLength, verts)`\r\n     *\r\n     * `src` is the Rope instance being debugged.\r\n     * `meshLength` is the number of mesh vertices in total.\r\n     * `verts` is an array of the translated vertex coordinates.\r\n     *\r\n     * If using your own callback you do not have to provide a Graphics instance to this method.\r\n     *\r\n     * To disable debug rendering, to either your own callback or the built-in one, call this method\r\n     * with no arguments.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#setDebug\r\n     * @since 3.23.0\r\n     *\r\n     * @param {Phaser.GameObjects.Graphics} [graphic] - The Graphic instance to render to if using the built-in callback.\r\n     * @param {function} [callback] - The callback to invoke during debug render. Leave as undefined to use the built-in callback.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setDebug: function (graphic, callback)\r\n    {\r\n        this.debugGraphic = graphic;\r\n\r\n        if (!graphic && !callback)\r\n        {\r\n            this.debugCallback = null;\r\n        }\r\n        else if (!callback)\r\n        {\r\n            this.debugCallback = this.renderDebugVerts;\r\n        }\r\n        else\r\n        {\r\n            this.debugCallback = callback;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * The built-in Rope vertices debug rendering method.\r\n     *\r\n     * See `Rope.setDebug` for more details.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#renderDebugVerts\r\n     * @since 3.23.0\r\n     *\r\n     * @param {Phaser.GameObjects.Rope} src - The Rope object being rendered.\r\n     * @param {number} meshLength - The number of vertices in the mesh.\r\n     * @param {number[]} verts - An array of translated vertex coordinates.\r\n     */\r\n    renderDebugVerts: function (src, meshLength, verts)\r\n    {\r\n        var graphic = src.debugGraphic;\r\n\r\n        var px0 = verts[0];\r\n        var py0 = verts[1];\r\n        var px1 = verts[2];\r\n        var py1 = verts[3];\r\n\r\n        graphic.lineBetween(px0, py0, px1, py1);\r\n\r\n        for (var i = 4; i < meshLength; i += 4)\r\n        {\r\n            var x0 = verts[i + 0];\r\n            var y0 = verts[i + 1];\r\n            var x1 = verts[i + 2];\r\n            var y1 = verts[i + 3];\r\n\r\n            graphic.lineBetween(px0, py0, x0, y0);\r\n            graphic.lineBetween(px1, py1, x1, y1);\r\n            graphic.lineBetween(px1, py1, x0, y0);\r\n            graphic.lineBetween(x0, y0, x1, y1);\r\n\r\n            px0 = x0;\r\n            py0 = y0;\r\n            px1 = x1;\r\n            py1 = y1;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Handles the pre-destroy step for the Rope, which removes the Animation component and typed arrays.\r\n     *\r\n     * @method Phaser.GameObjects.Rope#preDestroy\r\n     * @private\r\n     * @since 3.23.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.anims.destroy();\r\n\r\n        this.anims = undefined;\r\n\r\n        this.points = null;\r\n        this.vertices = null;\r\n        this.uv = null;\r\n        this.colors = null;\r\n        this.alphas = null;\r\n\r\n        this.debugCallback = null;\r\n        this.debugGraphic = null;\r\n    },\r\n\r\n    /**\r\n     * The horizontally flipped state of the Game Object.\r\n     *\r\n     * A Game Object that is flipped horizontally will render inversed on the horizontal axis.\r\n     * Flipping always takes place from the middle of the texture and does not impact the scale value.\r\n     * If this Game Object has a physics body, it will not change the body. This is a rendering toggle only.\r\n     *\r\n     * @name Phaser.GameObjects.Rope#flipX\r\n     * @type {boolean}\r\n     * @default false\r\n     * @since 3.23.0\r\n     */\r\n    flipX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._flipX;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._flipX = value;\r\n\r\n            return this.updateUVs();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The vertically flipped state of the Game Object.\r\n     *\r\n     * A Game Object that is flipped vertically will render inversed on the vertical axis (i.e. upside down)\r\n     * Flipping always takes place from the middle of the texture and does not impact the scale value.\r\n     * If this Game Object has a physics body, it will not change the body. This is a rendering toggle only.\r\n     *\r\n     * @name Phaser.GameObjects.Rope#flipY\r\n     * @type {boolean}\r\n     * @default false\r\n     * @since 3.23.0\r\n     */\r\n    flipY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._flipY;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._flipY = value;\r\n\r\n            return this.updateUVs();\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Rope;\r\n\n\n/***/ }),\n\n/***/ 95262:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * This is a stub function for Rope.Render. There is no Canvas renderer for Rope objects.\r\n *\r\n * @method Phaser.GameObjects.Rope#renderCanvas\r\n * @since 3.23.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Rope} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n */\r\nvar RopeCanvasRenderer = function ()\r\n{\r\n};\r\n\r\nmodule.exports = RopeCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 26209:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar GetValue = __webpack_require__(35154);\r\nvar Rope = __webpack_require__(77757);\r\n\r\n/**\r\n * Creates a new Rope Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Rope Game Object and WebGL support have been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#rope\r\n * @since 3.23.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Rope.RopeConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.Rope} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('rope', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var key = GetAdvancedValue(config, 'key', null);\r\n    var frame = GetAdvancedValue(config, 'frame', null);\r\n    var horizontal = GetAdvancedValue(config, 'horizontal', true);\r\n    var points = GetValue(config, 'points', undefined);\r\n    var colors = GetValue(config, 'colors', undefined);\r\n    var alphas = GetValue(config, 'alphas', undefined);\r\n\r\n    var rope = new Rope(this.scene, 0, 0, key, frame, points, horizontal, colors, alphas);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, rope, config);\r\n\r\n    return rope;\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectCreator context.\r\n\n\n/***/ }),\n\n/***/ 96819:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Rope = __webpack_require__(77757);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Rope Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Rope Game Object and WebGL support have been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#rope\r\n * @webglOnly\r\n * @since 3.23.0\r\n *\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {(string|Phaser.Textures.Texture)} texture - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {(string|number)} [frame] - An optional frame from the Texture this Game Object is rendering with.\r\n * @param {Phaser.Types.Math.Vector2Like[]} [points] - An array containing the vertices data for this Rope. If none is provided a simple quad is created. See `setPoints` to set this post-creation.\r\n * @param {boolean} [horizontal=true] - Should the vertices of this Rope be aligned horizontally (`true`), or vertically (`false`)?\r\n * @param {number[]} [colors] - An optional array containing the color data for this Rope. You should provide one color value per pair of vertices.\r\n * @param {number[]} [alphas] - An optional array containing the alpha data for this Rope. You should provide one alpha value per pair of vertices.\r\n *\r\n * @return {Phaser.GameObjects.Rope} The Game Object that was created.\r\n */\r\nif (true)\r\n{\r\n    GameObjectFactory.register('rope', function (x, y, texture, frame, points, horizontal, colors, alphas)\r\n    {\r\n        return this.displayList.add(new Rope(this.scene, x, y, texture, frame, points, horizontal, colors, alphas));\r\n    });\r\n}\r\n\n\n/***/ }),\n\n/***/ 38745:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(20439);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(95262);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 20439:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Rope#renderWebGL\r\n * @since 3.23.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Rope} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar RopeWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline, src);\r\n\r\n    var calcMatrix = GetCalcMatrix(src, camera, parentMatrix).calc;\r\n\r\n    var vertices = src.vertices;\r\n    var uvs = src.uv;\r\n    var colors = src.colors;\r\n    var alphas = src.alphas;\r\n    var alpha = src.alpha;\r\n    var getTint = Utils.getTintAppendFloatAlpha;\r\n    var roundPixels = camera.roundPixels;\r\n\r\n    var meshVerticesLength = vertices.length;\r\n    var vertexCount = Math.floor(meshVerticesLength * 0.5);\r\n\r\n    //  Because it's a triangle strip and we don't want lots of degenerate triangles joining things up\r\n    pipeline.flush();\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    var textureUnit = pipeline.setGameObject(src);\r\n\r\n    var vertexViewF32 = pipeline.vertexViewF32;\r\n    var vertexViewU32 = pipeline.vertexViewU32;\r\n\r\n    var vertexOffset = (pipeline.vertexCount * pipeline.currentShader.vertexComponentCount) - 1;\r\n\r\n    var colorIndex = 0;\r\n\r\n    var tintEffect = src.tintFill;\r\n\r\n    if (src.dirty)\r\n    {\r\n        src.updateVertices();\r\n    }\r\n\r\n    var debugCallback = src.debugCallback;\r\n    var debugVerts = [];\r\n\r\n    for (var i = 0; i < meshVerticesLength; i += 2)\r\n    {\r\n        var x = vertices[i + 0];\r\n        var y = vertices[i + 1];\r\n\r\n        var tx = x * calcMatrix.a + y * calcMatrix.c + calcMatrix.e;\r\n        var ty = x * calcMatrix.b + y * calcMatrix.d + calcMatrix.f;\r\n\r\n        if (roundPixels)\r\n        {\r\n            tx = Math.round(tx);\r\n            ty = Math.round(ty);\r\n        }\r\n\r\n        vertexViewF32[++vertexOffset] = tx;\r\n        vertexViewF32[++vertexOffset] = ty;\r\n        vertexViewF32[++vertexOffset] = uvs[i + 0];\r\n        vertexViewF32[++vertexOffset] = uvs[i + 1];\r\n        vertexViewF32[++vertexOffset] = textureUnit;\r\n        vertexViewF32[++vertexOffset] = tintEffect;\r\n        vertexViewU32[++vertexOffset] = getTint(colors[colorIndex], camera.alpha * (alphas[colorIndex] * alpha));\r\n\r\n        colorIndex++;\r\n\r\n        if (debugCallback)\r\n        {\r\n            debugVerts[i + 0] = tx;\r\n            debugVerts[i + 1] = ty;\r\n        }\r\n    }\r\n\r\n    if (debugCallback)\r\n    {\r\n        debugCallback.call(src, src, meshVerticesLength, debugVerts);\r\n    }\r\n\r\n    pipeline.vertexCount += vertexCount;\r\n\r\n    pipeline.currentBatch.count = (pipeline.vertexCount - pipeline.currentBatch.start);\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = RopeWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 20071:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar GameObject = __webpack_require__(95643);\r\nvar GetFastValue = __webpack_require__(95540);\r\nvar Extend = __webpack_require__(79291);\r\nvar SetValue = __webpack_require__(61622);\r\nvar ShaderRender = __webpack_require__(25479);\r\nvar TransformMatrix = __webpack_require__(61340);\r\nvar ArrayEach = __webpack_require__(95428);\r\nvar RenderEvents = __webpack_require__(92503);\r\n\r\n/**\r\n * @classdesc\r\n * A Shader Game Object.\r\n *\r\n * This Game Object allows you to easily add a quad with its own shader into the display list, and manipulate it\r\n * as you would any other Game Object, including scaling, rotating, positioning and adding to Containers. Shaders\r\n * can be masked with either Bitmap or Geometry masks and can also be used as a Bitmap Mask for a Camera or other\r\n * Game Object. They can also be made interactive and used for input events.\r\n *\r\n * It works by taking a reference to a `Phaser.Display.BaseShader` instance, as found in the Shader Cache. These can\r\n * be created dynamically at runtime, or loaded in via the GLSL File Loader:\r\n *\r\n * ```javascript\r\n * function preload ()\r\n * {\r\n *     this.load.glsl('fire', 'shaders/fire.glsl.js');\r\n * }\r\n *\r\n * function create ()\r\n * {\r\n *     this.add.shader('fire', 400, 300, 512, 512);\r\n * }\r\n * ```\r\n *\r\n * Please see the Phaser 3 Examples GitHub repo for examples of loading and creating shaders dynamically.\r\n *\r\n * Due to the way in which they work, you cannot directly change the alpha or blend mode of a Shader. This should\r\n * be handled via exposed uniforms in the shader code itself.\r\n *\r\n * By default a Shader will be created with a standard set of uniforms. These were added to match those\r\n * found on sites such as ShaderToy or GLSLSandbox, and provide common functionality a shader may need,\r\n * such as the timestamp, resolution or pointer position. You can replace them by specifying your own uniforms\r\n * in the Base Shader.\r\n *\r\n * These Shaders work by halting the current pipeline during rendering, creating a viewport matched to the\r\n * size of this Game Object and then renders a quad using the bound shader. At the end, the pipeline is restored.\r\n *\r\n * Because it blocks the pipeline it means it will interrupt any batching that is currently going on, so you should\r\n * use these Game Objects sparingly. If you need to have a fully batched custom shader, then please look at using\r\n * a custom pipeline instead. However, for background or special masking effects, they are extremely effective.\r\n *\r\n * @class Shader\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @webglOnly\r\n * @since 3.17.0\r\n *\r\n * @extends Phaser.GameObjects.Components.ComputedSize\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.GetBounds\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Origin\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {(string|Phaser.Display.BaseShader)} key - The key of the shader to use from the shader cache, or a BaseShader instance.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [width=128] - The width of the Game Object.\r\n * @param {number} [height=128] - The height of the Game Object.\r\n * @param {string[]} [textures] - Optional array of texture keys to bind to the iChannel0...3 uniforms. The textures must already exist in the Texture Manager.\r\n * @param {any} [textureData] - Additional texture data if you want to create shader with none NPOT textures.\r\n */\r\nvar Shader = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.ComputedSize,\r\n        Components.Depth,\r\n        Components.GetBounds,\r\n        Components.Mask,\r\n        Components.Origin,\r\n        Components.ScrollFactor,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        ShaderRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Shader (scene, key, x, y, width, height, textures, textureData)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (width === undefined) { width = 128; }\r\n        if (height === undefined) { height = 128; }\r\n\r\n        GameObject.call(this, scene, 'Shader');\r\n\r\n        /**\r\n         * This Game Object cannot have a blend mode, so skip all checks.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#blendMode\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.17.0\r\n         */\r\n        this.blendMode = -1;\r\n\r\n        /**\r\n         * The underlying shader object being used.\r\n         * Empty by default and set during a call to the `setShader` method.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#shader\r\n         * @type {Phaser.Display.BaseShader}\r\n         * @since 3.17.0\r\n         */\r\n        this.shader;\r\n\r\n        var renderer = scene.sys.renderer;\r\n\r\n        /**\r\n         * A reference to the current renderer.\r\n         * Shaders only work with the WebGL Renderer.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#renderer\r\n         * @type {(Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer)}\r\n         * @since 3.17.0\r\n         */\r\n        this.renderer = renderer;\r\n\r\n        /**\r\n         * The WebGL context belonging to the renderer.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#gl\r\n         * @type {WebGLRenderingContext}\r\n         * @since 3.17.0\r\n         */\r\n        this.gl = renderer.gl;\r\n\r\n        /**\r\n         * Raw byte buffer of vertices this Shader uses.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#vertexData\r\n         * @type {ArrayBuffer}\r\n         * @since 3.17.0\r\n         */\r\n        this.vertexData = new ArrayBuffer(6 * (Float32Array.BYTES_PER_ELEMENT * 2));\r\n\r\n        /**\r\n         * The WebGL vertex buffer object this shader uses.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#vertexBuffer\r\n         * @type {Phaser.Renderer.WebGL.Wrappers.WebGLBufferWrapper}\r\n         * @since 3.17.0\r\n         */\r\n        this.vertexBuffer = renderer.createVertexBuffer(this.vertexData.byteLength, this.gl.STREAM_DRAW);\r\n\r\n        /**\r\n         * Internal property: whether the shader needs to be created,\r\n         * and if so, the key and textures to use for the shader.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#_deferSetShader\r\n         * @type {?{ key: string, textures: string[]|undefined, textureData: any|undefined }}\r\n         * @private\r\n         * @since 3.80.0\r\n         */\r\n        this._deferSetShader = null;\r\n\r\n        /**\r\n         * Internal property: whether the projection matrix needs to be set,\r\n         * and if so, the data to use for the orthographic projection.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#_deferProjOrtho\r\n         * @type {?{ left: number, right: number, bottom: number, top: number }}\r\n         * @private\r\n         * @since 3.80.0\r\n         */\r\n        this._deferProjOrtho = null;\r\n\r\n        /**\r\n         * The WebGL shader program this shader uses.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#program\r\n         * @type {Phaser.Renderer.WebGL.Wrappers.WebGLProgramWrapper}\r\n         * @since 3.17.0\r\n         */\r\n        this.program = null;\r\n\r\n        /**\r\n         * Uint8 view to the vertex raw buffer. Used for uploading vertex buffer resources to the GPU.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#bytes\r\n         * @type {Uint8Array}\r\n         * @since 3.17.0\r\n         */\r\n        this.bytes = new Uint8Array(this.vertexData);\r\n\r\n        /**\r\n         * Float32 view of the array buffer containing the shaders vertices.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#vertexViewF32\r\n         * @type {Float32Array}\r\n         * @since 3.17.0\r\n         */\r\n        this.vertexViewF32 = new Float32Array(this.vertexData);\r\n\r\n        /**\r\n         * A temporary Transform Matrix, re-used internally during batching.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#_tempMatrix1\r\n         * @private\r\n         * @type {Phaser.GameObjects.Components.TransformMatrix}\r\n         * @since 3.17.0\r\n         */\r\n        this._tempMatrix1 = new TransformMatrix();\r\n\r\n        /**\r\n         * A temporary Transform Matrix, re-used internally during batching.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#_tempMatrix2\r\n         * @private\r\n         * @type {Phaser.GameObjects.Components.TransformMatrix}\r\n         * @since 3.17.0\r\n         */\r\n        this._tempMatrix2 = new TransformMatrix();\r\n\r\n        /**\r\n         * A temporary Transform Matrix, re-used internally during batching.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#_tempMatrix3\r\n         * @private\r\n         * @type {Phaser.GameObjects.Components.TransformMatrix}\r\n         * @since 3.17.0\r\n         */\r\n        this._tempMatrix3 = new TransformMatrix();\r\n\r\n        /**\r\n         * The view matrix the shader uses during rendering.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#viewMatrix\r\n         * @type {Float32Array}\r\n         * @readonly\r\n         * @since 3.17.0\r\n         */\r\n        this.viewMatrix = new Float32Array([ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ]);\r\n\r\n        /**\r\n         * The projection matrix the shader uses during rendering.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#projectionMatrix\r\n         * @type {Float32Array}\r\n         * @readonly\r\n         * @since 3.17.0\r\n         */\r\n        this.projectionMatrix = new Float32Array([ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ]);\r\n\r\n        /**\r\n         * The default uniform mappings. These can be added to (or replaced) by specifying your own uniforms when\r\n         * creating this shader game object. The uniforms are updated automatically during the render step.\r\n         *\r\n         * The defaults are:\r\n         *\r\n         * `resolution` (2f) - Set to the size of this shader.\r\n         * `time` (1f) - The elapsed game time, in seconds.\r\n         * `mouse` (2f) - If a pointer has been bound (with `setPointer`), this uniform contains its position each frame.\r\n         * `date` (4fv) - A vec4 containing the year, month, day and time in seconds.\r\n         * `sampleRate` (1f) - Sound sample rate. 44100 by default.\r\n         * `iChannel0...3` (sampler2D) - Input channels 0 to 3. `null` by default.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#uniforms\r\n         * @type {any}\r\n         * @since 3.17.0\r\n         */\r\n        this.uniforms = {};\r\n\r\n        /**\r\n         * The pointer bound to this shader, if any.\r\n         * Set via the chainable `setPointer` method, or by modifying this property directly.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#pointer\r\n         * @type {Phaser.Input.Pointer}\r\n         * @since 3.17.0\r\n         */\r\n        this.pointer = null;\r\n\r\n        /**\r\n         * The cached width of the renderer.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#_rendererWidth\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.17.0\r\n         */\r\n        this._rendererWidth = renderer.width;\r\n\r\n        /**\r\n         * The cached height of the renderer.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#_rendererHeight\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.17.0\r\n         */\r\n        this._rendererHeight = renderer.height;\r\n\r\n        /**\r\n         * Internal texture count tracker.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#_textureCount\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.17.0\r\n         */\r\n        this._textureCount = 0;\r\n\r\n        /**\r\n         * A reference to the GL Frame Buffer this Shader is drawing to.\r\n         * This property is only set if you have called `Shader.setRenderToTexture`.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#framebuffer\r\n         * @type {?Phaser.Renderer.WebGL.Wrappers.WebGLFramebufferWrapper}\r\n         * @since 3.19.0\r\n         */\r\n        this.framebuffer = null;\r\n\r\n        /**\r\n         * A reference to the WebGLTextureWrapper this Shader is rendering to.\r\n         * This property is only set if you have called `Shader.setRenderToTexture`.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#glTexture\r\n         * @type {?Phaser.Renderer.WebGL.Wrappers.WebGLTextureWrapper}\r\n         * @since 3.19.0\r\n         */\r\n        this.glTexture = null;\r\n\r\n        /**\r\n         * A flag that indicates if this Shader has been set to render to a texture instead of the display list.\r\n         *\r\n         * This property is `true` if you have called `Shader.setRenderToTexture`, otherwise it's `false`.\r\n         *\r\n         * A Shader that is rendering to a texture _does not_ appear on the display list.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#renderToTexture\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @since 3.19.0\r\n         */\r\n        this.renderToTexture = false;\r\n\r\n        /**\r\n         * A reference to the Phaser.Textures.Texture that has been stored in the Texture Manager for this Shader.\r\n         *\r\n         * This property is only set if you have called `Shader.setRenderToTexture` with a key, otherwise it is `null`.\r\n         *\r\n         * @name Phaser.GameObjects.Shader#texture\r\n         * @type {Phaser.Textures.Texture}\r\n         * @since 3.19.0\r\n         */\r\n        this.texture = null;\r\n\r\n        this.setPosition(x, y);\r\n        this.setSize(width, height);\r\n        this.setOrigin(0.5, 0.5);\r\n        this.setShader(key, textures, textureData);\r\n\r\n        this.renderer.on(RenderEvents.RESTORE_WEBGL, this.onContextRestored, this);\r\n    },\r\n\r\n    /**\r\n     * Compares the renderMask with the renderFlags to see if this Game Object will render or not.\r\n     * Also checks the Game Object against the given Cameras exclusion list.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#willRender\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera to check against this Game Object.\r\n     *\r\n     * @return {boolean} True if the Game Object should be rendered, otherwise false.\r\n     */\r\n    willRender: function (camera)\r\n    {\r\n        if (this.renderToTexture)\r\n        {\r\n            return true;\r\n        }\r\n        else\r\n        {\r\n            return !(GameObject.RENDER_MASK !== this.renderFlags || (this.cameraFilter !== 0 && (this.cameraFilter & camera.id)));\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Changes this Shader so instead of rendering to the display list it renders to a\r\n     * WebGL Framebuffer and WebGL Texture instead. This allows you to use the output\r\n     * of this shader as an input for another shader, by mapping a sampler2D uniform\r\n     * to it.\r\n     *\r\n     * After calling this method the `Shader.framebuffer` and `Shader.glTexture` properties\r\n     * are populated.\r\n     *\r\n     * Additionally, you can provide a key to this method. Doing so will create a Phaser Texture\r\n     * from this Shader and save it into the Texture Manager, allowing you to then use it for\r\n     * any texture-based Game Object, such as a Sprite or Image:\r\n     *\r\n     * ```javascript\r\n     * var shader = this.add.shader('myShader', x, y, width, height);\r\n     *\r\n     * shader.setRenderToTexture('doodle');\r\n     *\r\n     * this.add.image(400, 300, 'doodle');\r\n     * ```\r\n     *\r\n     * Note that it stores an active reference to this Shader. That means as this shader updates,\r\n     * so does the texture and any object using it to render with. Also, if you destroy this\r\n     * shader, be sure to clear any objects that may have been using it as a texture too.\r\n     *\r\n     * You can access the Phaser Texture that is created via the `Shader.texture` property.\r\n     *\r\n     * By default it will create a single base texture. You can add frames to the texture\r\n     * by using the `Texture.add` method. After doing this, you can then allow Game Objects\r\n     * to use a specific frame from a Render Texture.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#setRenderToTexture\r\n     * @since 3.19.0\r\n     *\r\n     * @param {string} [key] - The unique key to store the texture as within the global Texture Manager.\r\n     * @param {boolean} [flipY=false] - Does this texture need vertically flipping before rendering? This should usually be set to `true` if being fed from a buffer.\r\n     *\r\n     * @return {this} This Shader instance.\r\n     */\r\n    setRenderToTexture: function (key, flipY)\r\n    {\r\n        if (flipY === undefined) { flipY = false; }\r\n\r\n        if (!this.renderToTexture)\r\n        {\r\n            var width = this.width;\r\n            var height = this.height;\r\n            var renderer = this.renderer;\r\n\r\n            this.glTexture = renderer.createTextureFromSource(null, width, height, 0);\r\n\r\n            this.framebuffer = renderer.createFramebuffer(width, height, this.glTexture, false);\r\n\r\n            this._rendererWidth = width;\r\n            this._rendererHeight = height;\r\n\r\n            this.renderToTexture = true;\r\n\r\n            this.projOrtho(0, this.width, this.height, 0);\r\n\r\n            if (key)\r\n            {\r\n                this.texture = this.scene.sys.textures.addGLTexture(key, this.glTexture);\r\n            }\r\n        }\r\n\r\n        //  And now render at least once, so our texture isn't blank on the first update\r\n\r\n        if (this.shader)\r\n        {\r\n            renderer.pipelines.clear();\r\n\r\n            this.load();\r\n            this.flush();\r\n\r\n            renderer.pipelines.rebind();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the fragment and, optionally, the vertex shader source code that this Shader will use.\r\n     * This will immediately delete the active shader program, if set, and then create a new one\r\n     * with the given source. Finally, the shader uniforms are initialized.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#setShader\r\n     * @since 3.17.0\r\n     *\r\n     * @param {(string|Phaser.Display.BaseShader)} key - The key of the shader to use from the shader cache, or a BaseShader instance.\r\n     * @param {string[]} [textures] - Optional array of texture keys to bind to the iChannel0...3 uniforms. The textures must already exist in the Texture Manager.\r\n     * @param {any} [textureData] - Additional texture data.\r\n     *\r\n     * @return {this} This Shader instance.\r\n     */\r\n    setShader: function (key, textures, textureData)\r\n    {\r\n        if (this.renderer.contextLost)\r\n        {\r\n            this._deferSetShader = { key: key, textures: textures, textureData: textureData };\r\n            return this;\r\n        }\r\n\r\n        if (textures === undefined) { textures = []; }\r\n\r\n        if (typeof key === 'string')\r\n        {\r\n            var cache = this.scene.sys.cache.shader;\r\n\r\n            if (!cache.has(key))\r\n            {\r\n                console.warn('Shader missing: ' + key);\r\n                return this;\r\n            }\r\n\r\n            this.shader = cache.get(key);\r\n        }\r\n        else\r\n        {\r\n            this.shader = key;\r\n        }\r\n\r\n        var gl = this.gl;\r\n        var renderer = this.renderer;\r\n\r\n        if (this.program)\r\n        {\r\n            renderer.deleteProgram(this.program);\r\n        }\r\n\r\n        var program = renderer.createProgram(this.shader.vertexSrc, this.shader.fragmentSrc);\r\n\r\n        //  The default uniforms available within the vertex shader\r\n        gl.uniformMatrix4fv(gl.getUniformLocation(program.webGLProgram, 'uViewMatrix'), false, this.viewMatrix);\r\n        gl.uniformMatrix4fv(gl.getUniformLocation(program.webGLProgram, 'uProjectionMatrix'), false, this.projectionMatrix);\r\n        gl.uniform2f(gl.getUniformLocation(program.webGLProgram, 'uResolution'), this.width, this.height);\r\n\r\n        this.program = program;\r\n\r\n        var d = new Date();\r\n\r\n        //  The default uniforms available within the fragment shader\r\n        var defaultUniforms = {\r\n            resolution: { type: '2f', value: { x: this.width, y: this.height } },\r\n            time: { type: '1f', value: 0 },\r\n            mouse: { type: '2f', value: { x: this.width / 2, y: this.height / 2 } },\r\n            date: { type: '4fv', value: [ d.getFullYear(), d.getMonth(), d.getDate(), d.getHours() * 60 * 60 + d.getMinutes() * 60 + d.getSeconds() ] },\r\n            sampleRate: { type: '1f', value: 44100.0 },\r\n            iChannel0: { type: 'sampler2D', value: null, textureData: { repeat: true } },\r\n            iChannel1: { type: 'sampler2D', value: null, textureData: { repeat: true } },\r\n            iChannel2: { type: 'sampler2D', value: null, textureData: { repeat: true } },\r\n            iChannel3: { type: 'sampler2D', value: null, textureData: { repeat: true } }\r\n        };\r\n\r\n        if (this.shader.uniforms)\r\n        {\r\n            this.uniforms = Extend(true, {}, this.shader.uniforms, defaultUniforms);\r\n        }\r\n        else\r\n        {\r\n            this.uniforms = defaultUniforms;\r\n        }\r\n\r\n        for (var i = 0; i < 4; i++)\r\n        {\r\n            if (textures[i])\r\n            {\r\n                this.setSampler2D('iChannel' + i, textures[i], i, textureData);\r\n            }\r\n        }\r\n\r\n        this.initUniforms();\r\n\r\n        this.projOrtho(0, this._rendererWidth, this._rendererHeight, 0);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Binds a Phaser Pointer object to this Shader.\r\n     *\r\n     * The screen position of the pointer will be set in to the shaders `mouse` uniform\r\n     * automatically every frame. Call this method with no arguments to unbind the pointer.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#setPointer\r\n     * @since 3.17.0\r\n     *\r\n     * @param {Phaser.Input.Pointer} [pointer] - The Pointer to bind to this shader.\r\n     *\r\n     * @return {this} This Shader instance.\r\n     */\r\n    setPointer: function (pointer)\r\n    {\r\n        this.pointer = pointer;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets this shader to use an orthographic projection matrix.\r\n     * This matrix is stored locally in the `projectionMatrix` property,\r\n     * as well as being bound to the `uProjectionMatrix` uniform.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#projOrtho\r\n     * @since 3.17.0\r\n     *\r\n     * @param {number} left - The left value.\r\n     * @param {number} right - The right value.\r\n     * @param {number} bottom - The bottom value.\r\n     * @param {number} top - The top value.\r\n     */\r\n    projOrtho: function (left, right, bottom, top)\r\n    {\r\n        if (this.renderer.contextLost)\r\n        {\r\n            this._deferProjOrtho = { left: left, right: right, bottom: bottom, top: top };\r\n            return;\r\n        }\r\n\r\n        var near = -1000;\r\n        var far = 1000;\r\n\r\n        var leftRight = 1 / (left - right);\r\n        var bottomTop = 1 / (bottom - top);\r\n        var nearFar = 1 / (near - far);\r\n\r\n        var pm = this.projectionMatrix;\r\n\r\n        pm[0] = -2 * leftRight;\r\n        pm[5] = -2 * bottomTop;\r\n        pm[10] = 2 * nearFar;\r\n        pm[12] = (left + right) * leftRight;\r\n        pm[13] = (top + bottom) * bottomTop;\r\n        pm[14] = (far + near) * nearFar;\r\n\r\n        var program = this.program;\r\n\r\n        var gl = this.gl;\r\n        var renderer = this.renderer;\r\n\r\n        renderer.setProgram(program);\r\n\r\n        gl.uniformMatrix4fv(gl.getUniformLocation(program.webGLProgram, 'uProjectionMatrix'), false, this.projectionMatrix);\r\n\r\n        this._rendererWidth = right;\r\n        this._rendererHeight = bottom;\r\n    },\r\n\r\n    // Uniforms are specified in the GLSL_ES Specification: http://www.khronos.org/registry/webgl/specs/latest/1.0/\r\n    // http://www.khronos.org/registry/gles/specs/2.0/GLSL_ES_Specification_1.0.17.pdf\r\n\r\n    /**\r\n     * Initializes all of the uniforms this shader uses.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#initUniforms\r\n     * @private\r\n     * @since 3.17.0\r\n     */\r\n    initUniforms: function ()\r\n    {\r\n        var map = this.renderer.glFuncMap;\r\n        var program = this.program;\r\n\r\n        this._textureCount = 0;\r\n\r\n        for (var key in this.uniforms)\r\n        {\r\n            var uniform = this.uniforms[key];\r\n\r\n            var type = uniform.type;\r\n            var data = map[type];\r\n\r\n            uniform.uniformLocation = this.renderer.createUniformLocation(program, key);\r\n\r\n            if (type !== 'sampler2D')\r\n            {\r\n                uniform.glMatrix = data.matrix;\r\n                uniform.glValueLength = data.length;\r\n                uniform.glFunc = data.func;\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Sets a sampler2D uniform on this shader where the source texture is a WebGLTextureBuffer.\r\n     *\r\n     * This allows you to feed the output from one Shader into another:\r\n     *\r\n     * ```javascript\r\n     * let shader1 = this.add.shader(baseShader1, 0, 0, 512, 512).setRenderToTexture();\r\n     * let shader2 = this.add.shader(baseShader2, 0, 0, 512, 512).setRenderToTexture('output');\r\n     *\r\n     * shader1.setSampler2DBuffer('iChannel0', shader2.glTexture, 512, 512);\r\n     * shader2.setSampler2DBuffer('iChannel0', shader1.glTexture, 512, 512);\r\n     * ```\r\n     *\r\n     * In the above code, the result of baseShader1 is fed into Shader2 as the `iChannel0` sampler2D uniform.\r\n     * The result of baseShader2 is then fed back into shader1 again, creating a feedback loop.\r\n     *\r\n     * If you wish to use an image from the Texture Manager as a sampler2D input for this shader,\r\n     * see the `Shader.setSampler2D` method.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#setSampler2DBuffer\r\n     * @since 3.19.0\r\n     *\r\n     * @param {string} uniformKey - The key of the sampler2D uniform to be updated, i.e. `iChannel0`.\r\n     * @param {Phaser.Renderer.WebGL.Wrappers.WebGLTextureWrapper} texture - A texture reference.\r\n     * @param {number} width - The width of the texture.\r\n     * @param {number} height - The height of the texture.\r\n     * @param {number} [textureIndex=0] - The texture index.\r\n     * @param {any} [textureData] - Additional texture data.\r\n     *\r\n     * @return {this} This Shader instance.\r\n     */\r\n    setSampler2DBuffer: function (uniformKey, texture, width, height, textureIndex, textureData)\r\n    {\r\n        if (textureIndex === undefined) { textureIndex = 0; }\r\n        if (textureData === undefined) { textureData = {}; }\r\n\r\n        var uniform = this.uniforms[uniformKey];\r\n\r\n        uniform.value = texture;\r\n\r\n        textureData.width = width;\r\n        textureData.height = height;\r\n\r\n        uniform.textureData = textureData;\r\n\r\n        this._textureCount = textureIndex;\r\n\r\n        this.initSampler2D(uniform);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets a sampler2D uniform on this shader.\r\n     *\r\n     * The textureKey given is the key from the Texture Manager cache. You cannot use a single frame\r\n     * from a texture, only the full image. Also, lots of shaders expect textures to be power-of-two sized.\r\n     *\r\n     * If you wish to use another Shader as a sampler2D input for this shader, see the `Shader.setSampler2DBuffer` method.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#setSampler2D\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} uniformKey - The key of the sampler2D uniform to be updated, i.e. `iChannel0`.\r\n     * @param {string} textureKey - The key of the texture, as stored in the Texture Manager. Must already be loaded.\r\n     * @param {number} [textureIndex=0] - The texture index.\r\n     * @param {any} [textureData] - Additional texture data.\r\n     *\r\n     * @return {this} This Shader instance.\r\n     */\r\n    setSampler2D: function (uniformKey, textureKey, textureIndex, textureData)\r\n    {\r\n        if (textureIndex === undefined) { textureIndex = 0; }\r\n\r\n        var textureManager = this.scene.sys.textures;\r\n\r\n        if (textureManager.exists(textureKey))\r\n        {\r\n            var frame = textureManager.getFrame(textureKey);\r\n\r\n            if (frame.glTexture && frame.glTexture.isRenderTexture)\r\n            {\r\n                return this.setSampler2DBuffer(uniformKey, frame.glTexture, frame.width, frame.height, textureIndex, textureData);\r\n            }\r\n\r\n            var uniform = this.uniforms[uniformKey];\r\n            var source = frame.source;\r\n\r\n            uniform.textureKey = textureKey;\r\n            uniform.source = source.image;\r\n            uniform.value = frame.glTexture;\r\n\r\n            if (source.isGLTexture)\r\n            {\r\n                if (!textureData)\r\n                {\r\n                    textureData = {};\r\n                }\r\n\r\n                textureData.width = source.width;\r\n                textureData.height = source.height;\r\n            }\r\n\r\n            if (textureData)\r\n            {\r\n                uniform.textureData = textureData;\r\n            }\r\n\r\n            this._textureCount = textureIndex;\r\n\r\n            this.initSampler2D(uniform);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets a property of a uniform already present on this shader.\r\n     *\r\n     * To modify the value of a uniform such as a 1f or 1i use the `value` property directly:\r\n     *\r\n     * ```javascript\r\n     * shader.setUniform('size.value', 16);\r\n     * ```\r\n     *\r\n     * You can use dot notation to access deeper values, for example:\r\n     *\r\n     * ```javascript\r\n     * shader.setUniform('resolution.value.x', 512);\r\n     * ```\r\n     *\r\n     * The change to the uniform will take effect the next time the shader is rendered.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#setUniform\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} key - The key of the uniform to modify. Use dots for deep properties, i.e. `resolution.value.x`.\r\n     * @param {any} value - The value to set into the uniform.\r\n     *\r\n     * @return {this} This Shader instance.\r\n     */\r\n    setUniform: function (key, value)\r\n    {\r\n        SetValue(this.uniforms, key, value);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns the uniform object for the given key, or `null` if the uniform couldn't be found.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#getUniform\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} key - The key of the uniform to return the value for.\r\n     *\r\n     * @return {any} A reference to the uniform object. This is not a copy, so modifying it will update the original object also.\r\n     */\r\n    getUniform: function (key)\r\n    {\r\n        return GetFastValue(this.uniforms, key, null);\r\n    },\r\n\r\n    /**\r\n     * A short-cut method that will directly set the texture being used by the `iChannel0` sampler2D uniform.\r\n     *\r\n     * The textureKey given is the key from the Texture Manager cache. You cannot use a single frame\r\n     * from a texture, only the full image. Also, lots of shaders expect textures to be power-of-two sized.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#setChannel0\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} textureKey - The key of the texture, as stored in the Texture Manager. Must already be loaded.\r\n     * @param {any} [textureData] - Additional texture data.\r\n     *\r\n     * @return {this} This Shader instance.\r\n     */\r\n    setChannel0: function (textureKey, textureData)\r\n    {\r\n        return this.setSampler2D('iChannel0', textureKey, 0, textureData);\r\n    },\r\n\r\n    /**\r\n     * A short-cut method that will directly set the texture being used by the `iChannel1` sampler2D uniform.\r\n     *\r\n     * The textureKey given is the key from the Texture Manager cache. You cannot use a single frame\r\n     * from a texture, only the full image. Also, lots of shaders expect textures to be power-of-two sized.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#setChannel1\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} textureKey - The key of the texture, as stored in the Texture Manager. Must already be loaded.\r\n     * @param {any} [textureData] - Additional texture data.\r\n     *\r\n     * @return {this} This Shader instance.\r\n     */\r\n    setChannel1: function (textureKey, textureData)\r\n    {\r\n        return this.setSampler2D('iChannel1', textureKey, 1, textureData);\r\n    },\r\n\r\n    /**\r\n     * A short-cut method that will directly set the texture being used by the `iChannel2` sampler2D uniform.\r\n     *\r\n     * The textureKey given is the key from the Texture Manager cache. You cannot use a single frame\r\n     * from a texture, only the full image. Also, lots of shaders expect textures to be power-of-two sized.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#setChannel2\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} textureKey - The key of the texture, as stored in the Texture Manager. Must already be loaded.\r\n     * @param {any} [textureData] - Additional texture data.\r\n     *\r\n     * @return {this} This Shader instance.\r\n     */\r\n    setChannel2: function (textureKey, textureData)\r\n    {\r\n        return this.setSampler2D('iChannel2', textureKey, 2, textureData);\r\n    },\r\n\r\n    /**\r\n     * A short-cut method that will directly set the texture being used by the `iChannel3` sampler2D uniform.\r\n     *\r\n     * The textureKey given is the key from the Texture Manager cache. You cannot use a single frame\r\n     * from a texture, only the full image. Also, lots of shaders expect textures to be power-of-two sized.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#setChannel3\r\n     * @since 3.17.0\r\n     *\r\n     * @param {string} textureKey - The key of the texture, as stored in the Texture Manager. Must already be loaded.\r\n     * @param {any} [textureData] - Additional texture data.\r\n     *\r\n     * @return {this} This Shader instance.\r\n     */\r\n    setChannel3: function (textureKey, textureData)\r\n    {\r\n        return this.setSampler2D('iChannel3', textureKey, 3, textureData);\r\n    },\r\n\r\n    /**\r\n     * Internal method that takes a sampler2D uniform and prepares it for use by setting the\r\n     * gl texture parameters.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#initSampler2D\r\n     * @private\r\n     * @since 3.17.0\r\n     *\r\n     * @param {any} uniform - The sampler2D uniform to process.\r\n     */\r\n    initSampler2D: function (uniform)\r\n    {\r\n        if (!uniform.value)\r\n        {\r\n            return;\r\n        }\r\n\r\n        //  Extended texture data\r\n\r\n        var data = uniform.textureData;\r\n\r\n        if (data && !uniform.value.isRenderTexture)\r\n        {\r\n            var gl = this.gl;\r\n            var wrapper = uniform.value;\r\n            \r\n            // https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texImage2D\r\n\r\n            //  mag / minFilter can be: gl.LINEAR, gl.LINEAR_MIPMAP_LINEAR or gl.NEAREST\r\n            //  wrapS/T can be: gl.CLAMP_TO_EDGE or gl.REPEAT\r\n            //  format can be: gl.LUMINANCE or gl.RGBA\r\n\r\n            var magFilter = gl[GetFastValue(data, 'magFilter', 'linear').toUpperCase()];\r\n            var minFilter = gl[GetFastValue(data, 'minFilter', 'linear').toUpperCase()];\r\n            var wrapS = gl[GetFastValue(data, 'wrapS', 'repeat').toUpperCase()];\r\n            var wrapT = gl[GetFastValue(data, 'wrapT', 'repeat').toUpperCase()];\r\n            var format = gl[GetFastValue(data, 'format', 'rgba').toUpperCase()];\r\n            var flipY = GetFastValue(data, 'flipY', false);\r\n            var width = GetFastValue(data, 'width', wrapper.width);\r\n            var height = GetFastValue(data, 'height', wrapper.height);\r\n            var source = GetFastValue(data, 'source', wrapper.pixels);\r\n\r\n            if (data.repeat)\r\n            {\r\n                wrapS = gl.REPEAT;\r\n                wrapT = gl.REPEAT;\r\n            }\r\n\r\n            if (data.width)\r\n            {\r\n                // If the uniform has resolution, use a blank texture.\r\n                source = null;\r\n            }\r\n\r\n            wrapper.update(source, width, height, flipY, wrapS, wrapT, minFilter, magFilter, format);\r\n        }\r\n\r\n        this.renderer.setProgram(this.program);\r\n\r\n        this._textureCount++;\r\n    },\r\n\r\n    /**\r\n     * Synchronizes all of the uniforms this shader uses.\r\n     * Each uniforms gl function is called in turn.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#syncUniforms\r\n     * @private\r\n     * @since 3.17.0\r\n     */\r\n    syncUniforms: function ()\r\n    {\r\n        var gl = this.gl;\r\n\r\n        var uniforms = this.uniforms;\r\n        var uniform;\r\n        var length;\r\n        var glFunc;\r\n        var location;\r\n        var value;\r\n        var textureCount = 0;\r\n\r\n        for (var key in uniforms)\r\n        {\r\n            uniform = uniforms[key];\r\n\r\n            glFunc = uniform.glFunc;\r\n            length = uniform.glValueLength;\r\n            location = uniform.uniformLocation;\r\n            value = uniform.value;\r\n\r\n            if (value === null)\r\n            {\r\n                continue;\r\n            }\r\n\r\n            if (length === 1)\r\n            {\r\n                if (uniform.glMatrix)\r\n                {\r\n                    glFunc.call(gl, location.webGLUniformLocation, uniform.transpose, value);\r\n                }\r\n                else\r\n                {\r\n                    glFunc.call(gl, location.webGLUniformLocation, value);\r\n                }\r\n            }\r\n            else if (length === 2)\r\n            {\r\n                glFunc.call(gl, location.webGLUniformLocation, value.x, value.y);\r\n            }\r\n            else if (length === 3)\r\n            {\r\n                glFunc.call(gl, location.webGLUniformLocation, value.x, value.y, value.z);\r\n            }\r\n            else if (length === 4)\r\n            {\r\n                glFunc.call(gl, location.webGLUniformLocation, value.x, value.y, value.z, value.w);\r\n            }\r\n            else if (uniform.type === 'sampler2D')\r\n            {\r\n                gl.activeTexture(gl.TEXTURE0 + textureCount);\r\n\r\n                gl.bindTexture(gl.TEXTURE_2D, value.webGLTexture);\r\n\r\n                gl.uniform1i(location.webGLUniformLocation, textureCount);\r\n\r\n                textureCount++;\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Called automatically during render.\r\n     *\r\n     * This method performs matrix ITRS and then stores the resulting value in the `uViewMatrix` uniform.\r\n     * It then sets up the vertex buffer and shader, updates and syncs the uniforms ready\r\n     * for flush to be called.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#load\r\n     * @since 3.17.0\r\n     *\r\n     * @param {Phaser.GameObjects.Components.TransformMatrix} [matrix2D] - The transform matrix to use during rendering.\r\n     */\r\n    load: function (matrix2D)\r\n    {\r\n        //  ITRS\r\n\r\n        var gl = this.gl;\r\n        var width = this.width;\r\n        var height = this.height;\r\n        var renderer = this.renderer;\r\n        var program = this.program;\r\n        var vm = this.viewMatrix;\r\n\r\n        if (!this.renderToTexture)\r\n        {\r\n            var x = -this._displayOriginX;\r\n            var y = -this._displayOriginY;\r\n\r\n            vm[0] = matrix2D[0];\r\n            vm[1] = matrix2D[1];\r\n            vm[4] = matrix2D[2];\r\n            vm[5] = matrix2D[3];\r\n            vm[8] = matrix2D[4];\r\n            vm[9] = matrix2D[5];\r\n            vm[12] = vm[0] * x + vm[4] * y;\r\n            vm[13] = vm[1] * x + vm[5] * y;\r\n        }\r\n\r\n        //  Update vertex shader uniforms\r\n\r\n        gl.useProgram(program.webGLProgram);\r\n\r\n        gl.uniformMatrix4fv(gl.getUniformLocation(program.webGLProgram, 'uViewMatrix'), false, vm);\r\n        gl.uniformMatrix4fv(gl.getUniformLocation(program.webGLProgram, 'uProjectionMatrix'), false, this.projectionMatrix);\r\n        gl.uniform2f(gl.getUniformLocation(program.webGLProgram, 'uResolution'), this.width, this.height);\r\n\r\n        //  Update fragment shader uniforms\r\n\r\n        var uniforms = this.uniforms;\r\n        var res = uniforms.resolution;\r\n\r\n        res.value.x = width;\r\n        res.value.y = height;\r\n\r\n        uniforms.time.value = renderer.game.loop.getDuration();\r\n\r\n        var pointer = this.pointer;\r\n\r\n        if (pointer)\r\n        {\r\n            var mouse = uniforms.mouse;\r\n\r\n            var px = pointer.x / width;\r\n            var py = 1 - pointer.y / height;\r\n\r\n            mouse.value.x = px.toFixed(2);\r\n            mouse.value.y = py.toFixed(2);\r\n        }\r\n\r\n        this.syncUniforms();\r\n    },\r\n\r\n    /**\r\n     * Called automatically during render.\r\n     *\r\n     * Sets the active shader, loads the vertex buffer and then draws.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#flush\r\n     * @since 3.17.0\r\n     */\r\n    flush: function ()\r\n    {\r\n        //  Bind\r\n\r\n        var width = this.width;\r\n        var height = this.height;\r\n        var program = this.program;\r\n\r\n        var gl = this.gl;\r\n        var vertexBuffer = this.vertexBuffer;\r\n        var renderer = this.renderer;\r\n        var vertexSize = Float32Array.BYTES_PER_ELEMENT * 2;\r\n\r\n        if (this.renderToTexture)\r\n        {\r\n            renderer.setFramebuffer(this.framebuffer);\r\n\r\n            gl.clearColor(0, 0, 0, 0);\r\n\r\n            gl.clear(gl.COLOR_BUFFER_BIT);\r\n        }\r\n\r\n        gl.bindBuffer(gl.ARRAY_BUFFER, vertexBuffer.webGLBuffer);\r\n\r\n        var location = gl.getAttribLocation(program.webGLProgram, 'inPosition');\r\n\r\n        if (location !== -1)\r\n        {\r\n            gl.enableVertexAttribArray(location);\r\n\r\n            gl.vertexAttribPointer(location, 2, gl.FLOAT, false, vertexSize, 0);\r\n        }\r\n\r\n        //  Draw\r\n\r\n        var vf = this.vertexViewF32;\r\n\r\n        vf[3] = height;\r\n        vf[4] = width;\r\n        vf[5] = height;\r\n        vf[8] = width;\r\n        vf[9] = height;\r\n        vf[10] = width;\r\n\r\n        //  Flush\r\n\r\n        var vertexCount = 6;\r\n\r\n        gl.bufferSubData(gl.ARRAY_BUFFER, 0, this.bytes.subarray(0, vertexCount * vertexSize));\r\n\r\n        gl.drawArrays(gl.TRIANGLES, 0, vertexCount);\r\n\r\n        if (this.renderToTexture)\r\n        {\r\n            renderer.setFramebuffer(null, false);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * A NOOP method so you can pass a Shader to a Container.\r\n     * Calling this method will do nothing. It is intentionally empty.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#setAlpha\r\n     * @private\r\n     * @since 3.17.0\r\n     */\r\n    setAlpha: function ()\r\n    {\r\n    },\r\n\r\n    /**\r\n     * A NOOP method so you can pass a Shader to a Container.\r\n     * Calling this method will do nothing. It is intentionally empty.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#setBlendMode\r\n     * @private\r\n     * @since 3.17.0\r\n     */\r\n    setBlendMode: function ()\r\n    {\r\n    },\r\n\r\n    /**\r\n     * Run any logic that was deferred during context loss.\r\n     * \r\n     * @method Phaser.GameObjects.Shader#onContextRestored\r\n     * @since 3.80.0\r\n     */\r\n    onContextRestored: function ()\r\n    {\r\n        if (this._deferSetShader !== null)\r\n        {\r\n            var key = this._deferSetShader.key;\r\n            var textures = this._deferSetShader.textures;\r\n            var textureData = this._deferSetShader.textureData;\r\n            this._deferSetShader = null;\r\n            this.setShader(key, textures, textureData);\r\n        }\r\n\r\n        if (this._deferProjOrtho !== null)\r\n        {\r\n            var left = this._deferProjOrtho.left;\r\n            var right = this._deferProjOrtho.right;\r\n            var bottom = this._deferProjOrtho.bottom;\r\n            var top = this._deferProjOrtho.top;\r\n            this._deferProjOrtho = null;\r\n            this.projOrtho(left, right, bottom, top);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Internal destroy handler, called as part of the destroy process.\r\n     *\r\n     * @method Phaser.GameObjects.Shader#preDestroy\r\n     * @protected\r\n     * @since 3.17.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        var renderer = this.renderer;\r\n\r\n        renderer.off(RenderEvents.RESTORE_WEBGL, this.onContextRestored, this);\r\n        renderer.deleteProgram(this.program);\r\n        renderer.deleteBuffer(this.vertexBuffer);\r\n\r\n        if (this.renderToTexture)\r\n        {\r\n            renderer.deleteFramebuffer(this.framebuffer);\r\n\r\n            this.texture.destroy();\r\n\r\n            this.framebuffer = null;\r\n            this.glTexture = null;\r\n            this.texture = null;\r\n        }\r\n\r\n        ArrayEach(this.uniforms, function (uniform)\r\n        {\r\n            renderer.deleteUniformLocation(uniform.uniformLocation);\r\n            uniform.uniformLocation = null;\r\n        });\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Shader;\r\n\n\n/***/ }),\n\n/***/ 80464:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * This is a stub function for Shader.Render. There is no Canvas renderer for Shader objects.\r\n *\r\n * @method Phaser.GameObjects.Shader#renderCanvas\r\n * @since 3.17.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Shader} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n */\r\nvar ShaderCanvasRenderer = function ()\r\n{\r\n};\r\n\r\nmodule.exports = ShaderCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 54935:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar Shader = __webpack_require__(20071);\r\n\r\n/**\r\n * Creates a new Shader Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Shader Game Object and WebGL support have been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#shader\r\n * @since 3.17.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Shader.ShaderConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.Shader} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('shader', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var key = GetAdvancedValue(config, 'key', null);\r\n    var x = GetAdvancedValue(config, 'x', 0);\r\n    var y = GetAdvancedValue(config, 'y', 0);\r\n    var width = GetAdvancedValue(config, 'width', 128);\r\n    var height = GetAdvancedValue(config, 'height', 128);\r\n\r\n    var shader = new Shader(this.scene, key, x, y, width, height);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, shader, config);\r\n\r\n    return shader;\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectCreator context.\r\n\n\n/***/ }),\n\n/***/ 74177:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Shader = __webpack_require__(20071);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Shader Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Shader Game Object and WebGL support have been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#shader\r\n * @webglOnly\r\n * @since 3.17.0\r\n *\r\n * @param {(string|Phaser.Display.BaseShader)} key - The key of the shader to use from the shader cache, or a BaseShader instance.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [width=128] - The width of the Game Object.\r\n * @param {number} [height=128] - The height of the Game Object.\r\n * @param {string[]} [textures] - Optional array of texture keys to bind to the iChannel0...3 uniforms. The textures must already exist in the Texture Manager.\r\n * @param {object} [textureData] - Optional additional texture data.\r\n *\r\n * @return {Phaser.GameObjects.Shader} The Game Object that was created.\r\n */\r\nif (true)\r\n{\r\n    GameObjectFactory.register('shader', function (key, x, y, width, height, textures, textureData)\r\n    {\r\n        return this.displayList.add(new Shader(this.scene, key, x, y, width, height, textures, textureData));\r\n    });\r\n}\r\n\n\n/***/ }),\n\n/***/ 25479:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(19257);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(80464);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 19257:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Shader#renderWebGL\r\n * @since 3.17.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Shader} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar ShaderWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    if (!src.shader)\r\n    {\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    renderer.pipelines.clear();\r\n\r\n    if (src.renderToTexture)\r\n    {\r\n        src.load();\r\n        src.flush();\r\n    }\r\n    else\r\n    {\r\n        var calcMatrix = GetCalcMatrix(src, camera, parentMatrix).calc;\r\n\r\n        //  Renderer size changed?\r\n        if (renderer.width !== src._rendererWidth || renderer.height !== src._rendererHeight)\r\n        {\r\n            src.projOrtho(0, renderer.width, renderer.height, 0);\r\n        }\r\n\r\n        src.load(calcMatrix.matrix);\r\n        src.flush();\r\n    }\r\n\r\n    renderer.pipelines.rebind();\r\n};\r\n\r\nmodule.exports = ShaderWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 10441:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * Renders a filled path for the given Shape.\r\n *\r\n * @method Phaser.GameObjects.Shape#FillPathWebGL\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLPipeline} pipeline - The WebGL Pipeline used to render this Shape.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} calcMatrix - The transform matrix used to get the position values.\r\n * @param {Phaser.GameObjects.Shape} src - The Game Object shape being rendered in this call.\r\n * @param {number} alpha - The base alpha value.\r\n * @param {number} dx - The source displayOriginX.\r\n * @param {number} dy - The source displayOriginY.\r\n */\r\nvar FillPathWebGL = function (pipeline, calcMatrix, src, alpha, dx, dy)\r\n{\r\n    var fillTintColor = Utils.getTintAppendFloatAlpha(src.fillColor, src.fillAlpha * alpha);\r\n\r\n    var path = src.pathData;\r\n    var pathIndexes = src.pathIndexes;\r\n\r\n    for (var i = 0; i < pathIndexes.length; i += 3)\r\n    {\r\n        var p0 = pathIndexes[i] * 2;\r\n        var p1 = pathIndexes[i + 1] * 2;\r\n        var p2 = pathIndexes[i + 2] * 2;\r\n\r\n        var x0 = path[p0 + 0] - dx;\r\n        var y0 = path[p0 + 1] - dy;\r\n        var x1 = path[p1 + 0] - dx;\r\n        var y1 = path[p1 + 1] - dy;\r\n        var x2 = path[p2 + 0] - dx;\r\n        var y2 = path[p2 + 1] - dy;\r\n\r\n        var tx0 = calcMatrix.getX(x0, y0);\r\n        var ty0 = calcMatrix.getY(x0, y0);\r\n\r\n        var tx1 = calcMatrix.getX(x1, y1);\r\n        var ty1 = calcMatrix.getY(x1, y1);\r\n\r\n        var tx2 = calcMatrix.getX(x2, y2);\r\n        var ty2 = calcMatrix.getY(x2, y2);\r\n\r\n        pipeline.batchTri(src, tx0, ty0, tx1, ty1, tx2, ty2, 0, 0, 1, 1, fillTintColor, fillTintColor, fillTintColor, 2);\r\n    }\r\n};\r\n\r\nmodule.exports = FillPathWebGL;\r\n\n\n/***/ }),\n\n/***/ 65960:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Sets the fillStyle on the target context based on the given Shape.\r\n *\r\n * @method Phaser.GameObjects.Shape#FillStyleCanvas\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {CanvasRenderingContext2D} ctx - The context to set the fill style on.\r\n * @param {Phaser.GameObjects.Shape} src - The Game Object to set the fill style from.\r\n * @param {number} [altColor] - An alternative color to render with.\r\n * @param {number} [altAlpha] - An alternative alpha to render with.\r\n */\r\nvar FillStyleCanvas = function (ctx, src, altColor, altAlpha)\r\n{\r\n    var fillColor = (altColor) ? altColor : src.fillColor;\r\n    var fillAlpha = (altAlpha) ? altAlpha : src.fillAlpha;\r\n\r\n    var red = ((fillColor & 0xFF0000) >>> 16);\r\n    var green = ((fillColor & 0xFF00) >>> 8);\r\n    var blue = (fillColor & 0xFF);\r\n\r\n    ctx.fillStyle = 'rgba(' + red + ',' + green + ',' + blue + ',' + fillAlpha + ')';\r\n};\r\n\r\nmodule.exports = FillStyleCanvas;\r\n\n\n/***/ }),\n\n/***/ 75177:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Sets the strokeStyle and lineWidth on the target context based on the given Shape.\r\n *\r\n * @method Phaser.GameObjects.Shape#LineStyleCanvas\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {CanvasRenderingContext2D} ctx - The context to set the stroke style on.\r\n * @param {Phaser.GameObjects.Shape} src - The Game Object to set the stroke style from.\r\n * @param {number} [altColor] - An alternative color to render with.\r\n * @param {number} [altAlpha] - An alternative alpha to render with.\r\n */\r\nvar LineStyleCanvas = function (ctx, src, altColor, altAlpha)\r\n{\r\n    var strokeColor = (altColor) ? altColor : src.strokeColor;\r\n    var strokeAlpha = (altAlpha) ? altAlpha : src.strokeAlpha;\r\n\r\n    var red = ((strokeColor & 0xFF0000) >>> 16);\r\n    var green = ((strokeColor & 0xFF00) >>> 8);\r\n    var blue = (strokeColor & 0xFF);\r\n\r\n    ctx.strokeStyle = 'rgba(' + red + ',' + green + ',' + blue + ',' + strokeAlpha + ')';\r\n    ctx.lineWidth = src.lineWidth;\r\n};\r\n\r\nmodule.exports = LineStyleCanvas;\r\n\n\n/***/ }),\n\n/***/ 17803:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar GameObject = __webpack_require__(95643);\r\nvar Line = __webpack_require__(23031);\r\n\r\n/**\r\n * @classdesc\r\n * The Shape Game Object is a base class for the various different shapes, such as the Arc, Star or Polygon.\r\n * You cannot add a Shape directly to your Scene, it is meant as a base for your own custom Shape classes.\r\n *\r\n * @class Shape\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.13.0\r\n *\r\n * @extends Phaser.GameObjects.Components.AlphaSingle\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.GetBounds\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Origin\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {string} [type] - The internal type of the Shape.\r\n * @param {any} [data] - The data of the source shape geometry, if any.\r\n */\r\nvar Shape = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.AlphaSingle,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.GetBounds,\r\n        Components.Mask,\r\n        Components.Origin,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.ScrollFactor,\r\n        Components.Transform,\r\n        Components.Visible\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Shape (scene, type, data)\r\n    {\r\n        if (type === undefined) { type = 'Shape'; }\r\n\r\n        GameObject.call(this, scene, type);\r\n\r\n        /**\r\n         * The source Shape data. Typically a geometry object.\r\n         * You should not manipulate this directly.\r\n         *\r\n         * @name Phaser.GameObjects.Shape#geom\r\n         * @type {any}\r\n         * @readonly\r\n         * @since 3.13.0\r\n         */\r\n        this.geom = data;\r\n\r\n        /**\r\n         * Holds the polygon path data for filled rendering.\r\n         *\r\n         * @name Phaser.GameObjects.Shape#pathData\r\n         * @type {number[]}\r\n         * @readonly\r\n         * @since 3.13.0\r\n         */\r\n        this.pathData = [];\r\n\r\n        /**\r\n         * Holds the earcut polygon path index data for filled rendering.\r\n         *\r\n         * @name Phaser.GameObjects.Shape#pathIndexes\r\n         * @type {number[]}\r\n         * @readonly\r\n         * @since 3.13.0\r\n         */\r\n        this.pathIndexes = [];\r\n\r\n        /**\r\n         * The fill color used by this Shape.\r\n         *\r\n         * @name Phaser.GameObjects.Shape#fillColor\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.fillColor = 0xffffff;\r\n\r\n        /**\r\n         * The fill alpha value used by this Shape.\r\n         *\r\n         * @name Phaser.GameObjects.Shape#fillAlpha\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.fillAlpha = 1;\r\n\r\n        /**\r\n         * The stroke color used by this Shape.\r\n         *\r\n         * @name Phaser.GameObjects.Shape#strokeColor\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.strokeColor = 0xffffff;\r\n\r\n        /**\r\n         * The stroke alpha value used by this Shape.\r\n         *\r\n         * @name Phaser.GameObjects.Shape#strokeAlpha\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.strokeAlpha = 1;\r\n\r\n        /**\r\n         * The stroke line width used by this Shape.\r\n         *\r\n         * @name Phaser.GameObjects.Shape#lineWidth\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.lineWidth = 1;\r\n\r\n        /**\r\n         * Controls if this Shape is filled or not.\r\n         * Note that some Shapes do not support being filled (such as Line shapes)\r\n         *\r\n         * @name Phaser.GameObjects.Shape#isFilled\r\n         * @type {boolean}\r\n         * @since 3.13.0\r\n         */\r\n        this.isFilled = false;\r\n\r\n        /**\r\n         * Controls if this Shape is stroked or not.\r\n         * Note that some Shapes do not support being stroked (such as Iso Box shapes)\r\n         *\r\n         * @name Phaser.GameObjects.Shape#isStroked\r\n         * @type {boolean}\r\n         * @since 3.13.0\r\n         */\r\n        this.isStroked = false;\r\n\r\n        /**\r\n         * Controls if this Shape path is closed during rendering when stroked.\r\n         * Note that some Shapes are always closed when stroked (such as Ellipse shapes)\r\n         *\r\n         * @name Phaser.GameObjects.Shape#closePath\r\n         * @type {boolean}\r\n         * @since 3.13.0\r\n         */\r\n        this.closePath = true;\r\n\r\n        /**\r\n         * Private internal value.\r\n         * A Line used when parsing internal path data to avoid constant object re-creation.\r\n         *\r\n         * @name Phaser.GameObjects.Shape#_tempLine\r\n         * @type {Phaser.Geom.Line}\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._tempLine = new Line();\r\n\r\n        /**\r\n         * The native (un-scaled) width of this Game Object.\r\n         *\r\n         * Changing this value will not change the size that the Game Object is rendered in-game.\r\n         * For that you need to either set the scale of the Game Object (`setScale`) or use\r\n         * the `displayWidth` property.\r\n         *\r\n         * @name Phaser.GameObjects.Shape#width\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.width = 0;\r\n\r\n        /**\r\n         * The native (un-scaled) height of this Game Object.\r\n         *\r\n         * Changing this value will not change the size that the Game Object is rendered in-game.\r\n         * For that you need to either set the scale of the Game Object (`setScale`) or use\r\n         * the `displayHeight` property.\r\n         *\r\n         * @name Phaser.GameObjects.Shape#height\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         */\r\n        this.height = 0;\r\n\r\n        this.initPipeline();\r\n        this.initPostPipeline();\r\n    },\r\n\r\n    /**\r\n     * Sets the fill color and alpha for this Shape.\r\n     *\r\n     * If you wish for the Shape to not be filled then call this method with no arguments, or just set `isFilled` to `false`.\r\n     *\r\n     * Note that some Shapes do not support fill colors, such as the Line shape.\r\n     *\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Shape#setFillStyle\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} [color] - The color used to fill this shape. If not provided the Shape will not be filled.\r\n     * @param {number} [alpha=1] - The alpha value used when filling this shape, if a fill color is given.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setFillStyle: function (color, alpha)\r\n    {\r\n        if (alpha === undefined) { alpha = 1; }\r\n\r\n        if (color === undefined)\r\n        {\r\n            this.isFilled = false;\r\n        }\r\n        else\r\n        {\r\n            this.fillColor = color;\r\n            this.fillAlpha = alpha;\r\n            this.isFilled = true;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the stroke color and alpha for this Shape.\r\n     *\r\n     * If you wish for the Shape to not be stroked then call this method with no arguments, or just set `isStroked` to `false`.\r\n     *\r\n     * Note that some Shapes do not support being stroked, such as the Iso Box shape.\r\n     *\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Shape#setStrokeStyle\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} [lineWidth] - The width of line to stroke with. If not provided or undefined the Shape will not be stroked.\r\n     * @param {number} [color] - The color used to stroke this shape. If not provided the Shape will not be stroked.\r\n     * @param {number} [alpha=1] - The alpha value used when stroking this shape, if a stroke color is given.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setStrokeStyle: function (lineWidth, color, alpha)\r\n    {\r\n        if (alpha === undefined) { alpha = 1; }\r\n\r\n        if (lineWidth === undefined)\r\n        {\r\n            this.isStroked = false;\r\n        }\r\n        else\r\n        {\r\n            this.lineWidth = lineWidth;\r\n            this.strokeColor = color;\r\n            this.strokeAlpha = alpha;\r\n            this.isStroked = true;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets if this Shape path is closed during rendering when stroked.\r\n     * Note that some Shapes are always closed when stroked (such as Ellipse shapes)\r\n     *\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Shape#setClosePath\r\n     * @since 3.13.0\r\n     *\r\n     * @param {boolean} value - Set to `true` if the Shape should be closed when stroked, otherwise `false`.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setClosePath: function (value)\r\n    {\r\n        this.closePath = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the internal size of this Game Object, as used for frame or physics body creation.\r\n     *\r\n     * This will not change the size that the Game Object is rendered in-game.\r\n     * For that you need to either set the scale of the Game Object (`setScale`) or call the\r\n     * `setDisplaySize` method, which is the same thing as changing the scale but allows you\r\n     * to do so by giving pixel values.\r\n     *\r\n     * If you have enabled this Game Object for input, changing the size will _not_ change the\r\n     * size of the hit area. To do this you should adjust the `input.hitArea` object directly.\r\n     *\r\n     * @method Phaser.GameObjects.Shape#setSize\r\n     * @private\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} width - The width of this Game Object.\r\n     * @param {number} height - The height of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSize: function (width, height)\r\n    {\r\n        this.width = width;\r\n        this.height = height;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the display size of this Shape.\r\n     *\r\n     * Calling this will adjust the scale.\r\n     *\r\n     * @method Phaser.GameObjects.Shape#setDisplaySize\r\n     * @since 3.53.0\r\n     *\r\n     * @param {number} width - The display width of this Shape.\r\n     * @param {number} height - The display height of this Shape.\r\n     *\r\n     * @return {this} This Shape instance.\r\n     */\r\n    setDisplaySize: function (width, height)\r\n    {\r\n        this.displayWidth = width;\r\n        this.displayHeight = height;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Internal destroy handler, called as part of the destroy process.\r\n     *\r\n     * @method Phaser.GameObjects.Shape#preDestroy\r\n     * @protected\r\n     * @since 3.13.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.geom = null;\r\n        this._tempLine = null;\r\n        this.pathData = [];\r\n        this.pathIndexes = [];\r\n    },\r\n\r\n    /**\r\n     * The displayed width of this Game Object.\r\n     *\r\n     * This value takes into account the scale factor.\r\n     *\r\n     * Setting this value will adjust the Game Object's scale property.\r\n     *\r\n     * @name Phaser.GameObjects.Shape#displayWidth\r\n     * @type {number}\r\n     * @since 3.13.0\r\n     */\r\n    displayWidth: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.scaleX * this.width;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.scaleX = value / this.width;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The displayed height of this Game Object.\r\n     *\r\n     * This value takes into account the scale factor.\r\n     *\r\n     * Setting this value will adjust the Game Object's scale property.\r\n     *\r\n     * @name Phaser.GameObjects.Shape#displayHeight\r\n     * @type {number}\r\n     * @since 3.13.0\r\n     */\r\n    displayHeight: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.scaleY * this.height;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.scaleY = value / this.height;\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Shape;\r\n\n\n/***/ }),\n\n/***/ 34682:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * Renders a stroke outline around the given Shape.\r\n *\r\n * @method Phaser.GameObjects.Shape#StrokePathWebGL\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLPipeline} pipeline - The WebGL Pipeline used to render this Shape.\r\n * @param {Phaser.GameObjects.Shape} src - The Game Object shape being rendered in this call.\r\n * @param {number} alpha - The base alpha value.\r\n * @param {number} dx - The source displayOriginX.\r\n * @param {number} dy - The source displayOriginY.\r\n */\r\nvar StrokePathWebGL = function (pipeline, src, alpha, dx, dy)\r\n{\r\n    var strokeTint = pipeline.strokeTint;\r\n    var strokeTintColor = Utils.getTintAppendFloatAlpha(src.strokeColor, src.strokeAlpha * alpha);\r\n\r\n    strokeTint.TL = strokeTintColor;\r\n    strokeTint.TR = strokeTintColor;\r\n    strokeTint.BL = strokeTintColor;\r\n    strokeTint.BR = strokeTintColor;\r\n\r\n    var path = src.pathData;\r\n    var pathLength = path.length - 1;\r\n    var lineWidth = src.lineWidth;\r\n    var halfLineWidth = lineWidth / 2;\r\n\r\n    var px1 = path[0] - dx;\r\n    var py1 = path[1] - dy;\r\n\r\n    if (!src.closePath)\r\n    {\r\n        pathLength -= 2;\r\n    }\r\n\r\n    for (var i = 2; i < pathLength; i += 2)\r\n    {\r\n        var px2 = path[i] - dx;\r\n        var py2 = path[i + 1] - dy;\r\n\r\n        pipeline.batchLine(\r\n            px1,\r\n            py1,\r\n            px2,\r\n            py2,\r\n            halfLineWidth,\r\n            halfLineWidth,\r\n            lineWidth,\r\n            i - 2,\r\n            (src.closePath) ? (i === pathLength - 1) : false\r\n        );\r\n\r\n        px1 = px2;\r\n        py1 = py2;\r\n    }\r\n};\r\n\r\nmodule.exports = StrokePathWebGL;\r\n\n\n/***/ }),\n\n/***/ 23629:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar ArcRender = __webpack_require__(13609);\r\nvar Class = __webpack_require__(83419);\r\nvar DegToRad = __webpack_require__(39506);\r\nvar Earcut = __webpack_require__(94811);\r\nvar GeomCircle = __webpack_require__(96503);\r\nvar MATH_CONST = __webpack_require__(36383);\r\nvar Shape = __webpack_require__(17803);\r\n\r\n/**\r\n * @classdesc\r\n * The Arc Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * When it renders it displays an arc shape. You can control the start and end angles of the arc,\r\n * as well as if the angles are winding clockwise or anti-clockwise. With the default settings\r\n * it renders as a complete circle. By changing the angles you can create other arc shapes,\r\n * such as half-circles.\r\n *\r\n * Arcs also have an `iterations` property and corresponding `setIterations` method. This allows\r\n * you to control how smooth the shape renders in WebGL, by controlling the number of iterations\r\n * that take place during construction.\r\n *\r\n * @class Arc\r\n * @extends Phaser.GameObjects.Shape\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.13.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [radius=128] - The radius of the arc.\r\n * @param {number} [startAngle=0] - The start angle of the arc, in degrees.\r\n * @param {number} [endAngle=360] - The end angle of the arc, in degrees.\r\n * @param {boolean} [anticlockwise=false] - The winding order of the start and end angles.\r\n * @param {number} [fillColor] - The color the arc will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the arc will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n */\r\nvar Arc = new Class({\r\n\r\n    Extends: Shape,\r\n\r\n    Mixins: [\r\n        ArcRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Arc (scene, x, y, radius, startAngle, endAngle, anticlockwise, fillColor, fillAlpha)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (radius === undefined) { radius = 128; }\r\n        if (startAngle === undefined) { startAngle = 0; }\r\n        if (endAngle === undefined) { endAngle = 360; }\r\n        if (anticlockwise === undefined) { anticlockwise = false; }\r\n\r\n        Shape.call(this, scene, 'Arc', new GeomCircle(0, 0, radius));\r\n\r\n        /**\r\n         * Private internal value. Holds the start angle in degrees.\r\n         *\r\n         * @name Phaser.GameObjects.Arc#_startAngle\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._startAngle = startAngle;\r\n\r\n        /**\r\n         * Private internal value. Holds the end angle in degrees.\r\n         *\r\n         * @name Phaser.GameObjects.Arc#_endAngle\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._endAngle = endAngle;\r\n\r\n        /**\r\n         * Private internal value. Holds the winding order of the start and end angles.\r\n         *\r\n         * @name Phaser.GameObjects.Arc#_anticlockwise\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._anticlockwise = anticlockwise;\r\n\r\n        /**\r\n         * Private internal value. Holds the number of iterations used when drawing the arc.\r\n         *\r\n         * @name Phaser.GameObjects.Arc#_iterations\r\n         * @type {number}\r\n         * @default 0.01\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._iterations = 0.01;\r\n\r\n        this.setPosition(x, y);\r\n\r\n        var diameter = this.geom.radius * 2;\r\n        this.setSize(diameter, diameter);\r\n\r\n        if (fillColor !== undefined)\r\n        {\r\n            this.setFillStyle(fillColor, fillAlpha);\r\n        }\r\n\r\n        this.updateDisplayOrigin();\r\n        this.updateData();\r\n    },\r\n\r\n    /**\r\n     * The number of iterations used when drawing the arc.\r\n     * Increase this value for smoother arcs, at the cost of more polygons being rendered.\r\n     * Modify this value by small amounts, such as 0.01.\r\n     *\r\n     * @name Phaser.GameObjects.Arc#iterations\r\n     * @type {number}\r\n     * @default 0.01\r\n     * @since 3.13.0\r\n     */\r\n    iterations: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._iterations;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._iterations = value;\r\n\r\n            this.updateData();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The radius of the arc.\r\n     *\r\n     * @name Phaser.GameObjects.Arc#radius\r\n     * @type {number}\r\n     * @since 3.13.0\r\n     */\r\n    radius: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.geom.radius;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.geom.radius = value;\r\n\r\n            var diameter = value * 2;\r\n            this.setSize(diameter, diameter);\r\n            this.updateDisplayOrigin();\r\n            this.updateData();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The start angle of the arc, in degrees.\r\n     *\r\n     * @name Phaser.GameObjects.Arc#startAngle\r\n     * @type {number}\r\n     * @since 3.13.0\r\n     */\r\n    startAngle: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._startAngle;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._startAngle = value;\r\n\r\n            this.updateData();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The end angle of the arc, in degrees.\r\n     *\r\n     * @name Phaser.GameObjects.Arc#endAngle\r\n     * @type {number}\r\n     * @since 3.13.0\r\n     */\r\n    endAngle: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._endAngle;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._endAngle = value;\r\n\r\n            this.updateData();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The winding order of the start and end angles.\r\n     *\r\n     * @name Phaser.GameObjects.Arc#anticlockwise\r\n     * @type {boolean}\r\n     * @since 3.13.0\r\n     */\r\n    anticlockwise: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._anticlockwise;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._anticlockwise = value;\r\n\r\n            this.updateData();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Sets the radius of the arc.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Arc#setRadius\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} value - The value to set the radius to.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setRadius: function (value)\r\n    {\r\n        this.radius = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the number of iterations used when drawing the arc.\r\n     * Increase this value for smoother arcs, at the cost of more polygons being rendered.\r\n     * Modify this value by small amounts, such as 0.01.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Arc#setIterations\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} value - The value to set the iterations to.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setIterations: function (value)\r\n    {\r\n        if (value === undefined) { value = 0.01; }\r\n\r\n        this.iterations = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the starting angle of the arc, in degrees.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Arc#setStartAngle\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} value - The value to set the starting angle to.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setStartAngle: function (angle, anticlockwise)\r\n    {\r\n        this._startAngle = angle;\r\n\r\n        if (anticlockwise !== undefined)\r\n        {\r\n            this._anticlockwise = anticlockwise;\r\n        }\r\n\r\n        return this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Sets the ending angle of the arc, in degrees.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Arc#setEndAngle\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} value - The value to set the ending angle to.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setEndAngle: function (angle, anticlockwise)\r\n    {\r\n        this._endAngle = angle;\r\n\r\n        if (anticlockwise !== undefined)\r\n        {\r\n            this._anticlockwise = anticlockwise;\r\n        }\r\n\r\n        return this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Internal method that updates the data and path values.\r\n     *\r\n     * @method Phaser.GameObjects.Arc#updateData\r\n     * @private\r\n     * @since 3.13.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    updateData: function ()\r\n    {\r\n        var step = this._iterations;\r\n        var iteration = step;\r\n\r\n        var radius = this.geom.radius;\r\n        var startAngle = DegToRad(this._startAngle);\r\n        var endAngle = DegToRad(this._endAngle);\r\n        var anticlockwise = this._anticlockwise;\r\n\r\n        var x = radius;\r\n        var y = radius;\r\n\r\n        endAngle -= startAngle;\r\n\r\n        if (anticlockwise)\r\n        {\r\n            if (endAngle < -MATH_CONST.PI2)\r\n            {\r\n                endAngle = -MATH_CONST.PI2;\r\n            }\r\n            else if (endAngle > 0)\r\n            {\r\n                endAngle = -MATH_CONST.PI2 + endAngle % MATH_CONST.PI2;\r\n            }\r\n        }\r\n        else if (endAngle > MATH_CONST.PI2)\r\n        {\r\n            endAngle = MATH_CONST.PI2;\r\n        }\r\n        else if (endAngle < 0)\r\n        {\r\n            endAngle = MATH_CONST.PI2 + endAngle % MATH_CONST.PI2;\r\n        }\r\n\r\n        var path = [ x + Math.cos(startAngle) * radius, y + Math.sin(startAngle) * radius ];\r\n\r\n        var ta;\r\n\r\n        while (iteration < 1)\r\n        {\r\n            ta = endAngle * iteration + startAngle;\r\n\r\n            path.push(x + Math.cos(ta) * radius, y + Math.sin(ta) * radius);\r\n\r\n            iteration += step;\r\n        }\r\n\r\n        ta = endAngle + startAngle;\r\n\r\n        path.push(x + Math.cos(ta) * radius, y + Math.sin(ta) * radius);\r\n\r\n        path.push(x + Math.cos(startAngle) * radius, y + Math.sin(startAngle) * radius);\r\n\r\n        this.pathIndexes = Earcut(path);\r\n        this.pathData = path;\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Arc;\r\n\n\n/***/ }),\n\n/***/ 42542:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar DegToRad = __webpack_require__(39506);\r\nvar FillStyleCanvas = __webpack_require__(65960);\r\nvar LineStyleCanvas = __webpack_require__(75177);\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Arc#renderCanvas\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Arc} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar ArcCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    if (SetTransform(renderer, ctx, src, camera, parentMatrix))\r\n    {\r\n        var radius = src.radius;\r\n\r\n        ctx.beginPath();\r\n\r\n        ctx.arc(\r\n            (radius) - src.originX * (radius * 2),\r\n            (radius) - src.originY * (radius * 2),\r\n            radius,\r\n            DegToRad(src._startAngle),\r\n            DegToRad(src._endAngle),\r\n            src.anticlockwise\r\n        );\r\n\r\n        if (src.closePath)\r\n        {\r\n            ctx.closePath();\r\n        }\r\n\r\n        if (src.isFilled)\r\n        {\r\n            FillStyleCanvas(ctx, src);\r\n\r\n            ctx.fill();\r\n        }\r\n\r\n        if (src.isStroked)\r\n        {\r\n            LineStyleCanvas(ctx, src);\r\n\r\n            ctx.stroke();\r\n        }\r\n\r\n        //  Restore the context saved in SetTransform\r\n        ctx.restore();\r\n    }\r\n};\r\n\r\nmodule.exports = ArcCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 42563:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Arc = __webpack_require__(23629);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Arc Shape Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Arc Game Object has been built into Phaser.\r\n *\r\n * The Arc Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * When it renders it displays an arc shape. You can control the start and end angles of the arc,\r\n * as well as if the angles are winding clockwise or anti-clockwise. With the default settings\r\n * it renders as a complete circle. By changing the angles you can create other arc shapes,\r\n * such as half-circles.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#arc\r\n * @since 3.13.0\r\n *\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [radius=128] - The radius of the arc.\r\n * @param {number} [startAngle=0] - The start angle of the arc, in degrees.\r\n * @param {number} [endAngle=360] - The end angle of the arc, in degrees.\r\n * @param {boolean} [anticlockwise=false] - The winding order of the start and end angles.\r\n * @param {number} [fillColor] - The color the arc will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the arc will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n *\r\n * @return {Phaser.GameObjects.Arc} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('arc', function (x, y, radius, startAngle, endAngle, anticlockwise, fillColor, fillAlpha)\r\n{\r\n    return this.displayList.add(new Arc(this.scene, x, y, radius, startAngle, endAngle, anticlockwise, fillColor, fillAlpha));\r\n});\r\n\r\n/**\r\n * Creates a new Circle Shape Game Object and adds it to the Scene.\r\n *\r\n * A Circle is an Arc with no defined start and end angle, making it render as a complete circle.\r\n *\r\n * Note: This method will only be available if the Arc Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#circle\r\n * @since 3.13.0\r\n *\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [radius=128] - The radius of the circle.\r\n * @param {number} [fillColor] - The color the circle will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the circle will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n *\r\n * @return {Phaser.GameObjects.Arc} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('circle', function (x, y, radius, fillColor, fillAlpha)\r\n{\r\n    return this.displayList.add(new Arc(this.scene, x, y, radius, 0, 360, false, fillColor, fillAlpha));\r\n});\r\n\n\n/***/ }),\n\n/***/ 13609:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(41447);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(42542);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 41447:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar FillPathWebGL = __webpack_require__(10441);\r\nvar StrokePathWebGL = __webpack_require__(34682);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Arc#renderWebGL\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Arc} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar ArcWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline);\r\n\r\n    var result = GetCalcMatrix(src, camera, parentMatrix);\r\n\r\n    var calcMatrix = pipeline.calcMatrix.copyFrom(result.calc);\r\n\r\n    var dx = src._displayOriginX;\r\n    var dy = src._displayOriginY;\r\n\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    if (src.isFilled)\r\n    {\r\n        FillPathWebGL(pipeline, calcMatrix, src, alpha, dx, dy);\r\n    }\r\n\r\n    if (src.isStroked)\r\n    {\r\n        StrokePathWebGL(pipeline, src, alpha, dx, dy);\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = ArcWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 89:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar CurveRender = __webpack_require__(33141);\r\nvar Earcut = __webpack_require__(94811);\r\nvar Rectangle = __webpack_require__(87841);\r\nvar Shape = __webpack_require__(17803);\r\n\r\n/**\r\n * @classdesc\r\n * The Curve Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * To render a Curve Shape you must first create a `Phaser.Curves.Curve` object, then pass it to\r\n * the Curve Shape in the constructor.\r\n *\r\n * The Curve shape also has a `smoothness` property and corresponding `setSmoothness` method.\r\n * This allows you to control how smooth the shape renders in WebGL, by controlling the number of iterations\r\n * that take place during construction. Increase and decrease the default value for smoother, or more\r\n * jagged, shapes.\r\n *\r\n * @class Curve\r\n * @extends Phaser.GameObjects.Shape\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.13.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {Phaser.Curves.Curve} [curve] - The Curve object to use to create the Shape.\r\n * @param {number} [fillColor] - The color the curve will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the curve will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n */\r\nvar Curve = new Class({\r\n\r\n    Extends: Shape,\r\n\r\n    Mixins: [\r\n        CurveRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Curve (scene, x, y, curve, fillColor, fillAlpha)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n\r\n        Shape.call(this, scene, 'Curve', curve);\r\n\r\n        /**\r\n         * Private internal value.\r\n         * The number of points used to draw the curve. Higher values create smoother renders at the cost of more triangles being drawn.\r\n         *\r\n         * @name Phaser.GameObjects.Curve#_smoothness\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._smoothness = 32;\r\n\r\n        /**\r\n         * Private internal value.\r\n         * The Curve bounds rectangle.\r\n         *\r\n         * @name Phaser.GameObjects.Curve#_curveBounds\r\n         * @type {Phaser.Geom.Rectangle}\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._curveBounds = new Rectangle();\r\n\r\n        this.closePath = false;\r\n\r\n        this.setPosition(x, y);\r\n\r\n        if (fillColor !== undefined)\r\n        {\r\n            this.setFillStyle(fillColor, fillAlpha);\r\n        }\r\n\r\n        this.updateData();\r\n    },\r\n\r\n    /**\r\n     * The smoothness of the curve. The number of points used when rendering it.\r\n     * Increase this value for smoother curves, at the cost of more polygons being rendered.\r\n     *\r\n     * @name Phaser.GameObjects.Curve#smoothness\r\n     * @type {number}\r\n     * @default 32\r\n     * @since 3.13.0\r\n     */\r\n    smoothness: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._smoothness;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._smoothness = value;\r\n\r\n            this.updateData();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Sets the smoothness of the curve. The number of points used when rendering it.\r\n     * Increase this value for smoother curves, at the cost of more polygons being rendered.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Curve#setSmoothness\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} value - The value to set the smoothness to.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSmoothness: function (value)\r\n    {\r\n        this._smoothness = value;\r\n\r\n        return this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Internal method that updates the data and path values.\r\n     *\r\n     * @method Phaser.GameObjects.Curve#updateData\r\n     * @private\r\n     * @since 3.13.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    updateData: function ()\r\n    {\r\n        var bounds = this._curveBounds;\r\n        var smoothness = this._smoothness;\r\n\r\n        //  Update the bounds in case the underlying data has changed\r\n        this.geom.getBounds(bounds, smoothness);\r\n\r\n        this.setSize(bounds.width, bounds.height);\r\n        this.updateDisplayOrigin();\r\n\r\n        var path = [];\r\n        var points = this.geom.getPoints(smoothness);\r\n\r\n        for (var i = 0; i < points.length; i++)\r\n        {\r\n            path.push(points[i].x, points[i].y);\r\n        }\r\n\r\n        path.push(points[0].x, points[0].y);\r\n\r\n        this.pathIndexes = Earcut(path);\r\n        this.pathData = path;\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Curve;\r\n\n\n/***/ }),\n\n/***/ 3170:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FillStyleCanvas = __webpack_require__(65960);\r\nvar LineStyleCanvas = __webpack_require__(75177);\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Curve#renderCanvas\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Curve} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar CurveCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    if (SetTransform(renderer, ctx, src, camera, parentMatrix))\r\n    {\r\n        var dx = src._displayOriginX + src._curveBounds.x;\r\n        var dy = src._displayOriginY + src._curveBounds.y;\r\n\r\n        var path = src.pathData;\r\n        var pathLength = path.length - 1;\r\n\r\n        var px1 = path[0] - dx;\r\n        var py1 = path[1] - dy;\r\n\r\n        ctx.beginPath();\r\n\r\n        ctx.moveTo(px1, py1);\r\n\r\n        if (!src.closePath)\r\n        {\r\n            pathLength -= 2;\r\n        }\r\n\r\n        for (var i = 2; i < pathLength; i += 2)\r\n        {\r\n            var px2 = path[i] - dx;\r\n            var py2 = path[i + 1] - dy;\r\n\r\n            ctx.lineTo(px2, py2);\r\n        }\r\n\r\n        if (src.closePath)\r\n        {\r\n            ctx.closePath();\r\n        }\r\n\r\n        if (src.isFilled)\r\n        {\r\n            FillStyleCanvas(ctx, src);\r\n\r\n            ctx.fill();\r\n        }\r\n\r\n        if (src.isStroked)\r\n        {\r\n            LineStyleCanvas(ctx, src);\r\n\r\n            ctx.stroke();\r\n        }\r\n\r\n        //  Restore the context saved in SetTransform\r\n        ctx.restore();\r\n    }\r\n};\r\n\r\nmodule.exports = CurveCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 40511:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar Curve = __webpack_require__(89);\r\n\r\n/**\r\n * Creates a new Curve Shape Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Curve Game Object has been built into Phaser.\r\n *\r\n * The Curve Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * To render a Curve Shape you must first create a `Phaser.Curves.Curve` object, then pass it to\r\n * the Curve Shape in the constructor.\r\n *\r\n * The Curve shape also has a `smoothness` property and corresponding `setSmoothness` method.\r\n * This allows you to control how smooth the shape renders in WebGL, by controlling the number of iterations\r\n * that take place during construction. Increase and decrease the default value for smoother, or more\r\n * jagged, shapes.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#curve\r\n * @since 3.13.0\r\n *\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {Phaser.Curves.Curve} [curve] - The Curve object to use to create the Shape.\r\n * @param {number} [fillColor] - The color the curve will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the curve will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n *\r\n * @return {Phaser.GameObjects.Curve} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('curve', function (x, y, curve, fillColor, fillAlpha)\r\n{\r\n    return this.displayList.add(new Curve(this.scene, x, y, curve, fillColor, fillAlpha));\r\n});\r\n\n\n/***/ }),\n\n/***/ 33141:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(53987);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(3170);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 53987:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FillPathWebGL = __webpack_require__(10441);\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar StrokePathWebGL = __webpack_require__(34682);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Curve#renderWebGL\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Curve} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar CurveWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline);\r\n\r\n    var result = GetCalcMatrix(src, camera, parentMatrix);\r\n\r\n    var calcMatrix = pipeline.calcMatrix.copyFrom(result.calc);\r\n\r\n    var dx = src._displayOriginX + src._curveBounds.x;\r\n    var dy = src._displayOriginY + src._curveBounds.y;\r\n\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    if (src.isFilled)\r\n    {\r\n        FillPathWebGL(pipeline, calcMatrix, src, alpha, dx, dy);\r\n    }\r\n\r\n    if (src.isStroked)\r\n    {\r\n        StrokePathWebGL(pipeline, src, alpha, dx, dy);\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = CurveWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 19921:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Earcut = __webpack_require__(94811);\r\nvar EllipseRender = __webpack_require__(54205);\r\nvar GeomEllipse = __webpack_require__(8497);\r\nvar Shape = __webpack_require__(17803);\r\n\r\n/**\r\n * @classdesc\r\n * The Ellipse Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * When it renders it displays an ellipse shape. You can control the width and height of the ellipse.\r\n * If the width and height match it will render as a circle. If the width is less than the height,\r\n * it will look more like an egg shape.\r\n *\r\n * The Ellipse shape also has a `smoothness` property and corresponding `setSmoothness` method.\r\n * This allows you to control how smooth the shape renders in WebGL, by controlling the number of iterations\r\n * that take place during construction. Increase and decrease the default value for smoother, or more\r\n * jagged, shapes.\r\n *\r\n * @class Ellipse\r\n * @extends Phaser.GameObjects.Shape\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.13.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [width=128] - The width of the ellipse. An ellipse with equal width and height renders as a circle.\r\n * @param {number} [height=128] - The height of the ellipse. An ellipse with equal width and height renders as a circle.\r\n * @param {number} [fillColor] - The color the ellipse will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the ellipse will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n */\r\nvar Ellipse = new Class({\r\n\r\n    Extends: Shape,\r\n\r\n    Mixins: [\r\n        EllipseRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Ellipse (scene, x, y, width, height, fillColor, fillAlpha)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (width === undefined) { width = 128; }\r\n        if (height === undefined) { height = 128; }\r\n\r\n        Shape.call(this, scene, 'Ellipse', new GeomEllipse(width / 2, height / 2, width, height));\r\n\r\n        /**\r\n         * Private internal value.\r\n         * The number of points used to draw the curve. Higher values create smoother renders at the cost of more triangles being drawn.\r\n         *\r\n         * @name Phaser.GameObjects.Ellipse#_smoothness\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._smoothness = 64;\r\n\r\n        this.setPosition(x, y);\r\n\r\n        this.width = width;\r\n        this.height = height;\r\n\r\n        if (fillColor !== undefined)\r\n        {\r\n            this.setFillStyle(fillColor, fillAlpha);\r\n        }\r\n\r\n        this.updateDisplayOrigin();\r\n        this.updateData();\r\n    },\r\n\r\n    /**\r\n     * The smoothness of the ellipse. The number of points used when rendering it.\r\n     * Increase this value for a smoother ellipse, at the cost of more polygons being rendered.\r\n     *\r\n     * @name Phaser.GameObjects.Ellipse#smoothness\r\n     * @type {number}\r\n     * @default 64\r\n     * @since 3.13.0\r\n     */\r\n    smoothness: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._smoothness;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._smoothness = value;\r\n\r\n            this.updateData();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Sets the size of the ellipse by changing the underlying geometry data, rather than scaling the object.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Ellipse#setSize\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} width - The width of the ellipse.\r\n     * @param {number} height - The height of the ellipse.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSize: function (width, height)\r\n    {\r\n        this.width = width;\r\n        this.height = height;\r\n        this.geom.setPosition(width / 2, height / 2);\r\n        this.geom.setSize(width, height);\r\n\r\n        this.updateDisplayOrigin();\r\n\r\n        return this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Sets the smoothness of the ellipse. The number of points used when rendering it.\r\n     * Increase this value for a smoother ellipse, at the cost of more polygons being rendered.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Ellipse#setSmoothness\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} value - The value to set the smoothness to.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSmoothness: function (value)\r\n    {\r\n        this._smoothness = value;\r\n\r\n        return this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Internal method that updates the data and path values.\r\n     *\r\n     * @method Phaser.GameObjects.Ellipse#updateData\r\n     * @private\r\n     * @since 3.13.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    updateData: function ()\r\n    {\r\n        var path = [];\r\n        var points = this.geom.getPoints(this._smoothness);\r\n\r\n        for (var i = 0; i < points.length; i++)\r\n        {\r\n            path.push(points[i].x, points[i].y);\r\n        }\r\n\r\n        path.push(points[0].x, points[0].y);\r\n\r\n        this.pathIndexes = Earcut(path);\r\n        this.pathData = path;\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Ellipse;\r\n\n\n/***/ }),\n\n/***/ 7930:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FillStyleCanvas = __webpack_require__(65960);\r\nvar LineStyleCanvas = __webpack_require__(75177);\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Ellipse#renderCanvas\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Ellipse} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar EllipseCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    if (SetTransform(renderer, ctx, src, camera, parentMatrix))\r\n    {\r\n        var dx = src._displayOriginX;\r\n        var dy = src._displayOriginY;\r\n\r\n        var path = src.pathData;\r\n        var pathLength = path.length - 1;\r\n\r\n        var px1 = path[0] - dx;\r\n        var py1 = path[1] - dy;\r\n\r\n        ctx.beginPath();\r\n\r\n        ctx.moveTo(px1, py1);\r\n\r\n        if (!src.closePath)\r\n        {\r\n            pathLength -= 2;\r\n        }\r\n\r\n        for (var i = 2; i < pathLength; i += 2)\r\n        {\r\n            var px2 = path[i] - dx;\r\n            var py2 = path[i + 1] - dy;\r\n\r\n            ctx.lineTo(px2, py2);\r\n        }\r\n\r\n        ctx.closePath();\r\n\r\n        if (src.isFilled)\r\n        {\r\n            FillStyleCanvas(ctx, src);\r\n\r\n            ctx.fill();\r\n        }\r\n\r\n        if (src.isStroked)\r\n        {\r\n            LineStyleCanvas(ctx, src);\r\n\r\n            ctx.stroke();\r\n        }\r\n\r\n        //  Restore the context saved in SetTransform\r\n        ctx.restore();\r\n    }\r\n};\r\n\r\nmodule.exports = EllipseCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 1543:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Ellipse = __webpack_require__(19921);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Ellipse Shape Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Ellipse Game Object has been built into Phaser.\r\n *\r\n * The Ellipse Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * When it renders it displays an ellipse shape. You can control the width and height of the ellipse.\r\n * If the width and height match it will render as a circle. If the width is less than the height,\r\n * it will look more like an egg shape.\r\n *\r\n * The Ellipse shape also has a `smoothness` property and corresponding `setSmoothness` method.\r\n * This allows you to control how smooth the shape renders in WebGL, by controlling the number of iterations\r\n * that take place during construction. Increase and decrease the default value for smoother, or more\r\n * jagged, shapes.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#ellipse\r\n * @since 3.13.0\r\n *\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [width=128] - The width of the ellipse. An ellipse with equal width and height renders as a circle.\r\n * @param {number} [height=128] - The height of the ellipse. An ellipse with equal width and height renders as a circle.\r\n * @param {number} [fillColor] - The color the ellipse will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the ellipse will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n *\r\n * @return {Phaser.GameObjects.Ellipse} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('ellipse', function (x, y, width, height, fillColor, fillAlpha)\r\n{\r\n    return this.displayList.add(new Ellipse(this.scene, x, y, width, height, fillColor, fillAlpha));\r\n});\r\n\n\n/***/ }),\n\n/***/ 54205:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(19467);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(7930);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 19467:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FillPathWebGL = __webpack_require__(10441);\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar StrokePathWebGL = __webpack_require__(34682);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Ellipse#renderWebGL\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Ellipse} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar EllipseWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline);\r\n\r\n    var result = GetCalcMatrix(src, camera, parentMatrix);\r\n\r\n    var calcMatrix = pipeline.calcMatrix.copyFrom(result.calc);\r\n\r\n    var dx = src._displayOriginX;\r\n    var dy = src._displayOriginY;\r\n\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    if (src.isFilled)\r\n    {\r\n        FillPathWebGL(pipeline, calcMatrix, src, alpha, dx, dy);\r\n    }\r\n\r\n    if (src.isStroked)\r\n    {\r\n        StrokePathWebGL(pipeline, src, alpha, dx, dy);\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = EllipseWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 30479:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Shape = __webpack_require__(17803);\r\nvar GridRender = __webpack_require__(26015);\r\n\r\n/**\r\n * @classdesc\r\n * The Grid Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports only fill colors and cannot be stroked.\r\n *\r\n * A Grid Shape allows you to display a grid in your game, where you can control the size of the\r\n * grid as well as the width and height of the grid cells. You can set a fill color for each grid\r\n * cell as well as an alternate fill color. When the alternate fill color is set then the grid\r\n * cells will alternate the fill colors as they render, creating a chess-board effect. You can\r\n * also optionally have an outline fill color. If set, this draws lines between the grid cells\r\n * in the given color. If you specify an outline color with an alpha of zero, then it will draw\r\n * the cells spaced out, but without the lines between them.\r\n *\r\n * @class Grid\r\n * @extends Phaser.GameObjects.Shape\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.13.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [width=128] - The width of the grid.\r\n * @param {number} [height=128] - The height of the grid.\r\n * @param {number} [cellWidth=32] - The width of one cell in the grid.\r\n * @param {number} [cellHeight=32] - The height of one cell in the grid.\r\n * @param {number} [fillColor] - The color the grid cells will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the grid cells will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n * @param {number} [outlineFillColor] - The color of the lines between the grid cells. See the `setOutline` method.\r\n * @param {number} [outlineFillAlpha] - The alpha of the lines between the grid cells.\r\n */\r\nvar Grid = new Class({\r\n\r\n    Extends: Shape,\r\n\r\n    Mixins: [\r\n        GridRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Grid (scene, x, y, width, height, cellWidth, cellHeight, fillColor, fillAlpha, outlineFillColor, outlineFillAlpha)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (width === undefined) { width = 128; }\r\n        if (height === undefined) { height = 128; }\r\n        if (cellWidth === undefined) { cellWidth = 32; }\r\n        if (cellHeight === undefined) { cellHeight = 32; }\r\n\r\n        Shape.call(this, scene, 'Grid', null);\r\n\r\n        /**\r\n         * The width of each grid cell.\r\n         * Must be a positive value.\r\n         *\r\n         * @name Phaser.GameObjects.Grid#cellWidth\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.cellWidth = cellWidth;\r\n\r\n        /**\r\n         * The height of each grid cell.\r\n         * Must be a positive value.\r\n         *\r\n         * @name Phaser.GameObjects.Grid#cellHeight\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.cellHeight = cellHeight;\r\n\r\n        /**\r\n         * Will the grid render its cells in the `fillColor`?\r\n         *\r\n         * @name Phaser.GameObjects.Grid#showCells\r\n         * @type {boolean}\r\n         * @since 3.13.0\r\n         */\r\n        this.showCells = true;\r\n\r\n        /**\r\n         * The color of the lines between each grid cell.\r\n         *\r\n         * @name Phaser.GameObjects.Grid#outlineFillColor\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.outlineFillColor = 0;\r\n\r\n        /**\r\n         * The alpha value for the color of the lines between each grid cell.\r\n         *\r\n         * @name Phaser.GameObjects.Grid#outlineFillAlpha\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.outlineFillAlpha = 0;\r\n\r\n        /**\r\n         * Will the grid display the lines between each cell when it renders?\r\n         *\r\n         * @name Phaser.GameObjects.Grid#showOutline\r\n         * @type {boolean}\r\n         * @since 3.13.0\r\n         */\r\n        this.showOutline = true;\r\n\r\n        /**\r\n         * Will the grid render the alternating cells in the `altFillColor`?\r\n         *\r\n         * @name Phaser.GameObjects.Grid#showAltCells\r\n         * @type {boolean}\r\n         * @since 3.13.0\r\n         */\r\n        this.showAltCells = false;\r\n\r\n        /**\r\n         * The color the alternating grid cells will be filled with, i.e. 0xff0000 for red.\r\n         *\r\n         * @name Phaser.GameObjects.Grid#altFillColor\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.altFillColor;\r\n\r\n        /**\r\n         * The alpha the alternating grid cells will be filled with.\r\n         * You can also set the alpha of the overall Shape using its `alpha` property.\r\n         *\r\n         * @name Phaser.GameObjects.Grid#altFillAlpha\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.altFillAlpha;\r\n\r\n        this.setPosition(x, y);\r\n        this.setSize(width, height);\r\n\r\n        this.setFillStyle(fillColor, fillAlpha);\r\n\r\n        if (outlineFillColor !== undefined)\r\n        {\r\n            this.setOutlineStyle(outlineFillColor, outlineFillAlpha);\r\n        }\r\n\r\n        this.updateDisplayOrigin();\r\n    },\r\n\r\n    /**\r\n     * Sets the fill color and alpha level the grid cells will use when rendering.\r\n     *\r\n     * If this method is called with no values then the grid cells will not be rendered,\r\n     * however the grid lines and alternating cells may still be.\r\n     *\r\n     * Also see the `setOutlineStyle` and `setAltFillStyle` methods.\r\n     *\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Grid#setFillStyle\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} [fillColor] - The color the grid cells will be filled with, i.e. 0xff0000 for red.\r\n     * @param {number} [fillAlpha=1] - The alpha the grid cells will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setFillStyle: function (fillColor, fillAlpha)\r\n    {\r\n        if (fillAlpha === undefined) { fillAlpha = 1; }\r\n\r\n        if (fillColor === undefined)\r\n        {\r\n            this.showCells = false;\r\n        }\r\n        else\r\n        {\r\n            this.fillColor = fillColor;\r\n            this.fillAlpha = fillAlpha;\r\n            this.showCells = true;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the fill color and alpha level that the alternating grid cells will use.\r\n     *\r\n     * If this method is called with no values then alternating grid cells will not be rendered in a different color.\r\n     *\r\n     * Also see the `setOutlineStyle` and `setFillStyle` methods.\r\n     *\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Grid#setAltFillStyle\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} [fillColor] - The color the alternating grid cells will be filled with, i.e. 0xff0000 for red.\r\n     * @param {number} [fillAlpha=1] - The alpha the alternating grid cells will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setAltFillStyle: function (fillColor, fillAlpha)\r\n    {\r\n        if (fillAlpha === undefined) { fillAlpha = 1; }\r\n\r\n        if (fillColor === undefined)\r\n        {\r\n            this.showAltCells = false;\r\n        }\r\n        else\r\n        {\r\n            this.altFillColor = fillColor;\r\n            this.altFillAlpha = fillAlpha;\r\n            this.showAltCells = true;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the fill color and alpha level that the lines between each grid cell will use.\r\n     *\r\n     * If this method is called with no values then the grid lines will not be rendered at all, however\r\n     * the cells themselves may still be if they have colors set.\r\n     *\r\n     * Also see the `setFillStyle` and `setAltFillStyle` methods.\r\n     *\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Grid#setOutlineStyle\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} [fillColor] - The color the lines between the grid cells will be filled with, i.e. 0xff0000 for red.\r\n     * @param {number} [fillAlpha=1] - The alpha the lines between the grid cells will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setOutlineStyle: function (fillColor, fillAlpha)\r\n    {\r\n        if (fillAlpha === undefined) { fillAlpha = 1; }\r\n\r\n        if (fillColor === undefined)\r\n        {\r\n            this.showOutline = false;\r\n        }\r\n        else\r\n        {\r\n            this.outlineFillColor = fillColor;\r\n            this.outlineFillAlpha = fillAlpha;\r\n            this.showOutline = true;\r\n        }\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Grid;\r\n\n\n/***/ }),\n\n/***/ 49912:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FillStyleCanvas = __webpack_require__(65960);\r\nvar LineStyleCanvas = __webpack_require__(75177);\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Grid#renderCanvas\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Grid} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar GridCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    if (SetTransform(renderer, ctx, src, camera, parentMatrix))\r\n    {\r\n        var dx = -src._displayOriginX;\r\n        var dy = -src._displayOriginY;\r\n\r\n        var alpha = camera.alpha * src.alpha;\r\n\r\n        //  Work out the grid size\r\n\r\n        var width = src.width;\r\n        var height = src.height;\r\n\r\n        var cellWidth = src.cellWidth;\r\n        var cellHeight = src.cellHeight;\r\n\r\n        var gridWidth = Math.ceil(width / cellWidth);\r\n        var gridHeight = Math.ceil(height / cellHeight);\r\n\r\n        var cellWidthA = cellWidth;\r\n        var cellHeightA = cellHeight;\r\n\r\n        var cellWidthB = cellWidth - ((gridWidth * cellWidth) - width);\r\n        var cellHeightB = cellHeight - ((gridHeight * cellHeight) - height);\r\n\r\n        var showCells = src.showCells;\r\n        var showAltCells = src.showAltCells;\r\n        var showOutline = src.showOutline;\r\n\r\n        var x = 0;\r\n        var y = 0;\r\n        var r = 0;\r\n        var cw = 0;\r\n        var ch = 0;\r\n\r\n        if (showOutline)\r\n        {\r\n            //  To make room for the grid lines (in case alpha < 1)\r\n            cellWidthA--;\r\n            cellHeightA--;\r\n\r\n            if (cellWidthB === cellWidth)\r\n            {\r\n                cellWidthB--;\r\n            }\r\n\r\n            if (cellHeightB === cellHeight)\r\n            {\r\n                cellHeightB--;\r\n            }\r\n        }\r\n\r\n        if (showCells && src.fillAlpha > 0)\r\n        {\r\n            FillStyleCanvas(ctx, src);\r\n\r\n            for (y = 0; y < gridHeight; y++)\r\n            {\r\n                if (showAltCells)\r\n                {\r\n                    r = y % 2;\r\n                }\r\n\r\n                for (x = 0; x < gridWidth; x++)\r\n                {\r\n                    if (showAltCells && r)\r\n                    {\r\n                        r = 0;\r\n                        continue;\r\n                    }\r\n\r\n                    r++;\r\n\r\n                    cw = (x < gridWidth - 1) ? cellWidthA : cellWidthB;\r\n                    ch = (y < gridHeight - 1) ? cellHeightA : cellHeightB;\r\n\r\n                    ctx.fillRect(\r\n                        dx + x * cellWidth,\r\n                        dy + y * cellHeight,\r\n                        cw,\r\n                        ch\r\n                    );\r\n                }\r\n            }\r\n        }\r\n\r\n        if (showAltCells && src.altFillAlpha > 0)\r\n        {\r\n            FillStyleCanvas(ctx, src, src.altFillColor, src.altFillAlpha * alpha);\r\n\r\n            for (y = 0; y < gridHeight; y++)\r\n            {\r\n                if (showAltCells)\r\n                {\r\n                    r = y % 2;\r\n                }\r\n\r\n                for (x = 0; x < gridWidth; x++)\r\n                {\r\n                    if (showAltCells && !r)\r\n                    {\r\n                        r = 1;\r\n                        continue;\r\n                    }\r\n\r\n                    r = 0;\r\n\r\n                    cw = (x < gridWidth - 1) ? cellWidthA : cellWidthB;\r\n                    ch = (y < gridHeight - 1) ? cellHeightA : cellHeightB;\r\n\r\n                    ctx.fillRect(\r\n                        dx + x * cellWidth,\r\n                        dy + y * cellHeight,\r\n                        cw,\r\n                        ch\r\n                    );\r\n                }\r\n            }\r\n        }\r\n\r\n        if (showOutline && src.outlineFillAlpha > 0)\r\n        {\r\n            LineStyleCanvas(ctx, src, src.outlineFillColor, src.outlineFillAlpha * alpha);\r\n\r\n            for (x = 1; x < gridWidth; x++)\r\n            {\r\n                var x1 = x * cellWidth;\r\n\r\n                ctx.beginPath();\r\n\r\n                ctx.moveTo(x1 + dx, dy);\r\n                ctx.lineTo(x1 + dx, height + dy);\r\n\r\n                ctx.stroke();\r\n            }\r\n\r\n            for (y = 1; y < gridHeight; y++)\r\n            {\r\n                var y1 = y * cellHeight;\r\n\r\n                ctx.beginPath();\r\n\r\n                ctx.moveTo(dx, y1 + dy);\r\n                ctx.lineTo(dx + width, y1 + dy);\r\n\r\n                ctx.stroke();\r\n            }\r\n        }\r\n\r\n        //  Restore the context saved in SetTransform\r\n        ctx.restore();\r\n    }\r\n};\r\n\r\nmodule.exports = GridCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 34137:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar Grid = __webpack_require__(30479);\r\n\r\n/**\r\n * Creates a new Grid Shape Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Grid Game Object has been built into Phaser.\r\n *\r\n * The Grid Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports only fill colors and cannot be stroked.\r\n *\r\n * A Grid Shape allows you to display a grid in your game, where you can control the size of the\r\n * grid as well as the width and height of the grid cells. You can set a fill color for each grid\r\n * cell as well as an alternate fill color. When the alternate fill color is set then the grid\r\n * cells will alternate the fill colors as they render, creating a chess-board effect. You can\r\n * also optionally have an outline fill color. If set, this draws lines between the grid cells\r\n * in the given color. If you specify an outline color with an alpha of zero, then it will draw\r\n * the cells spaced out, but without the lines between them.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#grid\r\n * @since 3.13.0\r\n *\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [width=128] - The width of the grid.\r\n * @param {number} [height=128] - The height of the grid.\r\n * @param {number} [cellWidth=32] - The width of one cell in the grid.\r\n * @param {number} [cellHeight=32] - The height of one cell in the grid.\r\n * @param {number} [fillColor] - The color the grid cells will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the grid cells will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n * @param {number} [outlineFillColor] - The color of the lines between the grid cells.\r\n * @param {number} [outlineFillAlpha] - The alpha of the lines between the grid cells.\r\n *\r\n * @return {Phaser.GameObjects.Grid} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('grid', function (x, y, width, height, cellWidth, cellHeight, fillColor, fillAlpha, outlineFillColor, outlineFillAlpha)\r\n{\r\n    return this.displayList.add(new Grid(this.scene, x, y, width, height, cellWidth, cellHeight, fillColor, fillAlpha, outlineFillColor, outlineFillAlpha));\r\n});\r\n\n\n/***/ }),\n\n/***/ 26015:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(46161);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(49912);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 46161:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Grid#renderWebGL\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Grid} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar GridWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline);\r\n\r\n    var result = GetCalcMatrix(src, camera, parentMatrix);\r\n\r\n    var calcMatrix = pipeline.calcMatrix.copyFrom(result.calc);\r\n\r\n    calcMatrix.translate(-src._displayOriginX, -src._displayOriginY);\r\n\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    //  Work out the grid size\r\n\r\n    var width = src.width;\r\n    var height = src.height;\r\n\r\n    var cellWidth = src.cellWidth;\r\n    var cellHeight = src.cellHeight;\r\n\r\n    var gridWidth = Math.ceil(width / cellWidth);\r\n    var gridHeight = Math.ceil(height / cellHeight);\r\n\r\n    var cellWidthA = cellWidth;\r\n    var cellHeightA = cellHeight;\r\n\r\n    var cellWidthB = cellWidth - ((gridWidth * cellWidth) - width);\r\n    var cellHeightB = cellHeight - ((gridHeight * cellHeight) - height);\r\n\r\n    var fillTint;\r\n    var fillTintColor;\r\n\r\n    var showCells = src.showCells;\r\n    var showAltCells = src.showAltCells;\r\n    var showOutline = src.showOutline;\r\n\r\n    var x = 0;\r\n    var y = 0;\r\n    var r = 0;\r\n    var cw = 0;\r\n    var ch = 0;\r\n\r\n    if (showOutline)\r\n    {\r\n        //  To make room for the grid lines (in case alpha < 1)\r\n        cellWidthA--;\r\n        cellHeightA--;\r\n\r\n        if (cellWidthB === cellWidth)\r\n        {\r\n            cellWidthB--;\r\n        }\r\n\r\n        if (cellHeightB === cellHeight)\r\n        {\r\n            cellHeightB--;\r\n        }\r\n    }\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    if (showCells && src.fillAlpha > 0)\r\n    {\r\n        fillTint = pipeline.fillTint;\r\n        fillTintColor = Utils.getTintAppendFloatAlpha(src.fillColor, src.fillAlpha * alpha);\r\n\r\n        fillTint.TL = fillTintColor;\r\n        fillTint.TR = fillTintColor;\r\n        fillTint.BL = fillTintColor;\r\n        fillTint.BR = fillTintColor;\r\n\r\n        for (y = 0; y < gridHeight; y++)\r\n        {\r\n            if (showAltCells)\r\n            {\r\n                r = y % 2;\r\n            }\r\n\r\n            for (x = 0; x < gridWidth; x++)\r\n            {\r\n                if (showAltCells && r)\r\n                {\r\n                    r = 0;\r\n                    continue;\r\n                }\r\n\r\n                r++;\r\n\r\n                cw = (x < gridWidth - 1) ? cellWidthA : cellWidthB;\r\n                ch = (y < gridHeight - 1) ? cellHeightA : cellHeightB;\r\n\r\n                pipeline.batchFillRect(\r\n                    x * cellWidth,\r\n                    y * cellHeight,\r\n                    cw,\r\n                    ch\r\n                );\r\n            }\r\n        }\r\n    }\r\n\r\n    if (showAltCells && src.altFillAlpha > 0)\r\n    {\r\n        fillTint = pipeline.fillTint;\r\n        fillTintColor = Utils.getTintAppendFloatAlpha(src.altFillColor, src.altFillAlpha * alpha);\r\n\r\n        fillTint.TL = fillTintColor;\r\n        fillTint.TR = fillTintColor;\r\n        fillTint.BL = fillTintColor;\r\n        fillTint.BR = fillTintColor;\r\n\r\n        for (y = 0; y < gridHeight; y++)\r\n        {\r\n            if (showAltCells)\r\n            {\r\n                r = y % 2;\r\n            }\r\n\r\n            for (x = 0; x < gridWidth; x++)\r\n            {\r\n                if (showAltCells && !r)\r\n                {\r\n                    r = 1;\r\n                    continue;\r\n                }\r\n\r\n                r = 0;\r\n\r\n                cw = (x < gridWidth - 1) ? cellWidthA : cellWidthB;\r\n                ch = (y < gridHeight - 1) ? cellHeightA : cellHeightB;\r\n\r\n                pipeline.batchFillRect(\r\n                    x * cellWidth,\r\n                    y * cellHeight,\r\n                    cw,\r\n                    ch\r\n                );\r\n            }\r\n        }\r\n    }\r\n\r\n    if (showOutline && src.outlineFillAlpha > 0)\r\n    {\r\n        var strokeTint = pipeline.strokeTint;\r\n        var color = Utils.getTintAppendFloatAlpha(src.outlineFillColor, src.outlineFillAlpha * alpha);\r\n\r\n        strokeTint.TL = color;\r\n        strokeTint.TR = color;\r\n        strokeTint.BL = color;\r\n        strokeTint.BR = color;\r\n\r\n        for (x = 1; x < gridWidth; x++)\r\n        {\r\n            var x1 = x * cellWidth;\r\n\r\n            pipeline.batchLine(x1, 0, x1, height, 1, 1, 1, 0, false);\r\n        }\r\n\r\n        for (y = 1; y < gridHeight; y++)\r\n        {\r\n            var y1 = y * cellHeight;\r\n\r\n            pipeline.batchLine(0, y1, width, y1, 1, 1, 1, 0, false);\r\n        }\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = GridWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 61475:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar IsoBoxRender = __webpack_require__(99651);\r\nvar Class = __webpack_require__(83419);\r\nvar Shape = __webpack_require__(17803);\r\n\r\n/**\r\n * @classdesc\r\n * The IsoBox Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports only fill colors and cannot be stroked.\r\n *\r\n * An IsoBox is an 'isometric' rectangle. Each face of it has a different fill color. You can set\r\n * the color of the top, left and right faces of the rectangle respectively. You can also choose\r\n * which of the faces are rendered via the `showTop`, `showLeft` and `showRight` properties.\r\n *\r\n * You cannot view an IsoBox from under-neath, however you can change the 'angle' by setting\r\n * the `projection` property.\r\n *\r\n * @class IsoBox\r\n * @extends Phaser.GameObjects.Shape\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.13.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [size=48] - The width of the iso box in pixels. The left and right faces will be exactly half this value.\r\n * @param {number} [height=32] - The height of the iso box. The left and right faces will be this tall. The overall height of the isobox will be this value plus half the `size` value.\r\n * @param {number} [fillTop=0xeeeeee] - The fill color of the top face of the iso box.\r\n * @param {number} [fillLeft=0x999999] - The fill color of the left face of the iso box.\r\n * @param {number} [fillRight=0xcccccc] - The fill color of the right face of the iso box.\r\n */\r\nvar IsoBox = new Class({\r\n\r\n    Extends: Shape,\r\n\r\n    Mixins: [\r\n        IsoBoxRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function IsoBox (scene, x, y, size, height, fillTop, fillLeft, fillRight)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (size === undefined) { size = 48; }\r\n        if (height === undefined) { height = 32; }\r\n        if (fillTop === undefined) { fillTop = 0xeeeeee; }\r\n        if (fillLeft === undefined) { fillLeft = 0x999999; }\r\n        if (fillRight === undefined) { fillRight = 0xcccccc; }\r\n\r\n        Shape.call(this, scene, 'IsoBox', null);\r\n\r\n        /**\r\n         * The projection level of the iso box. Change this to change the 'angle' at which you are looking at the box.\r\n         *\r\n         * @name Phaser.GameObjects.IsoBox#projection\r\n         * @type {number}\r\n         * @default 4\r\n         * @since 3.13.0\r\n         */\r\n        this.projection = 4;\r\n\r\n        /**\r\n         * The color used to fill in the top of the iso box.\r\n         *\r\n         * @name Phaser.GameObjects.IsoBox#fillTop\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.fillTop = fillTop;\r\n\r\n        /**\r\n         * The color used to fill in the left-facing side of the iso box.\r\n         *\r\n         * @name Phaser.GameObjects.IsoBox#fillLeft\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.fillLeft = fillLeft;\r\n\r\n        /**\r\n         * The color used to fill in the right-facing side of the iso box.\r\n         *\r\n         * @name Phaser.GameObjects.IsoBox#fillRight\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.fillRight = fillRight;\r\n\r\n        /**\r\n         * Controls if the top-face of the iso box be rendered.\r\n         *\r\n         * @name Phaser.GameObjects.IsoBox#showTop\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.13.0\r\n         */\r\n        this.showTop = true;\r\n\r\n        /**\r\n         * Controls if the left-face of the iso box be rendered.\r\n         *\r\n         * @name Phaser.GameObjects.IsoBox#showLeft\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.13.0\r\n         */\r\n        this.showLeft = true;\r\n\r\n        /**\r\n         * Controls if the right-face of the iso box be rendered.\r\n         *\r\n         * @name Phaser.GameObjects.IsoBox#showRight\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.13.0\r\n         */\r\n        this.showRight = true;\r\n\r\n        this.isFilled = true;\r\n\r\n        this.setPosition(x, y);\r\n        this.setSize(size, height);\r\n\r\n        this.updateDisplayOrigin();\r\n    },\r\n\r\n    /**\r\n     * Sets the projection level of the iso box. Change this to change the 'angle' at which you are looking at the box.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.IsoBox#setProjection\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} value - The value to set the projection to.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setProjection: function (value)\r\n    {\r\n        this.projection = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets which faces of the iso box will be rendered.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.IsoBox#setFaces\r\n     * @since 3.13.0\r\n     *\r\n     * @param {boolean} [showTop=true] - Show the top-face of the iso box.\r\n     * @param {boolean} [showLeft=true] - Show the left-face of the iso box.\r\n     * @param {boolean} [showRight=true] - Show the right-face of the iso box.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setFaces: function (showTop, showLeft, showRight)\r\n    {\r\n        if (showTop === undefined) { showTop = true; }\r\n        if (showLeft === undefined) { showLeft = true; }\r\n        if (showRight === undefined) { showRight = true; }\r\n\r\n        this.showTop = showTop;\r\n        this.showLeft = showLeft;\r\n        this.showRight = showRight;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the fill colors for each face of the iso box.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.IsoBox#setFillStyle\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} [fillTop] - The color used to fill the top of the iso box.\r\n     * @param {number} [fillLeft] - The color used to fill in the left-facing side of the iso box.\r\n     * @param {number} [fillRight] - The color used to fill in the right-facing side of the iso box.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setFillStyle: function (fillTop, fillLeft, fillRight)\r\n    {\r\n        this.fillTop = fillTop;\r\n        this.fillLeft = fillLeft;\r\n        this.fillRight = fillRight;\r\n\r\n        this.isFilled = true;\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = IsoBox;\r\n\n\n/***/ }),\n\n/***/ 11508:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FillStyleCanvas = __webpack_require__(65960);\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.IsoBox#renderCanvas\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.IsoBox} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar IsoBoxCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    if (SetTransform(renderer, ctx, src, camera, parentMatrix) && src.isFilled)\r\n    {\r\n        var size = src.width;\r\n        var height = src.height;\r\n\r\n        var sizeA = size / 2;\r\n        var sizeB = size / src.projection;\r\n\r\n        //  Top Face\r\n\r\n        if (src.showTop)\r\n        {\r\n            FillStyleCanvas(ctx, src, src.fillTop);\r\n\r\n            ctx.beginPath();\r\n\r\n            ctx.moveTo(-sizeA, -height);\r\n            ctx.lineTo(0, -sizeB - height);\r\n            ctx.lineTo(sizeA, -height);\r\n            ctx.lineTo(sizeA, -1);\r\n            ctx.lineTo(0, sizeB - 1);\r\n            ctx.lineTo(-sizeA, -1);\r\n            ctx.lineTo(-sizeA, -height);\r\n\r\n            ctx.fill();\r\n        }\r\n\r\n        //  Left Face\r\n\r\n        if (src.showLeft)\r\n        {\r\n            FillStyleCanvas(ctx, src, src.fillLeft);\r\n\r\n            ctx.beginPath();\r\n\r\n            ctx.moveTo(-sizeA, 0);\r\n            ctx.lineTo(0, sizeB);\r\n            ctx.lineTo(0, sizeB - height);\r\n            ctx.lineTo(-sizeA, -height);\r\n            ctx.lineTo(-sizeA, 0);\r\n\r\n            ctx.fill();\r\n        }\r\n\r\n        //  Right Face\r\n\r\n        if (src.showRight)\r\n        {\r\n            FillStyleCanvas(ctx, src, src.fillRight);\r\n\r\n            ctx.beginPath();\r\n\r\n            ctx.moveTo(sizeA, 0);\r\n            ctx.lineTo(0, sizeB);\r\n            ctx.lineTo(0, sizeB - height);\r\n            ctx.lineTo(sizeA, -height);\r\n            ctx.lineTo(sizeA, 0);\r\n\r\n            ctx.fill();\r\n        }\r\n\r\n        //  Restore the context saved in SetTransform\r\n        ctx.restore();\r\n    }\r\n};\r\n\r\nmodule.exports = IsoBoxCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 3933:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar IsoBox = __webpack_require__(61475);\r\n\r\n/**\r\n * Creates a new IsoBox Shape Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the IsoBox Game Object has been built into Phaser.\r\n *\r\n * The IsoBox Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports only fill colors and cannot be stroked.\r\n *\r\n * An IsoBox is an 'isometric' rectangle. Each face of it has a different fill color. You can set\r\n * the color of the top, left and right faces of the rectangle respectively. You can also choose\r\n * which of the faces are rendered via the `showTop`, `showLeft` and `showRight` properties.\r\n *\r\n * You cannot view an IsoBox from under-neath, however you can change the 'angle' by setting\r\n * the `projection` property.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#isobox\r\n * @since 3.13.0\r\n *\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [size=48] - The width of the iso box in pixels. The left and right faces will be exactly half this value.\r\n * @param {number} [height=32] - The height of the iso box. The left and right faces will be this tall. The overall height of the isobox will be this value plus half the `size` value.\r\n * @param {number} [fillTop=0xeeeeee] - The fill color of the top face of the iso box.\r\n * @param {number} [fillLeft=0x999999] - The fill color of the left face of the iso box.\r\n * @param {number} [fillRight=0xcccccc] - The fill color of the right face of the iso box.\r\n *\r\n * @return {Phaser.GameObjects.IsoBox} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('isobox', function (x, y, size, height, fillTop, fillLeft, fillRight)\r\n{\r\n    return this.displayList.add(new IsoBox(this.scene, x, y, size, height, fillTop, fillLeft, fillRight));\r\n});\r\n\n\n/***/ }),\n\n/***/ 99651:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(68149);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(11508);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 68149:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.IsoBox#renderWebGL\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.IsoBox} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar IsoBoxWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline);\r\n\r\n    var result = GetCalcMatrix(src, camera, parentMatrix);\r\n\r\n    var calcMatrix = pipeline.calcMatrix.copyFrom(result.calc);\r\n\r\n    var size = src.width;\r\n    var height = src.height;\r\n\r\n    var sizeA = size / 2;\r\n    var sizeB = size / src.projection;\r\n\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    if (!src.isFilled)\r\n    {\r\n        return;\r\n    }\r\n\r\n    var tint;\r\n\r\n    var x0;\r\n    var y0;\r\n\r\n    var x1;\r\n    var y1;\r\n\r\n    var x2;\r\n    var y2;\r\n\r\n    var x3;\r\n    var y3;\r\n\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    //  Top Face\r\n\r\n    if (src.showTop)\r\n    {\r\n        tint = Utils.getTintAppendFloatAlpha(src.fillTop, alpha);\r\n\r\n        x0 = calcMatrix.getX(-sizeA, -height);\r\n        y0 = calcMatrix.getY(-sizeA, -height);\r\n\r\n        x1 = calcMatrix.getX(0, -sizeB - height);\r\n        y1 = calcMatrix.getY(0, -sizeB - height);\r\n\r\n        x2 = calcMatrix.getX(sizeA, -height);\r\n        y2 = calcMatrix.getY(sizeA, -height);\r\n\r\n        x3 = calcMatrix.getX(0, sizeB - height);\r\n        y3 = calcMatrix.getY(0, sizeB - height);\r\n\r\n        pipeline.batchQuad(src, x0, y0, x1, y1, x2, y2, x3, y3, 0, 0, 1, 1, tint, tint, tint, tint, 2);\r\n    }\r\n\r\n    //  Left Face\r\n\r\n    if (src.showLeft)\r\n    {\r\n        tint = Utils.getTintAppendFloatAlpha(src.fillLeft, alpha);\r\n\r\n        x0 = calcMatrix.getX(-sizeA, 0);\r\n        y0 = calcMatrix.getY(-sizeA, 0);\r\n\r\n        x1 = calcMatrix.getX(0, sizeB);\r\n        y1 = calcMatrix.getY(0, sizeB);\r\n\r\n        x2 = calcMatrix.getX(0, sizeB - height);\r\n        y2 = calcMatrix.getY(0, sizeB - height);\r\n\r\n        x3 = calcMatrix.getX(-sizeA, -height);\r\n        y3 = calcMatrix.getY(-sizeA, -height);\r\n\r\n        pipeline.batchQuad(src, x0, y0, x1, y1, x2, y2, x3, y3, 0, 0, 1, 1, tint, tint, tint, tint, 2);\r\n    }\r\n\r\n    //  Right Face\r\n\r\n    if (src.showRight)\r\n    {\r\n        tint = Utils.getTintAppendFloatAlpha(src.fillRight, alpha);\r\n\r\n        x0 = calcMatrix.getX(sizeA, 0);\r\n        y0 = calcMatrix.getY(sizeA, 0);\r\n\r\n        x1 = calcMatrix.getX(0, sizeB);\r\n        y1 = calcMatrix.getY(0, sizeB);\r\n\r\n        x2 = calcMatrix.getX(0, sizeB - height);\r\n        y2 = calcMatrix.getY(0, sizeB - height);\r\n\r\n        x3 = calcMatrix.getX(sizeA, -height);\r\n        y3 = calcMatrix.getY(sizeA, -height);\r\n\r\n        pipeline.batchQuad(src, x0, y0, x1, y1, x2, y2, x3, y3, 0, 0, 1, 1, tint, tint, tint, tint, 2);\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = IsoBoxWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 16933:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar IsoTriangleRender = __webpack_require__(60561);\r\nvar Shape = __webpack_require__(17803);\r\n\r\n/**\r\n * @classdesc\r\n * The IsoTriangle Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports only fill colors and cannot be stroked.\r\n *\r\n * An IsoTriangle is an 'isometric' triangle. Think of it like a pyramid. Each face has a different\r\n * fill color. You can set the color of the top, left and right faces of the triangle respectively\r\n * You can also choose which of the faces are rendered via the `showTop`, `showLeft` and `showRight` properties.\r\n *\r\n * You cannot view an IsoTriangle from under-neath, however you can change the 'angle' by setting\r\n * the `projection` property. The `reversed` property controls if the IsoTriangle is rendered upside\r\n * down or not.\r\n *\r\n * @class IsoTriangle\r\n * @extends Phaser.GameObjects.Shape\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.13.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [size=48] - The width of the iso triangle in pixels. The left and right faces will be exactly half this value.\r\n * @param {number} [height=32] - The height of the iso triangle. The left and right faces will be this tall. The overall height of the iso triangle will be this value plus half the `size` value.\r\n * @param {boolean} [reversed=false] - Is the iso triangle upside down?\r\n * @param {number} [fillTop=0xeeeeee] - The fill color of the top face of the iso triangle.\r\n * @param {number} [fillLeft=0x999999] - The fill color of the left face of the iso triangle.\r\n * @param {number} [fillRight=0xcccccc] - The fill color of the right face of the iso triangle.\r\n */\r\nvar IsoTriangle = new Class({\r\n\r\n    Extends: Shape,\r\n\r\n    Mixins: [\r\n        IsoTriangleRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function IsoTriangle (scene, x, y, size, height, reversed, fillTop, fillLeft, fillRight)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (size === undefined) { size = 48; }\r\n        if (height === undefined) { height = 32; }\r\n        if (reversed === undefined) { reversed = false; }\r\n        if (fillTop === undefined) { fillTop = 0xeeeeee; }\r\n        if (fillLeft === undefined) { fillLeft = 0x999999; }\r\n        if (fillRight === undefined) { fillRight = 0xcccccc; }\r\n\r\n        Shape.call(this, scene, 'IsoTriangle', null);\r\n\r\n        /**\r\n         * The projection level of the iso box. Change this to change the 'angle' at which you are looking at the box.\r\n         *\r\n         * @name Phaser.GameObjects.IsoTriangle#projection\r\n         * @type {number}\r\n         * @default 4\r\n         * @since 3.13.0\r\n         */\r\n        this.projection = 4;\r\n\r\n        /**\r\n         * The color used to fill in the top of the iso triangle. This is only used if the triangle is reversed.\r\n         *\r\n         * @name Phaser.GameObjects.IsoTriangle#fillTop\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.fillTop = fillTop;\r\n\r\n        /**\r\n         * The color used to fill in the left-facing side of the iso triangle.\r\n         *\r\n         * @name Phaser.GameObjects.IsoTriangle#fillLeft\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.fillLeft = fillLeft;\r\n\r\n        /**\r\n         * The color used to fill in the right-facing side of the iso triangle.\r\n         *\r\n         * @name Phaser.GameObjects.IsoTriangle#fillRight\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.fillRight = fillRight;\r\n\r\n        /**\r\n         * Controls if the top-face of the iso triangle be rendered.\r\n         *\r\n         * @name Phaser.GameObjects.IsoTriangle#showTop\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.13.0\r\n         */\r\n        this.showTop = true;\r\n\r\n        /**\r\n         * Controls if the left-face of the iso triangle be rendered.\r\n         *\r\n         * @name Phaser.GameObjects.IsoTriangle#showLeft\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.13.0\r\n         */\r\n        this.showLeft = true;\r\n\r\n        /**\r\n         * Controls if the right-face of the iso triangle be rendered.\r\n         *\r\n         * @name Phaser.GameObjects.IsoTriangle#showRight\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.13.0\r\n         */\r\n        this.showRight = true;\r\n\r\n        /**\r\n         * Sets if the iso triangle will be rendered upside down or not.\r\n         *\r\n         * @name Phaser.GameObjects.IsoTriangle#isReversed\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.13.0\r\n         */\r\n        this.isReversed = reversed;\r\n\r\n        this.isFilled = true;\r\n\r\n        this.setPosition(x, y);\r\n        this.setSize(size, height);\r\n\r\n        this.updateDisplayOrigin();\r\n    },\r\n\r\n    /**\r\n     * Sets the projection level of the iso triangle. Change this to change the 'angle' at which you are looking at the pyramid.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.IsoTriangle#setProjection\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} value - The value to set the projection to.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setProjection: function (value)\r\n    {\r\n        this.projection = value;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets if the iso triangle will be rendered upside down or not.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.IsoTriangle#setReversed\r\n     * @since 3.13.0\r\n     *\r\n     * @param {boolean} reversed - Sets if the iso triangle will be rendered upside down or not.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setReversed: function (reversed)\r\n    {\r\n        this.isReversed = reversed;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets which faces of the iso triangle will be rendered.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.IsoTriangle#setFaces\r\n     * @since 3.13.0\r\n     *\r\n     * @param {boolean} [showTop=true] - Show the top-face of the iso triangle (only if `reversed` is true)\r\n     * @param {boolean} [showLeft=true] - Show the left-face of the iso triangle.\r\n     * @param {boolean} [showRight=true] - Show the right-face of the iso triangle.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setFaces: function (showTop, showLeft, showRight)\r\n    {\r\n        if (showTop === undefined) { showTop = true; }\r\n        if (showLeft === undefined) { showLeft = true; }\r\n        if (showRight === undefined) { showRight = true; }\r\n\r\n        this.showTop = showTop;\r\n        this.showLeft = showLeft;\r\n        this.showRight = showRight;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the fill colors for each face of the iso triangle.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.IsoTriangle#setFillStyle\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} [fillTop] - The color used to fill the top of the iso triangle.\r\n     * @param {number} [fillLeft] - The color used to fill in the left-facing side of the iso triangle.\r\n     * @param {number} [fillRight] - The color used to fill in the right-facing side of the iso triangle.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setFillStyle: function (fillTop, fillLeft, fillRight)\r\n    {\r\n        this.fillTop = fillTop;\r\n        this.fillLeft = fillLeft;\r\n        this.fillRight = fillRight;\r\n\r\n        this.isFilled = true;\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = IsoTriangle;\r\n\n\n/***/ }),\n\n/***/ 79590:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FillStyleCanvas = __webpack_require__(65960);\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.IsoTriangle#renderCanvas\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.IsoTriangle} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar IsoTriangleCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    if (SetTransform(renderer, ctx, src, camera, parentMatrix) && src.isFilled)\r\n    {\r\n        var size = src.width;\r\n        var height = src.height;\r\n\r\n        var sizeA = size / 2;\r\n        var sizeB = size / src.projection;\r\n\r\n        var reversed = src.isReversed;\r\n\r\n        //  Top Face\r\n\r\n        if (src.showTop && reversed)\r\n        {\r\n            FillStyleCanvas(ctx, src, src.fillTop);\r\n\r\n            ctx.beginPath();\r\n\r\n            ctx.moveTo(-sizeA, -height);\r\n            ctx.lineTo(0, -sizeB - height);\r\n            ctx.lineTo(sizeA, -height);\r\n            ctx.lineTo(0, sizeB - height);\r\n\r\n            ctx.fill();\r\n        }\r\n\r\n        //  Left Face\r\n\r\n        if (src.showLeft)\r\n        {\r\n            FillStyleCanvas(ctx, src, src.fillLeft);\r\n\r\n            ctx.beginPath();\r\n\r\n            if (reversed)\r\n            {\r\n                ctx.moveTo(-sizeA, -height);\r\n                ctx.lineTo(0, sizeB);\r\n                ctx.lineTo(0, sizeB - height);\r\n            }\r\n            else\r\n            {\r\n                ctx.moveTo(-sizeA, 0);\r\n                ctx.lineTo(0, sizeB);\r\n                ctx.lineTo(0, sizeB - height);\r\n            }\r\n\r\n            ctx.fill();\r\n        }\r\n\r\n        //  Right Face\r\n\r\n        if (src.showRight)\r\n        {\r\n            FillStyleCanvas(ctx, src, src.fillRight);\r\n\r\n            ctx.beginPath();\r\n\r\n            if (reversed)\r\n            {\r\n                ctx.moveTo(sizeA, -height);\r\n                ctx.lineTo(0, sizeB);\r\n                ctx.lineTo(0, sizeB - height);\r\n            }\r\n            else\r\n            {\r\n                ctx.moveTo(sizeA, 0);\r\n                ctx.lineTo(0, sizeB);\r\n                ctx.lineTo(0, sizeB - height);\r\n            }\r\n\r\n            ctx.fill();\r\n        }\r\n\r\n        //  Restore the context saved in SetTransform\r\n        ctx.restore();\r\n    }\r\n};\r\n\r\nmodule.exports = IsoTriangleCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 49803:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar IsoTriangle = __webpack_require__(16933);\r\n\r\n/**\r\n * Creates a new IsoTriangle Shape Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the IsoTriangle Game Object has been built into Phaser.\r\n *\r\n * The IsoTriangle Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports only fill colors and cannot be stroked.\r\n *\r\n * An IsoTriangle is an 'isometric' triangle. Think of it like a pyramid. Each face has a different\r\n * fill color. You can set the color of the top, left and right faces of the triangle respectively\r\n * You can also choose which of the faces are rendered via the `showTop`, `showLeft` and `showRight` properties.\r\n *\r\n * You cannot view an IsoTriangle from under-neath, however you can change the 'angle' by setting\r\n * the `projection` property. The `reversed` property controls if the IsoTriangle is rendered upside\r\n * down or not.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#isotriangle\r\n * @since 3.13.0\r\n *\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [size=48] - The width of the iso triangle in pixels. The left and right faces will be exactly half this value.\r\n * @param {number} [height=32] - The height of the iso triangle. The left and right faces will be this tall. The overall height of the iso triangle will be this value plus half the `size` value.\r\n * @param {boolean} [reversed=false] - Is the iso triangle upside down?\r\n * @param {number} [fillTop=0xeeeeee] - The fill color of the top face of the iso triangle.\r\n * @param {number} [fillLeft=0x999999] - The fill color of the left face of the iso triangle.\r\n * @param {number} [fillRight=0xcccccc] - The fill color of the right face of the iso triangle.\r\n *\r\n * @return {Phaser.GameObjects.IsoTriangle} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('isotriangle', function (x, y, size, height, reversed, fillTop, fillLeft, fillRight)\r\n{\r\n    return this.displayList.add(new IsoTriangle(this.scene, x, y, size, height, reversed, fillTop, fillLeft, fillRight));\r\n});\r\n\n\n/***/ }),\n\n/***/ 60561:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(51503);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(79590);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 51503:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.IsoTriangle#renderWebGL\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.IsoTriangle} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar IsoTriangleWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline);\r\n\r\n    var result = GetCalcMatrix(src, camera, parentMatrix);\r\n\r\n    var calcMatrix = pipeline.calcMatrix.copyFrom(result.calc);\r\n\r\n    var size = src.width;\r\n    var height = src.height;\r\n\r\n    var sizeA = size / 2;\r\n    var sizeB = size / src.projection;\r\n\r\n    var reversed = src.isReversed;\r\n\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    if (!src.isFilled)\r\n    {\r\n        return;\r\n    }\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    var tint;\r\n\r\n    var x0;\r\n    var y0;\r\n\r\n    var x1;\r\n    var y1;\r\n\r\n    var x2;\r\n    var y2;\r\n\r\n    //  Top Face\r\n\r\n    if (src.showTop && reversed)\r\n    {\r\n        tint = Utils.getTintAppendFloatAlpha(src.fillTop, alpha);\r\n\r\n        x0 = calcMatrix.getX(-sizeA, -height);\r\n        y0 = calcMatrix.getY(-sizeA, -height);\r\n\r\n        x1 = calcMatrix.getX(0, -sizeB - height);\r\n        y1 = calcMatrix.getY(0, -sizeB - height);\r\n\r\n        x2 = calcMatrix.getX(sizeA, -height);\r\n        y2 = calcMatrix.getY(sizeA, -height);\r\n\r\n        var x3 = calcMatrix.getX(0, sizeB - height);\r\n        var y3 = calcMatrix.getY(0, sizeB - height);\r\n\r\n        pipeline.batchQuad(src, x0, y0, x1, y1, x2, y2, x3, y3, 0, 0, 1, 1, tint, tint, tint, tint, 2);\r\n    }\r\n\r\n    //  Left Face\r\n\r\n    if (src.showLeft)\r\n    {\r\n        tint = Utils.getTintAppendFloatAlpha(src.fillLeft, alpha);\r\n\r\n        if (reversed)\r\n        {\r\n            x0 = calcMatrix.getX(-sizeA, -height);\r\n            y0 = calcMatrix.getY(-sizeA, -height);\r\n\r\n            x1 = calcMatrix.getX(0, sizeB);\r\n            y1 = calcMatrix.getY(0, sizeB);\r\n\r\n            x2 = calcMatrix.getX(0, sizeB - height);\r\n            y2 = calcMatrix.getY(0, sizeB - height);\r\n        }\r\n        else\r\n        {\r\n            x0 = calcMatrix.getX(-sizeA, 0);\r\n            y0 = calcMatrix.getY(-sizeA, 0);\r\n\r\n            x1 = calcMatrix.getX(0, sizeB);\r\n            y1 = calcMatrix.getY(0, sizeB);\r\n\r\n            x2 = calcMatrix.getX(0, sizeB - height);\r\n            y2 = calcMatrix.getY(0, sizeB - height);\r\n        }\r\n\r\n        pipeline.batchTri(src, x0, y0, x1, y1, x2, y2, 0, 0, 1, 1, tint, tint, tint, 2);\r\n    }\r\n\r\n    //  Right Face\r\n\r\n    if (src.showRight)\r\n    {\r\n        tint = Utils.getTintAppendFloatAlpha(src.fillRight, alpha);\r\n\r\n        if (reversed)\r\n        {\r\n            x0 = calcMatrix.getX(sizeA, -height);\r\n            y0 = calcMatrix.getY(sizeA, -height);\r\n\r\n            x1 = calcMatrix.getX(0, sizeB);\r\n            y1 = calcMatrix.getY(0, sizeB);\r\n\r\n            x2 = calcMatrix.getX(0, sizeB - height);\r\n            y2 = calcMatrix.getY(0, sizeB - height);\r\n        }\r\n        else\r\n        {\r\n            x0 = calcMatrix.getX(sizeA, 0);\r\n            y0 = calcMatrix.getY(sizeA, 0);\r\n\r\n            x1 = calcMatrix.getX(0, sizeB);\r\n            y1 = calcMatrix.getY(0, sizeB);\r\n\r\n            x2 = calcMatrix.getX(0, sizeB - height);\r\n            y2 = calcMatrix.getY(0, sizeB - height);\r\n        }\r\n\r\n        pipeline.batchTri(src, x0, y0, x1, y1, x2, y2, 0, 0, 1, 1, tint, tint, tint, 2);\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = IsoTriangleWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 57847:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Shape = __webpack_require__(17803);\r\nvar GeomLine = __webpack_require__(23031);\r\nvar LineRender = __webpack_require__(36823);\r\n\r\n/**\r\n * @classdesc\r\n * The Line Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports only stroke colors and cannot be filled.\r\n *\r\n * A Line Shape allows you to draw a line between two points in your game. You can control the\r\n * stroke color and thickness of the line. In WebGL only you can also specify a different\r\n * thickness for the start and end of the line, allowing you to render lines that taper-off.\r\n *\r\n * If you need to draw multiple lines in a sequence you may wish to use the Polygon Shape instead.\r\n *\r\n * Be aware that as with all Game Objects the default origin is 0.5. If you need to draw a Line\r\n * between two points and want the x1/y1 values to match the x/y values, then set the origin to 0.\r\n *\r\n * @class Line\r\n * @extends Phaser.GameObjects.Shape\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.13.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [x1=0] - The horizontal position of the start of the line.\r\n * @param {number} [y1=0] - The vertical position of the start of the line.\r\n * @param {number} [x2=128] - The horizontal position of the end of the line.\r\n * @param {number} [y2=0] - The vertical position of the end of the line.\r\n * @param {number} [strokeColor] - The color the line will be drawn in, i.e. 0xff0000 for red.\r\n * @param {number} [strokeAlpha] - The alpha the line will be drawn in. You can also set the alpha of the overall Shape using its `alpha` property.\r\n */\r\nvar Line = new Class({\r\n\r\n    Extends: Shape,\r\n\r\n    Mixins: [\r\n        LineRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Line (scene, x, y, x1, y1, x2, y2, strokeColor, strokeAlpha)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (x1 === undefined) { x1 = 0; }\r\n        if (y1 === undefined) { y1 = 0; }\r\n        if (x2 === undefined) { x2 = 128; }\r\n        if (y2 === undefined) { y2 = 0; }\r\n\r\n        Shape.call(this, scene, 'Line', new GeomLine(x1, y1, x2, y2));\r\n\r\n        var width = Math.max(1, this.geom.right - this.geom.left);\r\n        var height = Math.max(1, this.geom.bottom - this.geom.top);\r\n\r\n        /**\r\n         * The width (or thickness) of the line.\r\n         * See the setLineWidth method for extra details on changing this on WebGL.\r\n         *\r\n         * @name Phaser.GameObjects.Line#lineWidth\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.lineWidth = 1;\r\n\r\n        /**\r\n         * Private internal value. Holds the start width of the line.\r\n         *\r\n         * @name Phaser.GameObjects.Line#_startWidth\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._startWidth = 1;\r\n\r\n        /**\r\n         * Private internal value. Holds the end width of the line.\r\n         *\r\n         * @name Phaser.GameObjects.Line#_endWidth\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._endWidth = 1;\r\n\r\n        this.setPosition(x, y);\r\n        this.setSize(width, height);\r\n\r\n        if (strokeColor !== undefined)\r\n        {\r\n            this.setStrokeStyle(1, strokeColor, strokeAlpha);\r\n        }\r\n\r\n        this.updateDisplayOrigin();\r\n    },\r\n\r\n    /**\r\n     * Sets the width of the line.\r\n     *\r\n     * When using the WebGL renderer you can have different start and end widths.\r\n     * When using the Canvas renderer only the `startWidth` value is used. The `endWidth` is ignored.\r\n     *\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Line#setLineWidth\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} startWidth - The start width of the line.\r\n     * @param {number} [endWidth] - The end width of the line. Only used in WebGL.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setLineWidth: function (startWidth, endWidth)\r\n    {\r\n        if (endWidth === undefined) { endWidth = startWidth; }\r\n\r\n        this._startWidth = startWidth;\r\n        this._endWidth = endWidth;\r\n\r\n        this.lineWidth = startWidth;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the start and end coordinates of this Line.\r\n     *\r\n     * @method Phaser.GameObjects.Line#setTo\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} [x1=0] - The horizontal position of the start of the line.\r\n     * @param {number} [y1=0] - The vertical position of the start of the line.\r\n     * @param {number} [x2=0] - The horizontal position of the end of the line.\r\n     * @param {number} [y2=0] - The vertical position of the end of the line.\r\n     *\r\n     * @return {this} This Line object.\r\n     */\r\n    setTo: function (x1, y1, x2, y2)\r\n    {\r\n        this.geom.setTo(x1, y1, x2, y2);\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Line;\r\n\n\n/***/ }),\n\n/***/ 17440:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar LineStyleCanvas = __webpack_require__(75177);\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Line#renderCanvas\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Line} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar LineCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    if (SetTransform(renderer, ctx, src, camera, parentMatrix))\r\n    {\r\n        var dx = src._displayOriginX;\r\n        var dy = src._displayOriginY;\r\n\r\n        if (src.isStroked)\r\n        {\r\n            LineStyleCanvas(ctx, src);\r\n\r\n            ctx.beginPath();\r\n\r\n            ctx.moveTo(src.geom.x1 - dx, src.geom.y1 - dy);\r\n            ctx.lineTo(src.geom.x2 - dx, src.geom.y2 - dy);\r\n\r\n            ctx.stroke();\r\n        }\r\n\r\n        //  Restore the context saved in SetTransform\r\n        ctx.restore();\r\n    }\r\n};\r\n\r\nmodule.exports = LineCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 2481:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar Line = __webpack_require__(57847);\r\n\r\n/**\r\n * Creates a new Line Shape Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Line Game Object has been built into Phaser.\r\n *\r\n * The Line Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports only stroke colors and cannot be filled.\r\n *\r\n * A Line Shape allows you to draw a line between two points in your game. You can control the\r\n * stroke color and thickness of the line. In WebGL only you can also specify a different\r\n * thickness for the start and end of the line, allowing you to render lines that taper-off.\r\n *\r\n * If you need to draw multiple lines in a sequence you may wish to use the Polygon Shape instead.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#line\r\n * @since 3.13.0\r\n *\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [x1=0] - The horizontal position of the start of the line.\r\n * @param {number} [y1=0] - The vertical position of the start of the line.\r\n * @param {number} [x2=128] - The horizontal position of the end of the line.\r\n * @param {number} [y2=0] - The vertical position of the end of the line.\r\n * @param {number} [strokeColor] - The color the line will be drawn in, i.e. 0xff0000 for red.\r\n * @param {number} [strokeAlpha] - The alpha the line will be drawn in. You can also set the alpha of the overall Shape using its `alpha` property.\r\n *\r\n * @return {Phaser.GameObjects.Line} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('line', function (x, y, x1, y1, x2, y2, strokeColor, strokeAlpha)\r\n{\r\n    return this.displayList.add(new Line(this.scene, x, y, x1, y1, x2, y2, strokeColor, strokeAlpha));\r\n});\r\n\n\n/***/ }),\n\n/***/ 36823:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(77385);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(17440);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 77385:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Line#renderWebGL\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Line} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar LineWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline);\r\n\r\n    var result = GetCalcMatrix(src, camera, parentMatrix);\r\n\r\n    pipeline.calcMatrix.copyFrom(result.calc);\r\n\r\n    var dx = src._displayOriginX;\r\n    var dy = src._displayOriginY;\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    if (src.isStroked)\r\n    {\r\n        var strokeTint = pipeline.strokeTint;\r\n        var color = Utils.getTintAppendFloatAlpha(src.strokeColor, src.strokeAlpha * alpha);\r\n\r\n        strokeTint.TL = color;\r\n        strokeTint.TR = color;\r\n        strokeTint.BL = color;\r\n        strokeTint.BR = color;\r\n\r\n        pipeline.batchLine(\r\n            src.geom.x1 - dx,\r\n            src.geom.y1 - dy,\r\n            src.geom.x2 - dx,\r\n            src.geom.y2 - dy,\r\n            src._startWidth / 2,\r\n            src._endWidth / 2,\r\n            1,\r\n            0,\r\n            false,\r\n            result.sprite,\r\n            result.camera\r\n        );\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = LineWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 24949:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar PolygonRender = __webpack_require__(90273);\r\nvar Class = __webpack_require__(83419);\r\nvar Earcut = __webpack_require__(94811);\r\nvar GetAABB = __webpack_require__(13829);\r\nvar GeomPolygon = __webpack_require__(25717);\r\nvar Shape = __webpack_require__(17803);\r\nvar Smooth = __webpack_require__(5469);\r\n\r\n/**\r\n * @classdesc\r\n * The Polygon Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * The Polygon Shape is created by providing a list of points, which are then used to create an\r\n * internal Polygon geometry object. The points can be set from a variety of formats:\r\n *\r\n * - A string containing paired values separated by a single space: `'40 0 40 20 100 20 100 80 40 80 40 100 0 50'`\r\n * - An array of Point or Vector2 objects: `[new Phaser.Math.Vector2(x1, y1), ...]`\r\n * - An array of objects with public x/y properties: `[obj1, obj2, ...]`\r\n * - An array of paired numbers that represent point coordinates: `[x1,y1, x2,y2, ...]`\r\n * - An array of arrays with two elements representing x/y coordinates: `[[x1, y1], [x2, y2], ...]`\r\n *\r\n * By default the `x` and `y` coordinates of this Shape refer to the center of it. However, depending\r\n * on the coordinates of the points provided, the final shape may be rendered offset from its origin.\r\n *\r\n * Note: The method `getBounds` will return incorrect bounds if any of the points in the Polygon are negative.\r\n * If this is the case, please use the function `Phaser.Geom.Polygon.GetAABB(polygon.geom)` instead and then\r\n * adjust the returned Rectangle position accordingly.\r\n *\r\n * @class Polygon\r\n * @extends Phaser.GameObjects.Shape\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.13.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {any} [points] - The points that make up the polygon.\r\n * @param {number} [fillColor] - The color the polygon will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the polygon will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n */\r\nvar Polygon = new Class({\r\n\r\n    Extends: Shape,\r\n\r\n    Mixins: [\r\n        PolygonRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Polygon (scene, x, y, points, fillColor, fillAlpha)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n\r\n        Shape.call(this, scene, 'Polygon', new GeomPolygon(points));\r\n\r\n        var bounds = GetAABB(this.geom);\r\n\r\n        this.setPosition(x, y);\r\n        this.setSize(bounds.width, bounds.height);\r\n\r\n        if (fillColor !== undefined)\r\n        {\r\n            this.setFillStyle(fillColor, fillAlpha);\r\n        }\r\n\r\n        this.updateDisplayOrigin();\r\n        this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Smooths the polygon over the number of iterations specified.\r\n     * The base polygon data will be updated and replaced with the smoothed values.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Polygon#smooth\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} [iterations=1] - The number of times to apply the polygon smoothing.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    smooth: function (iterations)\r\n    {\r\n        if (iterations === undefined) { iterations = 1; }\r\n\r\n        for (var i = 0; i < iterations; i++)\r\n        {\r\n            Smooth(this.geom);\r\n        }\r\n\r\n        return this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Sets this Polygon to the given points.\r\n     *\r\n     * The points can be set from a variety of formats:\r\n     *\r\n     * - A string containing paired values separated by a single space: `'40 0 40 20 100 20 100 80 40 80 40 100 0 50'`\r\n     * - An array of Point objects: `[new Phaser.Point(x1, y1), ...]`\r\n     * - An array of objects with public x/y properties: `[obj1, obj2, ...]`\r\n     * - An array of paired numbers that represent point coordinates: `[x1,y1, x2,y2, ...]`\r\n     * - An array of arrays with two elements representing x/y coordinates: `[[x1, y1], [x2, y2], ...]`\r\n     *\r\n     * Calling this method will reset the size (width, height) and display origin of this Shape.\r\n     *\r\n     * It also runs both GetAABB and EarCut on the given points, so please be careful not to do this\r\n     * at a high frequency, or with too many points.\r\n     *\r\n     * @method Phaser.GameObjects.Polygon#setTo\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(string|number[]|Phaser.Types.Math.Vector2Like[])} [points] - Points defining the perimeter of this polygon. Please check function description above for the different supported formats.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setTo: function (points)\r\n    {\r\n        this.geom.setTo(points);\r\n\r\n        var bounds = GetAABB(this.geom);\r\n\r\n        this.setSize(bounds.width, bounds.height);\r\n\r\n        this.updateDisplayOrigin();\r\n\r\n        return this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Internal method that updates the data and path values.\r\n     *\r\n     * @method Phaser.GameObjects.Polygon#updateData\r\n     * @private\r\n     * @since 3.13.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    updateData: function ()\r\n    {\r\n        var path = [];\r\n        var points = this.geom.points;\r\n\r\n        for (var i = 0; i < points.length; i++)\r\n        {\r\n            path.push(points[i].x, points[i].y);\r\n        }\r\n\r\n        path.push(points[0].x, points[0].y);\r\n\r\n        this.pathIndexes = Earcut(path);\r\n        this.pathData = path;\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Polygon;\r\n\n\n/***/ }),\n\n/***/ 38710:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FillStyleCanvas = __webpack_require__(65960);\r\nvar LineStyleCanvas = __webpack_require__(75177);\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Polygon#renderCanvas\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Polygon} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar PolygonCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    if (SetTransform(renderer, ctx, src, camera, parentMatrix))\r\n    {\r\n        var dx = src._displayOriginX;\r\n        var dy = src._displayOriginY;\r\n\r\n        var path = src.pathData;\r\n        var pathLength = path.length - 1;\r\n\r\n        var px1 = path[0] - dx;\r\n        var py1 = path[1] - dy;\r\n\r\n        ctx.beginPath();\r\n\r\n        ctx.moveTo(px1, py1);\r\n\r\n        if (!src.closePath)\r\n        {\r\n            pathLength -= 2;\r\n        }\r\n\r\n        for (var i = 2; i < pathLength; i += 2)\r\n        {\r\n            var px2 = path[i] - dx;\r\n            var py2 = path[i + 1] - dy;\r\n\r\n            ctx.lineTo(px2, py2);\r\n        }\r\n\r\n        if (src.closePath)\r\n        {\r\n            ctx.closePath();\r\n        }\r\n\r\n        if (src.isFilled)\r\n        {\r\n            FillStyleCanvas(ctx, src);\r\n\r\n            ctx.fill();\r\n        }\r\n\r\n        if (src.isStroked)\r\n        {\r\n            LineStyleCanvas(ctx, src);\r\n\r\n            ctx.stroke();\r\n        }\r\n\r\n        //  Restore the context saved in SetTransform\r\n        ctx.restore();\r\n    }\r\n};\r\n\r\nmodule.exports = PolygonCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 64827:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar Polygon = __webpack_require__(24949);\r\n\r\n/**\r\n * Creates a new Polygon Shape Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Polygon Game Object has been built into Phaser.\r\n *\r\n * The Polygon Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * The Polygon Shape is created by providing a list of points, which are then used to create an\r\n * internal Polygon geometry object. The points can be set from a variety of formats:\r\n *\r\n * - An array of Point or Vector2 objects: `[new Phaser.Math.Vector2(x1, y1), ...]`\r\n * - An array of objects with public x/y properties: `[obj1, obj2, ...]`\r\n * - An array of paired numbers that represent point coordinates: `[x1,y1, x2,y2, ...]`\r\n * - An array of arrays with two elements representing x/y coordinates: `[[x1, y1], [x2, y2], ...]`\r\n *\r\n * By default the `x` and `y` coordinates of this Shape refer to the center of it. However, depending\r\n * on the coordinates of the points provided, the final shape may be rendered offset from its origin.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#polygon\r\n * @since 3.13.0\r\n *\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {any} [points] - The points that make up the polygon.\r\n * @param {number} [fillColor] - The color the polygon will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the polygon will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n *\r\n * @return {Phaser.GameObjects.Polygon} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('polygon', function (x, y, points, fillColor, fillAlpha)\r\n{\r\n    return this.displayList.add(new Polygon(this.scene, x, y, points, fillColor, fillAlpha));\r\n});\r\n\n\n/***/ }),\n\n/***/ 90273:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(73695);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(38710);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 73695:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FillPathWebGL = __webpack_require__(10441);\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar StrokePathWebGL = __webpack_require__(34682);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Polygon#renderWebGL\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Polygon} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar PolygonWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline);\r\n\r\n    var result = GetCalcMatrix(src, camera, parentMatrix);\r\n\r\n    var calcMatrix = pipeline.calcMatrix.copyFrom(result.calc);\r\n\r\n    var dx = src._displayOriginX;\r\n    var dy = src._displayOriginY;\r\n\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    if (src.isFilled)\r\n    {\r\n        FillPathWebGL(pipeline, calcMatrix, src, alpha, dx, dy);\r\n    }\r\n\r\n    if (src.isStroked)\r\n    {\r\n        StrokePathWebGL(pipeline, src, alpha, dx, dy);\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = PolygonWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 74561:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar GeomRectangle = __webpack_require__(87841);\r\nvar Shape = __webpack_require__(17803);\r\nvar RectangleRender = __webpack_require__(95597);\r\n\r\n/**\r\n * @classdesc\r\n * The Rectangle Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * You can change the size of the rectangle by changing the `width` and `height` properties.\r\n *\r\n * @class Rectangle\r\n * @extends Phaser.GameObjects.Shape\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.13.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {number} [width=128] - The width of the rectangle.\r\n * @param {number} [height=128] - The height of the rectangle.\r\n * @param {number} [fillColor] - The color the rectangle will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the rectangle will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n */\r\nvar Rectangle = new Class({\r\n\r\n    Extends: Shape,\r\n\r\n    Mixins: [\r\n        RectangleRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Rectangle (scene, x, y, width, height, fillColor, fillAlpha)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (width === undefined) { width = 128; }\r\n        if (height === undefined) { height = 128; }\r\n\r\n        Shape.call(this, scene, 'Rectangle', new GeomRectangle(0, 0, width, height));\r\n\r\n        this.setPosition(x, y);\r\n        this.setSize(width, height);\r\n\r\n        if (fillColor !== undefined)\r\n        {\r\n            this.setFillStyle(fillColor, fillAlpha);\r\n        }\r\n\r\n        this.updateDisplayOrigin();\r\n        this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Sets the internal size of this Rectangle, as used for frame or physics body creation.\r\n     *\r\n     * If you have assigned a custom input hit area for this Rectangle, changing the Rectangle size will _not_ change the\r\n     * size of the hit area. To do this you should adjust the `input.hitArea` object directly.\r\n     *\r\n     * @method Phaser.GameObjects.Rectangle#setSize\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} width - The width of this Game Object.\r\n     * @param {number} height - The height of this Game Object.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSize: function (width, height)\r\n    {\r\n        this.width = width;\r\n        this.height = height;\r\n\r\n        this.geom.setSize(width, height);\r\n\r\n        this.updateData();\r\n\r\n        this.updateDisplayOrigin();\r\n\r\n        var input = this.input;\r\n\r\n        if (input && !input.customHitArea)\r\n        {\r\n            input.hitArea.width = width;\r\n            input.hitArea.height = height;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Internal method that updates the data and path values.\r\n     *\r\n     * @method Phaser.GameObjects.Rectangle#updateData\r\n     * @private\r\n     * @since 3.13.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    updateData: function ()\r\n    {\r\n        var path = [];\r\n        var rect = this.geom;\r\n        var line = this._tempLine;\r\n\r\n        rect.getLineA(line);\r\n\r\n        path.push(line.x1, line.y1, line.x2, line.y2);\r\n\r\n        rect.getLineB(line);\r\n\r\n        path.push(line.x2, line.y2);\r\n\r\n        rect.getLineC(line);\r\n\r\n        path.push(line.x2, line.y2);\r\n\r\n        rect.getLineD(line);\r\n\r\n        path.push(line.x2, line.y2);\r\n\r\n        this.pathData = path;\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Rectangle;\r\n\n\n/***/ }),\n\n/***/ 48682:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FillStyleCanvas = __webpack_require__(65960);\r\nvar LineStyleCanvas = __webpack_require__(75177);\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Rectangle#renderCanvas\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Rectangle} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar RectangleCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    if (SetTransform(renderer, ctx, src, camera, parentMatrix))\r\n    {\r\n        var dx = src._displayOriginX;\r\n        var dy = src._displayOriginY;\r\n\r\n        if (src.isFilled)\r\n        {\r\n            FillStyleCanvas(ctx, src);\r\n\r\n            ctx.fillRect(\r\n                -dx,\r\n                -dy,\r\n                src.width,\r\n                src.height\r\n            );\r\n        }\r\n\r\n        if (src.isStroked)\r\n        {\r\n            LineStyleCanvas(ctx, src);\r\n\r\n            ctx.beginPath();\r\n\r\n            ctx.rect(\r\n                -dx,\r\n                -dy,\r\n                src.width,\r\n                src.height\r\n            );\r\n\r\n            ctx.stroke();\r\n        }\r\n\r\n        //  Restore the context saved in SetTransform\r\n        ctx.restore();\r\n    }\r\n};\r\n\r\nmodule.exports = RectangleCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 87959:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar Rectangle = __webpack_require__(74561);\r\n\r\n/**\r\n * Creates a new Rectangle Shape Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Rectangle Game Object has been built into Phaser.\r\n *\r\n * The Rectangle Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * You can change the size of the rectangle by changing the `width` and `height` properties.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#rectangle\r\n * @since 3.13.0\r\n *\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [width=128] - The width of the rectangle.\r\n * @param {number} [height=128] - The height of the rectangle.\r\n * @param {number} [fillColor] - The color the rectangle will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the rectangle will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n *\r\n * @return {Phaser.GameObjects.Rectangle} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('rectangle', function (x, y, width, height, fillColor, fillAlpha)\r\n{\r\n    return this.displayList.add(new Rectangle(this.scene, x, y, width, height, fillColor, fillAlpha));\r\n});\r\n\n\n/***/ }),\n\n/***/ 95597:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(52059);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(48682);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 52059:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar StrokePathWebGL = __webpack_require__(34682);\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Rectangle#renderWebGL\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Rectangle} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar RectangleWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline);\r\n\r\n    var result = GetCalcMatrix(src, camera, parentMatrix);\r\n\r\n    pipeline.calcMatrix.copyFrom(result.calc);\r\n\r\n    var dx = src._displayOriginX;\r\n    var dy = src._displayOriginY;\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    if (src.isFilled)\r\n    {\r\n        var fillTint = pipeline.fillTint;\r\n        var fillTintColor = Utils.getTintAppendFloatAlpha(src.fillColor, src.fillAlpha * alpha);\r\n\r\n        fillTint.TL = fillTintColor;\r\n        fillTint.TR = fillTintColor;\r\n        fillTint.BL = fillTintColor;\r\n        fillTint.BR = fillTintColor;\r\n\r\n        pipeline.batchFillRect(\r\n            -dx,\r\n            -dy,\r\n            src.width,\r\n            src.height\r\n        );\r\n    }\r\n\r\n    if (src.isStroked)\r\n    {\r\n        StrokePathWebGL(pipeline, src, alpha, dx, dy);\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = RectangleWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 55911:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar StarRender = __webpack_require__(81991);\r\nvar Class = __webpack_require__(83419);\r\nvar Earcut = __webpack_require__(94811);\r\nvar Shape = __webpack_require__(17803);\r\n\r\n/**\r\n * @classdesc\r\n * The Star Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * As the name implies, the Star shape will display a star in your game. You can control several\r\n * aspects of it including the number of points that constitute the star. The default is 5. If\r\n * you change it to 4 it will render as a diamond. If you increase them, you'll get a more spiky\r\n * star shape.\r\n *\r\n * You can also control the inner and outer radius, which is how 'long' each point of the star is.\r\n * Modify these values to create more interesting shapes.\r\n *\r\n * @class Star\r\n * @extends Phaser.GameObjects.Shape\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.13.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [points=5] - The number of points on the star.\r\n * @param {number} [innerRadius=32] - The inner radius of the star.\r\n * @param {number} [outerRadius=64] - The outer radius of the star.\r\n * @param {number} [fillColor] - The color the star will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the star will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n */\r\nvar Star = new Class({\r\n\r\n    Extends: Shape,\r\n\r\n    Mixins: [\r\n        StarRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Star (scene, x, y, points, innerRadius, outerRadius, fillColor, fillAlpha)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (points === undefined) { points = 5; }\r\n        if (innerRadius === undefined) { innerRadius = 32; }\r\n        if (outerRadius === undefined) { outerRadius = 64; }\r\n\r\n        Shape.call(this, scene, 'Star', null);\r\n\r\n        /**\r\n         * Private internal value.\r\n         * The number of points in the star.\r\n         *\r\n         * @name Phaser.GameObjects.Star#_points\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._points = points;\r\n\r\n        /**\r\n         * Private internal value.\r\n         * The inner radius of the star.\r\n         *\r\n         * @name Phaser.GameObjects.Star#_innerRadius\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._innerRadius = innerRadius;\r\n\r\n        /**\r\n         * Private internal value.\r\n         * The outer radius of the star.\r\n         *\r\n         * @name Phaser.GameObjects.Star#_outerRadius\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.13.0\r\n         */\r\n        this._outerRadius = outerRadius;\r\n\r\n        this.setPosition(x, y);\r\n        this.setSize(outerRadius * 2, outerRadius * 2);\r\n\r\n        if (fillColor !== undefined)\r\n        {\r\n            this.setFillStyle(fillColor, fillAlpha);\r\n        }\r\n\r\n        this.updateDisplayOrigin();\r\n        this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Sets the number of points that make up the Star shape.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Star#setPoints\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} value - The amount of points the Star will have.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setPoints: function (value)\r\n    {\r\n        this._points = value;\r\n\r\n        return this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Sets the inner radius of the Star shape.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Star#setInnerRadius\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} value - The amount to set the inner radius to.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setInnerRadius: function (value)\r\n    {\r\n        this._innerRadius = value;\r\n\r\n        return this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Sets the outer radius of the Star shape.\r\n     * This call can be chained.\r\n     *\r\n     * @method Phaser.GameObjects.Star#setOuterRadius\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} value - The amount to set the outer radius to.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setOuterRadius: function (value)\r\n    {\r\n        this._outerRadius = value;\r\n\r\n        return this.updateData();\r\n    },\r\n\r\n    /**\r\n     * The number of points that make up the Star shape.\r\n     *\r\n     * @name Phaser.GameObjects.Star#points\r\n     * @type {number}\r\n     * @default 5\r\n     * @since 3.13.0\r\n     */\r\n    points: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._points;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._points = value;\r\n\r\n            this.updateData();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The inner radius of the Star shape.\r\n     *\r\n     * @name Phaser.GameObjects.Star#innerRadius\r\n     * @type {number}\r\n     * @default 32\r\n     * @since 3.13.0\r\n     */\r\n    innerRadius: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._innerRadius;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._innerRadius = value;\r\n\r\n            this.updateData();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The outer radius of the Star shape.\r\n     *\r\n     * @name Phaser.GameObjects.Star#outerRadius\r\n     * @type {number}\r\n     * @default 64\r\n     * @since 3.13.0\r\n     */\r\n    outerRadius: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._outerRadius;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._outerRadius = value;\r\n\r\n            this.updateData();\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Internal method that updates the data and path values.\r\n     *\r\n     * @method Phaser.GameObjects.Star#updateData\r\n     * @private\r\n     * @since 3.13.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    updateData: function ()\r\n    {\r\n        var path = [];\r\n\r\n        var points = this._points;\r\n        var innerRadius = this._innerRadius;\r\n        var outerRadius = this._outerRadius;\r\n\r\n        var rot = Math.PI / 2 * 3;\r\n        var step = Math.PI / points;\r\n\r\n        //  So origin 0.5 = the center of the star\r\n        var x = outerRadius;\r\n        var y = outerRadius;\r\n\r\n        path.push(x, y + -outerRadius);\r\n\r\n        for (var i = 0; i < points; i++)\r\n        {\r\n            path.push(x + Math.cos(rot) * outerRadius, y + Math.sin(rot) * outerRadius);\r\n\r\n            rot += step;\r\n\r\n            path.push(x + Math.cos(rot) * innerRadius, y + Math.sin(rot) * innerRadius);\r\n\r\n            rot += step;\r\n        }\r\n\r\n        path.push(x, y + -outerRadius);\r\n\r\n        this.pathIndexes = Earcut(path);\r\n        this.pathData = path;\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Star;\r\n\n\n/***/ }),\n\n/***/ 64272:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FillStyleCanvas = __webpack_require__(65960);\r\nvar LineStyleCanvas = __webpack_require__(75177);\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Star#renderCanvas\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Star} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar StarCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    if (SetTransform(renderer, ctx, src, camera, parentMatrix))\r\n    {\r\n        var dx = src._displayOriginX;\r\n        var dy = src._displayOriginY;\r\n\r\n        var path = src.pathData;\r\n        var pathLength = path.length - 1;\r\n\r\n        var px1 = path[0] - dx;\r\n        var py1 = path[1] - dy;\r\n\r\n        ctx.beginPath();\r\n\r\n        ctx.moveTo(px1, py1);\r\n\r\n        if (!src.closePath)\r\n        {\r\n            pathLength -= 2;\r\n        }\r\n\r\n        for (var i = 2; i < pathLength; i += 2)\r\n        {\r\n            var px2 = path[i] - dx;\r\n            var py2 = path[i + 1] - dy;\r\n\r\n            ctx.lineTo(px2, py2);\r\n        }\r\n\r\n        ctx.closePath();\r\n\r\n        if (src.isFilled)\r\n        {\r\n            FillStyleCanvas(ctx, src);\r\n\r\n            ctx.fill();\r\n        }\r\n\r\n        if (src.isStroked)\r\n        {\r\n            LineStyleCanvas(ctx, src);\r\n\r\n            ctx.stroke();\r\n        }\r\n\r\n        //  Restore the context saved in SetTransform\r\n        ctx.restore();\r\n    }\r\n};\r\n\r\nmodule.exports = StarCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 93697:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Star = __webpack_require__(55911);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Star Shape Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Star Game Object has been built into Phaser.\r\n *\r\n * The Star Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * As the name implies, the Star shape will display a star in your game. You can control several\r\n * aspects of it including the number of points that constitute the star. The default is 5. If\r\n * you change it to 4 it will render as a diamond. If you increase them, you'll get a more spiky\r\n * star shape.\r\n *\r\n * You can also control the inner and outer radius, which is how 'long' each point of the star is.\r\n * Modify these values to create more interesting shapes.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#star\r\n * @since 3.13.0\r\n *\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [points=5] - The number of points on the star.\r\n * @param {number} [innerRadius=32] - The inner radius of the star.\r\n * @param {number} [outerRadius=64] - The outer radius of the star.\r\n * @param {number} [fillColor] - The color the star will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the star will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n *\r\n * @return {Phaser.GameObjects.Star} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('star', function (x, y, points, innerRadius, outerRadius, fillColor, fillAlpha)\r\n{\r\n    return this.displayList.add(new Star(this.scene, x, y, points, innerRadius, outerRadius, fillColor, fillAlpha));\r\n});\r\n\n\n/***/ }),\n\n/***/ 81991:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(57017);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(64272);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 57017:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FillPathWebGL = __webpack_require__(10441);\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar StrokePathWebGL = __webpack_require__(34682);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Star#renderWebGL\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Star} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar StarWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline);\r\n\r\n    var result = GetCalcMatrix(src, camera, parentMatrix);\r\n\r\n    var calcMatrix = pipeline.calcMatrix.copyFrom(result.calc);\r\n\r\n    var dx = src._displayOriginX;\r\n    var dy = src._displayOriginY;\r\n\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    if (src.isFilled)\r\n    {\r\n        FillPathWebGL(pipeline, calcMatrix, src, alpha, dx, dy);\r\n    }\r\n\r\n    if (src.isStroked)\r\n    {\r\n        StrokePathWebGL(pipeline, src, alpha, dx, dy);\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = StarWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 36931:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Shape = __webpack_require__(17803);\r\nvar GeomTriangle = __webpack_require__(16483);\r\nvar TriangleRender = __webpack_require__(96195);\r\n\r\n/**\r\n * @classdesc\r\n * The Triangle Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * The Triangle consists of 3 lines, joining up to form a triangular shape. You can control the\r\n * position of each point of these lines. The triangle is always closed and cannot have an open\r\n * face. If you require that, consider using a Polygon instead.\r\n *\r\n * @class Triangle\r\n * @extends Phaser.GameObjects.Shape\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.13.0\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [x1=0] - The horizontal position of the first point in the triangle.\r\n * @param {number} [y1=128] - The vertical position of the first point in the triangle.\r\n * @param {number} [x2=64] - The horizontal position of the second point in the triangle.\r\n * @param {number} [y2=0] - The vertical position of the second point in the triangle.\r\n * @param {number} [x3=128] - The horizontal position of the third point in the triangle.\r\n * @param {number} [y3=128] - The vertical position of the third point in the triangle.\r\n * @param {number} [fillColor] - The color the triangle will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the triangle will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n */\r\nvar Triangle = new Class({\r\n\r\n    Extends: Shape,\r\n\r\n    Mixins: [\r\n        TriangleRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Triangle (scene, x, y, x1, y1, x2, y2, x3, y3, fillColor, fillAlpha)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (x1 === undefined) { x1 = 0; }\r\n        if (y1 === undefined) { y1 = 128; }\r\n        if (x2 === undefined) { x2 = 64; }\r\n        if (y2 === undefined) { y2 = 0; }\r\n        if (x3 === undefined) { x3 = 128; }\r\n        if (y3 === undefined) { y3 = 128; }\r\n\r\n        Shape.call(this, scene, 'Triangle', new GeomTriangle(x1, y1, x2, y2, x3, y3));\r\n\r\n        var width = this.geom.right - this.geom.left;\r\n        var height = this.geom.bottom - this.geom.top;\r\n\r\n        this.setPosition(x, y);\r\n        this.setSize(width, height);\r\n\r\n        if (fillColor !== undefined)\r\n        {\r\n            this.setFillStyle(fillColor, fillAlpha);\r\n        }\r\n\r\n        this.updateDisplayOrigin();\r\n        this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Sets the data for the lines that make up this Triangle shape.\r\n     *\r\n     * @method Phaser.GameObjects.Triangle#setTo\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} [x1=0] - The horizontal position of the first point in the triangle.\r\n     * @param {number} [y1=0] - The vertical position of the first point in the triangle.\r\n     * @param {number} [x2=0] - The horizontal position of the second point in the triangle.\r\n     * @param {number} [y2=0] - The vertical position of the second point in the triangle.\r\n     * @param {number} [x3=0] - The horizontal position of the third point in the triangle.\r\n     * @param {number} [y3=0] - The vertical position of the third point in the triangle.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setTo: function (x1, y1, x2, y2, x3, y3)\r\n    {\r\n        this.geom.setTo(x1, y1, x2, y2, x3, y3);\r\n\r\n        return this.updateData();\r\n    },\r\n\r\n    /**\r\n     * Internal method that updates the data and path values.\r\n     *\r\n     * @method Phaser.GameObjects.Triangle#updateData\r\n     * @private\r\n     * @since 3.13.0\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    updateData: function ()\r\n    {\r\n        var path = [];\r\n        var tri = this.geom;\r\n        var line = this._tempLine;\r\n\r\n        tri.getLineA(line);\r\n\r\n        path.push(line.x1, line.y1, line.x2, line.y2);\r\n\r\n        tri.getLineB(line);\r\n\r\n        path.push(line.x2, line.y2);\r\n\r\n        tri.getLineC(line);\r\n\r\n        path.push(line.x2, line.y2);\r\n\r\n        this.pathData = path;\r\n\r\n        return this;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Triangle;\r\n\n\n/***/ }),\n\n/***/ 85172:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar FillStyleCanvas = __webpack_require__(65960);\r\nvar LineStyleCanvas = __webpack_require__(75177);\r\nvar SetTransform = __webpack_require__(20926);\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Triangle#renderCanvas\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Triangle} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar TriangleCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var ctx = renderer.currentContext;\r\n\r\n    if (SetTransform(renderer, ctx, src, camera, parentMatrix))\r\n    {\r\n        var dx = src._displayOriginX;\r\n        var dy = src._displayOriginY;\r\n\r\n        var x1 = src.geom.x1 - dx;\r\n        var y1 = src.geom.y1 - dy;\r\n        var x2 = src.geom.x2 - dx;\r\n        var y2 = src.geom.y2 - dy;\r\n        var x3 = src.geom.x3 - dx;\r\n        var y3 = src.geom.y3 - dy;\r\n\r\n        ctx.beginPath();\r\n\r\n        ctx.moveTo(x1, y1);\r\n        ctx.lineTo(x2, y2);\r\n        ctx.lineTo(x3, y3);\r\n\r\n        ctx.closePath();\r\n\r\n        if (src.isFilled)\r\n        {\r\n            FillStyleCanvas(ctx, src);\r\n\r\n            ctx.fill();\r\n        }\r\n\r\n        if (src.isStroked)\r\n        {\r\n            LineStyleCanvas(ctx, src);\r\n\r\n            ctx.stroke();\r\n        }\r\n\r\n        //  Restore the context saved in SetTransform\r\n        ctx.restore();\r\n    }\r\n};\r\n\r\nmodule.exports = TriangleCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 45245:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar Triangle = __webpack_require__(36931);\r\n\r\n/**\r\n * Creates a new Triangle Shape Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Triangle Game Object has been built into Phaser.\r\n *\r\n * The Triangle Shape is a Game Object that can be added to a Scene, Group or Container. You can\r\n * treat it like any other Game Object in your game, such as tweening it, scaling it, or enabling\r\n * it for input or physics. It provides a quick and easy way for you to render this shape in your\r\n * game without using a texture, while still taking advantage of being fully batched in WebGL.\r\n *\r\n * This shape supports both fill and stroke colors.\r\n *\r\n * The Triangle consists of 3 lines, joining up to form a triangular shape. You can control the\r\n * position of each point of these lines. The triangle is always closed and cannot have an open\r\n * face. If you require that, consider using a Polygon instead.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#triangle\r\n * @since 3.13.0\r\n *\r\n * @param {number} [x=0] - The horizontal position of this Game Object in the world.\r\n * @param {number} [y=0] - The vertical position of this Game Object in the world.\r\n * @param {number} [x1=0] - The horizontal position of the first point in the triangle.\r\n * @param {number} [y1=128] - The vertical position of the first point in the triangle.\r\n * @param {number} [x2=64] - The horizontal position of the second point in the triangle.\r\n * @param {number} [y2=0] - The vertical position of the second point in the triangle.\r\n * @param {number} [x3=128] - The horizontal position of the third point in the triangle.\r\n * @param {number} [y3=128] - The vertical position of the third point in the triangle.\r\n * @param {number} [fillColor] - The color the triangle will be filled with, i.e. 0xff0000 for red.\r\n * @param {number} [fillAlpha] - The alpha the triangle will be filled with. You can also set the alpha of the overall Shape using its `alpha` property.\r\n *\r\n * @return {Phaser.GameObjects.Triangle} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('triangle', function (x, y, x1, y1, x2, y2, x3, y3, fillColor, fillAlpha)\r\n{\r\n    return this.displayList.add(new Triangle(this.scene, x, y, x1, y1, x2, y2, x3, y3, fillColor, fillAlpha));\r\n});\r\n\n\n/***/ }),\n\n/***/ 96195:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(83253);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(85172);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 83253:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetCalcMatrix = __webpack_require__(91296);\r\nvar StrokePathWebGL = __webpack_require__(34682);\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Triangle#renderWebGL\r\n * @since 3.13.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Triangle} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar TriangleWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline);\r\n\r\n    var result = GetCalcMatrix(src, camera, parentMatrix);\r\n\r\n    pipeline.calcMatrix.copyFrom(result.calc);\r\n\r\n    var dx = src._displayOriginX;\r\n    var dy = src._displayOriginY;\r\n    var alpha = camera.alpha * src.alpha;\r\n\r\n    renderer.pipelines.preBatch(src);\r\n\r\n    if (src.isFilled)\r\n    {\r\n        var fillTint = pipeline.fillTint;\r\n        var fillTintColor = Utils.getTintAppendFloatAlpha(src.fillColor, src.fillAlpha * alpha);\r\n\r\n        fillTint.TL = fillTintColor;\r\n        fillTint.TR = fillTintColor;\r\n        fillTint.BL = fillTintColor;\r\n        fillTint.BR = fillTintColor;\r\n\r\n        var x1 = src.geom.x1 - dx;\r\n        var y1 = src.geom.y1 - dy;\r\n        var x2 = src.geom.x2 - dx;\r\n        var y2 = src.geom.y2 - dy;\r\n        var x3 = src.geom.x3 - dx;\r\n        var y3 = src.geom.y3 - dy;\r\n\r\n        pipeline.batchFillTriangle(\r\n            x1,\r\n            y1,\r\n            x2,\r\n            y2,\r\n            x3,\r\n            y3,\r\n            result.sprite,\r\n            result.camera\r\n        );\r\n    }\r\n\r\n    if (src.isStroked)\r\n    {\r\n        StrokePathWebGL(pipeline, src, alpha, dx, dy);\r\n    }\r\n\r\n    renderer.pipelines.postBatch(src);\r\n};\r\n\r\nmodule.exports = TriangleWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 68287:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar AnimationState = __webpack_require__(9674);\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar GameObject = __webpack_require__(95643);\r\nvar SpriteRender = __webpack_require__(92751);\r\n\r\n/**\r\n * @classdesc\r\n * A Sprite Game Object.\r\n *\r\n * A Sprite Game Object is used for the display of both static and animated images in your game.\r\n * Sprites can have input events and physics bodies. They can also be tweened, tinted, scrolled\r\n * and animated.\r\n *\r\n * The main difference between a Sprite and an Image Game Object is that you cannot animate Images.\r\n * As such, Sprites take a fraction longer to process and have a larger API footprint due to the Animation\r\n * Component. If you do not require animation then you can safely use Images to replace Sprites in all cases.\r\n *\r\n * @class Sprite\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @extends Phaser.GameObjects.Components.Alpha\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Flip\r\n * @extends Phaser.GameObjects.Components.GetBounds\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Origin\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Size\r\n * @extends Phaser.GameObjects.Components.TextureCrop\r\n * @extends Phaser.GameObjects.Components.Tint\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {(string|Phaser.Textures.Texture)} texture - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {(string|number)} [frame] - An optional frame from the Texture this Game Object is rendering with.\r\n */\r\nvar Sprite = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.Alpha,\r\n        Components.BlendMode,\r\n        Components.Depth,\r\n        Components.Flip,\r\n        Components.GetBounds,\r\n        Components.Mask,\r\n        Components.Origin,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.ScrollFactor,\r\n        Components.Size,\r\n        Components.TextureCrop,\r\n        Components.Tint,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        SpriteRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Sprite (scene, x, y, texture, frame)\r\n    {\r\n        GameObject.call(this, scene, 'Sprite');\r\n\r\n        /**\r\n         * The internal crop data object, as used by `setCrop` and passed to the `Frame.setCropUVs` method.\r\n         *\r\n         * @name Phaser.GameObjects.Sprite#_crop\r\n         * @type {object}\r\n         * @private\r\n         * @since 3.11.0\r\n         */\r\n        this._crop = this.resetCropObject();\r\n\r\n        /**\r\n         * The Animation State component of this Sprite.\r\n         *\r\n         * This component provides features to apply animations to this Sprite.\r\n         * It is responsible for playing, loading, queuing animations for later playback,\r\n         * mixing between animations and setting the current animation frame to this Sprite.\r\n         *\r\n         * @name Phaser.GameObjects.Sprite#anims\r\n         * @type {Phaser.Animations.AnimationState}\r\n         * @since 3.0.0\r\n         */\r\n        this.anims = new AnimationState(this);\r\n\r\n        this.setTexture(texture, frame);\r\n        this.setPosition(x, y);\r\n        this.setSizeToFrame();\r\n        this.setOriginFromFrame();\r\n        this.initPipeline();\r\n        this.initPostPipeline(true);\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    addedToScene: function ()\r\n    {\r\n        this.scene.sys.updateList.add(this);\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    removedFromScene: function ()\r\n    {\r\n        this.scene.sys.updateList.remove(this);\r\n    },\r\n\r\n    /**\r\n     * Update this Sprite's animations.\r\n     *\r\n     * @method Phaser.GameObjects.Sprite#preUpdate\r\n     * @protected\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} time - The current timestamp.\r\n     * @param {number} delta - The delta time, in ms, elapsed since the last frame.\r\n     */\r\n    preUpdate: function (time, delta)\r\n    {\r\n        this.anims.update(time, delta);\r\n    },\r\n\r\n    /**\r\n     * Start playing the given animation on this Sprite.\r\n     *\r\n     * Animations in Phaser can either belong to the global Animation Manager, or specifically to this Sprite.\r\n     *\r\n     * The benefit of a global animation is that multiple Sprites can all play the same animation, without\r\n     * having to duplicate the data. You can just create it once and then play it on any Sprite.\r\n     *\r\n     * The following code shows how to create a global repeating animation. The animation will be created\r\n     * from all of the frames within the sprite sheet that was loaded with the key 'muybridge':\r\n     *\r\n     * ```javascript\r\n     * var config = {\r\n     *     key: 'run',\r\n     *     frames: 'muybridge',\r\n     *     frameRate: 15,\r\n     *     repeat: -1\r\n     * };\r\n     *\r\n     * //  This code should be run from within a Scene:\r\n     * this.anims.create(config);\r\n     * ```\r\n     *\r\n     * However, if you wish to create an animation that is unique to this Sprite, and this Sprite alone,\r\n     * you can call the `Animation.create` method instead. It accepts the exact same parameters as when\r\n     * creating a global animation, however the resulting data is kept locally in this Sprite.\r\n     *\r\n     * With the animation created, either globally or locally, you can now play it on this Sprite:\r\n     *\r\n     * ```javascript\r\n     * this.add.sprite(x, y).play('run');\r\n     * ```\r\n     *\r\n     * Alternatively, if you wish to run it at a different frame rate, for example, you can pass a config\r\n     * object instead:\r\n     *\r\n     * ```javascript\r\n     * this.add.sprite(x, y).play({ key: 'run', frameRate: 24 });\r\n     * ```\r\n     *\r\n     * When playing an animation on a Sprite it will first check to see if it can find a matching key\r\n     * locally within the Sprite. If it can, it will play the local animation. If not, it will then\r\n     * search the global Animation Manager and look for it there.\r\n     *\r\n     * If you need a Sprite to be able to play both local and global animations, make sure they don't\r\n     * have conflicting keys.\r\n     *\r\n     * See the documentation for the `PlayAnimationConfig` config object for more details about this.\r\n     *\r\n     * Also, see the documentation in the Animation Manager for further details on creating animations.\r\n     *\r\n     * @method Phaser.GameObjects.Sprite#play\r\n     * @fires Phaser.Animations.Events#ANIMATION_START\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {boolean} [ignoreIfPlaying=false] - If an animation is already playing then ignore this call.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    play: function (key, ignoreIfPlaying)\r\n    {\r\n        return this.anims.play(key, ignoreIfPlaying);\r\n    },\r\n\r\n    /**\r\n     * Start playing the given animation on this Sprite, in reverse.\r\n     *\r\n     * Animations in Phaser can either belong to the global Animation Manager, or specifically to this Sprite.\r\n     *\r\n     * The benefit of a global animation is that multiple Sprites can all play the same animation, without\r\n     * having to duplicate the data. You can just create it once and then play it on any Sprite.\r\n     *\r\n     * The following code shows how to create a global repeating animation. The animation will be created\r\n     * from all of the frames within the sprite sheet that was loaded with the key 'muybridge':\r\n     *\r\n     * ```javascript\r\n     * var config = {\r\n     *     key: 'run',\r\n     *     frames: 'muybridge',\r\n     *     frameRate: 15,\r\n     *     repeat: -1\r\n     * };\r\n     *\r\n     * //  This code should be run from within a Scene:\r\n     * this.anims.create(config);\r\n     * ```\r\n     *\r\n     * However, if you wish to create an animation that is unique to this Sprite, and this Sprite alone,\r\n     * you can call the `Animation.create` method instead. It accepts the exact same parameters as when\r\n     * creating a global animation, however the resulting data is kept locally in this Sprite.\r\n     *\r\n     * With the animation created, either globally or locally, you can now play it on this Sprite:\r\n     *\r\n     * ```javascript\r\n     * this.add.sprite(x, y).playReverse('run');\r\n     * ```\r\n     *\r\n     * Alternatively, if you wish to run it at a different frame rate, for example, you can pass a config\r\n     * object instead:\r\n     *\r\n     * ```javascript\r\n     * this.add.sprite(x, y).playReverse({ key: 'run', frameRate: 24 });\r\n     * ```\r\n     *\r\n     * When playing an animation on a Sprite it will first check to see if it can find a matching key\r\n     * locally within the Sprite. If it can, it will play the local animation. If not, it will then\r\n     * search the global Animation Manager and look for it there.\r\n     *\r\n     * If you need a Sprite to be able to play both local and global animations, make sure they don't\r\n     * have conflicting keys.\r\n     *\r\n     * See the documentation for the `PlayAnimationConfig` config object for more details about this.\r\n     *\r\n     * Also, see the documentation in the Animation Manager for further details on creating animations.\r\n     *\r\n     * @method Phaser.GameObjects.Sprite#playReverse\r\n     * @fires Phaser.Animations.Events#ANIMATION_START\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {boolean} [ignoreIfPlaying=false] - If an animation is already playing then ignore this call.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    playReverse: function (key, ignoreIfPlaying)\r\n    {\r\n        return this.anims.playReverse(key, ignoreIfPlaying);\r\n    },\r\n\r\n    /**\r\n     * Waits for the specified delay, in milliseconds, then starts playback of the given animation.\r\n     *\r\n     * If the animation _also_ has a delay value set in its config, it will be **added** to the delay given here.\r\n     *\r\n     * If an animation is already running and a new animation is given to this method, it will wait for\r\n     * the given delay before starting the new animation.\r\n     *\r\n     * If no animation is currently running, the given one begins after the delay.\r\n     *\r\n     * When playing an animation on a Sprite it will first check to see if it can find a matching key\r\n     * locally within the Sprite. If it can, it will play the local animation. If not, it will then\r\n     * search the global Animation Manager and look for it there.\r\n     *\r\n     * Prior to Phaser 3.50 this method was called 'delayedPlay'.\r\n     *\r\n     * @method Phaser.GameObjects.Sprite#playAfterDelay\r\n     * @fires Phaser.Animations.Events#ANIMATION_START\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {number} delay - The delay, in milliseconds, to wait before starting the animation playing.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    playAfterDelay: function (key, delay)\r\n    {\r\n        return this.anims.playAfterDelay(key, delay);\r\n    },\r\n\r\n    /**\r\n     * Waits for the current animation to complete the `repeatCount` number of repeat cycles, then starts playback\r\n     * of the given animation.\r\n     *\r\n     * You can use this to ensure there are no harsh jumps between two sets of animations, i.e. going from an\r\n     * idle animation to a walking animation, by making them blend smoothly into each other.\r\n     *\r\n     * If no animation is currently running, the given one will start immediately.\r\n     *\r\n     * When playing an animation on a Sprite it will first check to see if it can find a matching key\r\n     * locally within the Sprite. If it can, it will play the local animation. If not, it will then\r\n     * search the global Animation Manager and look for it there.\r\n     *\r\n     * @method Phaser.GameObjects.Sprite#playAfterRepeat\r\n     * @fires Phaser.Animations.Events#ANIMATION_START\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig)} key - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object.\r\n     * @param {number} [repeatCount=1] - How many times should the animation repeat before the next one starts?\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    playAfterRepeat: function (key, repeatCount)\r\n    {\r\n        return this.anims.playAfterRepeat(key, repeatCount);\r\n    },\r\n\r\n    /**\r\n     * Sets an animation, or an array of animations, to be played immediately after the current one completes or stops.\r\n     *\r\n     * The current animation must enter a 'completed' state for this to happen, i.e. finish all of its repeats, delays, etc,\r\n     * or have the `stop` method called directly on it.\r\n     *\r\n     * An animation set to repeat forever will never enter a completed state.\r\n     *\r\n     * You can chain a new animation at any point, including before the current one starts playing, during it,\r\n     * or when it ends (via its `animationcomplete` event).\r\n     *\r\n     * Chained animations are specific to a Game Object, meaning different Game Objects can have different chained\r\n     * animations without impacting the animation they're playing.\r\n     *\r\n     * Call this method with no arguments to reset all currently chained animations.\r\n     *\r\n     * When playing an animation on a Sprite it will first check to see if it can find a matching key\r\n     * locally within the Sprite. If it can, it will play the local animation. If not, it will then\r\n     * search the global Animation Manager and look for it there.\r\n     *\r\n     * @method Phaser.GameObjects.Sprite#chain\r\n     * @since 3.50.0\r\n     *\r\n     * @param {(string|Phaser.Animations.Animation|Phaser.Types.Animations.PlayAnimationConfig|string[]|Phaser.Animations.Animation[]|Phaser.Types.Animations.PlayAnimationConfig[])} [key] - The string-based key of the animation to play, or an Animation instance, or a `PlayAnimationConfig` object, or an array of them.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    chain: function (key)\r\n    {\r\n        return this.anims.chain(key);\r\n    },\r\n\r\n    /**\r\n     * Immediately stops the current animation from playing and dispatches the `ANIMATION_STOP` events.\r\n     *\r\n     * If no animation is playing, no event will be dispatched.\r\n     *\r\n     * If there is another animation queued (via the `chain` method) then it will start playing immediately.\r\n     *\r\n     * @method Phaser.GameObjects.Sprite#stop\r\n     * @fires Phaser.Animations.Events#ANIMATION_STOP\r\n     * @since 3.50.0\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    stop: function ()\r\n    {\r\n        return this.anims.stop();\r\n    },\r\n\r\n    /**\r\n     * Stops the current animation from playing after the specified time delay, given in milliseconds.\r\n     *\r\n     * It then dispatches the `ANIMATION_STOP` event.\r\n     *\r\n     * If no animation is running, no events will be dispatched.\r\n     *\r\n     * If there is another animation in the queue (set via the `chain` method) then it will start playing,\r\n     * when the current one stops.\r\n     *\r\n     * @method Phaser.GameObjects.Sprite#stopAfterDelay\r\n     * @fires Phaser.Animations.Events#ANIMATION_STOP\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} delay - The number of milliseconds to wait before stopping this animation.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    stopAfterDelay: function (delay)\r\n    {\r\n        return this.anims.stopAfterDelay(delay);\r\n    },\r\n\r\n    /**\r\n     * Stops the current animation from playing after the given number of repeats.\r\n     *\r\n     * It then dispatches the `ANIMATION_STOP` event.\r\n     *\r\n     * If no animation is running, no events will be dispatched.\r\n     *\r\n     * If there is another animation in the queue (set via the `chain` method) then it will start playing,\r\n     * when the current one stops.\r\n     *\r\n     * @method Phaser.GameObjects.Sprite#stopAfterRepeat\r\n     * @fires Phaser.Animations.Events#ANIMATION_STOP\r\n     * @since 3.50.0\r\n     *\r\n     * @param {number} [repeatCount=1] - How many times should the animation repeat before stopping?\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    stopAfterRepeat: function (repeatCount)\r\n    {\r\n        return this.anims.stopAfterRepeat(repeatCount);\r\n    },\r\n\r\n    /**\r\n     * Stops the current animation from playing when it next sets the given frame.\r\n     * If this frame doesn't exist within the animation it will not stop it from playing.\r\n     *\r\n     * It then dispatches the `ANIMATION_STOP` event.\r\n     *\r\n     * If no animation is running, no events will be dispatched.\r\n     *\r\n     * If there is another animation in the queue (set via the `chain` method) then it will start playing,\r\n     * when the current one stops.\r\n     *\r\n     * @method Phaser.GameObjects.Sprite#stopOnFrame\r\n     * @fires Phaser.Animations.Events#ANIMATION_STOP\r\n     * @since 3.50.0\r\n     *\r\n     * @param {Phaser.Animations.AnimationFrame} frame - The frame to check before stopping this animation.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    stopOnFrame: function (frame)\r\n    {\r\n        return this.anims.stopOnFrame(frame);\r\n    },\r\n\r\n    /**\r\n     * Build a JSON representation of this Sprite.\r\n     *\r\n     * @method Phaser.GameObjects.Sprite#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.GameObjects.JSONGameObject} A JSON representation of the Game Object.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        return Components.ToJSON(this);\r\n    },\r\n\r\n    /**\r\n     * Handles the pre-destroy step for the Sprite, which removes the Animation component.\r\n     *\r\n     * @method Phaser.GameObjects.Sprite#preDestroy\r\n     * @private\r\n     * @since 3.14.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.anims.destroy();\r\n\r\n        this.anims = undefined;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Sprite;\r\n\n\n/***/ }),\n\n/***/ 76552:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Sprite#renderCanvas\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Sprite} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar SpriteCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    renderer.batchSprite(src, src.frame, camera, parentMatrix);\r\n};\r\n\r\nmodule.exports = SpriteCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 15567:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar BuildGameObjectAnimation = __webpack_require__(13059);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar Sprite = __webpack_require__(68287);\r\n\r\n/**\r\n * Creates a new Sprite Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Sprite Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#sprite\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Sprite.SpriteConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene=true] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.Sprite} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('sprite', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var key = GetAdvancedValue(config, 'key', null);\r\n    var frame = GetAdvancedValue(config, 'frame', null);\r\n\r\n    var sprite = new Sprite(this.scene, 0, 0, key, frame);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, sprite, config);\r\n\r\n    //  Sprite specific config options:\r\n\r\n    BuildGameObjectAnimation(sprite, config);\r\n\r\n    return sprite;\r\n});\r\n\n\n/***/ }),\n\n/***/ 46409:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectFactory = __webpack_require__(39429);\r\nvar Sprite = __webpack_require__(68287);\r\n\r\n/**\r\n * Creates a new Sprite Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Sprite Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#sprite\r\n * @since 3.0.0\r\n *\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {(string|Phaser.Textures.Texture)} texture - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager.\r\n * @param {(string|number)} [frame] - An optional frame from the Texture this Game Object is rendering with.\r\n *\r\n * @return {Phaser.GameObjects.Sprite} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('sprite', function (x, y, texture, frame)\r\n{\r\n    return this.displayList.add(new Sprite(this.scene, x, y, texture, frame));\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectFactory context.\r\n//\r\n//  There are several properties available to use:\r\n//\r\n//  this.scene - a reference to the Scene that owns the GameObjectFactory\r\n//  this.displayList - a reference to the Display List the Scene owns\r\n//  this.updateList - a reference to the Update List the Scene owns\r\n\n\n/***/ }),\n\n/***/ 92751:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(9409);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(76552);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 9409:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Sprite#renderWebGL\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Sprite} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar SpriteWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    camera.addToRenderList(src);\r\n\r\n    src.pipeline.batchSprite(src, camera, parentMatrix);\r\n};\r\n\r\nmodule.exports = SpriteWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 14220:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Returns an object containing dimensions of the Text object.\r\n *\r\n * @function Phaser.GameObjects.GetTextSize\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.Text} text - The Text object to calculate the size from.\r\n * @param {Phaser.Types.GameObjects.Text.TextMetrics} size - The Text metrics to use when calculating the size.\r\n * @param {string[]} lines - The lines of text to calculate the size from.\r\n *\r\n * @return {Phaser.Types.GameObjects.Text.GetTextSizeObject} An object containing dimensions of the Text object.\r\n */\r\nvar GetTextSize = function (text, size, lines)\r\n{\r\n    var canvas = text.canvas;\r\n    var context = text.context;\r\n    var style = text.style;\r\n\r\n    var lineWidths = [];\r\n    var maxLineWidth = 0;\r\n    var drawnLines = lines.length;\r\n\r\n    if (style.maxLines > 0 && style.maxLines < lines.length)\r\n    {\r\n        drawnLines = style.maxLines;\r\n    }\r\n\r\n    style.syncFont(canvas, context);\r\n\r\n    //  Text Width\r\n    var letterSpacing = text.letterSpacing;\r\n\r\n    for (var i = 0; i < drawnLines; i++)\r\n    {\r\n        var lineWidth = style.strokeThickness;\r\n\r\n        if (letterSpacing === 0)\r\n        {\r\n            lineWidth += context.measureText(lines[i]).width;\r\n        }\r\n        else\r\n        {\r\n            var line = lines[i];\r\n            \r\n            for (var j = 0; j < line.length; j++)\r\n            {\r\n                lineWidth += context.measureText(line[j]).width;\r\n            }\r\n\r\n            if (line.length > 1)\r\n            {\r\n                lineWidth += letterSpacing * (line.length - 1);\r\n            }\r\n        }\r\n\r\n        // Adjust for wrapped text\r\n        if (style.wordWrap)\r\n        {\r\n            lineWidth -= context.measureText(' ').width;\r\n        }\r\n\r\n        lineWidths[i] = Math.ceil(lineWidth);\r\n        maxLineWidth = Math.max(maxLineWidth, lineWidths[i]);\r\n    }\r\n\r\n    //  Text Height\r\n\r\n    var lineHeight = size.fontSize + style.strokeThickness;\r\n    var height = lineHeight * drawnLines;\r\n    var lineSpacing = text.lineSpacing;\r\n\r\n    //  Adjust for line spacing\r\n    if (drawnLines > 1)\r\n    {\r\n        height += lineSpacing * (drawnLines - 1);\r\n    }\r\n\r\n    return {\r\n        width: maxLineWidth,\r\n        height: height,\r\n        lines: drawnLines,\r\n        lineWidths: lineWidths,\r\n        lineSpacing: lineSpacing,\r\n        lineHeight: lineHeight\r\n    };\r\n};\r\n\r\nmodule.exports = GetTextSize;\r\n\n\n/***/ }),\n\n/***/ 79557:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CanvasPool = __webpack_require__(27919);\r\n\r\n/**\r\n * Calculates the ascent, descent and fontSize of a given font style.\r\n *\r\n * @function Phaser.GameObjects.MeasureText\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.TextStyle} textStyle - The TextStyle object to measure.\r\n *\r\n * @return {Phaser.Types.GameObjects.Text.TextMetrics} An object containing the ascent, descent and fontSize of the TextStyle.\r\n */\r\nvar MeasureText = function (textStyle)\r\n{\r\n    var canvas = CanvasPool.create(this);\r\n    var context = canvas.getContext('2d', { willReadFrequently: true });\r\n\r\n    textStyle.syncFont(canvas, context);\r\n\r\n    var metrics = context.measureText(textStyle.testString);\r\n\r\n    if ('actualBoundingBoxAscent' in metrics)\r\n    {\r\n        var ascent = metrics.actualBoundingBoxAscent;\r\n        var descent = metrics.actualBoundingBoxDescent;\r\n\r\n        CanvasPool.remove(canvas);\r\n\r\n        return {\r\n            ascent: ascent,\r\n            descent: descent,\r\n            fontSize: ascent + descent\r\n        };\r\n    }\r\n\r\n    var width = Math.ceil(metrics.width * textStyle.baselineX);\r\n    var baseline = width;\r\n    var height = 2 * baseline;\r\n\r\n    baseline = baseline * textStyle.baselineY | 0;\r\n\r\n    canvas.width = width;\r\n    canvas.height = height;\r\n\r\n    context.fillStyle = '#f00';\r\n    context.fillRect(0, 0, width, height);\r\n\r\n    context.font = textStyle._font;\r\n\r\n    context.textBaseline = 'alphabetic';\r\n    context.fillStyle = '#000';\r\n    context.fillText(textStyle.testString, 0, baseline);\r\n\r\n    var output = {\r\n        ascent: 0,\r\n        descent: 0,\r\n        fontSize: 0\r\n    };\r\n\r\n    var imagedata = context.getImageData(0, 0, width, height);\r\n\r\n    if (!imagedata)\r\n    {\r\n        output.ascent = baseline;\r\n        output.descent = baseline + 6;\r\n        output.fontSize = output.ascent + output.descent;\r\n\r\n        CanvasPool.remove(canvas);\r\n\r\n        return output;\r\n    }\r\n\r\n    var pixels = imagedata.data;\r\n    var numPixels = pixels.length;\r\n    var line = width * 4;\r\n    var i;\r\n    var j;\r\n    var idx = 0;\r\n    var stop = false;\r\n\r\n    // ascent. scan from top to bottom until we find a non red pixel\r\n    for (i = 0; i < baseline; i++)\r\n    {\r\n        for (j = 0; j < line; j += 4)\r\n        {\r\n            if (pixels[idx + j] !== 255)\r\n            {\r\n                stop = true;\r\n                break;\r\n            }\r\n        }\r\n\r\n        if (!stop)\r\n        {\r\n            idx += line;\r\n        }\r\n        else\r\n        {\r\n            break;\r\n        }\r\n    }\r\n\r\n    output.ascent = baseline - i;\r\n\r\n    idx = numPixels - line;\r\n    stop = false;\r\n\r\n    // descent. scan from bottom to top until we find a non red pixel\r\n    for (i = height; i > baseline; i--)\r\n    {\r\n        for (j = 0; j < line; j += 4)\r\n        {\r\n            if (pixels[idx + j] !== 255)\r\n            {\r\n                stop = true;\r\n                break;\r\n            }\r\n        }\r\n\r\n        if (!stop)\r\n        {\r\n            idx -= line;\r\n        }\r\n        else\r\n        {\r\n            break;\r\n        }\r\n    }\r\n\r\n    output.descent = (i - baseline);\r\n    output.fontSize = output.ascent + output.descent;\r\n\r\n    CanvasPool.remove(canvas);\r\n\r\n    return output;\r\n};\r\n\r\nmodule.exports = MeasureText;\r\n\n\n/***/ }),\n\n/***/ 50171:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar AddToDOM = __webpack_require__(40366);\r\nvar CanvasPool = __webpack_require__(27919);\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar GameObject = __webpack_require__(95643);\r\nvar GetTextSize = __webpack_require__(14220);\r\nvar GetValue = __webpack_require__(35154);\r\nvar RemoveFromDOM = __webpack_require__(35846);\r\nvar TextRender = __webpack_require__(61771);\r\nvar TextStyle = __webpack_require__(35762);\r\nvar UUID = __webpack_require__(45650);\r\n\r\n/**\r\n * @classdesc\r\n * A Text Game Object.\r\n *\r\n * Text objects work by creating their own internal hidden Canvas and then renders text to it using\r\n * the standard Canvas `fillText` API. It then creates a texture from this canvas which is rendered\r\n * to your game during the render pass.\r\n *\r\n * Because it uses the Canvas API you can take advantage of all the features this offers, such as\r\n * applying gradient fills to the text, or strokes, shadows and more. You can also use custom fonts\r\n * loaded externally, such as Google or TypeKit Web fonts.\r\n *\r\n * **Important:** The font name must be quoted if it contains certain combinations of digits or\r\n * special characters, either when creating the Text object, or when setting the font via `setFont`\r\n * or `setFontFamily`, e.g.:\r\n *\r\n * ```javascript\r\n * this.add.text(0, 0, 'Hello World', { fontFamily: 'Georgia, \"Goudy Bookletter 1911\", Times, serif' });\r\n * ```\r\n *\r\n * ```javascript\r\n * this.add.text(0, 0, 'Hello World', { font: '\"Press Start 2P\"' });\r\n * ```\r\n *\r\n * You can only display fonts that are currently loaded and available to the browser: therefore fonts must\r\n * be pre-loaded. Phaser does not do this for you, so you will require the use of a 3rd party font loader,\r\n * or have the fonts ready available in the CSS on the page in which your Phaser game resides.\r\n *\r\n * See {@link http://www.jordanm.co.uk/tinytype this compatibility table} for the available default fonts\r\n * across mobile browsers.\r\n *\r\n * A note on performance: Every time the contents of a Text object changes, i.e. changing the text being\r\n * displayed, or the style of the text, it needs to remake the Text canvas, and if on WebGL, re-upload the\r\n * new texture to the GPU. This can be an expensive operation if used often, or with large quantities of\r\n * Text objects in your game. If you run into performance issues you would be better off using Bitmap Text\r\n * instead, as it benefits from batching and avoids expensive Canvas API calls.\r\n *\r\n * @class Text\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @extends Phaser.GameObjects.Components.Alpha\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.ComputedSize\r\n * @extends Phaser.GameObjects.Components.Crop\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Flip\r\n * @extends Phaser.GameObjects.Components.GetBounds\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Origin\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Tint\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {(string|string[])} text - The text this Text object will display.\r\n * @param {Phaser.Types.GameObjects.Text.TextStyle} style - The text style configuration object.\r\n *\r\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#Valid_family_names\r\n */\r\nvar Text = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.Alpha,\r\n        Components.BlendMode,\r\n        Components.ComputedSize,\r\n        Components.Crop,\r\n        Components.Depth,\r\n        Components.Flip,\r\n        Components.GetBounds,\r\n        Components.Mask,\r\n        Components.Origin,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.ScrollFactor,\r\n        Components.Tint,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        TextRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Text (scene, x, y, text, style)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n\r\n        GameObject.call(this, scene, 'Text');\r\n\r\n        /**\r\n         * The renderer in use by this Text object.\r\n         *\r\n         * @name Phaser.GameObjects.Text#renderer\r\n         * @type {(Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer)}\r\n         * @since 3.12.0\r\n         */\r\n        this.renderer = scene.sys.renderer;\r\n\r\n        this.setPosition(x, y);\r\n        this.setOrigin(0, 0);\r\n        this.initPipeline();\r\n        this.initPostPipeline(true);\r\n\r\n        /**\r\n         * The canvas element that the text is rendered to.\r\n         *\r\n         * @name Phaser.GameObjects.Text#canvas\r\n         * @type {HTMLCanvasElement}\r\n         * @since 3.0.0\r\n         */\r\n        this.canvas = CanvasPool.create(this);\r\n\r\n        /**\r\n         * The context of the canvas element that the text is rendered to.\r\n         *\r\n         * @name Phaser.GameObjects.Text#context\r\n         * @type {CanvasRenderingContext2D}\r\n         * @since 3.0.0\r\n         */\r\n        this.context;\r\n\r\n        /**\r\n         * The Text Style object.\r\n         *\r\n         * Manages the style of this Text object.\r\n         *\r\n         * @name Phaser.GameObjects.Text#style\r\n         * @type {Phaser.GameObjects.TextStyle}\r\n         * @since 3.0.0\r\n         */\r\n        this.style = new TextStyle(this, style);\r\n\r\n        /**\r\n         * Whether to automatically round line positions.\r\n         *\r\n         * @name Phaser.GameObjects.Text#autoRound\r\n         * @type {boolean}\r\n         * @default true\r\n         * @since 3.0.0\r\n         */\r\n        this.autoRound = true;\r\n\r\n        /**\r\n         * The Regular Expression that is used to split the text up into lines, in\r\n         * multi-line text. By default this is `/(?:\\r\\n|\\r|\\n)/`.\r\n         * You can change this RegExp to be anything else that you may need.\r\n         *\r\n         * @name Phaser.GameObjects.Text#splitRegExp\r\n         * @type {object}\r\n         * @since 3.0.0\r\n         */\r\n        this.splitRegExp = /(?:\\r\\n|\\r|\\n)/;\r\n\r\n        /**\r\n         * The text to display.\r\n         *\r\n         * @name Phaser.GameObjects.Text#_text\r\n         * @type {string}\r\n         * @private\r\n         * @since 3.12.0\r\n         */\r\n        this._text = undefined;\r\n\r\n        /**\r\n         * Specify a padding value which is added to the line width and height when calculating the Text size.\r\n         * Allows you to add extra spacing if the browser is unable to accurately determine the true font dimensions.\r\n         *\r\n         * @name Phaser.GameObjects.Text#padding\r\n         * @type {Phaser.Types.GameObjects.Text.TextPadding}\r\n         * @since 3.0.0\r\n         */\r\n        this.padding = { left: 0, right: 0, top: 0, bottom: 0 };\r\n\r\n        /**\r\n         * The width of this Text object.\r\n         *\r\n         * @name Phaser.GameObjects.Text#width\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.0.0\r\n         */\r\n        this.width = 1;\r\n\r\n        /**\r\n         * The height of this Text object.\r\n         *\r\n         * @name Phaser.GameObjects.Text#height\r\n         * @type {number}\r\n         * @default 1\r\n         * @since 3.0.0\r\n         */\r\n        this.height = 1;\r\n\r\n        /**\r\n         * The line spacing value.\r\n         * This value is added to the font height to calculate the overall line height.\r\n         * Only has an effect if this Text object contains multiple lines of text.\r\n         *\r\n         * If you update this property directly, instead of using the `setLineSpacing` method, then\r\n         * be sure to call `updateText` after, or you won't see the change reflected in the Text object.\r\n         *\r\n         * @name Phaser.GameObjects.Text#lineSpacing\r\n         * @type {number}\r\n         * @since 3.13.0\r\n         */\r\n        this.lineSpacing = 0;\r\n\r\n        /**\r\n         * Adds / Removes spacing between characters.\r\n         * Can be a negative or positive number.\r\n         *\r\n         * If you update this property directly, instead of using the `setLetterSpacing` method, then\r\n         * be sure to call `updateText` after, or you won't see the change reflected in the Text object.\r\n         *\r\n         * @name Phaser.GameObjects.Text#letterSpacing\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.letterSpacing = 0;\r\n\r\n        //  If resolution wasn't set, force it to 1\r\n        if (this.style.resolution === 0)\r\n        {\r\n            this.style.resolution = 1;\r\n        }\r\n\r\n        /**\r\n         * The internal crop data object, as used by `setCrop` and passed to the `Frame.setCropUVs` method.\r\n         *\r\n         * @name Phaser.GameObjects.Text#_crop\r\n         * @type {object}\r\n         * @private\r\n         * @since 3.12.0\r\n         */\r\n        this._crop = this.resetCropObject();\r\n\r\n        /**\r\n         * The internal unique key to refer to the texture in the TextureManager.\r\n         *\r\n         * @name Phaser.GameObjects.Text#_textureKey\r\n         * @type {string}\r\n         * @private\r\n         * @since 3.80.0\r\n         */\r\n        this._textureKey = UUID();\r\n\r\n        //  Create a Texture for this Text object\r\n        this.texture = scene.sys.textures.addCanvas(this._textureKey, this.canvas);\r\n\r\n        //  Set the context to be the CanvasTexture context\r\n        this.context = this.texture.context;\r\n\r\n        //  Get the frame\r\n        this.frame = this.texture.get();\r\n\r\n        //  Set the resolution\r\n        this.frame.source.resolution = this.style.resolution;\r\n\r\n        if (this.renderer && this.renderer.gl)\r\n        {\r\n            //  Clear the default 1x1 glTexture, as we override it later\r\n            this.renderer.deleteTexture(this.frame.source.glTexture);\r\n\r\n            this.frame.source.glTexture = null;\r\n        }\r\n\r\n        this.initRTL();\r\n\r\n        this.setText(text);\r\n\r\n        if (style && style.padding)\r\n        {\r\n            this.setPadding(style.padding);\r\n        }\r\n\r\n        if (style && style.lineSpacing)\r\n        {\r\n            this.setLineSpacing(style.lineSpacing);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Initialize right to left text.\r\n     *\r\n     * @method Phaser.GameObjects.Text#initRTL\r\n     * @since 3.0.0\r\n     */\r\n    initRTL: function ()\r\n    {\r\n        if (!this.style.rtl)\r\n        {\r\n            return;\r\n        }\r\n\r\n        //  Here is where the crazy starts.\r\n        //\r\n        //  Due to browser implementation issues, you cannot fillText BiDi text to a canvas\r\n        //  that is not part of the DOM. It just completely ignores the direction property.\r\n\r\n        this.canvas.dir = 'rtl';\r\n\r\n        //  Experimental atm, but one day ...\r\n        this.context.direction = 'rtl';\r\n\r\n        //  Add it to the DOM, but hidden within the parent canvas.\r\n        this.canvas.style.display = 'none';\r\n\r\n        AddToDOM(this.canvas, this.scene.sys.canvas);\r\n\r\n        //  And finally we set the x origin\r\n        this.originX = 1;\r\n    },\r\n\r\n    /**\r\n     * Greedy wrapping algorithm that will wrap words as the line grows longer than its horizontal\r\n     * bounds.\r\n     *\r\n     * @method Phaser.GameObjects.Text#runWordWrap\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} text - The text to perform word wrap detection against.\r\n     *\r\n     * @return {string} The text after wrapping has been applied.\r\n     */\r\n    runWordWrap: function (text)\r\n    {\r\n        var style = this.style;\r\n\r\n        if (style.wordWrapCallback)\r\n        {\r\n            var wrappedLines = style.wordWrapCallback.call(style.wordWrapCallbackScope, text, this);\r\n\r\n            if (Array.isArray(wrappedLines))\r\n            {\r\n                wrappedLines = wrappedLines.join('\\n');\r\n            }\r\n\r\n            return wrappedLines;\r\n        }\r\n        else if (style.wordWrapWidth)\r\n        {\r\n            if (style.wordWrapUseAdvanced)\r\n            {\r\n                return this.advancedWordWrap(text, this.context, this.style.wordWrapWidth);\r\n            }\r\n            else\r\n            {\r\n                return this.basicWordWrap(text, this.context, this.style.wordWrapWidth);\r\n            }\r\n        }\r\n        else\r\n        {\r\n            return text;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Advanced wrapping algorithm that will wrap words as the line grows longer than its horizontal\r\n     * bounds. Consecutive spaces will be collapsed and replaced with a single space. Lines will be\r\n     * trimmed of white space before processing. Throws an error if wordWrapWidth is less than a\r\n     * single character.\r\n     *\r\n     * @method Phaser.GameObjects.Text#advancedWordWrap\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} text - The text to perform word wrap detection against.\r\n     * @param {CanvasRenderingContext2D} context - The Canvas Rendering Context.\r\n     * @param {number} wordWrapWidth - The word wrap width.\r\n     *\r\n     * @return {string} The wrapped text.\r\n     */\r\n    advancedWordWrap: function (text, context, wordWrapWidth)\r\n    {\r\n        var output = '';\r\n\r\n        // Condense consecutive spaces and split into lines\r\n        var lines = text\r\n            .replace(/ +/gi, ' ')\r\n            .split(this.splitRegExp);\r\n\r\n        var linesCount = lines.length;\r\n\r\n        for (var i = 0; i < linesCount; i++)\r\n        {\r\n            var line = lines[i];\r\n            var out = '';\r\n\r\n            // Trim whitespace\r\n            line = line.replace(/^ *|\\s*$/gi, '');\r\n\r\n            // If entire line is less than wordWrapWidth append the entire line and exit early\r\n            var lineWidth = context.measureText(line).width;\r\n\r\n            if (lineWidth < wordWrapWidth)\r\n            {\r\n                output += line + '\\n';\r\n                continue;\r\n            }\r\n\r\n            // Otherwise, calculate new lines\r\n            var currentLineWidth = wordWrapWidth;\r\n\r\n            // Split into words\r\n            var words = line.split(' ');\r\n\r\n            for (var j = 0; j < words.length; j++)\r\n            {\r\n                var word = words[j];\r\n                var wordWithSpace = word + ' ';\r\n                var wordWidth = context.measureText(wordWithSpace).width;\r\n\r\n                if (wordWidth > currentLineWidth)\r\n                {\r\n                    // Break word\r\n                    if (j === 0)\r\n                    {\r\n                        // Shave off letters from word until it's small enough\r\n                        var newWord = wordWithSpace;\r\n\r\n                        while (newWord.length)\r\n                        {\r\n                            newWord = newWord.slice(0, -1);\r\n                            wordWidth = context.measureText(newWord).width;\r\n\r\n                            if (wordWidth <= currentLineWidth)\r\n                            {\r\n                                break;\r\n                            }\r\n                        }\r\n\r\n                        // If wordWrapWidth is too small for even a single letter, shame user\r\n                        // failure with a fatal error\r\n                        if (!newWord.length)\r\n                        {\r\n                            throw new Error('wordWrapWidth < a single character');\r\n                        }\r\n\r\n                        // Replace current word in array with remainder\r\n                        var secondPart = word.substr(newWord.length);\r\n\r\n                        words[j] = secondPart;\r\n\r\n                        // Append first piece to output\r\n                        out += newWord;\r\n                    }\r\n\r\n                    // If existing word length is 0, don't include it\r\n                    var offset = (words[j].length) ? j : j + 1;\r\n\r\n                    // Collapse rest of sentence and remove any trailing white space\r\n                    var remainder = words.slice(offset).join(' ').replace(/[ \\n]*$/gi, '');\r\n\r\n                    // Prepend remainder to next line\r\n                    lines.splice(i + 1, 0, remainder);\r\n\r\n                    linesCount = lines.length;\r\n\r\n                    break; // Processing on this line\r\n\r\n                    // Append word with space to output\r\n                }\r\n                else\r\n                {\r\n                    out += wordWithSpace;\r\n                    currentLineWidth -= wordWidth;\r\n                }\r\n            }\r\n\r\n            // Append processed line to output\r\n            output += out.replace(/[ \\n]*$/gi, '') + '\\n';\r\n        }\r\n\r\n        // Trim the end of the string\r\n        output = output.replace(/[\\s|\\n]*$/gi, '');\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Greedy wrapping algorithm that will wrap words as the line grows longer than its horizontal\r\n     * bounds. Spaces are not collapsed and whitespace is not trimmed.\r\n     *\r\n     * @method Phaser.GameObjects.Text#basicWordWrap\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} text - The text to perform word wrap detection against.\r\n     * @param {CanvasRenderingContext2D} context - The Canvas Rendering Context.\r\n     * @param {number} wordWrapWidth - The word wrap width.\r\n     *\r\n     * @return {string} The wrapped text.\r\n     */\r\n    basicWordWrap: function (text, context, wordWrapWidth)\r\n    {\r\n        var result = '';\r\n        var lines = text.split(this.splitRegExp);\r\n        var lastLineIndex = lines.length - 1;\r\n        var whiteSpaceWidth = context.measureText(' ').width;\r\n\r\n        for (var i = 0; i <= lastLineIndex; i++)\r\n        {\r\n            var spaceLeft = wordWrapWidth;\r\n            var words = lines[i].split(' ');\r\n            var lastWordIndex = words.length - 1;\r\n\r\n            for (var j = 0; j <= lastWordIndex; j++)\r\n            {\r\n                var word = words[j];\r\n                var wordWidth = context.measureText(word).width;\r\n                var wordWidthWithSpace = wordWidth;\r\n\r\n                if (j < lastWordIndex)\r\n                {\r\n                    wordWidthWithSpace += whiteSpaceWidth;\r\n                }\r\n\r\n                if (wordWidthWithSpace > spaceLeft)\r\n                {\r\n                    // Skip printing the newline if it's the first word of the line that is greater\r\n                    // than the word wrap width.\r\n                    if (j > 0)\r\n                    {\r\n                        result += '\\n';\r\n                        spaceLeft = wordWrapWidth;\r\n                    }\r\n                }\r\n\r\n                result += word;\r\n\r\n                if (j < lastWordIndex)\r\n                {\r\n                    result += ' ';\r\n                    spaceLeft -= wordWidthWithSpace;\r\n                }\r\n                else\r\n                {\r\n                    spaceLeft -= wordWidth;\r\n                }\r\n            }\r\n\r\n            if (i < lastLineIndex)\r\n            {\r\n                result += '\\n';\r\n            }\r\n        }\r\n\r\n        return result;\r\n    },\r\n\r\n    /**\r\n     * Runs the given text through this Text objects word wrapping and returns the results as an\r\n     * array, where each element of the array corresponds to a wrapped line of text.\r\n     *\r\n     * @method Phaser.GameObjects.Text#getWrappedText\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} [text] - The text for which the wrapping will be calculated. If unspecified, the Text objects current text will be used.\r\n     *\r\n     * @return {string[]} An array of strings with the pieces of wrapped text.\r\n     */\r\n    getWrappedText: function (text)\r\n    {\r\n        if (text === undefined) { text = this._text; }\r\n\r\n        this.style.syncFont(this.canvas, this.context);\r\n\r\n        var wrappedLines = this.runWordWrap(text);\r\n\r\n        return wrappedLines.split(this.splitRegExp);\r\n    },\r\n\r\n    /**\r\n     * Set the text to display.\r\n     *\r\n     * An array of strings will be joined with `\\n` line breaks.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setText\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|string[])} value - The string, or array of strings, to be set as the content of this Text object.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setText: function (value)\r\n    {\r\n        if (!value && value !== 0)\r\n        {\r\n            value = '';\r\n        }\r\n\r\n        if (Array.isArray(value))\r\n        {\r\n            value = value.join('\\n');\r\n        }\r\n\r\n        if (value !== this._text)\r\n        {\r\n            this._text = value.toString();\r\n\r\n            this.updateText();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Appends the given text to the content already being displayed by this Text object.\r\n     *\r\n     * An array of strings will be joined with `\\n` line breaks.\r\n     *\r\n     * @method Phaser.GameObjects.Text#appendText\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(string|string[])} value - The string, or array of strings, to be appended to the existing content of this Text object.\r\n     * @param {boolean} [addCR=true] - Insert a carriage-return before the string value.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    appendText: function (value, addCR)\r\n    {\r\n        if (addCR === undefined) { addCR = true; }\r\n\r\n        if (!value && value !== 0)\r\n        {\r\n            value = '';\r\n        }\r\n\r\n        if (Array.isArray(value))\r\n        {\r\n            value = value.join('\\n');\r\n        }\r\n\r\n        value = value.toString();\r\n\r\n        var newText = this._text.concat((addCR) ? '\\n' + value : value);\r\n\r\n        if (newText !== this._text)\r\n        {\r\n            this._text = newText;\r\n\r\n            this.updateText();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Set the text style.\r\n     *\r\n     * @example\r\n     * text.setStyle({\r\n     *     fontSize: '64px',\r\n     *     fontFamily: 'Arial',\r\n     *     color: '#ffffff',\r\n     *     align: 'center',\r\n     *     backgroundColor: '#ff00ff'\r\n     * });\r\n     *\r\n     * @method Phaser.GameObjects.Text#setStyle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {object} style - The style settings to set.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setStyle: function (style)\r\n    {\r\n        return this.style.setStyle(style);\r\n    },\r\n\r\n    /**\r\n     * Set the font.\r\n     *\r\n     * If a string is given, the font family is set.\r\n     *\r\n     * If an object is given, the `fontFamily`, `fontSize` and `fontStyle`\r\n     * properties of that object are set.\r\n     *\r\n     * **Important:** The font name must be quoted if it contains certain combinations of digits or\r\n     * special characters:\r\n     *\r\n     * ```javascript\r\n     * Text.setFont('\"Press Start 2P\"');\r\n     * ```\r\n     *\r\n     * Equally, if you wish to provide a list of fallback fonts, then you should ensure they are all\r\n     * quoted properly, too:\r\n     *\r\n     * ```javascript\r\n     * Text.setFont('Georgia, \"Goudy Bookletter 1911\", Times, serif');\r\n     * ```\r\n     *\r\n     * @method Phaser.GameObjects.Text#setFont\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} font - The font family or font settings to set.\r\n     *\r\n     * @return {this} This Text object.\r\n     *\r\n     * @see https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#Valid_family_names\r\n     */\r\n    setFont: function (font)\r\n    {\r\n        return this.style.setFont(font);\r\n    },\r\n\r\n    /**\r\n     * Set the font family.\r\n     *\r\n     * **Important:** The font name must be quoted if it contains certain combinations of digits or\r\n     * special characters:\r\n     *\r\n     * ```javascript\r\n     * Text.setFont('\"Press Start 2P\"');\r\n     * ```\r\n     *\r\n     * Equally, if you wish to provide a list of fallback fonts, then you should ensure they are all\r\n     * quoted properly, too:\r\n     *\r\n     * ```javascript\r\n     * Text.setFont('Georgia, \"Goudy Bookletter 1911\", Times, serif');\r\n     * ```\r\n     *\r\n     * @method Phaser.GameObjects.Text#setFontFamily\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} family - The font family.\r\n     *\r\n     * @return {this} This Text object.\r\n     *\r\n     * @see https://developer.mozilla.org/en-US/docs/Web/CSS/font-family#Valid_family_names\r\n     */\r\n    setFontFamily: function (family)\r\n    {\r\n        return this.style.setFontFamily(family);\r\n    },\r\n\r\n    /**\r\n     * Set the font size. Can be a string with a valid CSS unit, i.e. `16px`, or a number.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setFontSize\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|number)} size - The font size.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setFontSize: function (size)\r\n    {\r\n        return this.style.setFontSize(size);\r\n    },\r\n\r\n    /**\r\n     * Set the font style.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setFontStyle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} style - The font style.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setFontStyle: function (style)\r\n    {\r\n        return this.style.setFontStyle(style);\r\n    },\r\n\r\n    /**\r\n     * Set a fixed width and height for the text.\r\n     *\r\n     * Pass in `0` for either of these parameters to disable fixed width or height respectively.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setFixedSize\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} width - The fixed width to set. `0` disables fixed width.\r\n     * @param {number} height - The fixed height to set. `0` disables fixed height.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setFixedSize: function (width, height)\r\n    {\r\n        return this.style.setFixedSize(width, height);\r\n    },\r\n\r\n    /**\r\n     * Set the background color.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setBackgroundColor\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} color - The background color.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setBackgroundColor: function (color)\r\n    {\r\n        return this.style.setBackgroundColor(color);\r\n    },\r\n\r\n    /**\r\n     * Set the fill style to be used by the Text object.\r\n     *\r\n     * This can be any valid CanvasRenderingContext2D fillStyle value, such as\r\n     * a color (in hex, rgb, rgba, hsl or named values), a gradient or a pattern.\r\n     *\r\n     * See the [MDN fillStyle docs](https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/fillStyle) for more details.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setFill\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|CanvasGradient|CanvasPattern)} color - The text fill style. Can be any valid CanvasRenderingContext `fillStyle` value.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setFill: function (fillStyle)\r\n    {\r\n        return this.style.setFill(fillStyle);\r\n    },\r\n\r\n    /**\r\n     * Set the text fill color.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setColor\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|CanvasGradient|CanvasPattern)} color - The text fill color.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setColor: function (color)\r\n    {\r\n        return this.style.setColor(color);\r\n    },\r\n\r\n    /**\r\n     * Set the stroke settings.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setStroke\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|CanvasGradient|CanvasPattern)} color - The stroke color.\r\n     * @param {number} thickness - The stroke thickness.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setStroke: function (color, thickness)\r\n    {\r\n        return this.style.setStroke(color, thickness);\r\n    },\r\n\r\n    /**\r\n     * Set the shadow settings.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setShadow\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=0] - The horizontal shadow offset.\r\n     * @param {number} [y=0] - The vertical shadow offset.\r\n     * @param {string} [color='#000'] - The shadow color.\r\n     * @param {number} [blur=0] - The shadow blur radius.\r\n     * @param {boolean} [shadowStroke=false] - Whether to stroke the shadow.\r\n     * @param {boolean} [shadowFill=true] - Whether to fill the shadow.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setShadow: function (x, y, color, blur, shadowStroke, shadowFill)\r\n    {\r\n        return this.style.setShadow(x, y, color, blur, shadowStroke, shadowFill);\r\n    },\r\n\r\n    /**\r\n     * Set the shadow offset.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setShadowOffset\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The horizontal shadow offset.\r\n     * @param {number} y - The vertical shadow offset.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setShadowOffset: function (x, y)\r\n    {\r\n        return this.style.setShadowOffset(x, y);\r\n    },\r\n\r\n    /**\r\n     * Set the shadow color.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setShadowColor\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} color - The shadow color.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setShadowColor: function (color)\r\n    {\r\n        return this.style.setShadowColor(color);\r\n    },\r\n\r\n    /**\r\n     * Set the shadow blur radius.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setShadowBlur\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} blur - The shadow blur radius.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setShadowBlur: function (blur)\r\n    {\r\n        return this.style.setShadowBlur(blur);\r\n    },\r\n\r\n    /**\r\n     * Enable or disable shadow stroke.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setShadowStroke\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} enabled - Whether shadow stroke is enabled or not.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setShadowStroke: function (enabled)\r\n    {\r\n        return this.style.setShadowStroke(enabled);\r\n    },\r\n\r\n    /**\r\n     * Enable or disable shadow fill.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setShadowFill\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} enabled - Whether shadow fill is enabled or not.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setShadowFill: function (enabled)\r\n    {\r\n        return this.style.setShadowFill(enabled);\r\n    },\r\n\r\n    /**\r\n     * Set the width (in pixels) to use for wrapping lines. Pass in null to remove wrapping by width.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setWordWrapWidth\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number | null} width - The maximum width of a line in pixels. Set to null to remove wrapping.\r\n     * @param {boolean} [useAdvancedWrap=false] - Whether or not to use the advanced wrapping\r\n     * algorithm. If true, spaces are collapsed and whitespace is trimmed from lines. If false,\r\n     * spaces and whitespace are left as is.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setWordWrapWidth: function (width, useAdvancedWrap)\r\n    {\r\n        return this.style.setWordWrapWidth(width, useAdvancedWrap);\r\n    },\r\n\r\n    /**\r\n     * Set a custom callback for wrapping lines. Pass in null to remove wrapping by callback.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setWordWrapCallback\r\n     * @since 3.0.0\r\n     *\r\n     * @param {TextStyleWordWrapCallback} callback - A custom function that will be responsible for wrapping the\r\n     * text. It will receive two arguments: text (the string to wrap), textObject (this Text\r\n     * instance). It should return the wrapped lines either as an array of lines or as a string with\r\n     * newline characters in place to indicate where breaks should happen.\r\n     * @param {object} [scope=null] - The scope that will be applied when the callback is invoked.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setWordWrapCallback: function (callback, scope)\r\n    {\r\n        return this.style.setWordWrapCallback(callback, scope);\r\n    },\r\n\r\n    /**\r\n     * Set the alignment of the text in this Text object.\r\n     *\r\n     * The argument can be one of: `left`, `right`, `center` or `justify`.\r\n     *\r\n     * Alignment only works if the Text object has more than one line of text.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setAlign\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} [align='left'] - The text alignment for multi-line text.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setAlign: function (align)\r\n    {\r\n        return this.style.setAlign(align);\r\n    },\r\n\r\n    /**\r\n     * Set the resolution used by this Text object.\r\n     *\r\n     * It allows for much clearer text on High DPI devices, at the cost of memory because it uses larger\r\n     * internal Canvas textures for the Text.\r\n     *\r\n     * Therefore, please use with caution, as the more high res Text you have, the more memory it uses.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setResolution\r\n     * @since 3.12.0\r\n     *\r\n     * @param {number} value - The resolution for this Text object to use.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setResolution: function (value)\r\n    {\r\n        return this.style.setResolution(value);\r\n    },\r\n\r\n    /**\r\n     * Sets the line spacing value.\r\n     *\r\n     * This value is _added_ to the height of the font when calculating the overall line height.\r\n     * This only has an effect if this Text object consists of multiple lines of text.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setLineSpacing\r\n     * @since 3.13.0\r\n     *\r\n     * @param {number} value - The amount to add to the font height to achieve the overall line height.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setLineSpacing: function (value)\r\n    {\r\n        this.lineSpacing = value;\r\n\r\n        return this.updateText();\r\n    },\r\n\r\n    /**\r\n     * Sets the letter spacing value.\r\n     *\r\n     * This will add, or remove spacing between each character of this Text Game Object. The value can be\r\n     * either positive or negative. Positive values increase the space between each character, whilst negative\r\n     * values decrease it. Note that some fonts are spaced naturally closer together than others.\r\n     *\r\n     * Please understand that enabling this feature will cause Phaser to render each character in this Text object\r\n     * one by one, rather than use a draw for the whole string. This makes it extremely expensive when used with\r\n     * either long strings, or lots of strings in total. You will be better off creating bitmap font text if you\r\n     * need to display large quantities of characters with fine control over the letter spacing.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setLetterSpacing\r\n     * @since 3.70.0\r\n     *\r\n     * @param {number} value - The amount to add to the letter width. Set to zero to disable.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setLetterSpacing: function (value)\r\n    {\r\n        this.letterSpacing = value;\r\n\r\n        return this.updateText();\r\n    },\r\n\r\n    /**\r\n     * Set the text padding.\r\n     *\r\n     * 'left' can be an object.\r\n     *\r\n     * If only 'left' and 'top' are given they are treated as 'x' and 'y'.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setPadding\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(number|Phaser.Types.GameObjects.Text.TextPadding)} left - The left padding value, or a padding config object.\r\n     * @param {number} [top] - The top padding value.\r\n     * @param {number} [right] - The right padding value.\r\n     * @param {number} [bottom] - The bottom padding value.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setPadding: function (left, top, right, bottom)\r\n    {\r\n        if (typeof left === 'object')\r\n        {\r\n            var config = left;\r\n\r\n            //  If they specify x and/or y this applies to all\r\n            var x = GetValue(config, 'x', null);\r\n\r\n            if (x !== null)\r\n            {\r\n                left = x;\r\n                right = x;\r\n            }\r\n            else\r\n            {\r\n                left = GetValue(config, 'left', 0);\r\n                right = GetValue(config, 'right', left);\r\n            }\r\n\r\n            var y = GetValue(config, 'y', null);\r\n\r\n            if (y !== null)\r\n            {\r\n                top = y;\r\n                bottom = y;\r\n            }\r\n            else\r\n            {\r\n                top = GetValue(config, 'top', 0);\r\n                bottom = GetValue(config, 'bottom', top);\r\n            }\r\n        }\r\n        else\r\n        {\r\n            if (left === undefined) { left = 0; }\r\n            if (top === undefined) { top = left; }\r\n            if (right === undefined) { right = left; }\r\n            if (bottom === undefined) { bottom = top; }\r\n        }\r\n\r\n        this.padding.left = left;\r\n        this.padding.top = top;\r\n        this.padding.right = right;\r\n        this.padding.bottom = bottom;\r\n\r\n        return this.updateText();\r\n    },\r\n\r\n    /**\r\n     * Set the maximum number of lines to draw.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setMaxLines\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [max=0] - The maximum number of lines to draw.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setMaxLines: function (max)\r\n    {\r\n        return this.style.setMaxLines(max);\r\n    },\r\n\r\n    /**\r\n     * Render text from right-to-left or left-to-right.\r\n     *\r\n     * @method Phaser.GameObjects.Text#setRTL\r\n     * @since 3.70.0\r\n     *\r\n     * @param {boolean} [rtl=true] - Set to `true` to render from right-to-left.\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    setRTL: function (rtl)\r\n    {\r\n        if (rtl === undefined) { rtl = true; }\r\n\r\n        var style = this.style;\r\n\r\n        if (style.rtl === rtl)\r\n        {\r\n            return this;\r\n        }\r\n\r\n        style.rtl = rtl;\r\n\r\n        if (rtl)\r\n        {\r\n            this.canvas.dir = 'rtl';\r\n            this.context.direction = 'rtl';\r\n            this.canvas.style.display = 'none';\r\n\r\n            AddToDOM(this.canvas, this.scene.sys.canvas);\r\n        }\r\n        else\r\n        {\r\n            this.canvas.dir = 'ltr';\r\n            this.context.direction = 'ltr';\r\n        }\r\n\r\n        if (style.align === 'left')\r\n        {\r\n            style.align = 'right';\r\n        }\r\n        else if (style.align === 'right')\r\n        {\r\n            style.align = 'left';\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Update the displayed text.\r\n     *\r\n     * @method Phaser.GameObjects.Text#updateText\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Text object.\r\n     */\r\n    updateText: function ()\r\n    {\r\n        var canvas = this.canvas;\r\n        var context = this.context;\r\n        var style = this.style;\r\n        var resolution = style.resolution;\r\n        var size = style.metrics;\r\n\r\n        style.syncFont(canvas, context);\r\n\r\n        var outputText = this._text;\r\n\r\n        if (style.wordWrapWidth || style.wordWrapCallback)\r\n        {\r\n            outputText = this.runWordWrap(this._text);\r\n        }\r\n\r\n        //  Split text into lines\r\n        var lines = outputText.split(this.splitRegExp);\r\n\r\n        var textSize = GetTextSize(this, size, lines);\r\n\r\n        var padding = this.padding;\r\n\r\n        var textWidth;\r\n\r\n        if (style.fixedWidth === 0)\r\n        {\r\n            this.width = textSize.width + padding.left + padding.right;\r\n\r\n            textWidth = textSize.width;\r\n        }\r\n        else\r\n        {\r\n            this.width = style.fixedWidth;\r\n\r\n            textWidth = this.width - padding.left - padding.right;\r\n\r\n            if (textWidth < textSize.width)\r\n            {\r\n                textWidth = textSize.width;\r\n            }\r\n        }\r\n\r\n        if (style.fixedHeight === 0)\r\n        {\r\n            this.height = textSize.height + padding.top + padding.bottom;\r\n        }\r\n        else\r\n        {\r\n            this.height = style.fixedHeight;\r\n        }\r\n\r\n        var w = this.width;\r\n        var h = this.height;\r\n\r\n        this.updateDisplayOrigin();\r\n\r\n        w *= resolution;\r\n        h *= resolution;\r\n\r\n        w = Math.max(w, 1);\r\n        h = Math.max(h, 1);\r\n\r\n        if (canvas.width !== w || canvas.height !== h)\r\n        {\r\n            canvas.width = w;\r\n            canvas.height = h;\r\n\r\n            this.frame.setSize(w, h);\r\n\r\n            //  Because resizing the canvas resets the context\r\n            style.syncFont(canvas, context);\r\n\r\n            if (style.rtl)\r\n            {\r\n                context.direction = 'rtl';\r\n            }\r\n        }\r\n        else\r\n        {\r\n            context.clearRect(0, 0, w, h);\r\n        }\r\n\r\n        context.save();\r\n\r\n        context.scale(resolution, resolution);\r\n\r\n        if (style.backgroundColor)\r\n        {\r\n            context.fillStyle = style.backgroundColor;\r\n            context.fillRect(0, 0, w, h);\r\n        }\r\n\r\n        style.syncStyle(canvas, context);\r\n\r\n        //  Apply padding\r\n        context.translate(padding.left, padding.top);\r\n\r\n        var linePositionX;\r\n        var linePositionY;\r\n\r\n        //  Draw text line by line\r\n        for (var i = 0; i < textSize.lines; i++)\r\n        {\r\n            linePositionX = style.strokeThickness / 2;\r\n            linePositionY = (style.strokeThickness / 2 + i * textSize.lineHeight) + size.ascent;\r\n\r\n            if (i > 0)\r\n            {\r\n                linePositionY += (textSize.lineSpacing * i);\r\n            }\r\n\r\n            if (style.rtl)\r\n            {\r\n                linePositionX = w - linePositionX - padding.left - padding.right;\r\n            }\r\n            else if (style.align === 'right')\r\n            {\r\n                linePositionX += textWidth - textSize.lineWidths[i];\r\n            }\r\n            else if (style.align === 'center')\r\n            {\r\n                linePositionX += (textWidth - textSize.lineWidths[i]) / 2;\r\n            }\r\n            else if (style.align === 'justify')\r\n            {\r\n                //  To justify text line its width must be no less than 85% of defined width\r\n                var minimumLengthToApplyJustification = 0.85;\r\n\r\n                if (textSize.lineWidths[i] / textSize.width >= minimumLengthToApplyJustification)\r\n                {\r\n                    var extraSpace = textSize.width - textSize.lineWidths[i];\r\n                    var spaceSize = context.measureText(' ').width;\r\n                    var trimmedLine = lines[i].trim();\r\n                    var array = trimmedLine.split(' ');\r\n\r\n                    extraSpace += (lines[i].length - trimmedLine.length) * spaceSize;\r\n\r\n                    var extraSpaceCharacters = Math.floor(extraSpace / spaceSize);\r\n                    var idx = 0;\r\n\r\n                    while (extraSpaceCharacters > 0)\r\n                    {\r\n                        array[idx] += ' ';\r\n                        idx = (idx + 1) % (array.length - 1 || 1);\r\n                        --extraSpaceCharacters;\r\n                    }\r\n\r\n                    lines[i] = array.join(' ');\r\n                }\r\n            }\r\n\r\n            if (this.autoRound)\r\n            {\r\n                linePositionX = Math.round(linePositionX);\r\n                linePositionY = Math.round(linePositionY);\r\n            }\r\n\r\n            var letterSpacing = this.letterSpacing;\r\n\r\n            // Apply stroke to the whole line only if there's no custom letter spacing\r\n\r\n            if (style.strokeThickness && letterSpacing === 0)\r\n            {\r\n                style.syncShadow(context, style.shadowStroke);\r\n\r\n                context.strokeText(lines[i], linePositionX, linePositionY);\r\n            }\r\n\r\n            if (style.color)\r\n            {\r\n                style.syncShadow(context, style.shadowFill);\r\n\r\n                // Looping fillText could be an expensive operation, we should ignore it if it is not needed\r\n\r\n                if (letterSpacing !== 0)\r\n                {\r\n                    var charPositionX = 0;\r\n\r\n                    var line = lines[i].split('');\r\n\r\n                    //  Draw text letter by letter\r\n                    for (var l = 0; l < line.length; l++)\r\n                    {\r\n                        if (style.strokeThickness)\r\n                        {\r\n                            style.syncShadow(context, style.shadowStroke);\r\n\r\n                            context.strokeText(line[l], linePositionX + charPositionX, linePositionY);\r\n\r\n                            style.syncShadow(context, style.shadowFill);\r\n                        }\r\n\r\n                        context.fillText(line[l], linePositionX + charPositionX, linePositionY);\r\n\r\n                        charPositionX += context.measureText(line[l]).width + letterSpacing;\r\n                    }\r\n                }\r\n                else\r\n                {\r\n                    context.fillText(lines[i], linePositionX, linePositionY);\r\n                }\r\n            }\r\n        }\r\n\r\n        context.restore();\r\n\r\n        if (this.renderer && this.renderer.gl)\r\n        {\r\n            this.frame.source.glTexture = this.renderer.canvasToTexture(canvas, this.frame.source.glTexture, true);\r\n\r\n            if (false)\r\n            {}\r\n        }\r\n\r\n        var input = this.input;\r\n\r\n        if (input && !input.customHitArea)\r\n        {\r\n            input.hitArea.width = this.width;\r\n            input.hitArea.height = this.height;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Get the current text metrics.\r\n     *\r\n     * @method Phaser.GameObjects.Text#getTextMetrics\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.GameObjects.Text.TextMetrics} The text metrics.\r\n     */\r\n    getTextMetrics: function ()\r\n    {\r\n        return this.style.getTextMetrics();\r\n    },\r\n\r\n    /**\r\n     * The text string being rendered by this Text Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Text#text\r\n     * @type {string}\r\n     * @since 3.0.0\r\n     */\r\n    text: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._text;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.setText(value);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Build a JSON representation of the Text object.\r\n     *\r\n     * @method Phaser.GameObjects.Text#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.GameObjects.JSONGameObject} A JSON representation of the Text object.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        var out = Components.ToJSON(this);\r\n\r\n        //  Extra Text data is added here\r\n\r\n        var data = {\r\n            autoRound: this.autoRound,\r\n            text: this._text,\r\n            style: this.style.toJSON(),\r\n            padding: {\r\n                left: this.padding.left,\r\n                right: this.padding.right,\r\n                top: this.padding.top,\r\n                bottom: this.padding.bottom\r\n            }\r\n        };\r\n\r\n        out.data = data;\r\n\r\n        return out;\r\n    },\r\n\r\n    /**\r\n     * Internal destroy handler, called as part of the destroy process.\r\n     *\r\n     * @method Phaser.GameObjects.Text#preDestroy\r\n     * @protected\r\n     * @since 3.0.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        RemoveFromDOM(this.canvas);\r\n\r\n        CanvasPool.remove(this.canvas);\r\n\r\n        var texture = this.texture;\r\n\r\n        if (texture)\r\n        {\r\n            texture.destroy();\r\n        }\r\n    }\r\n\r\n    /**\r\n     * The horizontal origin of this Game Object.\r\n     * The origin maps the relationship between the size and position of the Game Object.\r\n     * The default value is 0.5, meaning all Game Objects are positioned based on their center.\r\n     * Setting the value to 0 means the position now relates to the left of the Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Text#originX\r\n     * @type {number}\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n\r\n    /**\r\n     * The vertical origin of this Game Object.\r\n     * The origin maps the relationship between the size and position of the Game Object.\r\n     * The default value is 0.5, meaning all Game Objects are positioned based on their center.\r\n     * Setting the value to 0 means the position now relates to the top of the Game Object.\r\n     *\r\n     * @name Phaser.GameObjects.Text#originY\r\n     * @type {number}\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n\r\n});\r\n\r\nmodule.exports = Text;\r\n\n\n/***/ }),\n\n/***/ 79724:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Text#renderCanvas\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Text} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar TextCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    if (src.width === 0 || src.height === 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    renderer.batchSprite(src, src.frame, camera, parentMatrix);\r\n};\r\n\r\nmodule.exports = TextCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 71259:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar Text = __webpack_require__(50171);\r\n\r\n/**\r\n * Creates a new Text Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Text Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#text\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Text.TextConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.Text} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('text', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    // style Object = {\r\n    //     font: [ 'font', '16px Courier' ],\r\n    //     backgroundColor: [ 'backgroundColor', null ],\r\n    //     fill: [ 'fill', '#fff' ],\r\n    //     stroke: [ 'stroke', '#fff' ],\r\n    //     strokeThickness: [ 'strokeThickness', 0 ],\r\n    //     shadowOffsetX: [ 'shadow.offsetX', 0 ],\r\n    //     shadowOffsetY: [ 'shadow.offsetY', 0 ],\r\n    //     shadowColor: [ 'shadow.color', '#000' ],\r\n    //     shadowBlur: [ 'shadow.blur', 0 ],\r\n    //     shadowStroke: [ 'shadow.stroke', false ],\r\n    //     shadowFill: [ 'shadow.fill', false ],\r\n    //     align: [ 'align', 'left' ],\r\n    //     maxLines: [ 'maxLines', 0 ],\r\n    //     fixedWidth: [ 'fixedWidth', false ],\r\n    //     fixedHeight: [ 'fixedHeight', false ],\r\n    //     rtl: [ 'rtl', false ]\r\n    // }\r\n\r\n    var content = GetAdvancedValue(config, 'text', '');\r\n    var style = GetAdvancedValue(config, 'style', null);\r\n\r\n    //  Padding\r\n    //      { padding: 2 }\r\n    //      { padding: { x: , y: }}\r\n    //      { padding: { left: , top: }}\r\n    //      { padding: { left: , right: , top: , bottom: }}\r\n\r\n    var padding = GetAdvancedValue(config, 'padding', null);\r\n\r\n    if (padding !== null)\r\n    {\r\n        style.padding = padding;\r\n    }\r\n\r\n    var text = new Text(this.scene, 0, 0, content, style);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, text, config);\r\n\r\n    //  Text specific config options:\r\n\r\n    text.autoRound = GetAdvancedValue(config, 'autoRound', true);\r\n    text.resolution = GetAdvancedValue(config, 'resolution', 1);\r\n\r\n    return text;\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectCreator context.\r\n\n\n/***/ }),\n\n/***/ 68005:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Text = __webpack_require__(50171);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Text Game Object and adds it to the Scene.\r\n *\r\n * A Text Game Object.\r\n *\r\n * Text objects work by creating their own internal hidden Canvas and then renders text to it using\r\n * the standard Canvas `fillText` API. It then creates a texture from this canvas which is rendered\r\n * to your game during the render pass.\r\n *\r\n * Because it uses the Canvas API you can take advantage of all the features this offers, such as\r\n * applying gradient fills to the text, or strokes, shadows and more. You can also use custom fonts\r\n * loaded externally, such as Google or TypeKit Web fonts.\r\n *\r\n * You can only display fonts that are currently loaded and available to the browser: therefore fonts must\r\n * be pre-loaded. Phaser does not do this for you, so you will require the use of a 3rd party font loader,\r\n * or have the fonts ready available in the CSS on the page in which your Phaser game resides.\r\n *\r\n * See {@link http://www.jordanm.co.uk/tinytype this compatibility table} for the available default fonts\r\n * across mobile browsers.\r\n *\r\n * A note on performance: Every time the contents of a Text object changes, i.e. changing the text being\r\n * displayed, or the style of the text, it needs to remake the Text canvas, and if on WebGL, re-upload the\r\n * new texture to the GPU. This can be an expensive operation if used often, or with large quantities of\r\n * Text objects in your game. If you run into performance issues you would be better off using Bitmap Text\r\n * instead, as it benefits from batching and avoids expensive Canvas API calls.\r\n *\r\n * Note: This method will only be available if the Text Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#text\r\n * @since 3.0.0\r\n *\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {(string|string[])} text - The text this Text object will display.\r\n * @param {Phaser.Types.GameObjects.Text.TextStyle} [style] - The Text style configuration object.\r\n *\r\n * @return {Phaser.GameObjects.Text} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('text', function (x, y, text, style)\r\n{\r\n    return this.displayList.add(new Text(this.scene, x, y, text, style));\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectFactory context.\r\n//\r\n//  There are several properties available to use:\r\n//\r\n//  this.scene - a reference to the Scene that owns the GameObjectFactory\r\n//  this.displayList - a reference to the Display List the Scene owns\r\n//  this.updateList - a reference to the Update List the Scene owns\r\n\n\n/***/ }),\n\n/***/ 61771:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(34397);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(79724);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 35762:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar GetValue = __webpack_require__(35154);\r\nvar MeasureText = __webpack_require__(79557);\r\n\r\n//  Key: [ Object Key, Default Value ]\r\n\r\nvar propertyMap = {\r\n    fontFamily: [ 'fontFamily', 'Courier' ],\r\n    fontSize: [ 'fontSize', '16px' ],\r\n    fontStyle: [ 'fontStyle', '' ],\r\n    backgroundColor: [ 'backgroundColor', null ],\r\n    color: [ 'color', '#fff' ],\r\n    stroke: [ 'stroke', '#fff' ],\r\n    strokeThickness: [ 'strokeThickness', 0 ],\r\n    shadowOffsetX: [ 'shadow.offsetX', 0 ],\r\n    shadowOffsetY: [ 'shadow.offsetY', 0 ],\r\n    shadowColor: [ 'shadow.color', '#000' ],\r\n    shadowBlur: [ 'shadow.blur', 0 ],\r\n    shadowStroke: [ 'shadow.stroke', false ],\r\n    shadowFill: [ 'shadow.fill', false ],\r\n    align: [ 'align', 'left' ],\r\n    maxLines: [ 'maxLines', 0 ],\r\n    fixedWidth: [ 'fixedWidth', 0 ],\r\n    fixedHeight: [ 'fixedHeight', 0 ],\r\n    resolution: [ 'resolution', 0 ],\r\n    rtl: [ 'rtl', false ],\r\n    testString: [ 'testString', '|MÃ‰qgy' ],\r\n    baselineX: [ 'baselineX', 1.2 ],\r\n    baselineY: [ 'baselineY', 1.4 ],\r\n    wordWrapWidth: [ 'wordWrap.width', null ],\r\n    wordWrapCallback: [ 'wordWrap.callback', null ],\r\n    wordWrapCallbackScope: [ 'wordWrap.callbackScope', null ],\r\n    wordWrapUseAdvanced: [ 'wordWrap.useAdvancedWrap', false ]\r\n};\r\n\r\n/**\r\n * @classdesc\r\n * A TextStyle class manages all of the style settings for a Text object.\r\n *\r\n * Text Game Objects create a TextStyle instance automatically, which is\r\n * accessed via the `Text.style` property. You do not normally need to\r\n * instantiate one yourself.\r\n *\r\n * @class TextStyle\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.GameObjects.Text} text - The Text object that this TextStyle is styling.\r\n * @param {Phaser.Types.GameObjects.Text.TextStyle} style - The style settings to set.\r\n */\r\nvar TextStyle = new Class({\r\n\r\n    initialize:\r\n\r\n    function TextStyle (text, style)\r\n    {\r\n        /**\r\n         * The Text object that this TextStyle is styling.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#parent\r\n         * @type {Phaser.GameObjects.Text}\r\n         * @since 3.0.0\r\n         */\r\n        this.parent = text;\r\n\r\n        /**\r\n         * The font family.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#fontFamily\r\n         * @type {string}\r\n         * @default 'Courier'\r\n         * @since 3.0.0\r\n         */\r\n        this.fontFamily;\r\n\r\n        /**\r\n         * The font size.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#fontSize\r\n         * @type {(string|number)}\r\n         * @default '16px'\r\n         * @since 3.0.0\r\n         */\r\n        this.fontSize;\r\n\r\n        /**\r\n         * The font style.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#fontStyle\r\n         * @type {string}\r\n         * @since 3.0.0\r\n         */\r\n        this.fontStyle;\r\n\r\n        /**\r\n         * The background color.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#backgroundColor\r\n         * @type {string}\r\n         * @since 3.0.0\r\n         */\r\n        this.backgroundColor;\r\n\r\n        /**\r\n         * The text fill color.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#color\r\n         * @type {(string|CanvasGradient|CanvasPattern)}\r\n         * @default '#fff'\r\n         * @since 3.0.0\r\n         */\r\n        this.color;\r\n\r\n        /**\r\n         * The text stroke color.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#stroke\r\n         * @type {(string|CanvasGradient|CanvasPattern)}\r\n         * @default '#fff'\r\n         * @since 3.0.0\r\n         */\r\n        this.stroke;\r\n\r\n        /**\r\n         * The text stroke thickness.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#strokeThickness\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.strokeThickness;\r\n\r\n        /**\r\n         * The horizontal shadow offset.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#shadowOffsetX\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.shadowOffsetX;\r\n\r\n        /**\r\n         * The vertical shadow offset.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#shadowOffsetY\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.shadowOffsetY;\r\n\r\n        /**\r\n         * The shadow color.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#shadowColor\r\n         * @type {string}\r\n         * @default '#000'\r\n         * @since 3.0.0\r\n         */\r\n        this.shadowColor;\r\n\r\n        /**\r\n         * The shadow blur radius.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#shadowBlur\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.shadowBlur;\r\n\r\n        /**\r\n         * Whether shadow stroke is enabled or not.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#shadowStroke\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.shadowStroke;\r\n\r\n        /**\r\n         * Whether shadow fill is enabled or not.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#shadowFill\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.shadowFill;\r\n\r\n        /**\r\n         * The text alignment.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#align\r\n         * @type {string}\r\n         * @default 'left'\r\n         * @since 3.0.0\r\n         */\r\n        this.align;\r\n\r\n        /**\r\n         * The maximum number of lines to draw.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#maxLines\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.maxLines;\r\n\r\n        /**\r\n         * The fixed width of the text.\r\n         *\r\n         * `0` means no fixed with.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#fixedWidth\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.fixedWidth;\r\n\r\n        /**\r\n         * The fixed height of the text.\r\n         *\r\n         * `0` means no fixed height.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#fixedHeight\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.fixedHeight;\r\n\r\n        /**\r\n         * The resolution the text is rendered to its internal canvas at.\r\n         * The default is 0, which means it will use the resolution set in the Game Config.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#resolution\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.12.0\r\n         */\r\n        this.resolution;\r\n\r\n        /**\r\n         * Whether the text should render right to left.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#rtl\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.rtl;\r\n\r\n        /**\r\n         * The test string to use when measuring the font.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#testString\r\n         * @type {string}\r\n         * @default '|MÉqgy'\r\n         * @since 3.0.0\r\n         */\r\n        this.testString;\r\n\r\n        /**\r\n         * The amount of horizontal padding added to the width of the text when calculating the font metrics.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#baselineX\r\n         * @type {number}\r\n         * @default 1.2\r\n         * @since 3.3.0\r\n         */\r\n        this.baselineX;\r\n\r\n        /**\r\n         * The amount of vertical padding added to the height of the text when calculating the font metrics.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#baselineY\r\n         * @type {number}\r\n         * @default 1.4\r\n         * @since 3.3.0\r\n         */\r\n        this.baselineY;\r\n\r\n        /**\r\n         * The maximum width of a line of text in pixels. Null means no line wrapping. Setting this\r\n         * property directly will not re-run the word wrapping algorithm. To change the width and\r\n         * re-wrap, use {@link Phaser.GameObjects.TextStyle#setWordWrapWidth}.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#wordWrapWidth\r\n         * @type {number | null}\r\n         * @default null\r\n         * @since 3.24.0\r\n         */\r\n        this.wordWrapWidth;\r\n\r\n        /**\r\n         * A custom function that will be responsible for wrapping the text. It will receive two\r\n         * arguments: text (the string to wrap), textObject (this Text instance). It should return\r\n         * the wrapped lines either as an array of lines or as a string with newline characters in\r\n         * place to indicate where breaks should happen. Setting this directly will not re-run the\r\n         * word wrapping algorithm. To change the callback and re-wrap, use\r\n         * {@link Phaser.GameObjects.TextStyle#setWordWrapCallback}.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#wordWrapCallback\r\n         * @type {TextStyleWordWrapCallback | null}\r\n         * @default null\r\n         * @since 3.24.0\r\n         */\r\n        this.wordWrapCallback;\r\n\r\n        /**\r\n         * The scope that will be applied when the wordWrapCallback is invoked. Setting this directly will not re-run the\r\n         * word wrapping algorithm. To change the callback and re-wrap, use\r\n         * {@link Phaser.GameObjects.TextStyle#setWordWrapCallback}.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#wordWrapCallbackScope\r\n         * @type {object | null}\r\n         * @default null\r\n         * @since 3.24.0\r\n         */\r\n        this.wordWrapCallbackScope;\r\n\r\n        /**\r\n         * Whether or not to use the advanced wrapping algorithm. If true, spaces are collapsed and\r\n         * whitespace is trimmed from lines. If false, spaces and whitespace are left as is. Setting\r\n         * this property directly will not re-run the word wrapping algorithm. To change the\r\n         * advanced setting and re-wrap, use {@link Phaser.GameObjects.TextStyle#setWordWrapWidth}.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#wordWrapUseAdvanced\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.24.0\r\n         */\r\n        this.wordWrapUseAdvanced;\r\n\r\n        /**\r\n         * The font style, size and family.\r\n         *\r\n         * @name Phaser.GameObjects.TextStyle#_font\r\n         * @type {string}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._font;\r\n\r\n        //  Set to defaults + user style\r\n        this.setStyle(style, false, true);\r\n    },\r\n\r\n    /**\r\n     * Set the text style.\r\n     *\r\n     * @example\r\n     * text.setStyle({\r\n     *     fontSize: '64px',\r\n     *     fontFamily: 'Arial',\r\n     *     color: '#ffffff',\r\n     *     align: 'center',\r\n     *     backgroundColor: '#ff00ff'\r\n     * });\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setStyle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Types.GameObjects.Text.TextStyle} style - The style settings to set.\r\n     * @param {boolean} [updateText=true] - Whether to update the text immediately.\r\n     * @param {boolean} [setDefaults=false] - Use the default values if not set, or the local values.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setStyle: function (style, updateText, setDefaults)\r\n    {\r\n        if (updateText === undefined) { updateText = true; }\r\n        if (setDefaults === undefined) { setDefaults = false; }\r\n\r\n        for (var key in propertyMap)\r\n        {\r\n            var value = (setDefaults) ? propertyMap[key][1] : this[key];\r\n\r\n            if (key === 'wordWrapCallback' || key === 'wordWrapCallbackScope')\r\n            {\r\n                // Callback & scope should be set without processing the values\r\n                this[key] = GetValue(style, propertyMap[key][0], value);\r\n            }\r\n            else if (style && key === 'fontSize' && typeof style.fontSize === 'number')\r\n            {\r\n                this[key] = style.fontSize.toString() + 'px';\r\n            }\r\n            else\r\n            {\r\n                this[key] = GetAdvancedValue(style, propertyMap[key][0], value);\r\n            }\r\n        }\r\n\r\n        //  Allow for 'font' override\r\n        var font = GetValue(style, 'font', null);\r\n\r\n        if (font !== null)\r\n        {\r\n            this.setFont(font, false);\r\n        }\r\n\r\n        this._font = [ this.fontStyle, this.fontSize, this.fontFamily ].join(' ').trim();\r\n\r\n        //  Allow for 'fill' to be used in place of 'color'\r\n        var fill = GetValue(style, 'fill', null);\r\n\r\n        if (fill !== null)\r\n        {\r\n            this.color = fill;\r\n        }\r\n\r\n        var metrics = GetValue(style, 'metrics', false);\r\n\r\n        //  Provide optional TextMetrics in the style object to avoid the canvas look-up / scanning\r\n        //  Doing this is reset if you then change the font of this TextStyle after creation\r\n        if (metrics)\r\n        {\r\n            this.metrics = {\r\n                ascent: GetValue(metrics, 'ascent', 0),\r\n                descent: GetValue(metrics, 'descent', 0),\r\n                fontSize: GetValue(metrics, 'fontSize', 0)\r\n            };\r\n        }\r\n        else if (updateText || !this.metrics)\r\n        {\r\n            this.metrics = MeasureText(this);\r\n        }\r\n\r\n        if (updateText)\r\n        {\r\n            return this.parent.updateText();\r\n        }\r\n        else\r\n        {\r\n            return this.parent;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Synchronize the font settings to the given Canvas Rendering Context.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#syncFont\r\n     * @since 3.0.0\r\n     *\r\n     * @param {HTMLCanvasElement} canvas - The Canvas Element.\r\n     * @param {CanvasRenderingContext2D} context - The Canvas Rendering Context.\r\n     */\r\n    syncFont: function (canvas, context)\r\n    {\r\n        context.font = this._font;\r\n    },\r\n\r\n    /**\r\n     * Synchronize the text style settings to the given Canvas Rendering Context.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#syncStyle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {HTMLCanvasElement} canvas - The Canvas Element.\r\n     * @param {CanvasRenderingContext2D} context - The Canvas Rendering Context.\r\n     */\r\n    syncStyle: function (canvas, context)\r\n    {\r\n        context.textBaseline = 'alphabetic';\r\n\r\n        context.fillStyle = this.color;\r\n        context.strokeStyle = this.stroke;\r\n\r\n        context.lineWidth = this.strokeThickness;\r\n        context.lineCap = 'round';\r\n        context.lineJoin = 'round';\r\n    },\r\n\r\n    /**\r\n     * Synchronize the shadow settings to the given Canvas Rendering Context.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#syncShadow\r\n     * @since 3.0.0\r\n     *\r\n     * @param {CanvasRenderingContext2D} context - The Canvas Rendering Context.\r\n     * @param {boolean} enabled - Whether shadows are enabled or not.\r\n     */\r\n    syncShadow: function (context, enabled)\r\n    {\r\n        if (enabled)\r\n        {\r\n            context.shadowOffsetX = this.shadowOffsetX;\r\n            context.shadowOffsetY = this.shadowOffsetY;\r\n            context.shadowColor = this.shadowColor;\r\n            context.shadowBlur = this.shadowBlur;\r\n        }\r\n        else\r\n        {\r\n            context.shadowOffsetX = 0;\r\n            context.shadowOffsetY = 0;\r\n            context.shadowColor = 0;\r\n            context.shadowBlur = 0;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Update the style settings for the parent Text object.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#update\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} recalculateMetrics - Whether to recalculate font and text metrics.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    update: function (recalculateMetrics)\r\n    {\r\n        if (recalculateMetrics)\r\n        {\r\n            this._font = [ this.fontStyle, this.fontSize, this.fontFamily ].join(' ').trim();\r\n\r\n            this.metrics = MeasureText(this);\r\n        }\r\n\r\n        return this.parent.updateText();\r\n    },\r\n\r\n    /**\r\n     * Set the font.\r\n     *\r\n     * If a string is given, the font family is set.\r\n     *\r\n     * If an object is given, the `fontFamily`, `fontSize` and `fontStyle`\r\n     * properties of that object are set.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setFont\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|object)} font - The font family or font settings to set.\r\n     * @param {boolean} [updateText=true] - Whether to update the text immediately.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setFont: function (font, updateText)\r\n    {\r\n        if (updateText === undefined) { updateText = true; }\r\n\r\n        var fontFamily = font;\r\n        var fontSize = '';\r\n        var fontStyle = '';\r\n\r\n        if (typeof font !== 'string')\r\n        {\r\n            fontFamily = GetValue(font, 'fontFamily', 'Courier');\r\n            fontSize = GetValue(font, 'fontSize', '16px');\r\n            fontStyle = GetValue(font, 'fontStyle', '');\r\n        }\r\n        else\r\n        {\r\n            var fontSplit = font.split(' ');\r\n\r\n            var i = 0;\r\n\r\n            fontStyle = (fontSplit.length > 2) ? fontSplit[i++] : '';\r\n            fontSize = fontSplit[i++] || '16px';\r\n            fontFamily = fontSplit[i++] || 'Courier';\r\n        }\r\n\r\n        if (fontFamily !== this.fontFamily || fontSize !== this.fontSize || fontStyle !== this.fontStyle)\r\n        {\r\n            this.fontFamily = fontFamily;\r\n            this.fontSize = fontSize;\r\n            this.fontStyle = fontStyle;\r\n\r\n            if (updateText)\r\n            {\r\n                this.update(true);\r\n            }\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Set the font family.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setFontFamily\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} family - The font family.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setFontFamily: function (family)\r\n    {\r\n        if (this.fontFamily !== family)\r\n        {\r\n            this.fontFamily = family;\r\n\r\n            this.update(true);\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Set the font style.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setFontStyle\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} style - The font style.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setFontStyle: function (style)\r\n    {\r\n        if (this.fontStyle !== style)\r\n        {\r\n            this.fontStyle = style;\r\n\r\n            this.update(true);\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Set the font size. Can be a string with a valid CSS unit, i.e. `16px`, or a number.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setFontSize\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(number|string)} size - The font size.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setFontSize: function (size)\r\n    {\r\n        if (typeof size === 'number')\r\n        {\r\n            size = size.toString() + 'px';\r\n        }\r\n\r\n        if (this.fontSize !== size)\r\n        {\r\n            this.fontSize = size;\r\n\r\n            this.update(true);\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Set the test string to use when measuring the font.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setTestString\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} string - The test string to use when measuring the font.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setTestString: function (string)\r\n    {\r\n        this.testString = string;\r\n\r\n        return this.update(true);\r\n    },\r\n\r\n    /**\r\n     * Set a fixed width and height for the text.\r\n     *\r\n     * Pass in `0` for either of these parameters to disable fixed width or height respectively.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setFixedSize\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} width - The fixed width to set.\r\n     * @param {number} height - The fixed height to set.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setFixedSize: function (width, height)\r\n    {\r\n        this.fixedWidth = width;\r\n        this.fixedHeight = height;\r\n\r\n        if (width)\r\n        {\r\n            this.parent.width = width;\r\n        }\r\n\r\n        if (height)\r\n        {\r\n            this.parent.height = height;\r\n        }\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Set the background color.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setBackgroundColor\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} color - The background color.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setBackgroundColor: function (color)\r\n    {\r\n        this.backgroundColor = color;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Set the text fill color.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setFill\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|CanvasGradient|CanvasPattern)} color - The text fill color.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setFill: function (color)\r\n    {\r\n        this.color = color;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Set the text fill color.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setColor\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|CanvasGradient|CanvasPattern)} color - The text fill color.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setColor: function (color)\r\n    {\r\n        this.color = color;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Set the resolution used by the Text object.\r\n     *\r\n     * It allows for much clearer text on High DPI devices, at the cost of memory because\r\n     * it uses larger internal Canvas textures for the Text.\r\n     *\r\n     * Please use with caution, as the more high res Text you have, the more memory it uses up.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setResolution\r\n     * @since 3.12.0\r\n     *\r\n     * @param {number} value - The resolution for this Text object to use.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setResolution: function (value)\r\n    {\r\n        this.resolution = value;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Set the stroke settings.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setStroke\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|CanvasGradient|CanvasPattern)} color - The stroke color.\r\n     * @param {number} thickness - The stroke thickness.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setStroke: function (color, thickness)\r\n    {\r\n        if (thickness === undefined) { thickness = this.strokeThickness; }\r\n\r\n        if (color === undefined && this.strokeThickness !== 0)\r\n        {\r\n            //  Reset the stroke to zero (disabling it)\r\n            this.strokeThickness = 0;\r\n\r\n            this.update(true);\r\n        }\r\n        else if (this.stroke !== color || this.strokeThickness !== thickness)\r\n        {\r\n            this.stroke = color;\r\n            this.strokeThickness = thickness;\r\n\r\n            this.update(true);\r\n        }\r\n\r\n        return this.parent;\r\n    },\r\n\r\n    /**\r\n     * Set the shadow settings.\r\n     *\r\n     * Calling this method always re-measures the parent Text object,\r\n     * so only call it when you actually change the shadow settings.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setShadow\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=0] - The horizontal shadow offset.\r\n     * @param {number} [y=0] - The vertical shadow offset.\r\n     * @param {string} [color='#000'] - The shadow color.\r\n     * @param {number} [blur=0] - The shadow blur radius.\r\n     * @param {boolean} [shadowStroke=false] - Whether to stroke the shadow.\r\n     * @param {boolean} [shadowFill=true] - Whether to fill the shadow.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setShadow: function (x, y, color, blur, shadowStroke, shadowFill)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (color === undefined) { color = '#000'; }\r\n        if (blur === undefined) { blur = 0; }\r\n        if (shadowStroke === undefined) { shadowStroke = false; }\r\n        if (shadowFill === undefined) { shadowFill = true; }\r\n\r\n        this.shadowOffsetX = x;\r\n        this.shadowOffsetY = y;\r\n        this.shadowColor = color;\r\n        this.shadowBlur = blur;\r\n        this.shadowStroke = shadowStroke;\r\n        this.shadowFill = shadowFill;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Set the shadow offset.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setShadowOffset\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=0] - The horizontal shadow offset.\r\n     * @param {number} [y=0] - The vertical shadow offset.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setShadowOffset: function (x, y)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.shadowOffsetX = x;\r\n        this.shadowOffsetY = y;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Set the shadow color.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setShadowColor\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} [color='#000'] - The shadow color.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setShadowColor: function (color)\r\n    {\r\n        if (color === undefined) { color = '#000'; }\r\n\r\n        this.shadowColor = color;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Set the shadow blur radius.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setShadowBlur\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [blur=0] - The shadow blur radius.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setShadowBlur: function (blur)\r\n    {\r\n        if (blur === undefined) { blur = 0; }\r\n\r\n        this.shadowBlur = blur;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Enable or disable shadow stroke.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setShadowStroke\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} enabled - Whether shadow stroke is enabled or not.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setShadowStroke: function (enabled)\r\n    {\r\n        this.shadowStroke = enabled;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Enable or disable shadow fill.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setShadowFill\r\n     * @since 3.0.0\r\n     *\r\n     * @param {boolean} enabled - Whether shadow fill is enabled or not.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setShadowFill: function (enabled)\r\n    {\r\n        this.shadowFill = enabled;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Set the width (in pixels) to use for wrapping lines.\r\n     *\r\n     * Pass in null to remove wrapping by width.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setWordWrapWidth\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number | null} width - The maximum width of a line in pixels. Set to null to remove wrapping.\r\n     * @param {boolean} [useAdvancedWrap=false] - Whether or not to use the advanced wrapping\r\n     * algorithm. If true, spaces are collapsed and whitespace is trimmed from lines. If false,\r\n     * spaces and whitespace are left as is.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setWordWrapWidth: function (width, useAdvancedWrap)\r\n    {\r\n        if (useAdvancedWrap === undefined) { useAdvancedWrap = false; }\r\n\r\n        this.wordWrapWidth = width;\r\n        this.wordWrapUseAdvanced = useAdvancedWrap;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Set a custom callback for wrapping lines.\r\n     *\r\n     * Pass in null to remove wrapping by callback.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setWordWrapCallback\r\n     * @since 3.0.0\r\n     *\r\n     * @param {TextStyleWordWrapCallback} callback - A custom function that will be responsible for wrapping the\r\n     * text. It will receive two arguments: text (the string to wrap), textObject (this Text\r\n     * instance). It should return the wrapped lines either as an array of lines or as a string with\r\n     * newline characters in place to indicate where breaks should happen.\r\n     * @param {object} [scope=null] - The scope that will be applied when the callback is invoked.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setWordWrapCallback: function (callback, scope)\r\n    {\r\n        if (scope === undefined) { scope = null; }\r\n\r\n        this.wordWrapCallback = callback;\r\n        this.wordWrapCallbackScope = scope;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Set the alignment of the text in this Text object.\r\n     *\r\n     * The argument can be one of: `left`, `right`, `center` or `justify`.\r\n     *\r\n     * Alignment only works if the Text object has more than one line of text.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setAlign\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} [align='left'] - The text alignment for multi-line text.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setAlign: function (align)\r\n    {\r\n        if (align === undefined) { align = 'left'; }\r\n\r\n        this.align = align;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Set the maximum number of lines to draw.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#setMaxLines\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [max=0] - The maximum number of lines to draw.\r\n     *\r\n     * @return {Phaser.GameObjects.Text} The parent Text object.\r\n     */\r\n    setMaxLines: function (max)\r\n    {\r\n        if (max === undefined) { max = 0; }\r\n\r\n        this.maxLines = max;\r\n\r\n        return this.update(false);\r\n    },\r\n\r\n    /**\r\n     * Get the current text metrics.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#getTextMetrics\r\n     * @since 3.0.0\r\n     *\r\n     * @return {Phaser.Types.GameObjects.Text.TextMetrics} The text metrics.\r\n     */\r\n    getTextMetrics: function ()\r\n    {\r\n        var metrics = this.metrics;\r\n\r\n        return {\r\n            ascent: metrics.ascent,\r\n            descent: metrics.descent,\r\n            fontSize: metrics.fontSize\r\n        };\r\n    },\r\n\r\n    /**\r\n     * Build a JSON representation of this Text Style.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#toJSON\r\n     * @since 3.0.0\r\n     *\r\n     * @return {object} A JSON representation of this Text Style.\r\n     */\r\n    toJSON: function ()\r\n    {\r\n        var output = {};\r\n\r\n        for (var key in propertyMap)\r\n        {\r\n            output[key] = this[key];\r\n        }\r\n\r\n        output.metrics = this.getTextMetrics();\r\n\r\n        return output;\r\n    },\r\n\r\n    /**\r\n     * Destroy this Text Style.\r\n     *\r\n     * @method Phaser.GameObjects.TextStyle#destroy\r\n     * @since 3.0.0\r\n     */\r\n    destroy: function ()\r\n    {\r\n        this.parent = undefined;\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = TextStyle;\r\n\n\n/***/ }),\n\n/***/ 34397:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Text#renderWebGL\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Text} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar TextWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    if (src.width === 0 || src.height === 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    var frame = src.frame;\r\n    var width = frame.width;\r\n    var height = frame.height;\r\n    var getTint = Utils.getTintAppendFloatAlpha;\r\n    var pipeline = renderer.pipelines.set(src.pipeline, src);\r\n\r\n    var textureUnit = pipeline.setTexture2D(frame.glTexture, src);\r\n\r\n    pipeline.batchTexture(\r\n        src,\r\n        frame.glTexture,\r\n        width, height,\r\n        src.x, src.y,\r\n        width / src.style.resolution, height / src.style.resolution,\r\n        src.scaleX, src.scaleY,\r\n        src.rotation,\r\n        src.flipX, src.flipY,\r\n        src.scrollFactorX, src.scrollFactorY,\r\n        src.displayOriginX, src.displayOriginY,\r\n        0, 0, width, height,\r\n        getTint(src.tintTopLeft, camera.alpha * src._alphaTL),\r\n        getTint(src.tintTopRight, camera.alpha * src._alphaTR),\r\n        getTint(src.tintBottomLeft, camera.alpha * src._alphaBL),\r\n        getTint(src.tintBottomRight, camera.alpha * src._alphaBR),\r\n        src.tintFill,\r\n        0, 0,\r\n        camera,\r\n        parentMatrix,\r\n        false,\r\n        textureUnit\r\n    );\r\n};\r\n\r\nmodule.exports = TextWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 20839:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CanvasPool = __webpack_require__(27919);\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar GameObject = __webpack_require__(95643);\r\nvar GetPowerOfTwo = __webpack_require__(98439);\r\nvar Smoothing = __webpack_require__(68703);\r\nvar TileSpriteRender = __webpack_require__(56295);\r\nvar UUID = __webpack_require__(45650);\r\nvar Vector2 = __webpack_require__(26099);\r\n\r\n//  bitmask flag for GameObject.renderMask\r\nvar _FLAG = 8; // 1000\r\n\r\n/**\r\n * @classdesc\r\n * A TileSprite is a Sprite that has a repeating texture.\r\n *\r\n * The texture can be scrolled and scaled independently of the TileSprite itself. Textures will automatically wrap and\r\n * are designed so that you can create game backdrops using seamless textures as a source.\r\n *\r\n * You shouldn't ever create a TileSprite any larger than your actual canvas size. If you want to create a large repeating background\r\n * that scrolls across the whole map of your game, then you create a TileSprite that fits the canvas size and then use the `tilePosition`\r\n * property to scroll the texture as the player moves. If you create a TileSprite that is thousands of pixels in size then it will\r\n * consume huge amounts of memory and cause performance issues. Remember: use `tilePosition` to scroll your texture and `tileScale` to\r\n * adjust the scale of the texture - don't resize the sprite itself or make it larger than it needs.\r\n *\r\n * An important note about Tile Sprites and NPOT textures: Internally, TileSprite textures use GL_REPEAT to provide\r\n * seamless repeating of the textures. This, combined with the way in which the textures are handled in WebGL, means\r\n * they need to be POT (power-of-two) sizes in order to wrap. If you provide a NPOT (non power-of-two) texture to a\r\n * TileSprite it will generate a POT sized canvas and draw your texture to it, scaled up to the POT size. It's then\r\n * scaled back down again during rendering to the original dimensions. While this works, in that it allows you to use\r\n * any size texture for a Tile Sprite, it does mean that NPOT textures are going to appear anti-aliased when rendered,\r\n * due to the interpolation that took place when it was resized into a POT texture. This is especially visible in\r\n * pixel art graphics. If you notice it and it becomes an issue, the only way to avoid it is to ensure that you\r\n * provide POT textures for Tile Sprites.\r\n *\r\n * @class TileSprite\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @extends Phaser.GameObjects.Components.Alpha\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.ComputedSize\r\n * @extends Phaser.GameObjects.Components.Crop\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Flip\r\n * @extends Phaser.GameObjects.Components.GetBounds\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Origin\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Tint\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {number} width - The width of the Game Object. If zero it will use the size of the texture frame.\r\n * @param {number} height - The height of the Game Object. If zero it will use the size of the texture frame.\r\n * @param {string} textureKey - The key of the Texture this Game Object will use to render with, as stored in the Texture Manager. Cannot be a DynamicTexture.\r\n * @param {(string|number)} [frameKey] - An optional frame from the Texture this Game Object is rendering with.\r\n */\r\nvar TileSprite = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.Alpha,\r\n        Components.BlendMode,\r\n        Components.ComputedSize,\r\n        Components.Crop,\r\n        Components.Depth,\r\n        Components.Flip,\r\n        Components.GetBounds,\r\n        Components.Mask,\r\n        Components.Origin,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.ScrollFactor,\r\n        Components.Tint,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        TileSpriteRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function TileSprite (scene, x, y, width, height, textureKey, frameKey)\r\n    {\r\n        var renderer = scene.sys.renderer;\r\n\r\n        GameObject.call(this, scene, 'TileSprite');\r\n\r\n        var displayTexture = scene.sys.textures.get(textureKey);\r\n        var displayFrame = displayTexture.get(frameKey);\r\n\r\n        if (displayFrame.source.compressionAlgorithm)\r\n        {\r\n            console.warn('TileSprite cannot use compressed texture');\r\n            displayTexture = scene.sys.textures.get('__MISSING');\r\n            displayFrame = displayTexture.get();\r\n        }\r\n\r\n        if (displayTexture.type === 'DynamicTexture')\r\n        {\r\n            console.warn('TileSprite cannot use Dynamic Texture');\r\n            displayTexture = scene.sys.textures.get('__MISSING');\r\n            displayFrame = displayTexture.get();\r\n        }\r\n\r\n        if (!width || !height)\r\n        {\r\n            width = width ? width : displayFrame.width;\r\n            height = height ? height : displayFrame.height;\r\n        }\r\n        else\r\n        {\r\n            width = Math.floor(width);\r\n            height = Math.floor(height);\r\n        }\r\n\r\n        /**\r\n         * Internal tile position vector.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#_tilePosition\r\n         * @type {Phaser.Math.Vector2}\r\n         * @private\r\n         * @since 3.12.0\r\n         */\r\n        this._tilePosition = new Vector2();\r\n\r\n        /**\r\n         * Internal tile scale vector.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#_tileScale\r\n         * @type {Phaser.Math.Vector2}\r\n         * @private\r\n         * @since 3.12.0\r\n         */\r\n        this._tileScale = new Vector2(1, 1);\r\n\r\n        /**\r\n         * Whether the Tile Sprite has changed in some way, requiring an re-render of its tile texture.\r\n         *\r\n         * Such changes include the texture frame and scroll position of the Tile Sprite.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#dirty\r\n         * @type {boolean}\r\n         * @default false\r\n         * @since 3.0.0\r\n         */\r\n        this.dirty = false;\r\n\r\n        /**\r\n         * The renderer in use by this Tile Sprite.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#renderer\r\n         * @type {(Phaser.Renderer.Canvas.CanvasRenderer|Phaser.Renderer.WebGL.WebGLRenderer)}\r\n         * @since 3.0.0\r\n         */\r\n        this.renderer = renderer;\r\n\r\n        /**\r\n         * The Canvas element that the TileSprite renders its fill pattern in to.\r\n         * Only used in Canvas mode.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#canvas\r\n         * @type {?HTMLCanvasElement}\r\n         * @since 3.12.0\r\n         */\r\n        this.canvas = CanvasPool.create(this, width, height);\r\n\r\n        /**\r\n         * The Context of the Canvas element that the TileSprite renders its fill pattern in to.\r\n         * Only used in Canvas mode.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#context\r\n         * @type {CanvasRenderingContext2D}\r\n         * @since 3.12.0\r\n         */\r\n        this.context = this.canvas.getContext('2d', { willReadFrequently: false });\r\n\r\n        /**\r\n         * The Texture the TileSprite is using as its fill pattern.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#displayTexture\r\n         * @type {Phaser.Textures.Texture|Phaser.Textures.CanvasTexture}\r\n         * @private\r\n         * @since 3.12.0\r\n         */\r\n        this.displayTexture = displayTexture;\r\n\r\n        /**\r\n         * The Frame the TileSprite is using as its fill pattern.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#displayFrame\r\n         * @type {Phaser.Textures.Frame}\r\n         * @private\r\n         * @since 3.12.0\r\n         */\r\n        this.displayFrame = displayFrame;\r\n\r\n        /**\r\n         * The internal crop data object, as used by `setCrop` and passed to the `Frame.setCropUVs` method.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#_crop\r\n         * @type {object}\r\n         * @private\r\n         * @since 3.12.0\r\n         */\r\n        this._crop = this.resetCropObject();\r\n\r\n        /**\r\n         * The internal unique key to refer to the texture in the TextureManager.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#_textureKey\r\n         * @type {string}\r\n         * @private\r\n         * @since 3.80.0\r\n         */\r\n        this._textureKey = UUID();\r\n\r\n        /**\r\n         * The Texture this Game Object is using to render with.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#texture\r\n         * @type {Phaser.Textures.Texture|Phaser.Textures.CanvasTexture}\r\n         * @since 3.0.0\r\n         */\r\n        this.texture = scene.sys.textures.addCanvas(this._textureKey, this.canvas);\r\n\r\n        /**\r\n         * The Texture Frame this Game Object is using to render with.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#frame\r\n         * @type {Phaser.Textures.Frame}\r\n         * @since 3.0.0\r\n         */\r\n        this.frame = this.texture.get();\r\n\r\n        /**\r\n         * The next power of two value from the width of the Fill Pattern frame.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#potWidth\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         */\r\n        this.potWidth = GetPowerOfTwo(displayFrame.width);\r\n\r\n        /**\r\n         * The next power of two value from the height of the Fill Pattern frame.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#potHeight\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         */\r\n        this.potHeight = GetPowerOfTwo(displayFrame.height);\r\n\r\n        /**\r\n         * The Canvas that the TileSprites texture is rendered to.\r\n         * This is used to create a WebGL texture from.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#fillCanvas\r\n         * @type {HTMLCanvasElement}\r\n         * @since 3.12.0\r\n         */\r\n        this.fillCanvas = CanvasPool.create2D(this, this.potWidth, this.potHeight);\r\n\r\n        /**\r\n         * The Canvas Context used to render the TileSprites texture.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#fillContext\r\n         * @type {CanvasRenderingContext2D}\r\n         * @since 3.12.0\r\n         */\r\n        this.fillContext = this.fillCanvas.getContext('2d', { willReadFrequently: false });\r\n\r\n        /**\r\n         * The texture that the Tile Sprite is rendered to, which is then rendered to a Scene.\r\n         * In WebGL this is a WebGLTextureWrapper. In Canvas it's a Canvas Fill Pattern.\r\n         *\r\n         * @name Phaser.GameObjects.TileSprite#fillPattern\r\n         * @type {?(Phaser.Renderer.WebGL.Wrappers.WebGLTextureWrapper|CanvasPattern)}\r\n         * @since 3.12.0\r\n         */\r\n        this.fillPattern = null;\r\n\r\n        this.setPosition(x, y);\r\n        this.setSize(width, height);\r\n        this.setFrame(frameKey);\r\n        this.setOriginFromFrame();\r\n        this.initPipeline();\r\n        this.initPostPipeline(true);\r\n    },\r\n\r\n    /**\r\n     * Sets the texture and frame this Game Object will use to render with.\r\n     *\r\n     * Textures are referenced by their string-based keys, as stored in the Texture Manager.\r\n     *\r\n     * @method Phaser.GameObjects.TileSprite#setTexture\r\n     * @since 3.0.0\r\n     *\r\n     * @param {string} key - The key of the texture to be used, as stored in the Texture Manager.\r\n     * @param {(string|number)} [frame] - The name or index of the frame within the Texture.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setTexture: function (key, frame)\r\n    {\r\n        this.displayTexture = this.scene.sys.textures.get(key);\r\n\r\n        return this.setFrame(frame);\r\n    },\r\n\r\n    /**\r\n     * Sets the frame this Game Object will use to render with.\r\n     *\r\n     * The Frame has to belong to the current Texture being used.\r\n     *\r\n     * It can be either a string or an index.\r\n     *\r\n     * @method Phaser.GameObjects.TileSprite#setFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @param {(string|number)} frame - The name or index of the frame within the Texture.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setFrame: function (frame)\r\n    {\r\n        var newFrame = this.displayTexture.get(frame);\r\n\r\n        this.potWidth = GetPowerOfTwo(newFrame.width);\r\n        this.potHeight = GetPowerOfTwo(newFrame.height);\r\n\r\n        //  So updateCanvas is triggered\r\n        this.canvas.width = 0;\r\n\r\n        if (!newFrame.cutWidth || !newFrame.cutHeight)\r\n        {\r\n            this.renderFlags &= ~_FLAG;\r\n        }\r\n        else\r\n        {\r\n            this.renderFlags |= _FLAG;\r\n        }\r\n\r\n        this.displayFrame = newFrame;\r\n\r\n        this.dirty = true;\r\n\r\n        this.updateTileTexture();\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets {@link Phaser.GameObjects.TileSprite#tilePositionX} and {@link Phaser.GameObjects.TileSprite#tilePositionY}.\r\n     *\r\n     * @method Phaser.GameObjects.TileSprite#setTilePosition\r\n     * @since 3.3.0\r\n     *\r\n     * @param {number} [x] - The x position of this sprite's tiling texture.\r\n     * @param {number} [y] - The y position of this sprite's tiling texture.\r\n     *\r\n     * @return {this} This Tile Sprite instance.\r\n     */\r\n    setTilePosition: function (x, y)\r\n    {\r\n        if (x !== undefined)\r\n        {\r\n            this.tilePositionX = x;\r\n        }\r\n\r\n        if (y !== undefined)\r\n        {\r\n            this.tilePositionY = y;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets {@link Phaser.GameObjects.TileSprite#tileScaleX} and {@link Phaser.GameObjects.TileSprite#tileScaleY}.\r\n     *\r\n     * @method Phaser.GameObjects.TileSprite#setTileScale\r\n     * @since 3.12.0\r\n     *\r\n     * @param {number} [x] - The horizontal scale of the tiling texture. If not given it will use the current `tileScaleX` value.\r\n     * @param {number} [y=x] - The vertical scale of the tiling texture. If not given it will use the `x` value.\r\n     *\r\n     * @return {this} This Tile Sprite instance.\r\n     */\r\n    setTileScale: function (x, y)\r\n    {\r\n        if (x === undefined) { x = this.tileScaleX; }\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.tileScaleX = x;\r\n        this.tileScaleY = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Render the tile texture if it is dirty, or if the frame has changed.\r\n     *\r\n     * @method Phaser.GameObjects.TileSprite#updateTileTexture\r\n     * @private\r\n     * @since 3.0.0\r\n     */\r\n    updateTileTexture: function ()\r\n    {\r\n        if (!this.dirty || !this.renderer)\r\n        {\r\n            return;\r\n        }\r\n\r\n        //  Draw the displayTexture to our fillCanvas\r\n\r\n        var frame = this.displayFrame;\r\n\r\n        if (frame.source.isRenderTexture || frame.source.isGLTexture)\r\n        {\r\n            console.warn('TileSprites can only use Image or Canvas based textures');\r\n\r\n            this.dirty = false;\r\n\r\n            return;\r\n        }\r\n\r\n        var ctx = this.fillContext;\r\n        var canvas = this.fillCanvas;\r\n\r\n        var fw = this.potWidth;\r\n        var fh = this.potHeight;\r\n\r\n        if (!this.renderer || !this.renderer.gl)\r\n        {\r\n            fw = frame.cutWidth;\r\n            fh = frame.cutHeight;\r\n        }\r\n\r\n        ctx.clearRect(0, 0, fw, fh);\r\n\r\n        canvas.width = fw;\r\n        canvas.height = fh;\r\n\r\n        ctx.drawImage(\r\n            frame.source.image,\r\n            frame.cutX, frame.cutY,\r\n            frame.cutWidth, frame.cutHeight,\r\n            0, 0,\r\n            fw, fh\r\n        );\r\n\r\n        if (this.renderer && this.renderer.gl)\r\n        {\r\n            this.fillPattern = this.renderer.canvasToTexture(canvas, this.fillPattern);\r\n\r\n            if (false)\r\n            {}\r\n        }\r\n        else\r\n        {\r\n            this.fillPattern = ctx.createPattern(canvas, 'repeat');\r\n        }\r\n\r\n        this.updateCanvas();\r\n\r\n        this.dirty = false;\r\n    },\r\n\r\n    /**\r\n     * Draw the fill pattern to the internal canvas.\r\n     *\r\n     * @method Phaser.GameObjects.TileSprite#updateCanvas\r\n     * @private\r\n     * @since 3.12.0\r\n     */\r\n    updateCanvas: function ()\r\n    {\r\n        var canvas = this.canvas;\r\n\r\n        if (canvas.width !== this.width || canvas.height !== this.height)\r\n        {\r\n            canvas.width = this.width;\r\n            canvas.height = this.height;\r\n\r\n            this.frame.setSize(this.width, this.height);\r\n            this.updateDisplayOrigin();\r\n\r\n            this.dirty = true;\r\n        }\r\n\r\n        if (!this.dirty || this.renderer && this.renderer.gl)\r\n        {\r\n            this.dirty = false;\r\n            return;\r\n        }\r\n\r\n        var ctx = this.context;\r\n\r\n        if (!this.scene.sys.game.config.antialias)\r\n        {\r\n            Smoothing.disable(ctx);\r\n        }\r\n\r\n        var scaleX = this._tileScale.x;\r\n        var scaleY = this._tileScale.y;\r\n\r\n        var positionX = this._tilePosition.x;\r\n        var positionY = this._tilePosition.y;\r\n\r\n        ctx.clearRect(0, 0, this.width, this.height);\r\n\r\n        ctx.save();\r\n\r\n        ctx.scale(scaleX, scaleY);\r\n\r\n        ctx.translate(-positionX, -positionY);\r\n\r\n        ctx.fillStyle = this.fillPattern;\r\n\r\n        ctx.fillRect(positionX, positionY, this.width / scaleX, this.height / scaleY);\r\n\r\n        ctx.restore();\r\n\r\n        this.dirty = false;\r\n    },\r\n\r\n    /**\r\n     * Internal destroy handler, called as part of the destroy process.\r\n     *\r\n     * @method Phaser.GameObjects.TileSprite#preDestroy\r\n     * @protected\r\n     * @since 3.9.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        if (this.renderer && this.renderer.gl)\r\n        {\r\n            this.renderer.deleteTexture(this.fillPattern);\r\n        }\r\n\r\n        CanvasPool.remove(this.canvas);\r\n        CanvasPool.remove(this.fillCanvas);\r\n\r\n        this.fillPattern = null;\r\n        this.fillContext = null;\r\n        this.fillCanvas = null;\r\n\r\n        this.displayTexture = null;\r\n        this.displayFrame = null;\r\n\r\n        var texture = this.texture;\r\n\r\n        if (texture)\r\n        {\r\n            texture.destroy();\r\n        }\r\n\r\n        this.renderer = null;\r\n    },\r\n\r\n    /**\r\n     * The horizontal scroll position of the Tile Sprite.\r\n     *\r\n     * @name Phaser.GameObjects.TileSprite#tilePositionX\r\n     * @type {number}\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n    tilePositionX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._tilePosition.x;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._tilePosition.x = value;\r\n            this.dirty = true;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The vertical scroll position of the Tile Sprite.\r\n     *\r\n     * @name Phaser.GameObjects.TileSprite#tilePositionY\r\n     * @type {number}\r\n     * @default 0\r\n     * @since 3.0.0\r\n     */\r\n    tilePositionY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._tilePosition.y;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._tilePosition.y = value;\r\n            this.dirty = true;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The horizontal scale of the Tile Sprite texture.\r\n     *\r\n     * @name Phaser.GameObjects.TileSprite#tileScaleX\r\n     * @type {number}\r\n     * @default 1\r\n     * @since 3.11.0\r\n     */\r\n    tileScaleX: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._tileScale.x;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._tileScale.x = value;\r\n            this.dirty = true;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The vertical scale of the Tile Sprite texture.\r\n     *\r\n     * @name Phaser.GameObjects.TileSprite#tileScaleY\r\n     * @type {number}\r\n     * @default 1\r\n     * @since 3.11.0\r\n     */\r\n    tileScaleY: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._tileScale.y;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._tileScale.y = value;\r\n            this.dirty = true;\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = TileSprite;\r\n\n\n/***/ }),\n\n/***/ 46992:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.TileSprite#renderCanvas\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.TileSprite} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar TileSpriteCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    src.updateCanvas();\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    renderer.batchSprite(src, src.frame, camera, parentMatrix);\r\n};\r\n\r\nmodule.exports = TileSpriteCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 14167:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar TileSprite = __webpack_require__(20839);\r\n\r\n/**\r\n * Creates a new TileSprite Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the TileSprite Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#tileSprite\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.TileSprite.TileSpriteConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.TileSprite} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('tileSprite', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var x = GetAdvancedValue(config, 'x', 0);\r\n    var y = GetAdvancedValue(config, 'y', 0);\r\n    var width = GetAdvancedValue(config, 'width', 512);\r\n    var height = GetAdvancedValue(config, 'height', 512);\r\n    var key = GetAdvancedValue(config, 'key', '');\r\n    var frame = GetAdvancedValue(config, 'frame', '');\r\n\r\n    var tile = new TileSprite(this.scene, x, y, width, height, key, frame);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, tile, config);\r\n\r\n    return tile;\r\n});\r\n\n\n/***/ }),\n\n/***/ 91681:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar TileSprite = __webpack_require__(20839);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new TileSprite Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the TileSprite Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#tileSprite\r\n * @since 3.0.0\r\n *\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {number} width - The width of the Game Object. If zero it will use the size of the texture frame.\r\n * @param {number} height - The height of the Game Object. If zero it will use the size of the texture frame.\r\n * @param {(string|Phaser.Textures.Texture)} texture - The key, or instance of the Texture this Game Object will use to render with, as stored in the Texture Manager. Cannot be a DynamicTexture.\r\n * @param {(string|number)} [frame] - An optional frame from the Texture this Game Object is rendering with.\r\n *\r\n * @return {Phaser.GameObjects.TileSprite} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('tileSprite', function (x, y, width, height, texture, frame)\r\n{\r\n    return this.displayList.add(new TileSprite(this.scene, x, y, width, height, texture, frame));\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectFactory context.\r\n//\r\n//  There are several properties available to use:\r\n//\r\n//  this.scene - a reference to the Scene that owns the GameObjectFactory\r\n//  this.displayList - a reference to the Display List the Scene owns\r\n//  this.updateList - a reference to the Update List the Scene owns\r\n\n\n/***/ }),\n\n/***/ 56295:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(18553);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(46992);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 18553:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Utils = __webpack_require__(70554);\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.TileSprite#renderWebGL\r\n * @since 3.0.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.TileSprite} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar TileSpriteWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    src.updateCanvas();\r\n\r\n    var width = src.width;\r\n    var height = src.height;\r\n\r\n    if (width === 0 || height === 0)\r\n    {\r\n        return;\r\n    }\r\n\r\n    camera.addToRenderList(src);\r\n\r\n    var getTint = Utils.getTintAppendFloatAlpha;\r\n\r\n    var pipeline = renderer.pipelines.set(src.pipeline, src);\r\n\r\n    var textureUnit = pipeline.setTexture2D(src.fillPattern, src);\r\n\r\n    pipeline.batchTexture(\r\n        src,\r\n        src.fillPattern,\r\n        src.displayFrame.width * src.tileScaleX, src.displayFrame.height * src.tileScaleY,\r\n        src.x, src.y,\r\n        width, height,\r\n        src.scaleX, src.scaleY,\r\n        src.rotation,\r\n        src.flipX, src.flipY,\r\n        src.scrollFactorX, src.scrollFactorY,\r\n        src.originX * width, src.originY * height,\r\n        0, 0, width, height,\r\n        getTint(src.tintTopLeft, camera.alpha * src._alphaTL),\r\n        getTint(src.tintTopRight, camera.alpha * src._alphaTR),\r\n        getTint(src.tintBottomLeft, camera.alpha * src._alphaBL),\r\n        getTint(src.tintBottomRight, camera.alpha * src._alphaBR),\r\n        src.tintFill,\r\n        (src.tilePositionX % src.displayFrame.width) / src.displayFrame.width,\r\n        (src.tilePositionY % src.displayFrame.height) / src.displayFrame.height,\r\n        camera,\r\n        parentMatrix,\r\n        false,\r\n        textureUnit\r\n    );\r\n};\r\n\r\nmodule.exports = TileSpriteWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 18471:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Clamp = __webpack_require__(45319);\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar Events = __webpack_require__(51708);\r\nvar GameEvents = __webpack_require__(8443);\r\nvar GameObject = __webpack_require__(95643);\r\nvar MATH_CONST = __webpack_require__(36383);\r\nvar SoundEvents = __webpack_require__(14463);\r\nvar UUID = __webpack_require__(45650);\r\nvar VideoRender = __webpack_require__(10247);\r\n\r\n/**\r\n * @classdesc\r\n * A Video Game Object.\r\n *\r\n * This Game Object is capable of handling playback of a video file, video stream or media stream.\r\n *\r\n * You can optionally 'preload' the video into the Phaser Video Cache:\r\n *\r\n * ```javascript\r\n * preload () {\r\n *   this.load.video('ripley', 'assets/aliens.mp4');\r\n * }\r\n *\r\n * create () {\r\n *   this.add.video(400, 300, 'ripley');\r\n * }\r\n * ```\r\n *\r\n * You don't have to 'preload' the video. You can also play it directly from a URL:\r\n *\r\n * ```javascript\r\n * create () {\r\n *   this.add.video(400, 300).loadURL('assets/aliens.mp4');\r\n * }\r\n * ```\r\n *\r\n * To all intents and purposes, a video is a standard Game Object, just like a Sprite. And as such, you can do\r\n * all the usual things to it, such as scaling, rotating, cropping, tinting, making interactive, giving a\r\n * physics body, etc.\r\n *\r\n * Transparent videos are also possible via the WebM file format. Providing the video file has was encoded with\r\n * an alpha channel, and providing the browser supports WebM playback (not all of them do), then it will render\r\n * in-game with full transparency.\r\n *\r\n * Playback is handled entirely via the Request Video Frame API, which is supported by most modern browsers.\r\n * A polyfill is provided for older browsers.\r\n *\r\n * ### Autoplaying Videos\r\n *\r\n * Videos can only autoplay if the browser has been unlocked with an interaction, or satisfies the MEI settings.\r\n * The policies that control autoplaying are vast and vary between browser. You can, and should, read more about\r\n * it here: https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide\r\n *\r\n * If your video doesn't contain any audio, then set the `noAudio` parameter to `true` when the video is _loaded_,\r\n * and it will often allow the video to play immediately:\r\n *\r\n * ```javascript\r\n * preload () {\r\n *   this.load.video('pixar', 'nemo.mp4', true);\r\n * }\r\n * ```\r\n *\r\n * The 3rd parameter in the load call tells Phaser that the video doesn't contain any audio tracks. Video without\r\n * audio can autoplay without requiring a user interaction. Video with audio cannot do this unless it satisfies\r\n * the browsers MEI settings. See the MDN Autoplay Guide for further details.\r\n *\r\n * Or:\r\n *\r\n * ```javascript\r\n * create () {\r\n *   this.add.video(400, 300).loadURL('assets/aliens.mp4', true);\r\n * }\r\n * ```\r\n *\r\n * You can set the `noAudio` parameter to `true` even if the video does contain audio. It will still allow the video\r\n * to play immediately, but the audio will not start.\r\n *\r\n * Note that due to a bug in IE11 you cannot play a video texture to a Sprite in WebGL. For IE11 force Canvas mode.\r\n *\r\n * More details about video playback and the supported media formats can be found on MDN:\r\n *\r\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement\r\n * https://developer.mozilla.org/en-US/docs/Web/Media/Formats\r\n *\r\n * @class Video\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.20.0\r\n *\r\n * @extends Phaser.GameObjects.Components.Alpha\r\n * @extends Phaser.GameObjects.Components.BlendMode\r\n * @extends Phaser.GameObjects.Components.ComputedSize\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.Flip\r\n * @extends Phaser.GameObjects.Components.GetBounds\r\n * @extends Phaser.GameObjects.Components.Mask\r\n * @extends Phaser.GameObjects.Components.Origin\r\n * @extends Phaser.GameObjects.Components.Pipeline\r\n * @extends Phaser.GameObjects.Components.PostPipeline\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.TextureCrop\r\n * @extends Phaser.GameObjects.Components.Tint\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs. A Game Object can only belong to one Scene at a time.\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {string} [key] - Optional key of the Video this Game Object will play, as stored in the Video Cache.\r\n */\r\nvar Video = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.Alpha,\r\n        Components.BlendMode,\r\n        Components.ComputedSize,\r\n        Components.Depth,\r\n        Components.Flip,\r\n        Components.GetBounds,\r\n        Components.Mask,\r\n        Components.Origin,\r\n        Components.Pipeline,\r\n        Components.PostPipeline,\r\n        Components.ScrollFactor,\r\n        Components.TextureCrop,\r\n        Components.Tint,\r\n        Components.Transform,\r\n        Components.Visible,\r\n        VideoRender\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Video (scene, x, y, key)\r\n    {\r\n        GameObject.call(this, scene, 'Video');\r\n\r\n        /**\r\n         * A reference to the HTML Video Element this Video Game Object is playing.\r\n         *\r\n         * Will be `undefined` until a video is loaded for playback.\r\n         *\r\n         * @name Phaser.GameObjects.Video#video\r\n         * @type {?HTMLVideoElement}\r\n         * @since 3.20.0\r\n         */\r\n        this.video;\r\n\r\n        /**\r\n         * The Phaser Texture this Game Object is using to render the video to.\r\n         *\r\n         * Will be `undefined` until a video is loaded for playback.\r\n         *\r\n         * @name Phaser.GameObjects.Video#videoTexture\r\n         * @type {?Phaser.Textures.Texture}\r\n         * @since 3.20.0\r\n         */\r\n        this.videoTexture;\r\n\r\n        /**\r\n         * A reference to the TextureSource backing the `videoTexture` Texture object.\r\n         *\r\n         * Will be `undefined` until a video is loaded for playback.\r\n         *\r\n         * @name Phaser.GameObjects.Video#videoTextureSource\r\n         * @type {?Phaser.Textures.TextureSource}\r\n         * @since 3.20.0\r\n         */\r\n        this.videoTextureSource;\r\n\r\n        /**\r\n         * A Phaser `CanvasTexture` instance that holds the most recent snapshot taken from the video.\r\n         *\r\n         * This will only be set if the `snapshot` or `snapshotArea` methods have been called.\r\n         *\r\n         * Until those methods are called, this property will be `undefined`.\r\n         *\r\n         * @name Phaser.GameObjects.Video#snapshotTexture\r\n         * @type {?Phaser.Textures.CanvasTexture}\r\n         * @since 3.20.0\r\n         */\r\n        this.snapshotTexture;\r\n\r\n        /**\r\n         * If you have saved this video to a texture via the `saveTexture` method, this controls if the video\r\n         * is rendered with `flipY` in WebGL or not. You often need to set this if you wish to use the video texture\r\n         * as the input source for a shader. If you find your video is appearing upside down within a shader or\r\n         * custom pipeline, flip this property.\r\n         *\r\n         * @name Phaser.GameObjects.Video#flipY\r\n         * @type {boolean}\r\n         * @since 3.20.0\r\n         */\r\n        this.flipY = false;\r\n\r\n        /**\r\n         * The key used by the texture as stored in the Texture Manager.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_key\r\n         * @type {string}\r\n         * @private\r\n         * @since 3.20.0\r\n         */\r\n        this._key = UUID();\r\n\r\n        /**\r\n         * An internal flag holding the current state of the video lock, should document interaction be required\r\n         * before playback can begin.\r\n         *\r\n         * @name Phaser.GameObjects.Video#touchLocked\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @since 3.20.0\r\n         */\r\n        this.touchLocked = false;\r\n\r\n        /**\r\n         * Should the video auto play when document interaction is required and happens?\r\n         *\r\n         * @name Phaser.GameObjects.Video#playWhenUnlocked\r\n         * @type {boolean}\r\n         * @since 3.20.0\r\n         */\r\n        this.playWhenUnlocked = false;\r\n\r\n        /**\r\n         * Has the video created its texture and populated it with the first frame of video?\r\n         *\r\n         * @name Phaser.GameObjects.Video#frameReady\r\n         * @type {boolean}\r\n         * @since 3.60.0\r\n         */\r\n        this.frameReady = false;\r\n\r\n        /**\r\n         * This read-only property returns `true` if the video is currently stalled, i.e. it has stopped\r\n         * playing due to a lack of data, or too much data, but hasn't yet reached the end of the video.\r\n         *\r\n         * This is set if the Video DOM element emits any of the following events:\r\n         *\r\n         * `stalled`\r\n         * `suspend`\r\n         * `waiting`\r\n         *\r\n         * And is cleared if the Video DOM element emits the `playing` event, or handles\r\n         * a requestVideoFrame call.\r\n         *\r\n         * Listen for the Phaser Event `VIDEO_STALLED` to be notified and inspect the event\r\n         * to see which DOM event caused it.\r\n         *\r\n         * Note that being stalled isn't always a negative thing. A video can be stalled if it\r\n         * has downloaded enough data in to its buffer to not need to download any more until\r\n         * the current batch of frames have rendered.\r\n         *\r\n         * @name Phaser.GameObjects.Video#isStalled\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.isStalled = false;\r\n\r\n        /**\r\n         * Records the number of times the video has failed to play,\r\n         * typically because the user hasn't interacted with the page yet.\r\n         *\r\n         * @name Phaser.GameObjects.Video#failedPlayAttempts\r\n         * @type {number}\r\n         * @since 3.60.0\r\n         */\r\n        this.failedPlayAttempts = 0;\r\n\r\n        /**\r\n         * If the browser supports the Request Video Frame API then this\r\n         * property will hold the metadata that is returned from\r\n         * the callback each time it is invoked.\r\n         *\r\n         * See https://wicg.github.io/video-rvfc/#video-frame-metadata-callback\r\n         * for a complete list of all properties that will be in this object.\r\n         * Likely of most interest is the `mediaTime` property:\r\n         *\r\n         * The media presentation timestamp (PTS) in seconds of the frame presented\r\n         * (e.g. its timestamp on the video.currentTime timeline). MAY have a zero\r\n         * value for live-streams or WebRTC applications.\r\n         *\r\n         * If the browser doesn't support the API then this property will be undefined.\r\n         *\r\n         * @name Phaser.GameObjects.Video#metadata\r\n         * @type {VideoFrameCallbackMetadata}\r\n         * @since 3.60.0\r\n         */\r\n        this.metadata;\r\n\r\n        /**\r\n         * The current retry elapsed time.\r\n         *\r\n         * @name Phaser.GameObjects.Video#retry\r\n         * @type {number}\r\n         * @since 3.20.0\r\n         */\r\n        this.retry = 0;\r\n\r\n        /**\r\n         * If a video fails to play due to a lack of user interaction, this is the\r\n         * amount of time, in ms, that the video will wait before trying again to\r\n         * play. The default is 500ms.\r\n         *\r\n         * @name Phaser.GameObjects.Video#retryInterval\r\n         * @type {number}\r\n         * @since 3.20.0\r\n         */\r\n        this.retryInterval = 500;\r\n\r\n        /**\r\n         * The video was muted due to a system event, such as the game losing focus.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_systemMuted\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.20.0\r\n         */\r\n        this._systemMuted = false;\r\n\r\n        /**\r\n         * The video was muted due to game code, not a system event.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_codeMuted\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.20.0\r\n         */\r\n        this._codeMuted = false;\r\n\r\n        /**\r\n         * The video was paused due to a system event, such as the game losing focus.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_systemPaused\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.20.0\r\n         */\r\n        this._systemPaused = false;\r\n\r\n        /**\r\n         * The video was paused due to game code, not a system event.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_codePaused\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.20.0\r\n         */\r\n        this._codePaused = false;\r\n\r\n        /**\r\n         * The locally bound event callback handlers.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_callbacks\r\n         * @type {any}\r\n         * @private\r\n         * @since 3.20.0\r\n         */\r\n        this._callbacks = {\r\n            ended: this.completeHandler.bind(this),\r\n            legacy: this.legacyPlayHandler.bind(this),\r\n            playing: this.playingHandler.bind(this),\r\n            seeked: this.seekedHandler.bind(this),\r\n            seeking: this.seekingHandler.bind(this),\r\n            stalled: this.stalledHandler.bind(this),\r\n            suspend: this.stalledHandler.bind(this),\r\n            waiting: this.stalledHandler.bind(this)\r\n        };\r\n\r\n        /**\r\n         * The locally bound callback handler specifically for load and load error events.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_loadCallbackHandler\r\n         * @type {function}\r\n         * @private\r\n         * @since 3.60.0\r\n         */\r\n        this._loadCallbackHandler = this.loadErrorHandler.bind(this);\r\n\r\n        /**\r\n         * The locally bound callback handler specifically for the loadedmetadata event.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_metadataCallbackHandler\r\n         * @type {function}\r\n         * @private\r\n         * @since 3.80.0\r\n         */\r\n        this._metadataCallbackHandler = this.metadataHandler.bind(this);\r\n\r\n        /**\r\n         * The internal crop data object, as used by `setCrop` and passed to the `Frame.setCropUVs` method.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_crop\r\n         * @type {object}\r\n         * @private\r\n         * @since 3.20.0\r\n         */\r\n        this._crop = this.resetCropObject();\r\n\r\n        /**\r\n         * An object containing in and out markers for sequence playback.\r\n         *\r\n         * @name Phaser.GameObjects.Video#markers\r\n         * @type {any}\r\n         * @since 3.20.0\r\n         */\r\n        this.markers = {};\r\n\r\n        /**\r\n         * The in marker.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_markerIn\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.20.0\r\n         */\r\n        this._markerIn = 0;\r\n\r\n        /**\r\n         * The out marker.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_markerOut\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.20.0\r\n         */\r\n        this._markerOut = 0;\r\n\r\n        /**\r\n         * Are we playing a marked segment of the video?\r\n         *\r\n         * @name Phaser.GameObjects.Video#_playingMarker\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.60.0\r\n         */\r\n        this._playingMarker = false;\r\n\r\n        /**\r\n         * The previous frames mediaTime.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_lastUpdate\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.60.0\r\n        */\r\n        this._lastUpdate = 0;\r\n\r\n        /**\r\n         * The key of the current video as stored in the Video cache.\r\n         *\r\n         * If the video did not come from the cache this will be an empty string.\r\n         *\r\n         * @name Phaser.GameObjects.Video#cacheKey\r\n         * @type {string}\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.cacheKey = '';\r\n\r\n        /**\r\n         * Is the video currently seeking?\r\n         *\r\n         * This is set to `true` when the `seeking` event is fired,\r\n         * and set to `false` when the `seeked` event is fired.\r\n         *\r\n         * @name Phaser.GameObjects.Video#isSeeking\r\n         * @type {boolean}\r\n         * @readonly\r\n         * @since 3.60.0\r\n         */\r\n        this.isSeeking = false;\r\n\r\n        /**\r\n         * Has Video.play been called? This is reset if a new Video is loaded.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_playCalled\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.60.0\r\n         */\r\n        this._playCalled = false;\r\n\r\n        /**\r\n         * Has Video.getFirstFrame been called? This is reset if a new Video is loaded or played.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_getFrame\r\n         * @type {boolean}\r\n         * @private\r\n         * @since 3.85.0\r\n         */\r\n        this._getFrame = false;\r\n\r\n        /**\r\n         * The Callback ID returned by Request Video Frame.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_rfvCallbackId\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.60.0\r\n         */\r\n        this._rfvCallbackId = 0;\r\n\r\n        var game = scene.sys.game;\r\n\r\n        /**\r\n         * A reference to Device.Video.\r\n         *\r\n         * @name Phaser.GameObjects.Video#_device\r\n         * @type {string[]}\r\n         * @private\r\n         * @since 3.60.0\r\n         */\r\n        this._device = game.device.video;\r\n\r\n        this.setPosition(x, y);\r\n        this.setSize(256, 256);\r\n        this.initPipeline();\r\n        this.initPostPipeline(true);\r\n\r\n        game.events.on(GameEvents.PAUSE, this.globalPause, this);\r\n        game.events.on(GameEvents.RESUME, this.globalResume, this);\r\n\r\n        var sound = scene.sys.sound;\r\n\r\n        if (sound)\r\n        {\r\n            sound.on(SoundEvents.GLOBAL_MUTE, this.globalMute, this);\r\n        }\r\n\r\n        if (key)\r\n        {\r\n            this.load(key);\r\n        }\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    addedToScene: function ()\r\n    {\r\n        this.scene.sys.updateList.add(this);\r\n    },\r\n\r\n    //  Overrides Game Object method\r\n    removedFromScene: function ()\r\n    {\r\n        this.scene.sys.updateList.remove(this);\r\n    },\r\n\r\n    /**\r\n     * Loads a Video from the Video Cache, ready for playback with the `Video.play` method.\r\n     *\r\n     * If a video is already playing, this method allows you to change the source of the current video element.\r\n     * It works by first stopping the current video and then starts playback of the new source through the existing video element.\r\n     *\r\n     * The reason you may wish to do this is because videos that require interaction to unlock, remain in an unlocked\r\n     * state, even if you change the source of the video. By changing the source to a new video you avoid having to\r\n     * go through the unlock process again.\r\n     *\r\n     * @method Phaser.GameObjects.Video#load\r\n     * @since 3.60.0\r\n     *\r\n     * @param {string} key - The key of the Video this Game Object will play, as stored in the Video Cache.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    load: function (key)\r\n    {\r\n        var video = this.scene.sys.cache.video.get(key);\r\n\r\n        if (video)\r\n        {\r\n            this.cacheKey = key;\r\n\r\n            this.loadHandler(video.url, video.noAudio, video.crossOrigin);\r\n        }\r\n        else\r\n        {\r\n            console.warn('No video in cache for key: ' + key);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * This method allows you to change the source of the current video element. It works by first stopping the\r\n     * current video, if playing. Then deleting the video texture, if one has been created. Finally, it makes a\r\n     * new video texture and starts playback of the new source through the existing video element.\r\n     *\r\n     * The reason you may wish to do this is because videos that require interaction to unlock, remain in an unlocked\r\n     * state, even if you change the source of the video. By changing the source to a new video you avoid having to\r\n     * go through the unlock process again.\r\n     *\r\n     * @method Phaser.GameObjects.Video#changeSource\r\n     * @since 3.20.0\r\n     *\r\n     * @param {string} key - The key of the Video this Game Object will swap to playing, as stored in the Video Cache.\r\n     * @param {boolean} [autoplay=true] - Should the video start playing immediately, once the swap is complete?\r\n     * @param {boolean} [loop=false] - Should the video loop automatically when it reaches the end? Please note that not all browsers support _seamless_ video looping for all encoding formats.\r\n     * @param {number} [markerIn] - Optional in marker time, in seconds, for playback of a sequence of the video.\r\n     * @param {number} [markerOut] - Optional out marker time, in seconds, for playback of a sequence of the video.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    changeSource: function (key, autoplay, loop, markerIn, markerOut)\r\n    {\r\n        if (autoplay === undefined) { autoplay = true; }\r\n        if (loop === undefined) { loop = false; }\r\n\r\n        if (this.cacheKey !== key)\r\n        {\r\n            this.load(key);\r\n\r\n            if (autoplay)\r\n            {\r\n                this.play(loop, markerIn, markerOut);\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Returns the key of the currently played video, as stored in the Video Cache.\r\n     *\r\n     * If the video did not come from the cache this will return an empty string.\r\n     *\r\n     * @method Phaser.GameObjects.Video#getVideoKey\r\n     * @since 3.20.0\r\n     *\r\n     * @return {string} The key of the video being played from the Video Cache, if any.\r\n     */\r\n    getVideoKey: function ()\r\n    {\r\n        return this.cacheKey;\r\n    },\r\n\r\n    /**\r\n     * Loads a Video from the given URL, ready for playback with the `Video.play` method.\r\n     *\r\n     * If a video is already playing, this method allows you to change the source of the current video element.\r\n     * It works by first stopping the current video and then starts playback of the new source through the existing video element.\r\n     *\r\n     * The reason you may wish to do this is because videos that require interaction to unlock, remain in an unlocked\r\n     * state, even if you change the source of the video. By changing the source to a new video you avoid having to\r\n     * go through the unlock process again.\r\n     *\r\n     * @method Phaser.GameObjects.Video#loadURL\r\n     * @since 3.60.0\r\n     *\r\n     * @param {(string|string[]|Phaser.Types.Loader.FileTypes.VideoFileURLConfig|Phaser.Types.Loader.FileTypes.VideoFileURLConfig[])} [urls] - The absolute or relative URL to load the video files from.\r\n     * @param {boolean} [noAudio=false] - Does the video have an audio track? If not you can enable auto-playing on it.\r\n     * @param {string} [crossOrigin] - The value to use for the `crossOrigin` property in the video load request.  Either undefined, `anonymous` or `use-credentials`. If no value is given, `crossorigin` will not be set in the request.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    loadURL: function (urls, noAudio, crossOrigin)\r\n    {\r\n        if (noAudio === undefined) { noAudio = false; }\r\n\r\n        var urlConfig = this._device.getVideoURL(urls);\r\n\r\n        if (!urlConfig)\r\n        {\r\n            console.warn('No supported video format found for ' + urls);\r\n        }\r\n        else\r\n        {\r\n            this.cacheKey = '';\r\n\r\n            this.loadHandler(urlConfig.url, noAudio, crossOrigin);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Loads a Video from the given MediaStream object, ready for playback with the `Video.play` method.\r\n     *\r\n     * @method Phaser.GameObjects.Video#loadMediaStream\r\n     * @since 3.50.0\r\n     *\r\n     * @param {string} stream - The MediaStream object.\r\n     * @param {boolean} [noAudio=false] - Does the video have an audio track? If not you can enable auto-playing on it.\r\n     * @param {string} [crossOrigin] - The value to use for the `crossOrigin` property in the video load request.  Either undefined, `anonymous` or `use-credentials`. If no value is given, `crossorigin` will not be set in the request.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    loadMediaStream: function (stream, noAudio, crossOrigin)\r\n    {\r\n        return this.loadHandler(null, noAudio, crossOrigin, stream);\r\n    },\r\n\r\n    /**\r\n     * Internal method that loads a Video from the given URL, ready for playback with the\r\n     * `Video.play` method.\r\n     *\r\n     * Normally you don't call this method directly, but instead use the `Video.loadURL` method,\r\n     * or the `Video.load` method if you have preloaded the video.\r\n     *\r\n     * Calling this method will skip checking if the browser supports the given format in\r\n     * the URL, where-as the other two methods enforce these checks.\r\n     *\r\n     * @method Phaser.GameObjects.Video#loadHandler\r\n     * @since 3.60.0\r\n     *\r\n     * @param {string} [url] - The absolute or relative URL to load the video file from. Set to `null` if passing in a MediaStream object.\r\n     * @param {boolean} [noAudio] - Does the video have an audio track? If not you can enable auto-playing on it.\r\n     * @param {string} [crossOrigin] - The value to use for the `crossOrigin` property in the video load request.  Either undefined, `anonymous` or `use-credentials`. If no value is given, `crossorigin` will not be set in the request.\r\n     * @param {string} [stream] - A MediaStream object if this is playing a stream instead of a file.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    loadHandler: function (url, noAudio, crossOrigin, stream)\r\n    {\r\n        if (!noAudio) { noAudio = false; }\r\n\r\n        var video = this.video;\r\n\r\n        if (video)\r\n        {\r\n            //  Re-use the existing video element\r\n\r\n            this.removeLoadEventHandlers();\r\n\r\n            this.stop();\r\n        }\r\n        else\r\n        {\r\n            video = document.createElement('video');\r\n\r\n            video.controls = false;\r\n\r\n            video.setAttribute('playsinline', 'playsinline');\r\n            video.setAttribute('preload', 'auto');\r\n            video.setAttribute('disablePictureInPicture', 'true');\r\n        }\r\n\r\n        if (noAudio)\r\n        {\r\n            video.muted = true;\r\n            video.defaultMuted = true;\r\n\r\n            video.setAttribute('autoplay', 'autoplay');\r\n        }\r\n        else\r\n        {\r\n            video.muted = false;\r\n            video.defaultMuted = false;\r\n\r\n            video.removeAttribute('autoplay');\r\n        }\r\n\r\n        if (!crossOrigin)\r\n        {\r\n            video.removeAttribute('crossorigin');\r\n        }\r\n        else\r\n        {\r\n            video.setAttribute('crossorigin', crossOrigin);\r\n        }\r\n\r\n        if (stream)\r\n        {\r\n            if ('srcObject' in video)\r\n            {\r\n                try\r\n                {\r\n                    video.srcObject = stream;\r\n                }\r\n                catch (err)\r\n                {\r\n                    if (err.name !== 'TypeError')\r\n                    {\r\n                        throw err;\r\n                    }\r\n\r\n                    video.src = URL.createObjectURL(stream);\r\n                }\r\n            }\r\n            else\r\n            {\r\n                video.src = URL.createObjectURL(stream);\r\n            }\r\n        }\r\n        else\r\n        {\r\n            video.src = url;\r\n        }\r\n\r\n        this.retry = 0;\r\n        this.video = video;\r\n\r\n        this._playCalled = false;\r\n\r\n        video.load();\r\n\r\n        this.addLoadEventHandlers();\r\n\r\n        var texture = this.scene.sys.textures.get(this._key);\r\n\r\n        this.setTexture(texture);\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * This method handles the Request Video Frame callback.\r\n     *\r\n     * It is called by the browser when a new video frame is ready to be displayed.\r\n     *\r\n     * It's also responsible for the creation of the video texture, if it doesn't\r\n     * already exist. If it does, it updates the texture as required.\r\n     *\r\n     * For more details about the Request Video Frame callback, see:\r\n     * https://web.dev/requestvideoframecallback-rvfc\r\n     *\r\n     * @method Phaser.GameObjects.Video#requestVideoFrame\r\n     * @fires Phaser.GameObjects.Events#VIDEO_CREATED\r\n     * @fires Phaser.GameObjects.Events#VIDEO_LOOP\r\n     * @fires Phaser.GameObjects.Events#VIDEO_COMPLETE\r\n     * @fires Phaser.GameObjects.Events#VIDEO_PLAY\r\n     * @fires Phaser.GameObjects.Events#VIDEO_TEXTURE\r\n     * @since 3.60.0\r\n     *\r\n     * @param {DOMHighResTimeStamp} now - The current time in milliseconds.\r\n     * @param {VideoFrameCallbackMetadata} metadata - Useful metadata about the video frame that was most recently presented for composition. See https://wicg.github.io/video-rvfc/#video-frame-metadata-callback\r\n     */\r\n    requestVideoFrame: function (now, metadata)\r\n    {\r\n        var video = this.video;\r\n\r\n        if (!video)\r\n        {\r\n            return;\r\n        }\r\n\r\n        var width = metadata.width;\r\n        var height = metadata.height;\r\n\r\n        var texture = this.videoTexture;\r\n        var textureSource = this.videoTextureSource;\r\n        var newVideo = (!texture || textureSource.source !== video);\r\n\r\n        if (newVideo)\r\n        {\r\n            //  First frame of a new video\r\n            this._codePaused = video.paused;\r\n            this._codeMuted = video.muted;\r\n\r\n            if (!texture)\r\n            {\r\n                texture = this.scene.sys.textures.create(this._key, video, width, height);\r\n\r\n                texture.add('__BASE', 0, 0, 0, width, height);\r\n\r\n                this.setTexture(texture);\r\n\r\n                this.videoTexture = texture;\r\n                this.videoTextureSource = texture.source[0];\r\n\r\n                this.videoTextureSource.setFlipY(this.flipY);\r\n\r\n                this.emit(Events.VIDEO_TEXTURE, this, texture);\r\n            }\r\n            else\r\n            {\r\n                //  Re-use the existing texture\r\n                textureSource.source = video;\r\n                textureSource.width = width;\r\n                textureSource.height = height;\r\n\r\n                //  Resize base frame\r\n                texture.get().setSize(width, height);\r\n            }\r\n\r\n            this.setSizeToFrame();\r\n            this.updateDisplayOrigin();\r\n        }\r\n        else\r\n        {\r\n            textureSource.update();\r\n        }\r\n\r\n        this.isStalled = false;\r\n\r\n        this.metadata = metadata;\r\n\r\n        var currentTime = metadata.mediaTime;\r\n\r\n        if (newVideo)\r\n        {\r\n            this._lastUpdate = currentTime;\r\n\r\n            this.emit(Events.VIDEO_CREATED, this, width, height);\r\n\r\n            if (!this.frameReady)\r\n            {\r\n                this.frameReady = true;\r\n\r\n                this.emit(Events.VIDEO_PLAY, this);\r\n            }\r\n        }\r\n\r\n        if (this._playingMarker)\r\n        {\r\n            if (currentTime >= this._markerOut)\r\n            {\r\n                if (video.loop)\r\n                {\r\n                    video.currentTime = this._markerIn;\r\n\r\n                    this.emit(Events.VIDEO_LOOP, this);\r\n                }\r\n                else\r\n                {\r\n                    this.stop(false);\r\n\r\n                    this.emit(Events.VIDEO_COMPLETE, this);\r\n                }\r\n            }\r\n        }\r\n        else if (currentTime < this._lastUpdate)\r\n        {\r\n            this.emit(Events.VIDEO_LOOP, this);\r\n        }\r\n\r\n        this._lastUpdate = currentTime;\r\n\r\n        if (this._getFrame)\r\n        {\r\n            this.removeEventHandlers();\r\n\r\n            video.pause();\r\n\r\n            this._getFrame = false;\r\n        }\r\n        else\r\n        {\r\n            this._rfvCallbackId = this.video.requestVideoFrameCallback(this.requestVideoFrame.bind(this));\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Starts this video playing.\r\n     *\r\n     * If the video is already playing, or has been queued to play with `changeSource` then this method just returns.\r\n     *\r\n     * Videos can only autoplay if the browser has been unlocked. This happens if you have interacted with the browser, i.e.\r\n     * by clicking on it or pressing a key, or due to server settings. The policies that control autoplaying are vast and\r\n     * vary between browser. You can read more here: https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide\r\n     *\r\n     * If your video doesn't contain any audio, then set the `noAudio` parameter to `true` when the video is loaded,\r\n     * and it will often allow the video to play immediately:\r\n     *\r\n     * ```javascript\r\n     * preload () {\r\n     *   this.load.video('pixar', 'nemo.mp4', true);\r\n     * }\r\n     * ```\r\n     *\r\n     * The 3rd parameter in the load call tells Phaser that the video doesn't contain any audio tracks. Video without\r\n     * audio can autoplay without requiring a user interaction. Video with audio cannot do this unless it satisfies\r\n     * the browsers MEI settings. See the MDN Autoplay Guide for details.\r\n     *\r\n     * If you need audio in your videos, then you'll have to consider the fact that the video cannot start playing until the\r\n     * user has interacted with the browser, into your game flow.\r\n     *\r\n     * @method Phaser.GameObjects.Video#play\r\n     * @since 3.20.0\r\n     *\r\n     * @param {boolean} [loop=false] - Should the video loop automatically when it reaches the end? Please note that not all browsers support _seamless_ video looping for all encoding formats.\r\n     * @param {number} [markerIn] - Optional in marker time, in seconds, for playback of a sequence of the video.\r\n     * @param {number} [markerOut] - Optional out marker time, in seconds, for playback of a sequence of the video.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    play: function (loop, markerIn, markerOut)\r\n    {\r\n        if (markerIn === undefined) { markerIn = -1; }\r\n        if (markerOut === undefined) { markerOut = MATH_CONST.MAX_SAFE_INTEGER; }\r\n\r\n        var video = this.video;\r\n\r\n        if (!video || this.isPlaying())\r\n        {\r\n            if (!video)\r\n            {\r\n                console.warn('Video not loaded');\r\n            }\r\n\r\n            return this;\r\n        }\r\n\r\n        //  We can reset these each time play is called, even if the video hasn't started yet\r\n\r\n        if (loop === undefined) { loop = video.loop; }\r\n\r\n        video.loop = loop;\r\n\r\n        this._markerIn = markerIn;\r\n        this._markerOut = markerOut;\r\n        this._playingMarker = (markerIn > -1 && markerOut > markerIn && markerOut < MATH_CONST.MAX_SAFE_INTEGER);\r\n\r\n        //  But we go no further if play has already been called\r\n\r\n        if (!this._playCalled)\r\n        {\r\n            this._getFrame = false;\r\n\r\n            this._rfvCallbackId = video.requestVideoFrameCallback(this.requestVideoFrame.bind(this));\r\n\r\n            this._playCalled = true;\r\n\r\n            this.createPlayPromise();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Attempts to get the first frame of the video by running the `requestVideoFrame` callback once,\r\n     * then stopping. This is useful if you need to grab the first frame of the video to display behind\r\n     * a 'play' button, without actually calling the 'play' method.\r\n     *\r\n     * If the video is already playing, or has been queued to play with `changeSource` then this method just returns.\r\n     *\r\n     * @method Phaser.GameObjects.Video#getFirstFrame\r\n     * @since 3.85.0\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    getFirstFrame: function ()\r\n    {\r\n        var video = this.video;\r\n\r\n        if (!video || this.isPlaying())\r\n        {\r\n            if (!video)\r\n            {\r\n                console.warn('Video not loaded');\r\n            }\r\n\r\n            return this;\r\n        }\r\n\r\n        if (!this._playCalled)\r\n        {\r\n            this._getFrame = true;\r\n\r\n            this._rfvCallbackId = video.requestVideoFrameCallback(this.requestVideoFrame.bind(this));\r\n\r\n            this.createPlayPromise();\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Adds the loading specific event handlers to the video element.\r\n     *\r\n     * @method Phaser.GameObjects.Video#addLoadEventHandlers\r\n     * @since 3.60.0\r\n     */\r\n    addLoadEventHandlers: function ()\r\n    {\r\n        var video = this.video;\r\n\r\n        if (video)\r\n        {\r\n            video.addEventListener('error', this._loadCallbackHandler);\r\n            video.addEventListener('abort', this._loadCallbackHandler);\r\n            video.addEventListener('loadedmetadata', this._metadataCallbackHandler);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Removes the loading specific event handlers from the video element.\r\n     *\r\n     * @method Phaser.GameObjects.Video#removeLoadEventHandlers\r\n     * @since 3.60.0\r\n     */\r\n    removeLoadEventHandlers: function ()\r\n    {\r\n        var video = this.video;\r\n\r\n        if (video)\r\n        {\r\n            video.removeEventListener('error', this._loadCallbackHandler);\r\n            video.removeEventListener('abort', this._loadCallbackHandler);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Adds the playback specific event handlers to the video element.\r\n     *\r\n     * @method Phaser.GameObjects.Video#addEventHandlers\r\n     * @since 3.60.0\r\n     */\r\n    addEventHandlers: function ()\r\n    {\r\n        var video = this.video;\r\n\r\n        //  Set these _after_ calling `video.play` or they don't fire\r\n        //  (really useful, thanks browsers!)\r\n\r\n        if (video)\r\n        {\r\n            var callbacks = this._callbacks;\r\n\r\n            for (var callback in callbacks)\r\n            {\r\n                video.addEventListener(callback, callbacks[callback]);\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Removes the playback specific event handlers from the video element.\r\n     *\r\n     * @method Phaser.GameObjects.Video#removeEventHandlers\r\n     * @since 3.60.0\r\n     */\r\n    removeEventHandlers: function ()\r\n    {\r\n        var video = this.video;\r\n\r\n        if (video)\r\n        {\r\n            var callbacks = this._callbacks;\r\n\r\n            for (var callback in callbacks)\r\n            {\r\n                video.removeEventListener(callback, callbacks[callback]);\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Creates the video.play promise and adds the success and error handlers to it.\r\n     *\r\n     * Not all browsers support the video.play promise, so this method will fall back to\r\n     * the old-school way of handling the video.play call.\r\n     *\r\n     * See https://developer.mozilla.org/en-US/docs/Web/API/HTMLMediaElement/play#browser_compatibility for details.\r\n     *\r\n     * @method Phaser.GameObjects.Video#createPlayPromise\r\n     * @since 3.60.0\r\n     *\r\n     * @param {boolean} [catchError=true] - Should the error be caught and the video marked as failed to play?\r\n     */\r\n    createPlayPromise: function (catchError)\r\n    {\r\n        if (catchError === undefined) { catchError = true; }\r\n\r\n        var video = this.video;\r\n\r\n        var playPromise = video.play();\r\n\r\n        if (playPromise !== undefined)\r\n        {\r\n            var success = this.playSuccess.bind(this);\r\n            var error = this.playError.bind(this);\r\n\r\n            if (!catchError)\r\n            {\r\n                var _this = this;\r\n\r\n                error = function ()\r\n                {\r\n                    _this.failedPlayAttempts++;\r\n                };\r\n            }\r\n\r\n            playPromise.then(success).catch(error);\r\n        }\r\n        else\r\n        {\r\n            //  Old-school fallback here for pre-2019 browsers\r\n            video.addEventListener('playing', this._callbacks.legacy);\r\n\r\n            if (!catchError)\r\n            {\r\n                this.failedPlayAttempts++;\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Adds a sequence marker to this video.\r\n     *\r\n     * Markers allow you to split a video up into sequences, delineated by a start and end time, given in seconds.\r\n     *\r\n     * You can then play back specific markers via the `playMarker` method.\r\n     *\r\n     * Note that marker timing is _not_ frame-perfect. You should construct your videos in such a way that you allow for\r\n     * plenty of extra padding before and after each sequence to allow for discrepancies in browser seek and currentTime accuracy.\r\n     *\r\n     * See https://github.com/w3c/media-and-entertainment/issues/4 for more details about this issue.\r\n     *\r\n     * @method Phaser.GameObjects.Video#addMarker\r\n     * @since 3.20.0\r\n     *\r\n     * @param {string} key - A unique name to give this marker.\r\n     * @param {number} markerIn - The time, in seconds, representing the start of this marker.\r\n     * @param {number} markerOut - The time, in seconds, representing the end of this marker.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    addMarker: function (key, markerIn, markerOut)\r\n    {\r\n        if (!isNaN(markerIn) && markerIn >= 0 && !isNaN(markerOut) && markerOut > markerIn)\r\n        {\r\n            this.markers[key] = [ markerIn, markerOut ];\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Plays a pre-defined sequence in this video.\r\n     *\r\n     * Markers allow you to split a video up into sequences, delineated by a start and end time, given in seconds and\r\n     * specified via the `addMarker` method.\r\n     *\r\n     * Note that marker timing is _not_ frame-perfect. You should construct your videos in such a way that you allow for\r\n     * plenty of extra padding before and after each sequence to allow for discrepancies in browser seek and currentTime accuracy.\r\n     *\r\n     * See https://github.com/w3c/media-and-entertainment/issues/4 for more details about this issue.\r\n     *\r\n     * @method Phaser.GameObjects.Video#playMarker\r\n     * @since 3.20.0\r\n     *\r\n     * @param {string} key - The name of the marker sequence to play.\r\n     * @param {boolean} [loop=false] - Should the video loop automatically when it reaches the end? Please note that not all browsers support _seamless_ video looping for all encoding formats.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    playMarker: function (key, loop)\r\n    {\r\n        var marker = this.markers[key];\r\n\r\n        if (marker)\r\n        {\r\n            this.play(loop, marker[0], marker[1]);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes a previously set marker from this video.\r\n     *\r\n     * If the marker is currently playing it will _not_ stop playback.\r\n     *\r\n     * @method Phaser.GameObjects.Video#removeMarker\r\n     * @since 3.20.0\r\n     *\r\n     * @param {string} key - The name of the marker to remove.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    removeMarker: function (key)\r\n    {\r\n        delete this.markers[key];\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Takes a snapshot of the current frame of the video and renders it to a CanvasTexture object,\r\n     * which is then returned. You can optionally resize the grab by passing a width and height.\r\n     *\r\n     * This method returns a reference to the `Video.snapshotTexture` object. Calling this method\r\n     * multiple times will overwrite the previous snapshot with the most recent one.\r\n     *\r\n     * @method Phaser.GameObjects.Video#snapshot\r\n     * @since 3.20.0\r\n     *\r\n     * @param {number} [width] - The width of the resulting CanvasTexture.\r\n     * @param {number} [height] - The height of the resulting CanvasTexture.\r\n     *\r\n     * @return {Phaser.Textures.CanvasTexture}\r\n     */\r\n    snapshot: function (width, height)\r\n    {\r\n        if (width === undefined) { width = this.width; }\r\n        if (height === undefined) { height = this.height; }\r\n\r\n        return this.snapshotArea(0, 0, this.width, this.height, width, height);\r\n    },\r\n\r\n    /**\r\n     * Takes a snapshot of the specified area of the current frame of the video and renders it to a CanvasTexture object,\r\n     * which is then returned. You can optionally resize the grab by passing a different `destWidth` and `destHeight`.\r\n     *\r\n     * This method returns a reference to the `Video.snapshotTexture` object. Calling this method\r\n     * multiple times will overwrite the previous snapshot with the most recent one.\r\n     *\r\n     * @method Phaser.GameObjects.Video#snapshotArea\r\n     * @since 3.20.0\r\n     *\r\n     * @param {number} [x=0] - The horizontal location of the top-left of the area to grab from.\r\n     * @param {number} [y=0] - The vertical location of the top-left of the area to grab from.\r\n     * @param {number} [srcWidth] - The width of area to grab from the video. If not given it will grab the full video dimensions.\r\n     * @param {number} [srcHeight] - The height of area to grab from the video. If not given it will grab the full video dimensions.\r\n     * @param {number} [destWidth] - The destination width of the grab, allowing you to resize it.\r\n     * @param {number} [destHeight] - The destination height of the grab, allowing you to resize it.\r\n     *\r\n     * @return {Phaser.Textures.CanvasTexture}\r\n     */\r\n    snapshotArea: function (x, y, srcWidth, srcHeight, destWidth, destHeight)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (srcWidth === undefined) { srcWidth = this.width; }\r\n        if (srcHeight === undefined) { srcHeight = this.height; }\r\n        if (destWidth === undefined) { destWidth = srcWidth; }\r\n        if (destHeight === undefined) { destHeight = srcHeight; }\r\n\r\n        var video = this.video;\r\n        var snap = this.snapshotTexture;\r\n\r\n        if (!snap)\r\n        {\r\n            snap = this.scene.sys.textures.createCanvas(UUID(), destWidth, destHeight);\r\n\r\n            this.snapshotTexture = snap;\r\n\r\n            if (video)\r\n            {\r\n                snap.context.drawImage(video, x, y, srcWidth, srcHeight, 0, 0, destWidth, destHeight);\r\n            }\r\n        }\r\n        else\r\n        {\r\n            snap.setSize(destWidth, destHeight);\r\n\r\n            if (video)\r\n            {\r\n                snap.context.drawImage(video, x, y, srcWidth, srcHeight, 0, 0, destWidth, destHeight);\r\n            }\r\n        }\r\n\r\n        return snap.update();\r\n    },\r\n\r\n    /**\r\n     * Stores a copy of this Videos `snapshotTexture` in the Texture Manager using the given key.\r\n     *\r\n     * This texture is created when the `snapshot` or `snapshotArea` methods are called.\r\n     *\r\n     * After doing this, any texture based Game Object, such as a Sprite, can use the contents of the\r\n     * snapshot by using the texture key:\r\n     *\r\n     * ```javascript\r\n     * var vid = this.add.video(0, 0, 'intro');\r\n     *\r\n     * vid.snapshot();\r\n     *\r\n     * vid.saveSnapshotTexture('doodle');\r\n     *\r\n     * this.add.image(400, 300, 'doodle');\r\n     * ```\r\n     *\r\n     * Updating the contents of the `snapshotTexture`, for example by calling `snapshot` again,\r\n     * will automatically update _any_ Game Object that is using it as a texture.\r\n     * Calling `saveSnapshotTexture` again will not save another copy of the same texture,\r\n     * it will just rename the existing one.\r\n     *\r\n     * By default it will create a single base texture. You can add frames to the texture\r\n     * by using the `Texture.add` method. After doing this, you can then allow Game Objects\r\n     * to use a specific frame.\r\n     *\r\n     * @method Phaser.GameObjects.Video#saveSnapshotTexture\r\n     * @since 3.20.0\r\n     *\r\n     * @param {string} key - The unique key to store the texture as within the global Texture Manager.\r\n     *\r\n     * @return {Phaser.Textures.CanvasTexture} The Texture that was saved.\r\n     */\r\n    saveSnapshotTexture: function (key)\r\n    {\r\n        if (this.snapshotTexture)\r\n        {\r\n            this.scene.sys.textures.renameTexture(this.snapshotTexture.key, key);\r\n        }\r\n        else\r\n        {\r\n            this.snapshotTexture = this.scene.sys.textures.createCanvas(key, this.width, this.height);\r\n        }\r\n\r\n        return this.snapshotTexture;\r\n    },\r\n\r\n    /**\r\n     * This internal method is called automatically if the playback Promise resolves successfully.\r\n     *\r\n     * @method Phaser.GameObjects.Video#playSuccess\r\n     * @fires Phaser.GameObjects.Events#VIDEO_UNLOCKED\r\n     * @since 3.60.0\r\n     */\r\n    playSuccess: function ()\r\n    {\r\n        if (!this._playCalled)\r\n        {\r\n            //  The stop method has been called but the Promise has resolved\r\n            //  after this, so we need to just abort.\r\n            return;\r\n        }\r\n\r\n        this.addEventHandlers();\r\n\r\n        this._codePaused = false;\r\n\r\n        if (this.touchLocked)\r\n        {\r\n            this.touchLocked = false;\r\n\r\n            this.emit(Events.VIDEO_UNLOCKED, this);\r\n        }\r\n\r\n        var sound = this.scene.sys.sound;\r\n\r\n        if (sound && sound.mute)\r\n        {\r\n            //  Mute will be set based on the global mute state of the Sound Manager (if there is one)\r\n            this.setMute(true);\r\n        }\r\n\r\n        if (this._markerIn > -1)\r\n        {\r\n            this.video.currentTime = this._markerIn;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * This internal method is called automatically if the playback Promise fails to resolve.\r\n     *\r\n     * @method Phaser.GameObjects.Video#playError\r\n     * @fires Phaser.GameObjects.Events#VIDEO_ERROR\r\n     * @fires Phaser.GameObjects.Events#VIDEO_UNSUPPORTED\r\n     * @fires Phaser.GameObjects.Events#VIDEO_LOCKED\r\n     * @since 3.60.0\r\n     *\r\n     * @param {DOMException} error - The Promise DOM Exception error.\r\n     */\r\n    playError: function (error)\r\n    {\r\n        var name = error.name;\r\n\r\n        if (name === 'NotAllowedError')\r\n        {\r\n            this.touchLocked = true;\r\n            this.playWhenUnlocked = true;\r\n            this.failedPlayAttempts = 1;\r\n\r\n            this.emit(Events.VIDEO_LOCKED, this);\r\n        }\r\n        else if (name === 'NotSupportedError')\r\n        {\r\n            this.stop(false);\r\n\r\n            this.emit(Events.VIDEO_UNSUPPORTED, this, error);\r\n        }\r\n        else\r\n        {\r\n            this.stop(false);\r\n\r\n            this.emit(Events.VIDEO_ERROR, this, error);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Called when the video emits a `playing` event.\r\n     *\r\n     * This is the legacy handler for browsers that don't support Promise based playback.\r\n     *\r\n     * @method Phaser.GameObjects.Video#legacyPlayHandler\r\n     * @since 3.60.0\r\n     */\r\n    legacyPlayHandler: function ()\r\n    {\r\n        var video = this.video;\r\n\r\n        if (video)\r\n        {\r\n            this.playSuccess();\r\n\r\n            video.removeEventListener('playing', this._callbacks.legacy);\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Called when the video emits a `playing` event.\r\n     *\r\n     * @method Phaser.GameObjects.Video#playingHandler\r\n     * @fires Phaser.GameObjects.Events#VIDEO_PLAYING\r\n     * @since 3.60.0\r\n     */\r\n    playingHandler: function ()\r\n    {\r\n        this.isStalled = false;\r\n\r\n        this.emit(Events.VIDEO_PLAYING, this);\r\n    },\r\n\r\n    /**\r\n     * This internal method is called automatically if the video fails to load.\r\n     *\r\n     * @method Phaser.GameObjects.Video#loadErrorHandler\r\n     * @fires Phaser.GameObjects.Events#VIDEO_ERROR\r\n     * @since 3.20.0\r\n     *\r\n     * @param {Event} event - The error Event.\r\n     */\r\n    loadErrorHandler: function (event)\r\n    {\r\n        this.stop(false);\r\n\r\n        this.emit(Events.VIDEO_ERROR, this, event);\r\n    },\r\n\r\n    /**\r\n     * This internal method is called automatically when the video metadata is available.\r\n     *\r\n     * @method Phaser.GameObjects.Video#metadataHandler\r\n     * @fires Phaser.GameObjects.Events#VIDEO_METADATA\r\n     * @since 3.80.0\r\n     *\r\n     * @param {Event} event - The loadedmetadata Event.\r\n     */\r\n    metadataHandler: function (event)\r\n    {\r\n        this.emit(Events.VIDEO_METADATA, this, event);\r\n    },\r\n\r\n    /**\r\n     * Sets the size of this Game Object to be that of the given Frame.\r\n     *\r\n     * This will not change the size that the Game Object is rendered in-game.\r\n     * For that you need to either set the scale of the Game Object (`setScale`) or call the\r\n     * `setDisplaySize` method, which is the same thing as changing the scale but allows you\r\n     * to do so by giving pixel values.\r\n     *\r\n     * If you have enabled this Game Object for input, changing the size will _not_ change the\r\n     * size of the hit area. To do this you should adjust the `input.hitArea` object directly.\r\n     *\r\n     * @method Phaser.GameObjects.Video#setSizeToFrame\r\n     * @since 3.0.0\r\n     *\r\n     * @param {Phaser.Textures.Frame|boolean} [frame] - The frame to base the size of this Game Object on.\r\n     *\r\n     * @return {this} This Game Object instance.\r\n     */\r\n    setSizeToFrame: function (frame)\r\n    {\r\n        if (!frame) { frame = this.frame; }\r\n\r\n        this.width = frame.realWidth;\r\n        this.height = frame.realHeight;\r\n\r\n        if (this.scaleX !== 1)\r\n        {\r\n            this.scaleX = this.displayWidth / this.width;\r\n        }\r\n\r\n        if (this.scaleY !== 1)\r\n        {\r\n            this.scaleY = this.displayHeight / this.height;\r\n        }\r\n\r\n        var input = this.input;\r\n\r\n        if (input && !input.customHitArea)\r\n        {\r\n            input.hitArea.width = this.width;\r\n            input.hitArea.height = this.height;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * This internal method is called automatically if the video stalls, for whatever reason.\r\n     *\r\n     * @method Phaser.GameObjects.Video#stalledHandler\r\n     * @fires Phaser.GameObjects.Events#VIDEO_STALLED\r\n     * @since 3.60.0\r\n     *\r\n     * @param {Event} event - The error Event.\r\n     */\r\n    stalledHandler: function (event)\r\n    {\r\n        this.isStalled = true;\r\n\r\n        this.emit(Events.VIDEO_STALLED, this, event);\r\n    },\r\n\r\n    /**\r\n     * Called when the video completes playback, i.e. reaches an `ended` state.\r\n     *\r\n     * This will never happen if the video is coming from a live stream, where the duration is `Infinity`.\r\n     *\r\n     * @method Phaser.GameObjects.Video#completeHandler\r\n     * @fires Phaser.GameObjects.Events#VIDEO_COMPLETE\r\n     * @since 3.20.0\r\n     */\r\n    completeHandler: function ()\r\n    {\r\n        this._playCalled = false;\r\n\r\n        this.emit(Events.VIDEO_COMPLETE, this);\r\n    },\r\n\r\n    /**\r\n     * The internal update step.\r\n     *\r\n     * @method Phaser.GameObjects.Video#preUpdate\r\n     * @private\r\n     * @since 3.20.0\r\n     *\r\n     * @param {number} time - The current timestamp.\r\n     * @param {number} delta - The delta time in ms since the last frame.\r\n     */\r\n    preUpdate: function (time, delta)\r\n    {\r\n        var video = this.video;\r\n\r\n        if (!video || !this._playCalled)\r\n        {\r\n            return;\r\n        }\r\n\r\n        if (this.touchLocked && this.playWhenUnlocked)\r\n        {\r\n            this.retry += delta;\r\n\r\n            if (this.retry >= this.retryInterval)\r\n            {\r\n                this.createPlayPromise(false);\r\n\r\n                this.retry = 0;\r\n            }\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Seeks to a given point in the video. The value is given as a float between 0 and 1,\r\n     * where 0 represents the start of the video and 1 represents the end.\r\n     *\r\n     * Seeking only works if the video has a duration, so will not work for live streams.\r\n     *\r\n     * When seeking begins, this video will emit a `seeking` event. When the video completes\r\n     * seeking (i.e. reaches its designated timestamp) it will emit a `seeked` event.\r\n     *\r\n     * If you wish to seek based on time instead, use the `Video.setCurrentTime` method.\r\n     *\r\n     * Unfortunately, the DOM video element does not guarantee frame-accurate seeking.\r\n     * This has been an ongoing subject of discussion: https://github.com/w3c/media-and-entertainment/issues/4\r\n     *\r\n     * @method Phaser.GameObjects.Video#seekTo\r\n     * @since 3.20.0\r\n     *\r\n     * @param {number} value - The point in the video to seek to. A value between 0 and 1.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    seekTo: function (value)\r\n    {\r\n        var video = this.video;\r\n\r\n        if (video)\r\n        {\r\n            var duration = video.duration;\r\n\r\n            if (duration !== Infinity && !isNaN(duration))\r\n            {\r\n                var seekTime = duration * value;\r\n\r\n                this.setCurrentTime(seekTime);\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * A double-precision floating-point value indicating the current playback time in seconds.\r\n     *\r\n     * If the media has not started to play and has not been seeked, this value is the media's initial playback time.\r\n     *\r\n     * For a more accurate value, use the `Video.metadata.mediaTime` property instead.\r\n     *\r\n     * @method Phaser.GameObjects.Video#getCurrentTime\r\n     * @since 3.20.0\r\n     *\r\n     * @return {number} A double-precision floating-point value indicating the current playback time in seconds.\r\n     */\r\n    getCurrentTime: function ()\r\n    {\r\n        return (this.video) ? this.video.currentTime : 0;\r\n    },\r\n\r\n    /**\r\n     * Seeks to a given playback time in the video. The value is given in _seconds_ or as a string.\r\n     *\r\n     * Seeking only works if the video has a duration, so will not work for live streams.\r\n     *\r\n     * When seeking begins, this video will emit a `seeking` event. When the video completes\r\n     * seeking (i.e. reaches its designated timestamp) it will emit a `seeked` event.\r\n     *\r\n     * You can provide a string prefixed with either a `+` or a `-`, such as `+2.5` or `-2.5`.\r\n     * In this case it will seek to +/- the value given, relative to the _current time_.\r\n     *\r\n     * If you wish to seek based on a duration percentage instead, use the `Video.seekTo` method.\r\n     *\r\n     * @method Phaser.GameObjects.Video#setCurrentTime\r\n     * @since 3.20.0\r\n     *\r\n     * @param {(string|number)} value - The playback time to seek to in seconds. Can be expressed as a string, such as `+2` to seek 2 seconds ahead from the current time.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    setCurrentTime: function (value)\r\n    {\r\n        var video = this.video;\r\n\r\n        if (video)\r\n        {\r\n            if (typeof value === 'string')\r\n            {\r\n                var op = value[0];\r\n                var num = parseFloat(value.substr(1));\r\n\r\n                if (op === '+')\r\n                {\r\n                    value = video.currentTime + num;\r\n                }\r\n                else if (op === '-')\r\n                {\r\n                    value = video.currentTime - num;\r\n                }\r\n            }\r\n\r\n            video.currentTime = value;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Internal seeking handler.\r\n     *\r\n     * @method Phaser.GameObjects.Video#seekingHandler\r\n     * @fires Phaser.GameObjects.Events#VIDEO_SEEKING\r\n     * @private\r\n     * @since 3.20.0\r\n     */\r\n    seekingHandler: function ()\r\n    {\r\n        this.isSeeking = true;\r\n\r\n        this.emit(Events.VIDEO_SEEKING, this);\r\n    },\r\n\r\n    /**\r\n     * Internal seeked handler.\r\n     *\r\n     * @method Phaser.GameObjects.Video#seekedHandler\r\n     * @fires Phaser.GameObjects.Events#VIDEO_SEEKED\r\n     * @private\r\n     * @since 3.20.0\r\n     */\r\n    seekedHandler: function ()\r\n    {\r\n        this.isSeeking = false;\r\n\r\n        this.emit(Events.VIDEO_SEEKED, this);\r\n    },\r\n\r\n    /**\r\n     * Returns the current progress of the video as a float.\r\n     *\r\n     * Progress is defined as a value between 0 (the start) and 1 (the end).\r\n     *\r\n     * Progress can only be returned if the video has a duration. Some videos,\r\n     * such as those coming from a live stream, do not have a duration. In this\r\n     * case the method will return -1.\r\n     *\r\n     * @method Phaser.GameObjects.Video#getProgress\r\n     * @since 3.20.0\r\n     *\r\n     * @return {number} The current progress of playback. If the video has no duration, will always return -1.\r\n     */\r\n    getProgress: function ()\r\n    {\r\n        var video = this.video;\r\n\r\n        if (video)\r\n        {\r\n            var duration = video.duration;\r\n\r\n            if (duration !== Infinity && !isNaN(duration))\r\n            {\r\n                return video.currentTime / duration;\r\n            }\r\n        }\r\n\r\n        return -1;\r\n    },\r\n\r\n    /**\r\n     * A double-precision floating-point value which indicates the duration (total length) of the media in seconds,\r\n     * on the media's timeline. If no media is present on the element, or the media is not valid, the returned value is NaN.\r\n     *\r\n     * If the media has no known end (such as for live streams of unknown duration, web radio, media incoming from WebRTC,\r\n     * and so forth), this value is +Infinity.\r\n     *\r\n     * If no video has been loaded, this method will return 0.\r\n     *\r\n     * @method Phaser.GameObjects.Video#getDuration\r\n     * @since 3.20.0\r\n     *\r\n     * @return {number} A double-precision floating-point value indicating the duration of the media in seconds.\r\n     */\r\n    getDuration: function ()\r\n    {\r\n        return (this.video) ? this.video.duration : 0;\r\n    },\r\n\r\n    /**\r\n     * Sets the muted state of the currently playing video, if one is loaded.\r\n     *\r\n     * @method Phaser.GameObjects.Video#setMute\r\n     * @since 3.20.0\r\n     *\r\n     * @param {boolean} [value=true] - The mute value. `true` if the video should be muted, otherwise `false`.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    setMute: function (value)\r\n    {\r\n        if (value === undefined) { value = true; }\r\n\r\n        this._codeMuted = value;\r\n\r\n        var video = this.video;\r\n\r\n        if (video)\r\n        {\r\n            video.muted = (this._systemMuted) ? true : value;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns a boolean indicating if this Video is currently muted.\r\n     *\r\n     * @method Phaser.GameObjects.Video#isMuted\r\n     * @since 3.20.0\r\n     *\r\n     * @return {boolean} A boolean indicating if this Video is currently muted, or not.\r\n     */\r\n    isMuted: function ()\r\n    {\r\n        return this._codeMuted;\r\n    },\r\n\r\n    /**\r\n     * Internal global mute handler. Will mute the video, if playing, if the global sound system mutes.\r\n     *\r\n     * @method Phaser.GameObjects.Video#globalMute\r\n     * @private\r\n     * @since 3.20.0\r\n     *\r\n     * @param {(Phaser.Sound.WebAudioSoundManager|Phaser.Sound.HTML5AudioSoundManager)} soundManager - A reference to the Sound Manager that emitted the event.\r\n     * @param {boolean} mute - The mute value. `true` if the Sound Manager is now muted, otherwise `false`.\r\n     */\r\n    globalMute: function (soundManager, value)\r\n    {\r\n        this._systemMuted = value;\r\n\r\n        var video = this.video;\r\n\r\n        if (video)\r\n        {\r\n            video.muted = (this._codeMuted) ? true : value;\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Internal global pause handler. Will pause the video if the Game itself pauses.\r\n     *\r\n     * @method Phaser.GameObjects.Video#globalPause\r\n     * @private\r\n     * @since 3.20.0\r\n     */\r\n    globalPause: function ()\r\n    {\r\n        this._systemPaused = true;\r\n\r\n        if (this.video && !this.video.ended)\r\n        {\r\n            this.removeEventHandlers();\r\n\r\n            this.video.pause();\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Internal global resume handler. Will resume a paused video if the Game itself resumes.\r\n     *\r\n     * @method Phaser.GameObjects.Video#globalResume\r\n     * @private\r\n     * @since 3.20.0\r\n     */\r\n    globalResume: function ()\r\n    {\r\n        this._systemPaused = false;\r\n\r\n        if (this.video && !this._codePaused && !this.video.ended)\r\n        {\r\n            this.createPlayPromise();\r\n        }\r\n    },\r\n\r\n    /**\r\n     * Sets the paused state of the currently loaded video.\r\n     *\r\n     * If the video is playing, calling this method with `true` will pause playback.\r\n     * If the video is paused, calling this method with `false` will resume playback.\r\n     *\r\n     * If no video is loaded, this method does nothing.\r\n     *\r\n     * If the video has not yet been played, `Video.play` will be called with no parameters.\r\n     *\r\n     * If the video has ended, this method will do nothing.\r\n     *\r\n     * @method Phaser.GameObjects.Video#setPaused\r\n     * @since 3.20.0\r\n     *\r\n     * @param {boolean} [value=true] - The paused value. `true` if the video should be paused, `false` to resume it.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    setPaused: function (value)\r\n    {\r\n        if (value === undefined) { value = true; }\r\n\r\n        var video = this.video;\r\n\r\n        this._codePaused = value;\r\n\r\n        if (video && !video.ended)\r\n        {\r\n            if (value)\r\n            {\r\n                if (!video.paused)\r\n                {\r\n                    this.removeEventHandlers();\r\n\r\n                    video.pause();\r\n                }\r\n            }\r\n            else if (!value)\r\n            {\r\n                if (!this._playCalled)\r\n                {\r\n                    this.play();\r\n                }\r\n                else if (video.paused && !this._systemPaused)\r\n                {\r\n                    this.createPlayPromise();\r\n                }\r\n            }\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Pauses the current Video, if one is playing.\r\n     *\r\n     * If no video is loaded, this method does nothing.\r\n     *\r\n     * Call `Video.resume` to resume playback.\r\n     *\r\n     * @method Phaser.GameObjects.Video#pause\r\n     * @since 3.60.0\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    pause: function ()\r\n    {\r\n        return this.setPaused(true);\r\n    },\r\n\r\n    /**\r\n     * Resumes the current Video, if one was previously playing and has been paused.\r\n     *\r\n     * If no video is loaded, this method does nothing.\r\n     *\r\n     * Call `Video.pause` to pause playback.\r\n     *\r\n     * @method Phaser.GameObjects.Video#resume\r\n     * @since 3.60.0\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    resume: function ()\r\n    {\r\n        return this.setPaused(false);\r\n    },\r\n\r\n    /**\r\n     * Returns a double indicating the audio volume, from 0.0 (silent) to 1.0 (loudest).\r\n     *\r\n     * @method Phaser.GameObjects.Video#getVolume\r\n     * @since 3.20.0\r\n     *\r\n     * @return {number} A double indicating the audio volume, from 0.0 (silent) to 1.0 (loudest).\r\n     */\r\n    getVolume: function ()\r\n    {\r\n        return (this.video) ? this.video.volume : 1;\r\n    },\r\n\r\n    /**\r\n     * Sets the volume of the currently playing video.\r\n     *\r\n     * The value given is a double indicating the audio volume, from 0.0 (silent) to 1.0 (loudest).\r\n     *\r\n     * @method Phaser.GameObjects.Video#setVolume\r\n     * @since 3.20.0\r\n     *\r\n     * @param {number} [value=1] - A double indicating the audio volume, from 0.0 (silent) to 1.0 (loudest).\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    setVolume: function (value)\r\n    {\r\n        if (value === undefined) { value = 1; }\r\n\r\n        if (this.video)\r\n        {\r\n            this.video.volume = Clamp(value, 0, 1);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns a double that indicates the rate at which the media is being played back.\r\n     *\r\n     * @method Phaser.GameObjects.Video#getPlaybackRate\r\n     * @since 3.20.0\r\n     *\r\n     * @return {number} A double that indicates the rate at which the media is being played back.\r\n     */\r\n    getPlaybackRate: function ()\r\n    {\r\n        return (this.video) ? this.video.playbackRate : 1;\r\n    },\r\n\r\n    /**\r\n     * Sets the playback rate of the current video.\r\n     *\r\n     * The value given is a double that indicates the rate at which the media is being played back.\r\n     *\r\n     * @method Phaser.GameObjects.Video#setPlaybackRate\r\n     * @since 3.20.0\r\n     *\r\n     * @param {number} [rate] - A double that indicates the rate at which the media is being played back.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    setPlaybackRate: function (rate)\r\n    {\r\n        if (this.video)\r\n        {\r\n            this.video.playbackRate = rate;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns a boolean which indicates whether the media element should start over when it reaches the end.\r\n     *\r\n     * @method Phaser.GameObjects.Video#getLoop\r\n     * @since 3.20.0\r\n     *\r\n     * @return {boolean} A boolean which indicates whether the media element will start over when it reaches the end.\r\n     */\r\n    getLoop: function ()\r\n    {\r\n        return (this.video) ? this.video.loop : false;\r\n    },\r\n\r\n    /**\r\n     * Sets the loop state of the current video.\r\n     *\r\n     * The value given is a boolean which indicates whether the media element will start over when it reaches the end.\r\n     *\r\n     * Not all videos can loop, for example live streams.\r\n     *\r\n     * Please note that not all browsers support _seamless_ video looping for all encoding formats.\r\n     *\r\n     * @method Phaser.GameObjects.Video#setLoop\r\n     * @since 3.20.0\r\n     *\r\n     * @param {boolean} [value=true] - A boolean which indicates whether the media element will start over when it reaches the end.\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    setLoop: function (value)\r\n    {\r\n        if (value === undefined) { value = true; }\r\n\r\n        if (this.video)\r\n        {\r\n            this.video.loop = value;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Returns a boolean which indicates whether the video is currently playing.\r\n     *\r\n     * @method Phaser.GameObjects.Video#isPlaying\r\n     * @since 3.20.0\r\n     *\r\n     * @return {boolean} A boolean which indicates whether the video is playing, or not.\r\n     */\r\n    isPlaying: function ()\r\n    {\r\n        return (this.video) ? !(this.video.paused || this.video.ended) : false;\r\n    },\r\n\r\n    /**\r\n     * Returns a boolean which indicates whether the video is currently paused.\r\n     *\r\n     * @method Phaser.GameObjects.Video#isPaused\r\n     * @since 3.20.0\r\n     *\r\n     * @return {boolean} A boolean which indicates whether the video is paused, or not.\r\n     */\r\n    isPaused: function ()\r\n    {\r\n        return ((this.video && this._playCalled && this.video.paused) || this._codePaused || this._systemPaused);\r\n    },\r\n\r\n    /**\r\n     * Stores this Video in the Texture Manager using the given key as a dynamic texture,\r\n     * which any texture-based Game Object, such as a Sprite, can use as its source:\r\n     *\r\n     * ```javascript\r\n     * const vid = this.add.video(0, 0, 'intro');\r\n     *\r\n     * vid.play();\r\n     *\r\n     * vid.saveTexture('doodle');\r\n     *\r\n     * this.add.image(400, 300, 'doodle');\r\n     * ```\r\n     *\r\n     * If the video is not yet playing then you need to listen for the `TEXTURE_READY` event before\r\n     * you can use this texture on a Game Object:\r\n     *\r\n     * ```javascript\r\n     * const vid = this.add.video(0, 0, 'intro');\r\n     *\r\n     * vid.play();\r\n     *\r\n     * vid.once('textureready', (video, texture, key) => {\r\n     *\r\n     *     this.add.image(400, 300, key);\r\n     *\r\n     * });\r\n     *\r\n     * vid.saveTexture('doodle');\r\n     * ```\r\n     *\r\n     * The saved texture is automatically updated as the video plays. If you pause this video,\r\n     * or change its source, then the saved texture updates instantly.\r\n     *\r\n     * Calling `saveTexture` again will not save another copy of the same texture, it will just rename the existing one.\r\n     *\r\n     * By default it will create a single base texture. You can add frames to the texture\r\n     * by using the `Texture.add` method. After doing this, you can then allow Game Objects\r\n     * to use a specific frame.\r\n     *\r\n     * If you intend to save the texture so you can use it as the input for a Shader, you may need to set the\r\n     * `flipY` parameter to `true` if you find the video renders upside down in your shader.\r\n     *\r\n     * @method Phaser.GameObjects.Video#saveTexture\r\n     * @since 3.20.0\r\n     *\r\n     * @param {string} key - The unique key to store the texture as within the global Texture Manager.\r\n     * @param {boolean} [flipY=false] - Should the WebGL Texture set `UNPACK_MULTIPLY_FLIP_Y` during upload?\r\n     *\r\n     * @return {boolean} Returns `true` if the texture is available immediately, otherwise returns `false` and you should listen for the `TEXTURE_READY` event.\r\n     */\r\n    saveTexture: function (key, flipY)\r\n    {\r\n        if (flipY === undefined) { flipY = false; }\r\n\r\n        if (this.videoTexture)\r\n        {\r\n            this.scene.sys.textures.renameTexture(this._key, key);\r\n            this.videoTextureSource.setFlipY(flipY);\r\n        }\r\n\r\n        this._key = key;\r\n        this.flipY = flipY;\r\n\r\n        return (this.videoTexture) ? true : false;\r\n    },\r\n\r\n    /**\r\n     * Stops the video playing and clears all internal event listeners.\r\n     *\r\n     * If you only wish to pause playback of the video, and resume it a later time, use the `Video.pause` method instead.\r\n     *\r\n     * If the video hasn't finished downloading, calling this method will not abort the download. To do that you need to\r\n     * call `destroy` instead.\r\n     *\r\n     * @method Phaser.GameObjects.Video#stop\r\n     * @fires Phaser.GameObjects.Events#VIDEO_STOP\r\n     * @since 3.20.0\r\n     *\r\n     * @param {boolean} [emitStopEvent=true] - Should the `VIDEO_STOP` event be emitted?\r\n     *\r\n     * @return {this} This Video Game Object for method chaining.\r\n     */\r\n    stop: function (emitStopEvent)\r\n    {\r\n        if (emitStopEvent === undefined) { emitStopEvent = true; }\r\n\r\n        var video = this.video;\r\n\r\n        if (video)\r\n        {\r\n            this.removeEventHandlers();\r\n\r\n            video.cancelVideoFrameCallback(this._rfvCallbackId);\r\n\r\n            video.pause();\r\n        }\r\n\r\n        this.retry = 0;\r\n        this._playCalled = false;\r\n\r\n        if (emitStopEvent)\r\n        {\r\n            this.emit(Events.VIDEO_STOP, this);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Removes the Video element from the DOM by calling parentNode.removeChild on itself.\r\n     *\r\n     * Also removes the autoplay and src attributes and nulls the `Video.video` reference.\r\n     *\r\n     * If you loaded an external video via `Video.loadURL` then you should call this function\r\n     * to clear up once you are done with the instance, but don't want to destroy this\r\n     * Video Game Object.\r\n     *\r\n     * This method is called automatically by `Video.destroy`.\r\n     *\r\n     * @method Phaser.GameObjects.Video#removeVideoElement\r\n     * @since 3.20.0\r\n     */\r\n    removeVideoElement: function ()\r\n    {\r\n        var video = this.video;\r\n\r\n        if (!video)\r\n        {\r\n            return;\r\n        }\r\n\r\n        if (video.parentNode)\r\n        {\r\n            video.parentNode.removeChild(video);\r\n        }\r\n\r\n        while (video.hasChildNodes())\r\n        {\r\n            video.removeChild(video.firstChild);\r\n        }\r\n\r\n        video.removeAttribute('autoplay');\r\n        video.removeAttribute('src');\r\n\r\n        this.video = null;\r\n    },\r\n\r\n    /**\r\n     * Handles the pre-destroy step for the Video object.\r\n     *\r\n     * This calls `Video.stop` and optionally `Video.removeVideoElement`.\r\n     *\r\n     * If any Sprites are using this Video as their texture it is up to you to manage those.\r\n     *\r\n     * @method Phaser.GameObjects.Video#preDestroy\r\n     * @private\r\n     * @since 3.21.0\r\n     */\r\n    preDestroy: function ()\r\n    {\r\n        this.stop(false);\r\n\r\n        this.removeLoadEventHandlers();\r\n\r\n        this.removeVideoElement();\r\n\r\n        var game = this.scene.sys.game.events;\r\n\r\n        game.off(GameEvents.PAUSE, this.globalPause, this);\r\n        game.off(GameEvents.RESUME, this.globalResume, this);\r\n\r\n        var sound = this.scene.sys.sound;\r\n\r\n        if (sound)\r\n        {\r\n            sound.off(SoundEvents.GLOBAL_MUTE, this.globalMute, this);\r\n        }\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Video;\r\n\n\n/***/ }),\n\n/***/ 58352:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders this Game Object with the Canvas Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Video#renderCanvas\r\n * @since 3.20.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n * @param {Phaser.GameObjects.Video} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar VideoCanvasRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    if (src.videoTexture)\r\n    {\r\n        camera.addToRenderList(src);\r\n\r\n        renderer.batchSprite(src, src.frame, camera, parentMatrix);\r\n    }\r\n};\r\n\r\nmodule.exports = VideoCanvasRenderer;\r\n\n\n/***/ }),\n\n/***/ 11511:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BuildGameObject = __webpack_require__(25305);\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar Video = __webpack_require__(18471);\r\n\r\n/**\r\n * Creates a new Video Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Video Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#video\r\n * @since 3.20.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Video.VideoConfig} config - The configuration object this Game Object will use to create itself.\r\n * @param {boolean} [addToScene] - Add this Game Object to the Scene after creating it? If set this argument overrides the `add` property in the config object.\r\n *\r\n * @return {Phaser.GameObjects.Video} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('video', function (config, addToScene)\r\n{\r\n    if (config === undefined) { config = {}; }\r\n\r\n    var key = GetAdvancedValue(config, 'key', null);\r\n\r\n    var video = new Video(this.scene, 0, 0, key);\r\n\r\n    if (addToScene !== undefined)\r\n    {\r\n        config.add = addToScene;\r\n    }\r\n\r\n    BuildGameObject(this.scene, video, config);\r\n\r\n    return video;\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectCreator context.\r\n\n\n/***/ }),\n\n/***/ 89025:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Video = __webpack_require__(18471);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Video Game Object and adds it to the Scene.\r\n *\r\n * This Game Object is capable of handling playback of a video file, video stream or media stream.\r\n *\r\n * You can optionally 'preload' the video into the Phaser Video Cache:\r\n *\r\n * ```javascript\r\n * preload () {\r\n *   this.load.video('ripley', 'assets/aliens.mp4');\r\n * }\r\n *\r\n * create () {\r\n *   this.add.video(400, 300, 'ripley');\r\n * }\r\n * ```\r\n *\r\n * You don't have to 'preload' the video. You can also play it directly from a URL:\r\n *\r\n * ```javascript\r\n * create () {\r\n *   this.add.video(400, 300).loadURL('assets/aliens.mp4');\r\n * }\r\n * ```\r\n *\r\n * To all intents and purposes, a video is a standard Game Object, just like a Sprite. And as such, you can do\r\n * all the usual things to it, such as scaling, rotating, cropping, tinting, making interactive, giving a\r\n * physics body, etc.\r\n *\r\n * Transparent videos are also possible via the WebM file format. Providing the video file has was encoded with\r\n * an alpha channel, and providing the browser supports WebM playback (not all of them do), then it will render\r\n * in-game with full transparency.\r\n *\r\n * ### Autoplaying Videos\r\n *\r\n * Videos can only autoplay if the browser has been unlocked with an interaction, or satisfies the MEI settings.\r\n * The policies that control autoplaying are vast and vary between browser. You can, and should, read more about\r\n * it here: https://developer.mozilla.org/en-US/docs/Web/Media/Autoplay_guide\r\n *\r\n * If your video doesn't contain any audio, then set the `noAudio` parameter to `true` when the video is _loaded_,\r\n * and it will often allow the video to play immediately:\r\n *\r\n * ```javascript\r\n * preload () {\r\n *   this.load.video('pixar', 'nemo.mp4', true);\r\n * }\r\n * ```\r\n *\r\n * The 3rd parameter in the load call tells Phaser that the video doesn't contain any audio tracks. Video without\r\n * audio can autoplay without requiring a user interaction. Video with audio cannot do this unless it satisfies\r\n * the browsers MEI settings. See the MDN Autoplay Guide for further details.\r\n *\r\n * Or:\r\n *\r\n * ```javascript\r\n * create () {\r\n *   this.add.video(400, 300).loadURL('assets/aliens.mp4', true);\r\n * }\r\n * ```\r\n *\r\n * You can set the `noAudio` parameter to `true` even if the video does contain audio. It will still allow the video\r\n * to play immediately, but the audio will not start.\r\n *\r\n * Note that due to a bug in IE11 you cannot play a video texture to a Sprite in WebGL. For IE11 force Canvas mode.\r\n *\r\n * More details about video playback and the supported media formats can be found on MDN:\r\n *\r\n * https://developer.mozilla.org/en-US/docs/Web/API/HTMLVideoElement\r\n * https://developer.mozilla.org/en-US/docs/Web/Media/Formats\r\n *\r\n * Note: This method will only be available if the Video Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#video\r\n * @since 3.20.0\r\n *\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {string} [key] - Optional key of the Video this Game Object will play, as stored in the Video Cache.\r\n *\r\n * @return {Phaser.GameObjects.Video} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('video', function (x, y, key)\r\n{\r\n    return this.displayList.add(new Video(this.scene, x, y, key));\r\n});\r\n\n\n/***/ }),\n\n/***/ 10247:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar NOOP = __webpack_require__(29747);\r\nvar renderWebGL = NOOP;\r\nvar renderCanvas = NOOP;\r\n\r\nif (true)\r\n{\r\n    renderWebGL = __webpack_require__(29849);\r\n}\r\n\r\nif (true)\r\n{\r\n    renderCanvas = __webpack_require__(58352);\r\n}\r\n\r\nmodule.exports = {\r\n\r\n    renderWebGL: renderWebGL,\r\n    renderCanvas: renderCanvas\r\n\r\n};\r\n\n\n/***/ }),\n\n/***/ 29849:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Renders this Game Object with the WebGL Renderer to the given Camera.\r\n * The object will not render if any of its renderFlags are set or it is being actively filtered out by the Camera.\r\n * This method should not be called directly. It is a utility function of the Render module.\r\n *\r\n * @method Phaser.GameObjects.Video#renderWebGL\r\n * @since 3.20.0\r\n * @private\r\n *\r\n * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n * @param {Phaser.GameObjects.Video} src - The Game Object being rendered in this call.\r\n * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n */\r\nvar VideoWebGLRenderer = function (renderer, src, camera, parentMatrix)\r\n{\r\n    if (src.videoTexture)\r\n    {\r\n        camera.addToRenderList(src);\r\n\r\n        src.pipeline.batchSprite(src, camera, parentMatrix);\r\n    }\r\n};\r\n\r\nmodule.exports = VideoWebGLRenderer;\r\n\n\n/***/ }),\n\n/***/ 41481:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar BlendModes = __webpack_require__(10312);\r\nvar Circle = __webpack_require__(96503);\r\nvar CircleContains = __webpack_require__(87902);\r\nvar Class = __webpack_require__(83419);\r\nvar Components = __webpack_require__(31401);\r\nvar GameObject = __webpack_require__(95643);\r\nvar Rectangle = __webpack_require__(87841);\r\nvar RectangleContains = __webpack_require__(37303);\r\n\r\n/**\r\n * @classdesc\r\n * A Zone Game Object.\r\n *\r\n * A Zone is a non-rendering rectangular Game Object that has a position and size.\r\n * It has no texture and never displays, but does live on the display list and\r\n * can be moved, scaled and rotated like any other Game Object.\r\n *\r\n * Its primary use is for creating Drop Zones and Input Hit Areas and it has a couple of helper methods\r\n * specifically for this. It is also useful for object overlap checks, or as a base for your own\r\n * non-displaying Game Objects.\r\n\r\n * The default origin is 0.5, the center of the Zone, the same as with Game Objects.\r\n *\r\n * @class Zone\r\n * @extends Phaser.GameObjects.GameObject\r\n * @memberof Phaser.GameObjects\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @extends Phaser.GameObjects.Components.Depth\r\n * @extends Phaser.GameObjects.Components.GetBounds\r\n * @extends Phaser.GameObjects.Components.Origin\r\n * @extends Phaser.GameObjects.Components.Transform\r\n * @extends Phaser.GameObjects.Components.ScrollFactor\r\n * @extends Phaser.GameObjects.Components.Visible\r\n *\r\n * @param {Phaser.Scene} scene - The Scene to which this Game Object belongs.\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {number} [width=1] - The width of the Game Object.\r\n * @param {number} [height=1] - The height of the Game Object.\r\n */\r\nvar Zone = new Class({\r\n\r\n    Extends: GameObject,\r\n\r\n    Mixins: [\r\n        Components.Depth,\r\n        Components.GetBounds,\r\n        Components.Origin,\r\n        Components.Transform,\r\n        Components.ScrollFactor,\r\n        Components.Visible\r\n    ],\r\n\r\n    initialize:\r\n\r\n    function Zone (scene, x, y, width, height)\r\n    {\r\n        if (width === undefined) { width = 1; }\r\n        if (height === undefined) { height = width; }\r\n\r\n        GameObject.call(this, scene, 'Zone');\r\n\r\n        this.setPosition(x, y);\r\n\r\n        /**\r\n         * The native (un-scaled) width of this Game Object.\r\n         *\r\n         * @name Phaser.GameObjects.Zone#width\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         */\r\n        this.width = width;\r\n\r\n        /**\r\n         * The native (un-scaled) height of this Game Object.\r\n         *\r\n         * @name Phaser.GameObjects.Zone#height\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         */\r\n        this.height = height;\r\n\r\n        /**\r\n         * The Blend Mode of the Game Object.\r\n         * Although a Zone never renders, it still has a blend mode to allow it to fit seamlessly into\r\n         * display lists without causing a batch flush.\r\n         *\r\n         * @name Phaser.GameObjects.Zone#blendMode\r\n         * @type {number}\r\n         * @since 3.0.0\r\n         */\r\n        this.blendMode = BlendModes.NORMAL;\r\n\r\n        this.updateDisplayOrigin();\r\n    },\r\n\r\n    /**\r\n     * The displayed width of this Game Object.\r\n     * This value takes into account the scale factor.\r\n     *\r\n     * @name Phaser.GameObjects.Zone#displayWidth\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    displayWidth: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.scaleX * this.width;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.scaleX = value / this.width;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The displayed height of this Game Object.\r\n     * This value takes into account the scale factor.\r\n     *\r\n     * @name Phaser.GameObjects.Zone#displayHeight\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    displayHeight: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.scaleY * this.height;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.scaleY = value / this.height;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * Sets the size of this Game Object.\r\n     *\r\n     * @method Phaser.GameObjects.Zone#setSize\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} width - The width of this Game Object.\r\n     * @param {number} height - The height of this Game Object.\r\n     * @param {boolean} [resizeInput=true] - If this Zone has a Rectangle for a hit area this argument will resize the hit area as well.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    setSize: function (width, height, resizeInput)\r\n    {\r\n        if (resizeInput === undefined) { resizeInput = true; }\r\n\r\n        this.width = width;\r\n        this.height = height;\r\n\r\n        this.updateDisplayOrigin();\r\n\r\n        var input = this.input;\r\n\r\n        if (resizeInput && input && !input.customHitArea)\r\n        {\r\n            input.hitArea.width = width;\r\n            input.hitArea.height = height;\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the display size of this Game Object.\r\n     * Calling this will adjust the scale.\r\n     *\r\n     * @method Phaser.GameObjects.Zone#setDisplaySize\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} width - The width of this Game Object.\r\n     * @param {number} height - The height of this Game Object.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    setDisplaySize: function (width, height)\r\n    {\r\n        this.displayWidth = width;\r\n        this.displayHeight = height;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets this Zone to be a Circular Drop Zone.\r\n     * The circle is centered on this Zones `x` and `y` coordinates.\r\n     *\r\n     * @method Phaser.GameObjects.Zone#setCircleDropZone\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} radius - The radius of the Circle that will form the Drop Zone.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    setCircleDropZone: function (radius)\r\n    {\r\n        return this.setDropZone(new Circle(0, 0, radius), CircleContains);\r\n    },\r\n\r\n    /**\r\n     * Sets this Zone to be a Rectangle Drop Zone.\r\n     * The rectangle is centered on this Zones `x` and `y` coordinates.\r\n     *\r\n     * @method Phaser.GameObjects.Zone#setRectangleDropZone\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} width - The width of the rectangle drop zone.\r\n     * @param {number} height - The height of the rectangle drop zone.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    setRectangleDropZone: function (width, height)\r\n    {\r\n        return this.setDropZone(new Rectangle(0, 0, width, height), RectangleContains);\r\n    },\r\n\r\n    /**\r\n     * Allows you to define your own Geometry shape to be used as a Drop Zone.\r\n     *\r\n     * @method Phaser.GameObjects.Zone#setDropZone\r\n     * @since 3.0.0\r\n     *\r\n     * @param {object} [hitArea] - A Geometry shape instance, such as Phaser.Geom.Ellipse, or your own custom shape. If not given it will try to create a Rectangle based on the size of this zone.\r\n     * @param {Phaser.Types.Input.HitAreaCallback} [hitAreaCallback] - A function that will return `true` if the given x/y coords it is sent are within the shape. If you provide a shape you must also provide a callback.\r\n     *\r\n     * @return {this} This Game Object.\r\n     */\r\n    setDropZone: function (hitArea, hitAreaCallback)\r\n    {\r\n        if (!this.input)\r\n        {\r\n            this.setInteractive(hitArea, hitAreaCallback, true);\r\n        }\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * A NOOP method so you can pass a Zone to a Container.\r\n     * Calling this method will do nothing. It is intentionally empty.\r\n     *\r\n     * @method Phaser.GameObjects.Zone#setAlpha\r\n     * @private\r\n     * @since 3.11.0\r\n     */\r\n    setAlpha: function ()\r\n    {\r\n    },\r\n\r\n    /**\r\n     * A NOOP method so you can pass a Zone to a Container in Canvas.\r\n     * Calling this method will do nothing. It is intentionally empty.\r\n     *\r\n     * @method Phaser.GameObjects.Zone#setBlendMode\r\n     * @private\r\n     * @since 3.16.2\r\n     */\r\n    setBlendMode: function ()\r\n    {\r\n    },\r\n\r\n    /**\r\n     * A Zone does not render.\r\n     *\r\n     * @method Phaser.GameObjects.Zone#renderCanvas\r\n     * @private\r\n     * @since 3.53.0\r\n     *\r\n     * @param {Phaser.Renderer.Canvas.CanvasRenderer} renderer - A reference to the current active Canvas renderer.\r\n     * @param {Phaser.GameObjects.Image} src - The Game Object being rendered in this call.\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n     * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n     */\r\n    renderCanvas: function (renderer, src, camera)\r\n    {\r\n        camera.addToRenderList(src);\r\n    },\r\n\r\n    /**\r\n     * A Zone does not render.\r\n     *\r\n     * @method Phaser.GameObjects.Zone#renderWebGL\r\n     * @private\r\n     * @since 3.53.0\r\n     *\r\n     * @param {Phaser.Renderer.WebGL.WebGLRenderer} renderer - A reference to the current active WebGL renderer.\r\n     * @param {Phaser.GameObjects.Image} src - The Game Object being rendered in this call.\r\n     * @param {Phaser.Cameras.Scene2D.Camera} camera - The Camera that is rendering the Game Object.\r\n     * @param {Phaser.GameObjects.Components.TransformMatrix} parentMatrix - This transform matrix is defined if the game object is nested\r\n     */\r\n    renderWebGL: function (renderer, src, camera)\r\n    {\r\n        camera.addToRenderList(src);\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Zone;\r\n\n\n/***/ }),\n\n/***/ 95261:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GameObjectCreator = __webpack_require__(44603);\r\nvar GetAdvancedValue = __webpack_require__(23568);\r\nvar Zone = __webpack_require__(41481);\r\n\r\n/**\r\n * Creates a new Zone Game Object and returns it.\r\n *\r\n * Note: This method will only be available if the Zone Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectCreator#zone\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Types.GameObjects.Zone.ZoneConfig} config - The configuration object this Game Object will use to create itself.\r\n *\r\n * @return {Phaser.GameObjects.Zone} The Game Object that was created.\r\n */\r\nGameObjectCreator.register('zone', function (config)\r\n{\r\n    var x = GetAdvancedValue(config, 'x', 0);\r\n    var y = GetAdvancedValue(config, 'y', 0);\r\n    var width = GetAdvancedValue(config, 'width', 1);\r\n    var height = GetAdvancedValue(config, 'height', width);\r\n\r\n    return new Zone(this.scene, x, y, width, height);\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectCreator context.\r\n\n\n/***/ }),\n\n/***/ 84175:\n/***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Zone = __webpack_require__(41481);\r\nvar GameObjectFactory = __webpack_require__(39429);\r\n\r\n/**\r\n * Creates a new Zone Game Object and adds it to the Scene.\r\n *\r\n * Note: This method will only be available if the Zone Game Object has been built into Phaser.\r\n *\r\n * @method Phaser.GameObjects.GameObjectFactory#zone\r\n * @since 3.0.0\r\n *\r\n * @param {number} x - The horizontal position of this Game Object in the world.\r\n * @param {number} y - The vertical position of this Game Object in the world.\r\n * @param {number} width - The width of the Game Object.\r\n * @param {number} height - The height of the Game Object.\r\n *\r\n * @return {Phaser.GameObjects.Zone} The Game Object that was created.\r\n */\r\nGameObjectFactory.register('zone', function (x, y, width, height)\r\n{\r\n    return this.displayList.add(new Zone(this.scene, x, y, width, height));\r\n});\r\n\r\n//  When registering a factory function 'this' refers to the GameObjectFactory context.\r\n//\r\n//  There are several properties available to use:\r\n//\r\n//  this.scene - a reference to the Scene that owns the GameObjectFactory\r\n//  this.displayList - a reference to the Display List the Scene owns\r\n//  this.updateList - a reference to the Update List the Scene owns\r\n\n\n/***/ }),\n\n/***/ 95166:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Calculates the area of the circle.\r\n *\r\n * @function Phaser.Geom.Circle.Area\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The Circle to get the area of.\r\n *\r\n * @return {number} The area of the Circle.\r\n */\r\nvar Area = function (circle)\r\n{\r\n    return (circle.radius > 0) ? Math.PI * circle.radius * circle.radius : 0;\r\n};\r\n\r\nmodule.exports = Area;\r\n\n\n/***/ }),\n\n/***/ 96503:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Contains = __webpack_require__(87902);\r\nvar GetPoint = __webpack_require__(26241);\r\nvar GetPoints = __webpack_require__(79124);\r\nvar GEOM_CONST = __webpack_require__(23777);\r\nvar Random = __webpack_require__(28176);\r\n\r\n/**\r\n * @classdesc\r\n * A Circle object.\r\n *\r\n * This is a geometry object, containing numerical values and related methods to inspect and modify them.\r\n * It is not a Game Object, in that you cannot add it to the display list, and it has no texture.\r\n * To render a Circle you should look at the capabilities of the Graphics class.\r\n *\r\n * @class Circle\r\n * @memberof Phaser.Geom\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {number} [x=0] - The x position of the center of the circle.\r\n * @param {number} [y=0] - The y position of the center of the circle.\r\n * @param {number} [radius=0] - The radius of the circle.\r\n */\r\nvar Circle = new Class({\r\n\r\n    initialize:\r\n\r\n    function Circle (x, y, radius)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (radius === undefined) { radius = 0; }\r\n\r\n        /**\r\n         * The geometry constant type of this object: `GEOM_CONST.CIRCLE`.\r\n         * Used for fast type comparisons.\r\n         *\r\n         * @name Phaser.Geom.Circle#type\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.19.0\r\n         */\r\n        this.type = GEOM_CONST.CIRCLE;\r\n\r\n        /**\r\n         * The x position of the center of the circle.\r\n         *\r\n         * @name Phaser.Geom.Circle#x\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.x = x;\r\n\r\n        /**\r\n         * The y position of the center of the circle.\r\n         *\r\n         * @name Phaser.Geom.Circle#y\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.y = y;\r\n\r\n        /**\r\n         * The internal radius of the circle.\r\n         *\r\n         * @name Phaser.Geom.Circle#_radius\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._radius = radius;\r\n\r\n        /**\r\n         * The internal diameter of the circle.\r\n         *\r\n         * @name Phaser.Geom.Circle#_diameter\r\n         * @type {number}\r\n         * @private\r\n         * @since 3.0.0\r\n         */\r\n        this._diameter = radius * 2;\r\n    },\r\n\r\n    /**\r\n     * Check to see if the Circle contains the given x / y coordinates.\r\n     *\r\n     * @method Phaser.Geom.Circle#contains\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate to check within the circle.\r\n     * @param {number} y - The y coordinate to check within the circle.\r\n     *\r\n     * @return {boolean} True if the coordinates are within the circle, otherwise false.\r\n     */\r\n    contains: function (x, y)\r\n    {\r\n        return Contains(this, x, y);\r\n    },\r\n\r\n    /**\r\n     * Returns a Point object containing the coordinates of a point on the circumference of the Circle\r\n     * based on the given angle normalized to the range 0 to 1. I.e. a value of 0.5 will give the point\r\n     * at 180 degrees around the circle.\r\n     *\r\n     * @method Phaser.Geom.Circle#getPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Geom.Point} O - [out,$return]\r\n     *\r\n     * @param {number} position - A value between 0 and 1, where 0 equals 0 degrees, 0.5 equals 180 degrees and 1 equals 360 around the circle.\r\n     * @param {(Phaser.Geom.Point|object)} [out] - An object to store the return values in. If not given a Point object will be created.\r\n     *\r\n     * @return {(Phaser.Geom.Point|object)} A Point, or point-like object, containing the coordinates of the point around the circle.\r\n     */\r\n    getPoint: function (position, point)\r\n    {\r\n        return GetPoint(this, position, point);\r\n    },\r\n\r\n    /**\r\n     * Returns an array of Point objects containing the coordinates of the points around the circumference of the Circle,\r\n     * based on the given quantity or stepRate values.\r\n     *\r\n     * @method Phaser.Geom.Circle#getPoints\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Geom.Point[]} O - [output,$return]\r\n     *\r\n     * @param {number} quantity - The amount of points to return. If a falsey value the quantity will be derived from the `stepRate` instead.\r\n     * @param {number} [stepRate] - Sets the quantity by getting the circumference of the circle and dividing it by the stepRate.\r\n     * @param {(array|Phaser.Geom.Point[])} [output] - An array to insert the points in to. If not provided a new array will be created.\r\n     *\r\n     * @return {(array|Phaser.Geom.Point[])} An array of Point objects pertaining to the points around the circumference of the circle.\r\n     */\r\n    getPoints: function (quantity, stepRate, output)\r\n    {\r\n        return GetPoints(this, quantity, stepRate, output);\r\n    },\r\n\r\n    /**\r\n     * Returns a uniformly distributed random point from anywhere within the Circle.\r\n     *\r\n     * @method Phaser.Geom.Circle#getRandomPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Geom.Point} O - [point,$return]\r\n     *\r\n     * @param {(Phaser.Geom.Point|object)} [point] - A Point or point-like object to set the random `x` and `y` values in.\r\n     *\r\n     * @return {(Phaser.Geom.Point|object)} A Point object with the random values set in the `x` and `y` properties.\r\n     */\r\n    getRandomPoint: function (point)\r\n    {\r\n        return Random(this, point);\r\n    },\r\n\r\n    /**\r\n     * Sets the x, y and radius of this circle.\r\n     *\r\n     * @method Phaser.Geom.Circle#setTo\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=0] - The x position of the center of the circle.\r\n     * @param {number} [y=0] - The y position of the center of the circle.\r\n     * @param {number} [radius=0] - The radius of the circle.\r\n     *\r\n     * @return {this} This Circle object.\r\n     */\r\n    setTo: function (x, y, radius)\r\n    {\r\n        this.x = x;\r\n        this.y = y;\r\n        this._radius = radius;\r\n        this._diameter = radius * 2;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets this Circle to be empty with a radius of zero.\r\n     * Does not change its position.\r\n     *\r\n     * @method Phaser.Geom.Circle#setEmpty\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Circle object.\r\n     */\r\n    setEmpty: function ()\r\n    {\r\n        this._radius = 0;\r\n        this._diameter = 0;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the position of this Circle.\r\n     *\r\n     * @method Phaser.Geom.Circle#setPosition\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} [x=0] - The x position of the center of the circle.\r\n     * @param {number} [y=0] - The y position of the center of the circle.\r\n     *\r\n     * @return {this} This Circle object.\r\n     */\r\n    setPosition: function (x, y)\r\n    {\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.x = x;\r\n        this.y = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Checks to see if the Circle is empty: has a radius of zero.\r\n     *\r\n     * @method Phaser.Geom.Circle#isEmpty\r\n     * @since 3.0.0\r\n     *\r\n     * @return {boolean} True if the Circle is empty, otherwise false.\r\n     */\r\n    isEmpty: function ()\r\n    {\r\n        return (this._radius <= 0);\r\n    },\r\n\r\n    /**\r\n     * The radius of the Circle.\r\n     *\r\n     * @name Phaser.Geom.Circle#radius\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    radius: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._radius;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._radius = value;\r\n            this._diameter = value * 2;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The diameter of the Circle.\r\n     *\r\n     * @name Phaser.Geom.Circle#diameter\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    diameter: {\r\n\r\n        get: function ()\r\n        {\r\n            return this._diameter;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this._diameter = value;\r\n            this._radius = value * 0.5;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The left position of the Circle.\r\n     *\r\n     * @name Phaser.Geom.Circle#left\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    left: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.x - this._radius;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.x = value + this._radius;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The right position of the Circle.\r\n     *\r\n     * @name Phaser.Geom.Circle#right\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    right: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.x + this._radius;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.x = value - this._radius;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The top position of the Circle.\r\n     *\r\n     * @name Phaser.Geom.Circle#top\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    top: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.y - this._radius;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.y = value + this._radius;\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The bottom position of the Circle.\r\n     *\r\n     * @name Phaser.Geom.Circle#bottom\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    bottom: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.y + this._radius;\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.y = value - this._radius;\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Circle;\r\n\n\n/***/ }),\n\n/***/ 71562:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Returns the circumference of the given Circle.\r\n *\r\n * @function Phaser.Geom.Circle.Circumference\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The Circle to get the circumference of.\r\n *\r\n * @return {number} The circumference of the Circle.\r\n */\r\nvar Circumference = function (circle)\r\n{\r\n    return 2 * (Math.PI * circle.radius);\r\n};\r\n\r\nmodule.exports = Circumference;\r\n\n\n/***/ }),\n\n/***/ 92110:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Point = __webpack_require__(2141);\r\n\r\n/**\r\n * Returns a Point object containing the coordinates of a point on the circumference of the Circle based on the given angle.\r\n *\r\n * @function Phaser.Geom.Circle.CircumferencePoint\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Point} O - [out,$return]\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The Circle to get the circumference point on.\r\n * @param {number} angle - The angle from the center of the Circle to the circumference to return the point from. Given in radians.\r\n * @param {(Phaser.Geom.Point|object)} [out] - A Point, or point-like object, to store the results in. If not given a Point will be created.\r\n *\r\n * @return {(Phaser.Geom.Point|object)} A Point object where the `x` and `y` properties are the point on the circumference.\r\n */\r\nvar CircumferencePoint = function (circle, angle, out)\r\n{\r\n    if (out === undefined) { out = new Point(); }\r\n\r\n    out.x = circle.x + (circle.radius * Math.cos(angle));\r\n    out.y = circle.y + (circle.radius * Math.sin(angle));\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = CircumferencePoint;\r\n\n\n/***/ }),\n\n/***/ 42250:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Circle = __webpack_require__(96503);\r\n\r\n/**\r\n * Creates a new Circle instance based on the values contained in the given source.\r\n *\r\n * @function Phaser.Geom.Circle.Clone\r\n * @since 3.0.0\r\n *\r\n * @param {(Phaser.Geom.Circle|object)} source - The Circle to be cloned. Can be an instance of a Circle or a circle-like object, with x, y and radius properties.\r\n *\r\n * @return {Phaser.Geom.Circle} A clone of the source Circle.\r\n */\r\nvar Clone = function (source)\r\n{\r\n    return new Circle(source.x, source.y, source.radius);\r\n};\r\n\r\nmodule.exports = Clone;\r\n\n\n/***/ }),\n\n/***/ 87902:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Check to see if the Circle contains the given x / y coordinates.\r\n *\r\n * @function Phaser.Geom.Circle.Contains\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The Circle to check.\r\n * @param {number} x - The x coordinate to check within the circle.\r\n * @param {number} y - The y coordinate to check within the circle.\r\n *\r\n * @return {boolean} True if the coordinates are within the circle, otherwise false.\r\n */\r\nvar Contains = function (circle, x, y)\r\n{\r\n    //  Check if x/y are within the bounds first\r\n    if (circle.radius > 0 && x >= circle.left && x <= circle.right && y >= circle.top && y <= circle.bottom)\r\n    {\r\n        var dx = (circle.x - x) * (circle.x - x);\r\n        var dy = (circle.y - y) * (circle.y - y);\r\n\r\n        return (dx + dy) <= (circle.radius * circle.radius);\r\n    }\r\n    else\r\n    {\r\n        return false;\r\n    }\r\n};\r\n\r\nmodule.exports = Contains;\r\n\n\n/***/ }),\n\n/***/ 5698:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Contains = __webpack_require__(87902);\r\n\r\n/**\r\n * Check to see if the Circle contains the given Point object.\r\n *\r\n * @function Phaser.Geom.Circle.ContainsPoint\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The Circle to check.\r\n * @param {(Phaser.Geom.Point|object)} point - The Point object to check if it's within the Circle or not.\r\n *\r\n * @return {boolean} True if the Point coordinates are within the circle, otherwise false.\r\n */\r\nvar ContainsPoint = function (circle, point)\r\n{\r\n    return Contains(circle, point.x, point.y);\r\n};\r\n\r\nmodule.exports = ContainsPoint;\r\n\n\n/***/ }),\n\n/***/ 70588:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Contains = __webpack_require__(87902);\r\n\r\n/**\r\n * Check to see if the Circle contains all four points of the given Rectangle object.\r\n *\r\n * @function Phaser.Geom.Circle.ContainsRect\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The Circle to check.\r\n * @param {(Phaser.Geom.Rectangle|object)} rect - The Rectangle object to check if it's within the Circle or not.\r\n *\r\n * @return {boolean} True if all of the Rectangle coordinates are within the circle, otherwise false.\r\n */\r\nvar ContainsRect = function (circle, rect)\r\n{\r\n    return (\r\n        Contains(circle, rect.x, rect.y) &&\r\n        Contains(circle, rect.right, rect.y) &&\r\n        Contains(circle, rect.x, rect.bottom) &&\r\n        Contains(circle, rect.right, rect.bottom)\r\n    );\r\n};\r\n\r\nmodule.exports = ContainsRect;\r\n\n\n/***/ }),\n\n/***/ 26394:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Copies the `x`, `y` and `radius` properties from the `source` Circle\r\n * into the given `dest` Circle, then returns the `dest` Circle.\r\n *\r\n * @function Phaser.Geom.Circle.CopyFrom\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Circle} O - [dest,$return]\r\n *\r\n * @param {Phaser.Geom.Circle} source - The source Circle to copy the values from.\r\n * @param {Phaser.Geom.Circle} dest - The destination Circle to copy the values to.\r\n *\r\n * @return {Phaser.Geom.Circle} The destination Circle.\r\n */\r\nvar CopyFrom = function (source, dest)\r\n{\r\n    return dest.setTo(source.x, source.y, source.radius);\r\n};\r\n\r\nmodule.exports = CopyFrom;\r\n\n\n/***/ }),\n\n/***/ 76278:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Compares the `x`, `y` and `radius` properties of the two given Circles.\r\n * Returns `true` if they all match, otherwise returns `false`.\r\n *\r\n * @function Phaser.Geom.Circle.Equals\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The first Circle to compare.\r\n * @param {Phaser.Geom.Circle} toCompare - The second Circle to compare.\r\n *\r\n * @return {boolean} `true` if the two Circles equal each other, otherwise `false`.\r\n */\r\nvar Equals = function (circle, toCompare)\r\n{\r\n    return (\r\n        circle.x === toCompare.x &&\r\n        circle.y === toCompare.y &&\r\n        circle.radius === toCompare.radius\r\n    );\r\n};\r\n\r\nmodule.exports = Equals;\r\n\n\n/***/ }),\n\n/***/ 2074:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Rectangle = __webpack_require__(87841);\r\n\r\n/**\r\n * Returns the bounds of the Circle object.\r\n *\r\n * @function Phaser.Geom.Circle.GetBounds\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Rectangle} O - [out,$return]\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The Circle to get the bounds from.\r\n * @param {(Phaser.Geom.Rectangle|object)} [out] - A Rectangle, or rectangle-like object, to store the circle bounds in. If not given a new Rectangle will be created.\r\n *\r\n * @return {(Phaser.Geom.Rectangle|object)} The Rectangle object containing the Circles bounds.\r\n */\r\nvar GetBounds = function (circle, out)\r\n{\r\n    if (out === undefined) { out = new Rectangle(); }\r\n\r\n    out.x = circle.left;\r\n    out.y = circle.top;\r\n    out.width = circle.diameter;\r\n    out.height = circle.diameter;\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetBounds;\r\n\n\n/***/ }),\n\n/***/ 26241:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CircumferencePoint = __webpack_require__(92110);\r\nvar FromPercent = __webpack_require__(62945);\r\nvar MATH_CONST = __webpack_require__(36383);\r\nvar Point = __webpack_require__(2141);\r\n\r\n/**\r\n * Returns a Point object containing the coordinates of a point on the circumference of the Circle\r\n * based on the given angle normalized to the range 0 to 1. I.e. a value of 0.5 will give the point\r\n * at 180 degrees around the circle.\r\n *\r\n * @function Phaser.Geom.Circle.GetPoint\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Point} O - [out,$return]\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The Circle to get the circumference point on.\r\n * @param {number} position - A value between 0 and 1, where 0 equals 0 degrees, 0.5 equals 180 degrees and 1 equals 360 around the circle.\r\n * @param {(Phaser.Geom.Point|object)} [out] - An object to store the return values in. If not given a Point object will be created.\r\n *\r\n * @return {(Phaser.Geom.Point|object)} A Point, or point-like object, containing the coordinates of the point around the circle.\r\n */\r\nvar GetPoint = function (circle, position, out)\r\n{\r\n    if (out === undefined) { out = new Point(); }\r\n\r\n    var angle = FromPercent(position, 0, MATH_CONST.PI2);\r\n\r\n    return CircumferencePoint(circle, angle, out);\r\n};\r\n\r\nmodule.exports = GetPoint;\r\n\n\n/***/ }),\n\n/***/ 79124:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Circumference = __webpack_require__(71562);\r\nvar CircumferencePoint = __webpack_require__(92110);\r\nvar FromPercent = __webpack_require__(62945);\r\nvar MATH_CONST = __webpack_require__(36383);\r\n\r\n/**\r\n * Returns an array of Point objects containing the coordinates of the points around the circumference of the Circle,\r\n * based on the given quantity or stepRate values.\r\n *\r\n * @function Phaser.Geom.Circle.GetPoints\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The Circle to get the points from.\r\n * @param {number} quantity - The amount of points to return. If a falsey value the quantity will be derived from the `stepRate` instead.\r\n * @param {number} [stepRate] - Sets the quantity by getting the circumference of the circle and dividing it by the stepRate.\r\n * @param {array} [output] - An array to insert the points in to. If not provided a new array will be created.\r\n *\r\n * @return {Phaser.Geom.Point[]} An array of Point objects pertaining to the points around the circumference of the circle.\r\n */\r\nvar GetPoints = function (circle, quantity, stepRate, out)\r\n{\r\n    if (out === undefined) { out = []; }\r\n\r\n    //  If quantity is a falsey value (false, null, 0, undefined, etc) then we calculate it based on the stepRate instead.\r\n    if (!quantity && stepRate > 0)\r\n    {\r\n        quantity = Circumference(circle) / stepRate;\r\n    }\r\n\r\n    for (var i = 0; i < quantity; i++)\r\n    {\r\n        var angle = FromPercent(i / quantity, 0, MATH_CONST.PI2);\r\n\r\n        out.push(CircumferencePoint(circle, angle));\r\n    }\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetPoints;\r\n\n\n/***/ }),\n\n/***/ 50884:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Offsets the Circle by the values given.\r\n *\r\n * @function Phaser.Geom.Circle.Offset\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Circle} O - [circle,$return]\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The Circle to be offset (translated.)\r\n * @param {number} x - The amount to horizontally offset the Circle by.\r\n * @param {number} y - The amount to vertically offset the Circle by.\r\n *\r\n * @return {Phaser.Geom.Circle} The Circle that was offset.\r\n */\r\nvar Offset = function (circle, x, y)\r\n{\r\n    circle.x += x;\r\n    circle.y += y;\r\n\r\n    return circle;\r\n};\r\n\r\nmodule.exports = Offset;\r\n\n\n/***/ }),\n\n/***/ 39212:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Offsets the Circle by the values given in the `x` and `y` properties of the Point object.\r\n *\r\n * @function Phaser.Geom.Circle.OffsetPoint\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Circle} O - [circle,$return]\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The Circle to be offset (translated.)\r\n * @param {(Phaser.Geom.Point|object)} point - The Point object containing the values to offset the Circle by.\r\n *\r\n * @return {Phaser.Geom.Circle} The Circle that was offset.\r\n */\r\nvar OffsetPoint = function (circle, point)\r\n{\r\n    circle.x += point.x;\r\n    circle.y += point.y;\r\n\r\n    return circle;\r\n};\r\n\r\nmodule.exports = OffsetPoint;\r\n\n\n/***/ }),\n\n/***/ 28176:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Point = __webpack_require__(2141);\r\n\r\n/**\r\n * Returns a uniformly distributed random point from anywhere within the given Circle.\r\n *\r\n * @function Phaser.Geom.Circle.Random\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Point} O - [out,$return]\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The Circle to get a random point from.\r\n * @param {(Phaser.Geom.Point|object)} [out] - A Point or point-like object to set the random `x` and `y` values in.\r\n *\r\n * @return {(Phaser.Geom.Point|object)} A Point object with the random values set in the `x` and `y` properties.\r\n */\r\nvar Random = function (circle, out)\r\n{\r\n    if (out === undefined) { out = new Point(); }\r\n\r\n    var t = 2 * Math.PI * Math.random();\r\n    var u = Math.random() + Math.random();\r\n    var r = (u > 1) ? 2 - u : u;\r\n    var x = r * Math.cos(t);\r\n    var y = r * Math.sin(t);\r\n\r\n    out.x = circle.x + (x * circle.radius);\r\n    out.y = circle.y + (y * circle.radius);\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = Random;\r\n\n\n/***/ }),\n\n/***/ 88911:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Circle = __webpack_require__(96503);\r\n\r\nCircle.Area = __webpack_require__(95166);\r\nCircle.Circumference = __webpack_require__(71562);\r\nCircle.CircumferencePoint = __webpack_require__(92110);\r\nCircle.Clone = __webpack_require__(42250);\r\nCircle.Contains = __webpack_require__(87902);\r\nCircle.ContainsPoint = __webpack_require__(5698);\r\nCircle.ContainsRect = __webpack_require__(70588);\r\nCircle.CopyFrom = __webpack_require__(26394);\r\nCircle.Equals = __webpack_require__(76278);\r\nCircle.GetBounds = __webpack_require__(2074);\r\nCircle.GetPoint = __webpack_require__(26241);\r\nCircle.GetPoints = __webpack_require__(79124);\r\nCircle.Offset = __webpack_require__(50884);\r\nCircle.OffsetPoint = __webpack_require__(39212);\r\nCircle.Random = __webpack_require__(28176);\r\n\r\nmodule.exports = Circle;\r\n\n\n/***/ }),\n\n/***/ 23777:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GEOM_CONST = {\r\n\r\n    /**\r\n     * A Circle Geometry object type.\r\n     *\r\n     * @name Phaser.Geom.CIRCLE\r\n     * @type {number}\r\n     * @since 3.19.0\r\n     */\r\n    CIRCLE: 0,\r\n\r\n    /**\r\n     * An Ellipse Geometry object type.\r\n     *\r\n     * @name Phaser.Geom.ELLIPSE\r\n     * @type {number}\r\n     * @since 3.19.0\r\n     */\r\n    ELLIPSE: 1,\r\n\r\n    /**\r\n     * A Line Geometry object type.\r\n     *\r\n     * @name Phaser.Geom.LINE\r\n     * @type {number}\r\n     * @since 3.19.0\r\n     */\r\n    LINE: 2,\r\n\r\n    /**\r\n     * A Point Geometry object type.\r\n     *\r\n     * @name Phaser.Geom.POINT\r\n     * @type {number}\r\n     * @since 3.19.0\r\n     */\r\n    POINT: 3,\r\n\r\n    /**\r\n     * A Polygon Geometry object type.\r\n     *\r\n     * @name Phaser.Geom.POLYGON\r\n     * @type {number}\r\n     * @since 3.19.0\r\n     */\r\n    POLYGON: 4,\r\n\r\n    /**\r\n     * A Rectangle Geometry object type.\r\n     *\r\n     * @name Phaser.Geom.RECTANGLE\r\n     * @type {number}\r\n     * @since 3.19.0\r\n     */\r\n    RECTANGLE: 5,\r\n\r\n    /**\r\n     * A Triangle Geometry object type.\r\n     *\r\n     * @name Phaser.Geom.TRIANGLE\r\n     * @type {number}\r\n     * @since 3.19.0\r\n     */\r\n    TRIANGLE: 6\r\n\r\n};\r\n\r\nmodule.exports = GEOM_CONST;\r\n\n\n/***/ }),\n\n/***/ 78874:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Calculates the area of the Ellipse.\r\n *\r\n * @function Phaser.Geom.Ellipse.Area\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to get the area of.\r\n *\r\n * @return {number} The area of the Ellipse.\r\n */\r\nvar Area = function (ellipse)\r\n{\r\n    if (ellipse.isEmpty())\r\n    {\r\n        return 0;\r\n    }\r\n\r\n    //  units squared\r\n    return (ellipse.getMajorRadius() * ellipse.getMinorRadius() * Math.PI);\r\n};\r\n\r\nmodule.exports = Area;\r\n\n\n/***/ }),\n\n/***/ 92990:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Returns the circumference of the given Ellipse.\r\n *\r\n * @function Phaser.Geom.Ellipse.Circumference\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to get the circumference of.\r\n *\r\n * @return {number} The circumference of th Ellipse.\r\n */\r\nvar Circumference = function (ellipse)\r\n{\r\n    var rx = ellipse.width / 2;\r\n    var ry = ellipse.height / 2;\r\n    var h = Math.pow((rx - ry), 2) / Math.pow((rx + ry), 2);\r\n\r\n    return (Math.PI * (rx + ry)) * (1 + ((3 * h) / (10 + Math.sqrt(4 - (3 * h)))));\r\n};\r\n\r\nmodule.exports = Circumference;\r\n\n\n/***/ }),\n\n/***/ 79522:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Point = __webpack_require__(2141);\r\n\r\n/**\r\n * Returns a Point object containing the coordinates of a point on the circumference of the Ellipse based on the given angle.\r\n *\r\n * @function Phaser.Geom.Ellipse.CircumferencePoint\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Point} O - [out,$return]\r\n *\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to get the circumference point on.\r\n * @param {number} angle - The angle from the center of the Ellipse to the circumference to return the point from. Given in radians.\r\n * @param {(Phaser.Geom.Point|object)} [out] - A Point, or point-like object, to store the results in. If not given a Point will be created.\r\n *\r\n * @return {(Phaser.Geom.Point|object)} A Point object where the `x` and `y` properties are the point on the circumference.\r\n */\r\nvar CircumferencePoint = function (ellipse, angle, out)\r\n{\r\n    if (out === undefined) { out = new Point(); }\r\n\r\n    var halfWidth = ellipse.width / 2;\r\n    var halfHeight = ellipse.height / 2;\r\n\r\n    out.x = ellipse.x + halfWidth * Math.cos(angle);\r\n    out.y = ellipse.y + halfHeight * Math.sin(angle);\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = CircumferencePoint;\r\n\n\n/***/ }),\n\n/***/ 58102:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Ellipse = __webpack_require__(8497);\r\n\r\n/**\r\n * Creates a new Ellipse instance based on the values contained in the given source.\r\n *\r\n * @function Phaser.Geom.Ellipse.Clone\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Ellipse} source - The Ellipse to be cloned. Can be an instance of an Ellipse or a ellipse-like object, with x, y, width and height properties.\r\n *\r\n * @return {Phaser.Geom.Ellipse} A clone of the source Ellipse.\r\n */\r\nvar Clone = function (source)\r\n{\r\n    return new Ellipse(source.x, source.y, source.width, source.height);\r\n};\r\n\r\nmodule.exports = Clone;\r\n\n\n/***/ }),\n\n/***/ 81154:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Check to see if the Ellipse contains the given x / y coordinates.\r\n *\r\n * @function Phaser.Geom.Ellipse.Contains\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to check.\r\n * @param {number} x - The x coordinate to check within the ellipse.\r\n * @param {number} y - The y coordinate to check within the ellipse.\r\n *\r\n * @return {boolean} True if the coordinates are within the ellipse, otherwise false.\r\n */\r\nvar Contains = function (ellipse, x, y)\r\n{\r\n    if (ellipse.width <= 0 || ellipse.height <= 0)\r\n    {\r\n        return false;\r\n    }\r\n\r\n    //  Normalize the coords to an ellipse with center 0,0 and a radius of 0.5\r\n    var normx = ((x - ellipse.x) / ellipse.width);\r\n    var normy = ((y - ellipse.y) / ellipse.height);\r\n\r\n    normx *= normx;\r\n    normy *= normy;\r\n\r\n    return (normx + normy < 0.25);\r\n};\r\n\r\nmodule.exports = Contains;\r\n\n\n/***/ }),\n\n/***/ 46662:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Contains = __webpack_require__(81154);\r\n\r\n/**\r\n * Check to see if the Ellipse contains the given Point object.\r\n *\r\n * @function Phaser.Geom.Ellipse.ContainsPoint\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to check.\r\n * @param {(Phaser.Geom.Point|object)} point - The Point object to check if it's within the Circle or not.\r\n *\r\n * @return {boolean} True if the Point coordinates are within the circle, otherwise false.\r\n */\r\nvar ContainsPoint = function (ellipse, point)\r\n{\r\n    return Contains(ellipse, point.x, point.y);\r\n};\r\n\r\nmodule.exports = ContainsPoint;\r\n\n\n/***/ }),\n\n/***/ 1632:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Contains = __webpack_require__(81154);\r\n\r\n/**\r\n * Check to see if the Ellipse contains all four points of the given Rectangle object.\r\n *\r\n * @function Phaser.Geom.Ellipse.ContainsRect\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to check.\r\n * @param {(Phaser.Geom.Rectangle|object)} rect - The Rectangle object to check if it's within the Ellipse or not.\r\n *\r\n * @return {boolean} True if all of the Rectangle coordinates are within the ellipse, otherwise false.\r\n */\r\nvar ContainsRect = function (ellipse, rect)\r\n{\r\n    return (\r\n        Contains(ellipse, rect.x, rect.y) &&\r\n        Contains(ellipse, rect.right, rect.y) &&\r\n        Contains(ellipse, rect.x, rect.bottom) &&\r\n        Contains(ellipse, rect.right, rect.bottom)\r\n    );\r\n};\r\n\r\nmodule.exports = ContainsRect;\r\n\n\n/***/ }),\n\n/***/ 65534:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Copies the `x`, `y`, `width` and `height` properties from the `source` Ellipse\r\n * into the given `dest` Ellipse, then returns the `dest` Ellipse.\r\n *\r\n * @function Phaser.Geom.Ellipse.CopyFrom\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Ellipse} O - [dest,$return]\r\n *\r\n * @param {Phaser.Geom.Ellipse} source - The source Ellipse to copy the values from.\r\n * @param {Phaser.Geom.Ellipse} dest - The destination Ellipse to copy the values to.\r\n *\r\n * @return {Phaser.Geom.Ellipse} The destination Ellipse.\r\n */\r\nvar CopyFrom = function (source, dest)\r\n{\r\n    return dest.setTo(source.x, source.y, source.width, source.height);\r\n};\r\n\r\nmodule.exports = CopyFrom;\r\n\n\n/***/ }),\n\n/***/ 8497:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Class = __webpack_require__(83419);\r\nvar Contains = __webpack_require__(81154);\r\nvar GetPoint = __webpack_require__(90549);\r\nvar GetPoints = __webpack_require__(48320);\r\nvar GEOM_CONST = __webpack_require__(23777);\r\nvar Random = __webpack_require__(24820);\r\n\r\n/**\r\n * @classdesc\r\n * An Ellipse object.\r\n *\r\n * This is a geometry object, containing numerical values and related methods to inspect and modify them.\r\n * It is not a Game Object, in that you cannot add it to the display list, and it has no texture.\r\n * To render an Ellipse you should look at the capabilities of the Graphics class.\r\n *\r\n * @class Ellipse\r\n * @memberof Phaser.Geom\r\n * @constructor\r\n * @since 3.0.0\r\n *\r\n * @param {number} [x=0] - The x position of the center of the ellipse.\r\n * @param {number} [y=0] - The y position of the center of the ellipse.\r\n * @param {number} [width=0] - The width of the ellipse.\r\n * @param {number} [height=0] - The height of the ellipse.\r\n */\r\nvar Ellipse = new Class({\r\n\r\n    initialize:\r\n\r\n    function Ellipse (x, y, width, height)\r\n    {\r\n        if (x === undefined) { x = 0; }\r\n        if (y === undefined) { y = 0; }\r\n        if (width === undefined) { width = 0; }\r\n        if (height === undefined) { height = 0; }\r\n\r\n        /**\r\n         * The geometry constant type of this object: `GEOM_CONST.ELLIPSE`.\r\n         * Used for fast type comparisons.\r\n         *\r\n         * @name Phaser.Geom.Ellipse#type\r\n         * @type {number}\r\n         * @readonly\r\n         * @since 3.19.0\r\n         */\r\n        this.type = GEOM_CONST.ELLIPSE;\r\n\r\n        /**\r\n         * The x position of the center of the ellipse.\r\n         *\r\n         * @name Phaser.Geom.Ellipse#x\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.x = x;\r\n\r\n        /**\r\n         * The y position of the center of the ellipse.\r\n         *\r\n         * @name Phaser.Geom.Ellipse#y\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.y = y;\r\n\r\n        /**\r\n         * The width of the ellipse.\r\n         *\r\n         * @name Phaser.Geom.Ellipse#width\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.width = width;\r\n\r\n        /**\r\n         * The height of the ellipse.\r\n         *\r\n         * @name Phaser.Geom.Ellipse#height\r\n         * @type {number}\r\n         * @default 0\r\n         * @since 3.0.0\r\n         */\r\n        this.height = height;\r\n    },\r\n\r\n    /**\r\n     * Check to see if the Ellipse contains the given x / y coordinates.\r\n     *\r\n     * @method Phaser.Geom.Ellipse#contains\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x coordinate to check within the ellipse.\r\n     * @param {number} y - The y coordinate to check within the ellipse.\r\n     *\r\n     * @return {boolean} True if the coordinates are within the ellipse, otherwise false.\r\n     */\r\n    contains: function (x, y)\r\n    {\r\n        return Contains(this, x, y);\r\n    },\r\n\r\n    /**\r\n     * Returns a Point object containing the coordinates of a point on the circumference of the Ellipse\r\n     * based on the given angle normalized to the range 0 to 1. I.e. a value of 0.5 will give the point\r\n     * at 180 degrees around the circle.\r\n     *\r\n     * @method Phaser.Geom.Ellipse#getPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Geom.Point} O - [out,$return]\r\n     *\r\n     * @param {number} position - A value between 0 and 1, where 0 equals 0 degrees, 0.5 equals 180 degrees and 1 equals 360 around the ellipse.\r\n     * @param {(Phaser.Geom.Point|object)} [out] - An object to store the return values in. If not given a Point object will be created.\r\n     *\r\n     * @return {(Phaser.Geom.Point|object)} A Point, or point-like object, containing the coordinates of the point around the ellipse.\r\n     */\r\n    getPoint: function (position, point)\r\n    {\r\n        return GetPoint(this, position, point);\r\n    },\r\n\r\n    /**\r\n     * Returns an array of Point objects containing the coordinates of the points around the circumference of the Ellipse,\r\n     * based on the given quantity or stepRate values.\r\n     *\r\n     * @method Phaser.Geom.Ellipse#getPoints\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Geom.Point[]} O - [output,$return]\r\n     *\r\n     * @param {number} quantity - The amount of points to return. If a falsey value the quantity will be derived from the `stepRate` instead.\r\n     * @param {number} [stepRate] - Sets the quantity by getting the circumference of the ellipse and dividing it by the stepRate.\r\n     * @param {(array|Phaser.Geom.Point[])} [output] - An array to insert the points in to. If not provided a new array will be created.\r\n     *\r\n     * @return {(array|Phaser.Geom.Point[])} An array of Point objects pertaining to the points around the circumference of the ellipse.\r\n     */\r\n    getPoints: function (quantity, stepRate, output)\r\n    {\r\n        return GetPoints(this, quantity, stepRate, output);\r\n    },\r\n\r\n    /**\r\n     * Returns a uniformly distributed random point from anywhere within the given Ellipse.\r\n     *\r\n     * @method Phaser.Geom.Ellipse#getRandomPoint\r\n     * @since 3.0.0\r\n     *\r\n     * @generic {Phaser.Geom.Point} O - [point,$return]\r\n     *\r\n     * @param {(Phaser.Geom.Point|object)} [point] - A Point or point-like object to set the random `x` and `y` values in.\r\n     *\r\n     * @return {(Phaser.Geom.Point|object)} A Point object with the random values set in the `x` and `y` properties.\r\n     */\r\n    getRandomPoint: function (point)\r\n    {\r\n        return Random(this, point);\r\n    },\r\n\r\n    /**\r\n     * Sets the x, y, width and height of this ellipse.\r\n     *\r\n     * @method Phaser.Geom.Ellipse#setTo\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x position of the center of the ellipse.\r\n     * @param {number} y - The y position of the center of the ellipse.\r\n     * @param {number} width - The width of the ellipse.\r\n     * @param {number} height - The height of the ellipse.\r\n     *\r\n     * @return {this} This Ellipse object.\r\n     */\r\n    setTo: function (x, y, width, height)\r\n    {\r\n        this.x = x;\r\n        this.y = y;\r\n        this.width = width;\r\n        this.height = height;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets this Ellipse to be empty with a width and height of zero.\r\n     * Does not change its position.\r\n     *\r\n     * @method Phaser.Geom.Ellipse#setEmpty\r\n     * @since 3.0.0\r\n     *\r\n     * @return {this} This Ellipse object.\r\n     */\r\n    setEmpty: function ()\r\n    {\r\n        this.width = 0;\r\n        this.height = 0;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the position of this Ellipse.\r\n     *\r\n     * @method Phaser.Geom.Ellipse#setPosition\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} x - The x position of the center of the ellipse.\r\n     * @param {number} y - The y position of the center of the ellipse.\r\n     *\r\n     * @return {this} This Ellipse object.\r\n     */\r\n    setPosition: function (x, y)\r\n    {\r\n        if (y === undefined) { y = x; }\r\n\r\n        this.x = x;\r\n        this.y = y;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Sets the size of this Ellipse.\r\n     * Does not change its position.\r\n     *\r\n     * @method Phaser.Geom.Ellipse#setSize\r\n     * @since 3.0.0\r\n     *\r\n     * @param {number} width - The width of the ellipse.\r\n     * @param {number} [height=width] - The height of the ellipse.\r\n     *\r\n     * @return {this} This Ellipse object.\r\n     */\r\n    setSize: function (width, height)\r\n    {\r\n        if (height === undefined) { height = width; }\r\n\r\n        this.width = width;\r\n        this.height = height;\r\n\r\n        return this;\r\n    },\r\n\r\n    /**\r\n     * Checks to see if the Ellipse is empty: has a width or height equal to zero.\r\n     *\r\n     * @method Phaser.Geom.Ellipse#isEmpty\r\n     * @since 3.0.0\r\n     *\r\n     * @return {boolean} True if the Ellipse is empty, otherwise false.\r\n     */\r\n    isEmpty: function ()\r\n    {\r\n        return (this.width <= 0 || this.height <= 0);\r\n    },\r\n\r\n    /**\r\n     * Returns the minor radius of the ellipse. Also known as the Semi Minor Axis.\r\n     *\r\n     * @method Phaser.Geom.Ellipse#getMinorRadius\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The minor radius.\r\n     */\r\n    getMinorRadius: function ()\r\n    {\r\n        return Math.min(this.width, this.height) / 2;\r\n    },\r\n\r\n    /**\r\n     * Returns the major radius of the ellipse. Also known as the Semi Major Axis.\r\n     *\r\n     * @method Phaser.Geom.Ellipse#getMajorRadius\r\n     * @since 3.0.0\r\n     *\r\n     * @return {number} The major radius.\r\n     */\r\n    getMajorRadius: function ()\r\n    {\r\n        return Math.max(this.width, this.height) / 2;\r\n    },\r\n\r\n    /**\r\n     * The left position of the Ellipse.\r\n     *\r\n     * @name Phaser.Geom.Ellipse#left\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    left: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.x - (this.width / 2);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.x = value + (this.width / 2);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The right position of the Ellipse.\r\n     *\r\n     * @name Phaser.Geom.Ellipse#right\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    right: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.x + (this.width / 2);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.x = value - (this.width / 2);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The top position of the Ellipse.\r\n     *\r\n     * @name Phaser.Geom.Ellipse#top\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    top: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.y - (this.height / 2);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.y = value + (this.height / 2);\r\n        }\r\n\r\n    },\r\n\r\n    /**\r\n     * The bottom position of the Ellipse.\r\n     *\r\n     * @name Phaser.Geom.Ellipse#bottom\r\n     * @type {number}\r\n     * @since 3.0.0\r\n     */\r\n    bottom: {\r\n\r\n        get: function ()\r\n        {\r\n            return this.y + (this.height / 2);\r\n        },\r\n\r\n        set: function (value)\r\n        {\r\n            this.y = value - (this.height / 2);\r\n        }\r\n\r\n    }\r\n\r\n});\r\n\r\nmodule.exports = Ellipse;\r\n\n\n/***/ }),\n\n/***/ 36146:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Compares the `x`, `y`, `width` and `height` properties of the two given Ellipses.\r\n * Returns `true` if they all match, otherwise returns `false`.\r\n *\r\n * @function Phaser.Geom.Ellipse.Equals\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Ellipse} ellipse - The first Ellipse to compare.\r\n * @param {Phaser.Geom.Ellipse} toCompare - The second Ellipse to compare.\r\n *\r\n * @return {boolean} `true` if the two Ellipse equal each other, otherwise `false`.\r\n */\r\nvar Equals = function (ellipse, toCompare)\r\n{\r\n    return (\r\n        ellipse.x === toCompare.x &&\r\n        ellipse.y === toCompare.y &&\r\n        ellipse.width === toCompare.width &&\r\n        ellipse.height === toCompare.height\r\n    );\r\n};\r\n\r\nmodule.exports = Equals;\r\n\n\n/***/ }),\n\n/***/ 23694:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Rectangle = __webpack_require__(87841);\r\n\r\n/**\r\n * Returns the bounds of the Ellipse object.\r\n *\r\n * @function Phaser.Geom.Ellipse.GetBounds\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Rectangle} O - [out,$return]\r\n *\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to get the bounds from.\r\n * @param {(Phaser.Geom.Rectangle|object)} [out] - A Rectangle, or rectangle-like object, to store the ellipse bounds in. If not given a new Rectangle will be created.\r\n *\r\n * @return {(Phaser.Geom.Rectangle|object)} The Rectangle object containing the Ellipse bounds.\r\n */\r\nvar GetBounds = function (ellipse, out)\r\n{\r\n    if (out === undefined) { out = new Rectangle(); }\r\n\r\n    out.x = ellipse.left;\r\n    out.y = ellipse.top;\r\n    out.width = ellipse.width;\r\n    out.height = ellipse.height;\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetBounds;\r\n\n\n/***/ }),\n\n/***/ 90549:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CircumferencePoint = __webpack_require__(79522);\r\nvar FromPercent = __webpack_require__(62945);\r\nvar MATH_CONST = __webpack_require__(36383);\r\nvar Point = __webpack_require__(2141);\r\n\r\n/**\r\n * Returns a Point object containing the coordinates of a point on the circumference of the Ellipse\r\n * based on the given angle normalized to the range 0 to 1. I.e. a value of 0.5 will give the point\r\n * at 180 degrees around the circle.\r\n *\r\n * @function Phaser.Geom.Ellipse.GetPoint\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Point} O - [out,$return]\r\n *\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to get the circumference point on.\r\n * @param {number} position - A value between 0 and 1, where 0 equals 0 degrees, 0.5 equals 180 degrees and 1 equals 360 around the ellipse.\r\n * @param {(Phaser.Geom.Point|object)} [out] - An object to store the return values in. If not given a Point object will be created.\r\n *\r\n * @return {(Phaser.Geom.Point|object)} A Point, or point-like object, containing the coordinates of the point around the ellipse.\r\n */\r\nvar GetPoint = function (ellipse, position, out)\r\n{\r\n    if (out === undefined) { out = new Point(); }\r\n\r\n    var angle = FromPercent(position, 0, MATH_CONST.PI2);\r\n\r\n    return CircumferencePoint(ellipse, angle, out);\r\n};\r\n\r\nmodule.exports = GetPoint;\r\n\n\n/***/ }),\n\n/***/ 48320:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Circumference = __webpack_require__(92990);\r\nvar CircumferencePoint = __webpack_require__(79522);\r\nvar FromPercent = __webpack_require__(62945);\r\nvar MATH_CONST = __webpack_require__(36383);\r\n\r\n/**\r\n * Returns an array of Point objects containing the coordinates of the points around the circumference of the Ellipse,\r\n * based on the given quantity or stepRate values.\r\n *\r\n * @function Phaser.Geom.Ellipse.GetPoints\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Point[]} O - [out,$return]\r\n *\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to get the points from.\r\n * @param {number} quantity - The amount of points to return. If a falsey value the quantity will be derived from the `stepRate` instead.\r\n * @param {number} [stepRate] - Sets the quantity by getting the circumference of the ellipse and dividing it by the stepRate.\r\n * @param {(array|Phaser.Geom.Point[])} [out] - An array to insert the points in to. If not provided a new array will be created.\r\n *\r\n * @return {(array|Phaser.Geom.Point[])} An array of Point objects pertaining to the points around the circumference of the ellipse.\r\n */\r\nvar GetPoints = function (ellipse, quantity, stepRate, out)\r\n{\r\n    if (out === undefined) { out = []; }\r\n\r\n    //  If quantity is a falsey value (false, null, 0, undefined, etc) then we calculate it based on the stepRate instead.\r\n    if (!quantity && stepRate > 0)\r\n    {\r\n        quantity = Circumference(ellipse) / stepRate;\r\n    }\r\n\r\n    for (var i = 0; i < quantity; i++)\r\n    {\r\n        var angle = FromPercent(i / quantity, 0, MATH_CONST.PI2);\r\n\r\n        out.push(CircumferencePoint(ellipse, angle));\r\n    }\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetPoints;\r\n\n\n/***/ }),\n\n/***/ 73424:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Offsets the Ellipse by the values given.\r\n *\r\n * @function Phaser.Geom.Ellipse.Offset\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Ellipse} O - [ellipse,$return]\r\n *\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to be offset (translated.)\r\n * @param {number} x - The amount to horizontally offset the Ellipse by.\r\n * @param {number} y - The amount to vertically offset the Ellipse by.\r\n *\r\n * @return {Phaser.Geom.Ellipse} The Ellipse that was offset.\r\n */\r\nvar Offset = function (ellipse, x, y)\r\n{\r\n    ellipse.x += x;\r\n    ellipse.y += y;\r\n\r\n    return ellipse;\r\n};\r\n\r\nmodule.exports = Offset;\r\n\n\n/***/ }),\n\n/***/ 44808:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Offsets the Ellipse by the values given in the `x` and `y` properties of the Point object.\r\n *\r\n * @function Phaser.Geom.Ellipse.OffsetPoint\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Ellipse} O - [ellipse,$return]\r\n *\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to be offset (translated.)\r\n * @param {(Phaser.Geom.Point|object)} point - The Point object containing the values to offset the Ellipse by.\r\n *\r\n * @return {Phaser.Geom.Ellipse} The Ellipse that was offset.\r\n */\r\nvar OffsetPoint = function (ellipse, point)\r\n{\r\n    ellipse.x += point.x;\r\n    ellipse.y += point.y;\r\n\r\n    return ellipse;\r\n};\r\n\r\nmodule.exports = OffsetPoint;\r\n\n\n/***/ }),\n\n/***/ 24820:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Point = __webpack_require__(2141);\r\n\r\n/**\r\n * Returns a uniformly distributed random point from anywhere within the given Ellipse.\r\n *\r\n * @function Phaser.Geom.Ellipse.Random\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Point} O - [out,$return]\r\n *\r\n * @param {Phaser.Geom.Ellipse} ellipse - The Ellipse to get a random point from.\r\n * @param {(Phaser.Geom.Point|object)} [out] - A Point or point-like object to set the random `x` and `y` values in.\r\n *\r\n * @return {(Phaser.Geom.Point|object)} A Point object with the random values set in the `x` and `y` properties.\r\n */\r\nvar Random = function (ellipse, out)\r\n{\r\n    if (out === undefined) { out = new Point(); }\r\n\r\n    var p = Math.random() * Math.PI * 2;\r\n    var s = Math.sqrt(Math.random());\r\n\r\n    out.x = ellipse.x + ((s * Math.cos(p)) * ellipse.width / 2);\r\n    out.y = ellipse.y + ((s * Math.sin(p)) * ellipse.height / 2);\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = Random;\r\n\n\n/***/ }),\n\n/***/ 49203:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Ellipse = __webpack_require__(8497);\r\n\r\nEllipse.Area = __webpack_require__(78874);\r\nEllipse.Circumference = __webpack_require__(92990);\r\nEllipse.CircumferencePoint = __webpack_require__(79522);\r\nEllipse.Clone = __webpack_require__(58102);\r\nEllipse.Contains = __webpack_require__(81154);\r\nEllipse.ContainsPoint = __webpack_require__(46662);\r\nEllipse.ContainsRect = __webpack_require__(1632);\r\nEllipse.CopyFrom = __webpack_require__(65534);\r\nEllipse.Equals = __webpack_require__(36146);\r\nEllipse.GetBounds = __webpack_require__(23694);\r\nEllipse.GetPoint = __webpack_require__(90549);\r\nEllipse.GetPoints = __webpack_require__(48320);\r\nEllipse.Offset = __webpack_require__(73424);\r\nEllipse.OffsetPoint = __webpack_require__(44808);\r\nEllipse.Random = __webpack_require__(24820);\r\n\r\nmodule.exports = Ellipse;\r\n\n\n/***/ }),\n\n/***/ 55738:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar CONST = __webpack_require__(23777);\r\nvar Extend = __webpack_require__(79291);\r\n\r\n/**\r\n * @namespace Phaser.Geom\r\n */\r\n\r\nvar Geom = {\r\n\r\n    Circle: __webpack_require__(88911),\r\n    Ellipse: __webpack_require__(49203),\r\n    Intersects: __webpack_require__(91865),\r\n    Line: __webpack_require__(2529),\r\n    Mesh: __webpack_require__(73090),\r\n    Point: __webpack_require__(43711),\r\n    Polygon: __webpack_require__(58423),\r\n    Rectangle: __webpack_require__(93232),\r\n    Triangle: __webpack_require__(84435)\r\n\r\n};\r\n\r\n//   Merge in the consts\r\nGeom = Extend(false, Geom, CONST);\r\n\r\nmodule.exports = Geom;\r\n\n\n/***/ }),\n\n/***/ 2044:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar DistanceBetween = __webpack_require__(20339);\r\n\r\n/**\r\n * Checks if two Circles intersect.\r\n *\r\n * @function Phaser.Geom.Intersects.CircleToCircle\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Circle} circleA - The first Circle to check for intersection.\r\n * @param {Phaser.Geom.Circle} circleB - The second Circle to check for intersection.\r\n *\r\n * @return {boolean} `true` if the two Circles intersect, otherwise `false`.\r\n */\r\nvar CircleToCircle = function (circleA, circleB)\r\n{\r\n    return (DistanceBetween(circleA.x, circleA.y, circleB.x, circleB.y) <= (circleA.radius + circleB.radius));\r\n};\r\n\r\nmodule.exports = CircleToCircle;\r\n\n\n/***/ }),\n\n/***/ 81491:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Checks for intersection between a circle and a rectangle.\r\n *\r\n * @function Phaser.Geom.Intersects.CircleToRectangle\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The circle to be checked.\r\n * @param {Phaser.Geom.Rectangle} rect - The rectangle to be checked.\r\n *\r\n * @return {boolean} `true` if the two objects intersect, otherwise `false`.\r\n */\r\nvar CircleToRectangle = function (circle, rect)\r\n{\r\n    var halfWidth = rect.width / 2;\r\n    var halfHeight = rect.height / 2;\r\n\r\n    var cx = Math.abs(circle.x - rect.x - halfWidth);\r\n    var cy = Math.abs(circle.y - rect.y - halfHeight);\r\n    var xDist = halfWidth + circle.radius;\r\n    var yDist = halfHeight + circle.radius;\r\n\r\n    if (cx > xDist || cy > yDist)\r\n    {\r\n        return false;\r\n    }\r\n    else if (cx <= halfWidth || cy <= halfHeight)\r\n    {\r\n        return true;\r\n    }\r\n    else\r\n    {\r\n        var xCornerDist = cx - halfWidth;\r\n        var yCornerDist = cy - halfHeight;\r\n        var xCornerDistSq = xCornerDist * xCornerDist;\r\n        var yCornerDistSq = yCornerDist * yCornerDist;\r\n        var maxCornerDistSq = circle.radius * circle.radius;\r\n\r\n        return (xCornerDistSq + yCornerDistSq <= maxCornerDistSq);\r\n    }\r\n};\r\n\r\nmodule.exports = CircleToRectangle;\r\n\n\n/***/ }),\n\n/***/ 63376:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Florian Vazelle\r\n * @author       Geoffrey Glaive\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Point = __webpack_require__(2141);\r\nvar CircleToCircle = __webpack_require__(2044);\r\n\r\n/**\r\n * Checks if two Circles intersect and returns the intersection points as a Point object array.\r\n *\r\n * @function Phaser.Geom.Intersects.GetCircleToCircle\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Circle} circleA - The first Circle to check for intersection.\r\n * @param {Phaser.Geom.Circle} circleB - The second Circle to check for intersection.\r\n * @param {array} [out] - An optional array in which to store the points of intersection.\r\n *\r\n * @return {array} An array with the points of intersection if objects intersect, otherwise an empty array.\r\n */\r\nvar GetCircleToCircle = function (circleA, circleB, out)\r\n{\r\n    if (out === undefined) { out = []; }\r\n\r\n    if (CircleToCircle(circleA, circleB))\r\n    {\r\n        var x0 = circleA.x;\r\n        var y0 = circleA.y;\r\n        var r0 = circleA.radius;\r\n\r\n        var x1 = circleB.x;\r\n        var y1 = circleB.y;\r\n        var r1 = circleB.radius;\r\n\r\n        var coefficientA, coefficientB, coefficientC, lambda, x;\r\n\r\n        if (y0 === y1)\r\n        {\r\n            x = ((r1 * r1) - (r0 * r0) - (x1 * x1) + (x0 * x0)) / (2 * (x0 - x1));\r\n\r\n            coefficientA = 1;\r\n            coefficientB = -2 * y1;\r\n            coefficientC = (x1 * x1) + (x * x) - (2 * x1 * x) + (y1 * y1) - (r1 * r1);\r\n\r\n            lambda = (coefficientB * coefficientB) - (4 * coefficientA * coefficientC);\r\n\r\n            if (lambda === 0)\r\n            {\r\n                out.push(new Point(x, (-coefficientB / (2 * coefficientA))));\r\n            }\r\n            else if (lambda > 0)\r\n            {\r\n                out.push(new Point(x, (-coefficientB + Math.sqrt(lambda)) / (2 * coefficientA)));\r\n                out.push(new Point(x, (-coefficientB - Math.sqrt(lambda)) / (2 * coefficientA)));\r\n            }\r\n        }\r\n        else\r\n        {\r\n            var v1 = (x0 - x1) / (y0 - y1);\r\n            var n = (r1 * r1 - r0 * r0 - x1 * x1 + x0 * x0 - y1 * y1 + y0 * y0) / (2 * (y0 - y1));\r\n\r\n            coefficientA = (v1 * v1) + 1;\r\n            coefficientB = (2 * y0 * v1) - (2 * n * v1) - (2 * x0);\r\n            coefficientC = (x0 * x0) + (y0 * y0) + (n * n) - (r0 * r0) - (2 * y0 * n);\r\n\r\n            lambda = (coefficientB * coefficientB) - (4 * coefficientA * coefficientC);\r\n\r\n            if (lambda === 0)\r\n            {\r\n                x = (-coefficientB / (2 * coefficientA));\r\n                out.push(new Point(x, (n - (x * v1))));\r\n            }\r\n            else if (lambda > 0)\r\n            {\r\n                x = (-coefficientB + Math.sqrt(lambda)) / (2 * coefficientA);\r\n                out.push(new Point(x, (n - (x * v1))));\r\n                x = (-coefficientB - Math.sqrt(lambda)) / (2 * coefficientA);\r\n                out.push(new Point(x, (n - (x * v1))));\r\n            }\r\n        }\r\n    }\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetCircleToCircle;\r\n\n\n/***/ }),\n\n/***/ 97439:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Florian Vazelle\r\n * @author       Geoffrey Glaive\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetLineToCircle = __webpack_require__(4042);\r\nvar CircleToRectangle = __webpack_require__(81491);\r\n\r\n/**\r\n * Checks for intersection between a circle and a rectangle,\r\n * and returns the intersection points as a Point object array.\r\n *\r\n * @function Phaser.Geom.Intersects.GetCircleToRectangle\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Circle} circle - The circle to be checked.\r\n * @param {Phaser.Geom.Rectangle} rect - The rectangle to be checked.\r\n * @param {array} [out] - An optional array in which to store the points of intersection.\r\n *\r\n * @return {array} An array with the points of intersection if objects intersect, otherwise an empty array.\r\n */\r\nvar GetCircleToRectangle = function (circle, rect, out)\r\n{\r\n    if (out === undefined) { out = []; }\r\n\r\n    if (CircleToRectangle(circle, rect))\r\n    {\r\n        var lineA = rect.getLineA();\r\n        var lineB = rect.getLineB();\r\n        var lineC = rect.getLineC();\r\n        var lineD = rect.getLineD();\r\n\r\n        GetLineToCircle(lineA, circle, out);\r\n        GetLineToCircle(lineB, circle, out);\r\n        GetLineToCircle(lineC, circle, out);\r\n        GetLineToCircle(lineD, circle, out);\r\n    }\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetCircleToRectangle;\r\n\n\n/***/ }),\n\n/***/ 4042:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Florian Vazelle\r\n * @author       Geoffrey Glaive\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Point = __webpack_require__(2141);\r\nvar LineToCircle = __webpack_require__(80462);\r\n\r\n/**\r\n * Checks for intersection between the line segment and circle,\r\n * and returns the intersection points as a Point object array.\r\n *\r\n * @function Phaser.Geom.Intersects.GetLineToCircle\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Line} line - The line segment to check.\r\n * @param {Phaser.Geom.Circle} circle - The circle to check against the line.\r\n * @param {array} [out] - An optional array in which to store the points of intersection.\r\n *\r\n * @return {array} An array with the points of intersection if objects intersect, otherwise an empty array.\r\n */\r\nvar GetLineToCircle = function (line, circle, out)\r\n{\r\n    if (out === undefined) { out = []; }\r\n\r\n    if (LineToCircle(line, circle))\r\n    {\r\n        var lx1 = line.x1;\r\n        var ly1 = line.y1;\r\n\r\n        var lx2 = line.x2;\r\n        var ly2 = line.y2;\r\n\r\n        var cx = circle.x;\r\n        var cy = circle.y;\r\n        var cr = circle.radius;\r\n\r\n        var lDirX = lx2 - lx1;\r\n        var lDirY = ly2 - ly1;\r\n        var oDirX = lx1 - cx;\r\n        var oDirY = ly1 - cy;\r\n\r\n        var coefficientA = lDirX * lDirX + lDirY * lDirY;\r\n        var coefficientB = 2 * (lDirX * oDirX + lDirY * oDirY);\r\n        var coefficientC = oDirX * oDirX + oDirY * oDirY - cr * cr;\r\n\r\n        var lambda = (coefficientB * coefficientB) - (4 * coefficientA * coefficientC);\r\n\r\n        var x, y;\r\n\r\n        if (lambda === 0)\r\n        {\r\n            var root = -coefficientB / (2 * coefficientA);\r\n            x = lx1 + root * lDirX;\r\n            y = ly1 + root * lDirY;\r\n            if (root >= 0 && root <= 1)\r\n            {\r\n                out.push(new Point(x, y));\r\n            }\r\n        }\r\n        else if (lambda > 0)\r\n        {\r\n            var root1 = (-coefficientB - Math.sqrt(lambda)) / (2 * coefficientA);\r\n            x = lx1 + root1 * lDirX;\r\n            y = ly1 + root1 * lDirY;\r\n            if (root1 >= 0 && root1 <= 1)\r\n            {\r\n                out.push(new Point(x, y));\r\n            }\r\n\r\n            var root2 = (-coefficientB + Math.sqrt(lambda)) / (2 * coefficientA);\r\n            x = lx1 + root2 * lDirX;\r\n            y = ly1 + root2 * lDirY;\r\n            if (root2 >= 0 && root2 <= 1)\r\n            {\r\n                out.push(new Point(x, y));\r\n            }\r\n        }\r\n    }\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetLineToCircle;\r\n\n\n/***/ }),\n\n/***/ 36100:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Vector3 = __webpack_require__(25836);\r\n\r\n/**\r\n * Checks for intersection between the two line segments, or a ray and a line segment,\r\n * and returns the intersection point as a Vector3, or `null` if the lines are parallel, or do not intersect.\r\n *\r\n * The `z` property of the Vector3 contains the intersection distance, which can be used to find\r\n * the closest intersecting point from a group of line segments.\r\n *\r\n * @function Phaser.Geom.Intersects.GetLineToLine\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.Geom.Line} line1 - The first line segment, or a ray, to check.\r\n * @param {Phaser.Geom.Line} line2 - The second line segment to check.\r\n * @param {boolean} [isRay=false] - Is `line1` a ray or a line segment?\r\n * @param {Phaser.Math.Vector3} [out] - A Vector3 to store the intersection results in.\r\n *\r\n * @return {Phaser.Math.Vector3} A Vector3 containing the intersection results, or `null`.\r\n */\r\nvar GetLineToLine = function (line1, line2, isRay, out)\r\n{\r\n    if (isRay === undefined) { isRay = false; }\r\n\r\n    var x1 = line1.x1;\r\n    var y1 = line1.y1;\r\n    var x2 = line1.x2;\r\n    var y2 = line1.y2;\r\n\r\n    var x3 = line2.x1;\r\n    var y3 = line2.y1;\r\n    var x4 = line2.x2;\r\n    var y4 = line2.y2;\r\n\r\n    var dx1 = x2 - x1;\r\n    var dy1 = y2 - y1;\r\n\r\n    var dx2 = x4 - x3;\r\n    var dy2 = y4 - y3;\r\n\r\n    var denom = (dx1 * dy2 - dy1 * dx2);\r\n\r\n    //  Add co-linear check\r\n\r\n    //  Make sure there is not a division by zero - this also indicates that the lines are parallel.\r\n    //  If numA and numB were both equal to zero the lines would be on top of each other (coincidental).\r\n    //  This check is not done because it is not necessary for this implementation (the parallel check accounts for this).\r\n\r\n    if (denom === 0)\r\n    {\r\n        return null;\r\n    }\r\n\r\n    var t;\r\n    var u;\r\n    var s;\r\n\r\n    if (isRay)\r\n    {\r\n        t = (dx1 * (y3 - y1) + dy1 * (x1 - x3)) / (dx2 * dy1 - dy2 * dx1);\r\n        \r\n        if (dx1 !== 0)\r\n        {\r\n            u = (x3 + dx2 * t - x1) / dx1;\r\n        }\r\n        else if (dy1 !== 0)\r\n        {\r\n            u = (y3 + dy2 * t - y1) / dy1;\r\n        }\r\n        else\r\n        {\r\n            return null; // degenerate line segment\r\n        }\r\n\r\n        //  Intersects?\r\n        if (u < 0 || t < 0 || t > 1)\r\n        {\r\n            return null;\r\n        }\r\n\r\n        s = u;\r\n    }\r\n    else\r\n    {\r\n        t = ((x3 - x1) * dy2 - (y3 - y1) * dx2) / denom;\r\n        u = ((y1 - y3) * dx1 - (x1 - x3) * dy1) / denom;\r\n\r\n        //  Intersects?\r\n        if (t < 0 || t > 1 || u < 0 || u > 1)\r\n        {\r\n            return null;\r\n        }\r\n\r\n        s = t;\r\n    }\r\n\r\n    if (out === undefined)\r\n    {\r\n        out = new Vector3();\r\n    }\r\n\r\n    return out.set(\r\n        x1 + dx1 * s,\r\n        y1 + dy1 * s,\r\n        s\r\n    );\r\n};\r\n\r\nmodule.exports = GetLineToLine;\r\n\n\n/***/ }),\n\n/***/ 3073:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetLineToLine = __webpack_require__(36100);\r\nvar Line = __webpack_require__(23031);\r\nvar Vector3 = __webpack_require__(25836);\r\n\r\n//  Temp calculation segment\r\nvar segment = new Line();\r\n\r\n//  Temp vec3\r\nvar tempIntersect = new Vector3();\r\n\r\n/**\r\n * Checks for the closest point of intersection between a line segment and an array of points, where each pair\r\n * of points are converted to line segments for the intersection tests.\r\n *\r\n * If no intersection is found, this function returns `null`.\r\n *\r\n * If intersection was found, a Vector3 is returned with the following properties:\r\n *\r\n * The `x` and `y` components contain the point of the intersection.\r\n * The `z` component contains the closest distance.\r\n *\r\n * @function Phaser.Geom.Intersects.GetLineToPoints\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.Geom.Line} line - The line segment, or ray, to check. If a ray, set the `isRay` parameter to `true`.\r\n * @param {Phaser.Math.Vector2[] | Phaser.Geom.Point[]} points - An array of points to check.\r\n * @param {boolean} [isRay=false] - Is `line` a ray or a line segment?\r\n * @param {Phaser.Math.Vector3} [out] - A Vector3 to store the intersection results in.\r\n *\r\n * @return {Phaser.Math.Vector3} A Vector3 containing the intersection results, or `null`.\r\n */\r\nvar GetLineToPoints = function (line, points, isRay, out)\r\n{\r\n    if (isRay === undefined) { isRay = false; }\r\n    if (out === undefined) { out = new Vector3(); }\r\n\r\n    var closestIntersect = false;\r\n\r\n    //  Reset our vec3s\r\n    out.set();\r\n    tempIntersect.set();\r\n\r\n    var prev = points[points.length - 1];\r\n\r\n    for (var i = 0; i < points.length; i++)\r\n    {\r\n        var current = points[i];\r\n\r\n        segment.setTo(prev.x, prev.y, current.x, current.y);\r\n\r\n        prev = current;\r\n\r\n        if (GetLineToLine(line, segment, isRay, tempIntersect))\r\n        {\r\n            if (!closestIntersect || tempIntersect.z < out.z)\r\n            {\r\n                out.copy(tempIntersect);\r\n\r\n                closestIntersect = true;\r\n            }\r\n        }\r\n    }\r\n\r\n    return (closestIntersect) ? out : null;\r\n};\r\n\r\nmodule.exports = GetLineToPoints;\r\n\n\n/***/ }),\n\n/***/ 56362:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Vector3 = __webpack_require__(25836);\r\nvar Vector4 = __webpack_require__(61369);\r\nvar GetLineToPoints = __webpack_require__(3073);\r\n\r\n//  Temp vec3\r\nvar tempIntersect = new Vector3();\r\n\r\n/**\r\n * Checks for the closest point of intersection between a line segment and an array of polygons.\r\n *\r\n * If no intersection is found, this function returns `null`.\r\n *\r\n * If intersection was found, a Vector4 is returned with the following properties:\r\n *\r\n * The `x` and `y` components contain the point of the intersection.\r\n * The `z` component contains the closest distance.\r\n * The `w` component contains the index of the polygon, in the given array, that triggered the intersection.\r\n *\r\n * @function Phaser.Geom.Intersects.GetLineToPolygon\r\n * @since 3.50.0\r\n *\r\n * @param {Phaser.Geom.Line} line - The line segment, or ray, to check. If a ray, set the `isRay` parameter to `true`.\r\n * @param {Phaser.Geom.Polygon | Phaser.Geom.Polygon[]} polygons - A single polygon, or array of polygons, to check.\r\n * @param {boolean} [isRay=false] - Is `line` a ray or a line segment?\r\n * @param {Phaser.Math.Vector4} [out] - A Vector4 to store the intersection results in.\r\n *\r\n * @return {Phaser.Math.Vector4} A Vector4 containing the intersection results, or `null`.\r\n */\r\nvar GetLineToPolygon = function (line, polygons, isRay, out)\r\n{\r\n    if (out === undefined) { out = new Vector4(); }\r\n\r\n    if (!Array.isArray(polygons))\r\n    {\r\n        polygons = [ polygons ];\r\n    }\r\n\r\n    var closestIntersect = false;\r\n\r\n    //  Reset our vec4s\r\n    out.set();\r\n    tempIntersect.set();\r\n\r\n    for (var i = 0; i < polygons.length; i++)\r\n    {\r\n        if (GetLineToPoints(line, polygons[i].points, isRay, tempIntersect))\r\n        {\r\n            if (!closestIntersect || tempIntersect.z < out.z)\r\n            {\r\n                out.set(tempIntersect.x, tempIntersect.y, tempIntersect.z, i);\r\n\r\n                closestIntersect = true;\r\n            }\r\n        }\r\n    }\r\n\r\n    return (closestIntersect) ? out : null;\r\n};\r\n\r\nmodule.exports = GetLineToPolygon;\r\n\n\n/***/ }),\n\n/***/ 60646:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Florian Vazelle\r\n * @author       Geoffrey Glaive\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Point = __webpack_require__(2141);\r\nvar LineToLine = __webpack_require__(76112);\r\nvar LineToRectangle = __webpack_require__(92773);\r\n\r\n/**\r\n * Checks for intersection between the Line and a Rectangle shape,\r\n * and returns the intersection points as a Point object array.\r\n *\r\n * @function Phaser.Geom.Intersects.GetLineToRectangle\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Line} line - The Line to check for intersection.\r\n * @param {(Phaser.Geom.Rectangle|object)} rect - The Rectangle to check for intersection.\r\n * @param {array} [out] - An optional array in which to store the points of intersection.\r\n *\r\n * @return {array} An array with the points of intersection if objects intersect, otherwise an empty array.\r\n */\r\nvar GetLineToRectangle = function (line, rect, out)\r\n{\r\n    if (out === undefined) { out = []; }\r\n\r\n    if (LineToRectangle(line, rect))\r\n    {\r\n        var lineA = rect.getLineA();\r\n        var lineB = rect.getLineB();\r\n        var lineC = rect.getLineC();\r\n        var lineD = rect.getLineD();\r\n\r\n        var output = [ new Point(), new Point(), new Point(), new Point() ];\r\n\r\n        var result = [\r\n            LineToLine(lineA, line, output[0]),\r\n            LineToLine(lineB, line, output[1]),\r\n            LineToLine(lineC, line, output[2]),\r\n            LineToLine(lineD, line, output[3])\r\n        ];\r\n\r\n        for (var i = 0; i < 4; i++)\r\n        {\r\n            if (result[i]) { out.push(output[i]); }\r\n        }\r\n    }\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetLineToRectangle;\r\n\n\n/***/ }),\n\n/***/ 71147:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Vector4 = __webpack_require__(61369);\r\nvar GetLineToPolygon = __webpack_require__(56362);\r\nvar Line = __webpack_require__(23031);\r\n\r\n//  Temp calculation segment\r\nvar segment = new Line();\r\n\r\n/**\r\n * @ignore\r\n */\r\nfunction CheckIntersects (angle, x, y, polygons, intersects)\r\n{\r\n    var dx = Math.cos(angle);\r\n    var dy = Math.sin(angle);\r\n\r\n    segment.setTo(x, y, x + dx, y + dy);\r\n\r\n    var closestIntersect = GetLineToPolygon(segment, polygons, true);\r\n\r\n    if (closestIntersect)\r\n    {\r\n        intersects.push(new Vector4(closestIntersect.x, closestIntersect.y, angle, closestIntersect.w));\r\n    }\r\n}\r\n\r\n/**\r\n * @ignore\r\n */\r\nfunction SortIntersects (a, b)\r\n{\r\n    return a.z - b.z;\r\n}\r\n\r\n/**\r\n * Projects rays out from the given point to each line segment of the polygons.\r\n *\r\n * If the rays intersect with the polygons, the points of intersection are returned in an array.\r\n *\r\n * If no intersections are found, the returned array will be empty.\r\n *\r\n * Each Vector4 intersection result has the following properties:\r\n *\r\n * The `x` and `y` components contain the point of the intersection.\r\n * The `z` component contains the angle of intersection.\r\n * The `w` component contains the index of the polygon, in the given array, that triggered the intersection.\r\n *\r\n * @function Phaser.Geom.Intersects.GetRaysFromPointToPolygon\r\n * @since 3.50.0\r\n *\r\n * @param {number} x - The x coordinate to project the rays from.\r\n * @param {number} y - The y coordinate to project the rays from.\r\n * @param {Phaser.Geom.Polygon | Phaser.Geom.Polygon[]} polygons - A single polygon, or array of polygons, to check against the rays.\r\n *\r\n * @return {Phaser.Math.Vector4[]} An array containing all intersections in Vector4s.\r\n */\r\nvar GetRaysFromPointToPolygon = function (x, y, polygons)\r\n{\r\n    if (!Array.isArray(polygons))\r\n    {\r\n        polygons = [ polygons ];\r\n    }\r\n\r\n    var intersects = [];\r\n    var angles = [];\r\n\r\n    for (var i = 0; i < polygons.length; i++)\r\n    {\r\n        var points = polygons[i].points;\r\n\r\n        for (var p = 0; p < points.length; p++)\r\n        {\r\n            var angle = Math.atan2(points[p].y - y, points[p].x - x);\r\n\r\n            if (angles.indexOf(angle) === -1)\r\n            {\r\n                //  +- 0.00001 rads to catch lines behind segment corners\r\n\r\n                CheckIntersects(angle, x, y, polygons, intersects);\r\n                CheckIntersects(angle - 0.00001, x, y, polygons, intersects);\r\n                CheckIntersects(angle + 0.00001, x, y, polygons, intersects);\r\n\r\n                angles.push(angle);\r\n            }\r\n        }\r\n    }\r\n\r\n    return intersects.sort(SortIntersects);\r\n};\r\n\r\nmodule.exports = GetRaysFromPointToPolygon;\r\n\n\n/***/ }),\n\n/***/ 68389:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Rectangle = __webpack_require__(87841);\r\nvar RectangleToRectangle = __webpack_require__(59996);\r\n\r\n/**\r\n * Checks if two Rectangle shapes intersect and returns the area of this intersection as Rectangle object.\r\n *\r\n * If optional `output` parameter is omitted, new Rectangle object is created and returned. If there is intersection, it will contain intersection area. If there is no intersection, it wil be empty Rectangle (all values set to zero).\r\n *\r\n * If Rectangle object is passed as `output` and there is intersection, then intersection area data will be loaded into it and it will be returned. If there is no intersection, it will be returned without any change.\r\n *\r\n * @function Phaser.Geom.Intersects.GetRectangleIntersection\r\n * @since 3.0.0\r\n *\r\n * @generic {Phaser.Geom.Rectangle} O - [output,$return]\r\n *\r\n * @param {Phaser.Geom.Rectangle} rectA - The first Rectangle object.\r\n * @param {Phaser.Geom.Rectangle} rectB - The second Rectangle object.\r\n * @param {Phaser.Geom.Rectangle} [output] - Optional Rectangle object. If given, the intersection data will be loaded into it (in case of no intersection, it will be left unchanged). Otherwise, new Rectangle object will be created and returned with either intersection data or empty (all values set to zero), if there is no intersection.\r\n *\r\n * @return {Phaser.Geom.Rectangle} A rectangle object with intersection data.\r\n */\r\nvar GetRectangleIntersection = function (rectA, rectB, output)\r\n{\r\n    if (output === undefined) { output = new Rectangle(); }\r\n\r\n    if (RectangleToRectangle(rectA, rectB))\r\n    {\r\n        output.x = Math.max(rectA.x, rectB.x);\r\n        output.y = Math.max(rectA.y, rectB.y);\r\n        output.width = Math.min(rectA.right, rectB.right) - output.x;\r\n        output.height = Math.min(rectA.bottom, rectB.bottom) - output.y;\r\n    }\r\n\r\n    return output;\r\n};\r\n\r\nmodule.exports = GetRectangleIntersection;\r\n\n\n/***/ }),\n\n/***/ 52784:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Florian Vazelle\r\n * @author       Geoffrey Glaive\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetLineToRectangle = __webpack_require__(60646);\r\nvar RectangleToRectangle = __webpack_require__(59996);\r\n\r\n/**\r\n * Checks if two Rectangles intersect and returns the intersection points as a Point object array.\r\n *\r\n * A Rectangle intersects another Rectangle if any part of its bounds is within the other Rectangle's bounds. As such, the two Rectangles are considered \"solid\". A Rectangle with no width or no height will never intersect another Rectangle.\r\n *\r\n * @function Phaser.Geom.Intersects.GetRectangleToRectangle\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Rectangle} rectA - The first Rectangle to check for intersection.\r\n * @param {Phaser.Geom.Rectangle} rectB - The second Rectangle to check for intersection.\r\n * @param {array} [out] - An optional array in which to store the points of intersection.\r\n *\r\n * @return {array} An array with the points of intersection if objects intersect, otherwise an empty array.\r\n */\r\nvar GetRectangleToRectangle = function (rectA, rectB, out)\r\n{\r\n    if (out === undefined) { out = []; }\r\n\r\n    if (RectangleToRectangle(rectA, rectB))\r\n    {\r\n        var lineA = rectA.getLineA();\r\n        var lineB = rectA.getLineB();\r\n        var lineC = rectA.getLineC();\r\n        var lineD = rectA.getLineD();\r\n\r\n        GetLineToRectangle(lineA, rectB, out);\r\n        GetLineToRectangle(lineB, rectB, out);\r\n        GetLineToRectangle(lineC, rectB, out);\r\n        GetLineToRectangle(lineD, rectB, out);\r\n    }\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetRectangleToRectangle;\r\n\n\n/***/ }),\n\n/***/ 26341:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Florian Vazelle\r\n * @author       Geoffrey Glaive\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar RectangleToTriangle = __webpack_require__(89265);\r\nvar GetLineToRectangle = __webpack_require__(60646);\r\n\r\n/**\r\n * Checks for intersection between Rectangle shape and Triangle shape,\r\n * and returns the intersection points as a Point object array.\r\n *\r\n * @function Phaser.Geom.Intersects.GetRectangleToTriangle\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Rectangle} rect - Rectangle object to test.\r\n * @param {Phaser.Geom.Triangle} triangle - Triangle object to test.\r\n * @param {array} [out] - An optional array in which to store the points of intersection.\r\n *\r\n * @return {array} An array with the points of intersection if objects intersect, otherwise an empty array.\r\n */\r\nvar GetRectangleToTriangle = function (rect, triangle, out)\r\n{\r\n    if (out === undefined) { out = []; }\r\n\r\n    if (RectangleToTriangle(rect, triangle))\r\n    {\r\n        var lineA = triangle.getLineA();\r\n        var lineB = triangle.getLineB();\r\n        var lineC = triangle.getLineC();\r\n\r\n        GetLineToRectangle(lineA, rect, out);\r\n        GetLineToRectangle(lineB, rect, out);\r\n        GetLineToRectangle(lineC, rect, out);\r\n    }\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetRectangleToTriangle;\r\n\n\n/***/ }),\n\n/***/ 38720:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Florian Vazelle\r\n * @author       Geoffrey Glaive\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar GetLineToCircle = __webpack_require__(4042);\r\nvar TriangleToCircle = __webpack_require__(67636);\r\n\r\n/**\r\n * Checks if a Triangle and a Circle intersect, and returns the intersection points as a Point object array.\r\n *\r\n * A Circle intersects a Triangle if its center is located within it or if any of the Triangle's sides intersect the Circle. As such, the Triangle and the Circle are considered \"solid\" for the intersection.\r\n *\r\n * @function Phaser.Geom.Intersects.GetTriangleToCircle\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Triangle} triangle - The Triangle to check for intersection.\r\n * @param {Phaser.Geom.Circle} circle - The Circle to check for intersection.\r\n * @param {array} [out] - An optional array in which to store the points of intersection.\r\n *\r\n * @return {array} An array with the points of intersection if objects intersect, otherwise an empty array.\r\n */\r\nvar GetTriangleToCircle = function (triangle, circle, out)\r\n{\r\n    if (out === undefined) { out = []; }\r\n\r\n    if (TriangleToCircle(triangle, circle))\r\n    {\r\n        var lineA = triangle.getLineA();\r\n        var lineB = triangle.getLineB();\r\n        var lineC = triangle.getLineC();\r\n\r\n        GetLineToCircle(lineA, circle, out);\r\n        GetLineToCircle(lineB, circle, out);\r\n        GetLineToCircle(lineC, circle, out);\r\n    }\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetTriangleToCircle;\r\n\n\n/***/ }),\n\n/***/ 13882:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Florian Vazelle\r\n * @author       Geoffrey Glaive\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Point = __webpack_require__(2141);\r\nvar TriangleToLine = __webpack_require__(2822);\r\nvar LineToLine = __webpack_require__(76112);\r\n\r\n/**\r\n * Checks if a Triangle and a Line intersect, and returns the intersection points as a Point object array.\r\n *\r\n * The Line intersects the Triangle if it starts inside of it, ends inside of it, or crosses any of the Triangle's sides. Thus, the Triangle is considered \"solid\".\r\n *\r\n * @function Phaser.Geom.Intersects.GetTriangleToLine\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Triangle} triangle - The Triangle to check with.\r\n * @param {Phaser.Geom.Line} line - The Line to check with.\r\n * @param {array} [out] - An optional array in which to store the points of intersection.\r\n *\r\n * @return {array} An array with the points of intersection if objects intersect, otherwise an empty array.\r\n */\r\nvar GetTriangleToLine = function (triangle, line, out)\r\n{\r\n    if (out === undefined) { out = []; }\r\n\r\n    if (TriangleToLine(triangle, line))\r\n    {\r\n        var lineA = triangle.getLineA();\r\n        var lineB = triangle.getLineB();\r\n        var lineC = triangle.getLineC();\r\n\r\n        var output = [ new Point(), new Point(), new Point() ];\r\n\r\n        var result = [\r\n            LineToLine(lineA, line, output[0]),\r\n            LineToLine(lineB, line, output[1]),\r\n            LineToLine(lineC, line, output[2])\r\n        ];\r\n\r\n        for (var i = 0; i < 3; i++)\r\n        {\r\n            if (result[i]) { out.push(output[i]); }\r\n        }\r\n    }\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetTriangleToLine;\r\n\n\n/***/ }),\n\n/***/ 75636:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Florian Vazelle\r\n * @author       Geoffrey Glaive\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar TriangleToTriangle = __webpack_require__(82944);\r\nvar GetTriangleToLine = __webpack_require__(13882);\r\n\r\n/**\r\n * Checks if two Triangles intersect, and returns the intersection points as a Point object array.\r\n *\r\n * A Triangle intersects another Triangle if any pair of their lines intersects or if any point of one Triangle is within the other Triangle. Thus, the Triangles are considered \"solid\".\r\n *\r\n * @function Phaser.Geom.Intersects.GetTriangleToTriangle\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Triangle} triangleA - The first Triangle to check for intersection.\r\n * @param {Phaser.Geom.Triangle} triangleB - The second Triangle to check for intersection.\r\n * @param {array} [out] - An optional array in which to store the points of intersection.\r\n *\r\n * @return {array} An array with the points of intersection if objects intersect, otherwise an empty array.\r\n */\r\nvar GetTriangleToTriangle = function (triangleA, triangleB, out)\r\n{\r\n    if (out === undefined) { out = []; }\r\n\r\n    if (TriangleToTriangle(triangleA, triangleB))\r\n    {\r\n        var lineA = triangleB.getLineA();\r\n        var lineB = triangleB.getLineB();\r\n        var lineC = triangleB.getLineC();\r\n\r\n        GetTriangleToLine(triangleA, lineA, out);\r\n        GetTriangleToLine(triangleA, lineB, out);\r\n        GetTriangleToLine(triangleA, lineC, out);\r\n    }\r\n\r\n    return out;\r\n};\r\n\r\nmodule.exports = GetTriangleToTriangle;\r\n\n\n/***/ }),\n\n/***/ 80462:\n/***/ ((module, __unused_webpack_exports, __webpack_require__) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\nvar Contains = __webpack_require__(87902);\r\nvar Point = __webpack_require__(2141);\r\n\r\nvar tmp = new Point();\r\n\r\n/**\r\n * Checks for intersection between the line segment and circle.\r\n *\r\n * Based on code by [Matt DesLauriers](https://github.com/mattdesl/line-circle-collision/blob/master/LICENSE.md).\r\n *\r\n * @function Phaser.Geom.Intersects.LineToCircle\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Line} line - The line segment to check.\r\n * @param {Phaser.Geom.Circle} circle - The circle to check against the line.\r\n * @param {(Phaser.Geom.Point|any)} [nearest] - An optional Point-like object. If given the closest point on the Line where the circle intersects will be stored in this object.\r\n *\r\n * @return {boolean} `true` if the two objects intersect, otherwise `false`.\r\n */\r\nvar LineToCircle = function (line, circle, nearest)\r\n{\r\n    if (nearest === undefined) { nearest = tmp; }\r\n\r\n    if (Contains(circle, line.x1, line.y1))\r\n    {\r\n        nearest.x = line.x1;\r\n        nearest.y = line.y1;\r\n\r\n        return true;\r\n    }\r\n\r\n    if (Contains(circle, line.x2, line.y2))\r\n    {\r\n        nearest.x = line.x2;\r\n        nearest.y = line.y2;\r\n\r\n        return true;\r\n    }\r\n\r\n    var dx = line.x2 - line.x1;\r\n    var dy = line.y2 - line.y1;\r\n\r\n    var lcx = circle.x - line.x1;\r\n    var lcy = circle.y - line.y1;\r\n\r\n    //  project lc onto d, resulting in vector p\r\n    var dLen2 = (dx * dx) + (dy * dy);\r\n    var px = dx;\r\n    var py = dy;\r\n\r\n    if (dLen2 > 0)\r\n    {\r\n        var dp = ((lcx * dx) + (lcy * dy)) / dLen2;\r\n\r\n        px *= dp;\r\n        py *= dp;\r\n    }\r\n\r\n    nearest.x = line.x1 + px;\r\n    nearest.y = line.y1 + py;\r\n\r\n    //  len2 of p\r\n    var pLen2 = (px * px) + (py * py);\r\n\r\n    return (\r\n        pLen2 <= dLen2 &&\r\n        ((px * dx) + (py * dy)) >= 0 &&\r\n        Contains(circle, nearest.x, nearest.y)\r\n    );\r\n};\r\n\r\nmodule.exports = LineToCircle;\r\n\n\n/***/ }),\n\n/***/ 76112:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n//  This is based off an explanation and expanded math presented by Paul Bourke:\r\n//  See http://paulbourke.net/geometry/pointlineplane/\r\n\r\n/**\r\n * Checks if two Lines intersect. If the Lines are identical, they will be treated as parallel and thus non-intersecting.\r\n *\r\n * @function Phaser.Geom.Intersects.LineToLine\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Line} line1 - The first Line to check.\r\n * @param {Phaser.Geom.Line} line2 - The second Line to check.\r\n * @param {Phaser.Types.Math.Vector2Like} [out] - An optional point-like object in which to store the coordinates of intersection, if needed.\r\n *\r\n * @return {boolean} `true` if the two Lines intersect, and the `out` object will be populated, if given. Otherwise, `false`.\r\n */\r\nvar LineToLine = function (line1, line2, out)\r\n{\r\n    var x1 = line1.x1;\r\n    var y1 = line1.y1;\r\n    var x2 = line1.x2;\r\n    var y2 = line1.y2;\r\n\r\n    var x3 = line2.x1;\r\n    var y3 = line2.y1;\r\n    var x4 = line2.x2;\r\n    var y4 = line2.y2;\r\n\r\n    //  Check that none of the lines are length zero\r\n    if ((x1 === x2 && y1 === y2) || (x3 === x4 && y3 === y4))\r\n    {\r\n        return false;\r\n    }\r\n\r\n    var denom = ((y4 - y3) * (x2 - x1) - (x4 - x3) * (y2 - y1));\r\n\r\n    //  Make sure there is not a division by zero - this also indicates that the lines are parallel.\r\n    //  If numA and numB were both equal to zero the lines would be on top of each other (coincidental).\r\n    //  This check is not done because it is not necessary for this implementation (the parallel check accounts for this).\r\n\r\n    if (denom === 0)\r\n    {\r\n        //  Lines are parallel\r\n        return false;\r\n    }\r\n\r\n    //  Calculate the intermediate fractional point that the lines potentially intersect.\r\n\r\n    var ua = ((x4 - x3) * (y1 - y3) - (y4 - y3) * (x1 - x3)) / denom;\r\n    var ub = ((x2 - x1) * (y1 - y3) - (y2 - y1) * (x1 - x3)) / denom;\r\n\r\n    //  The fractional point will be between 0 and 1 inclusive if the lines intersect.\r\n    //  If the fractional calculation is larger than 1 or smaller than 0 the lines would need to be longer to intersect.\r\n\r\n    if (ua < 0 || ua > 1 || ub < 0 || ub > 1)\r\n    {\r\n        return false;\r\n    }\r\n    else\r\n    {\r\n        if (out)\r\n        {\r\n            out.x = x1 + ua * (x2 - x1);\r\n            out.y = y1 + ua * (y2 - y1);\r\n        }\r\n\r\n        return true;\r\n    }\r\n};\r\n\r\nmodule.exports = LineToLine;\r\n\n\n/***/ }),\n\n/***/ 92773:\n/***/ ((module) => {\n\n/**\r\n * @author       Richard Davey <rich@phaser.io>\r\n * @copyright    2013-2024 Phaser Studio Inc.\r\n * @license      {@link https://opensource.org/licenses/MIT|MIT License}\r\n */\r\n\r\n/**\r\n * Checks for intersection between the Line and a Rectangle shape, or a rectangle-like\r\n * object, with public `x`, `y`, `right` and `bottom` properties, such as a Sprite or Body.\r\n *\r\n * An intersection is considered valid if:\r\n *\r\n * The line starts within, or ends within, the Rectangle.\r\n * The line segment intersects one of the 4 rectangle edges.\r\n *\r\n * The for the purposes of this function rectangles are considered 'solid'.\r\n *\r\n * @function Phaser.Geom.Intersects.LineToRectangle\r\n * @since 3.0.0\r\n *\r\n * @param {Phaser.Geom.Line} line - The Line to check for intersection.\r\n * @param {(Phaser.Geom.Rectangle|object)} rect - The Rectangle to check for intersection.\r\n *\r\n * @return {boolean} `true` if the Line and the Rectangle intersect, `false` otherwise.\r\n */\r\nvar LineToRectangle = function (line, rect)\r\n{\r\n    var x1 = line.x1;\r\n    var y1 = line.y1;\r\n\r\n    var x2 = line.x2;\r\n    var y2 = line.y2;\r\n\r\n    var bx1 = rect.x;\r\n    var by1 = rect.y;\r\n    var bx2 = rect.right;\r\n    var by2 = rect.bottom;\r\n\r\n    var t = 0;\r\n\r\n    //  If the start or end of the line is inside the rect then we assume\r\n    //  collision, as rects are solid for our use-case.\r\n\r\n    if ((x1 >= bx1 && x1 <= bx2 && y1 >= by1 && y1 <= by2) ||\r\n        (x2 >= bx1 && x2 <= bx2 && y2 >= by1 && y2 <= by2))\r\n    {\r\n        return true;\r\n    }\r\n\r\n    if (x1 < bx1 && x2 >= bx1)\r\n    {\r\n        //  Left edge\r\n        t = y1 + (y2 - y1) * (bx1 - x1) / (x2 - x1);\r\n\r\n        if (t > by1 && t <= by2)\r\n        {\r\n            return true;\r\n        }\r\n    }\r\n    else if (x1 > bx2 && x2 <= bx2)\r\n    {\r\n        //  Right edge\r\n        t = y1 + (y2 - y1) * (bx2 - x1) / (x2 - x1);\r\n\r\n        if (t >= by1 && t <= by2)\r\n        {\r\n            return true;\r\n        }\r\n    }\r\n\r\n    if (y1 < by1 && y2 >= by1)\r\n    {\r\n        //  Top edge\r\n        t = x1 + (x2 - x1) * (by1 - y1) / (y2 - y1);\r\n\r\n        if (t >= bx1 && t <= bx2)