phaser3-rex-plugins
Version:
2 lines (1 loc) • 34.7 kB
JavaScript
!function(t,i){"object"==typeof exports&&"undefined"!=typeof module?module.exports=i():"function"==typeof define&&define.amd?define(i):(t="undefined"!=typeof globalThis?globalThis:t||self).rexcustomshapesplugin=i();}(undefined,(function(){function t(i){return t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},t(i)}function i(t,i){if(!(t instanceof i))throw new TypeError("Cannot call a class as a function")}function e(t,i){for(var e=0;e<i.length;e++){var s=i[e];s.enumerable=s.enumerable||!1,s.configurable=!0,"value"in s&&(s.writable=!0),Object.defineProperty(t,(n=s.key,r=void 0,"symbol"==typeof(r=function(t,i){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var s=e.call(t,i||"default");if("object"!=typeof s)return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return ("string"===i?String:Number)(t)}(n,"string"))?r:String(r)),s);}var n,r;}function s(t,i,s){return i&&e(t.prototype,i),s&&e(t,s),Object.defineProperty(t,"prototype",{writable:!1}),t}function n(t,i){if("function"!=typeof i&&null!==i)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(i&&i.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),i&&h(t,i);}function r(t){return r=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},r(t)}function h(t,i){return h=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,i){return t.__proto__=i,t},h(t,i)}function a(t,i){if(i&&("object"==typeof i||"function"==typeof i))return i;if(void 0!==i)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}function o(t){var i=function(){if("undefined"==typeof Reflect||!Reflect.construct)return !1;if(Reflect.construct.sham)return !1;if("function"==typeof Proxy)return !0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return !1}}();return function(){var e,s=r(t);if(i){var n=r(this).constructor;e=Reflect.construct(s,arguments,n);}else e=s.apply(this,arguments);return a(this,e)}}function u(){return u="undefined"!=typeof Reflect&&Reflect.get?Reflect.get.bind():function(t,i,e){var s=function(t,i){for(;!Object.prototype.hasOwnProperty.call(t,i)&&null!==(t=r(t)););return t}(t,i);if(s){var n=Object.getOwnPropertyDescriptor(s,i);return n.get?n.get.call(arguments.length<3?t:e):n.value}},u.apply(this,arguments)}function l(t){return function(t){if(Array.isArray(t))return c(t)}(t)||function(t){if("undefined"!=typeof Symbol&&null!=t[Symbol.iterator]||null!=t["@@iterator"])return Array.from(t)}(t)||function(t,i){if(!t)return;if("string"==typeof t)return c(t,i);var e=Object.prototype.toString.call(t).slice(8,-1);"Object"===e&&t.constructor&&(e=t.constructor.name);if("Map"===e||"Set"===e)return Array.from(t);if("Arguments"===e||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return c(t,i)}(t)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function c(t,i){(null==i||i>t.length)&&(i=t.length);for(var e=0,s=new Array(i);e<i;e++)s[e]=t[e];return s}var d=Phaser.GameObjects.GetCalcMatrix,f=Phaser.Renderer.Canvas.SetTransform,y={renderWebGL:function(t,i,e,s){i.updateData(),e.addToRenderList(i);var n=t.pipelines.set(i.pipeline),r=d(i,e,s),h=n.calcMatrix.copyFrom(r.calc),a=i._displayOriginX,o=i._displayOriginY,u=e.alpha*i.alpha;t.pipelines.preBatch(i);for(var l=i.geom,c=0,f=l.length;c<f;c++)l[c].webglRender(n,h,u,a,o);t.pipelines.postBatch(i);},renderCanvas:function(t,i,e,s){i.updateData(),e.addToRenderList(i);var n=t.currentContext;if(f(t,n,i,e,s)){for(var r=i._displayOriginX,h=i._displayOriginY,a=i.geom,o=0,u=a.length;o<u;o++)a[o].canvasRender(n,r,h);n.restore();}}},p=function(i){if("object"!==t(i)||null===i)return i;if(Array.isArray(i))i.length=0;else for(var e in i)delete i[e];return i},v=Phaser.GameObjects.Shape,g=Phaser.Utils.Array.Remove,k=function(t){n(r,t);var e=o(r);function r(t,s,n,h,a){var o;return i(this,r),void 0===s&&(s=0),void 0===n&&(n=0),void 0===h&&(h=2),void 0===a&&(a=h),(o=e.call(this,t,"rexShapes",[]))._width=-1,o._height=-1,o.dirty=!0,o.isSizeChanged=!0,o.shapes={},o.setPosition(s,n),o.setSize(h,a),o.updateDisplayOrigin(),o}return s(r,[{key:"width",get:function(){return this._width},set:function(t){this.setSize(t,this._height);}},{key:"height",get:function(){return this._height},set:function(t){this.setSize(this._width,t);}},{key:"setDirty",value:function(t){return void 0===t&&(t=!0),this.dirty=t,this}},{key:"setSize",value:function(t,i){this.isSizeChanged=this.isSizeChanged||this._width!==t||this._height!==i,this.dirty=this.dirty||this.isSizeChanged,this._width=t,this._height=i,this.updateDisplayOrigin();var e=this.input;return e&&!e.customHitArea&&(e.hitArea.width=t,e.hitArea.height=i),this}},{key:"resize",value:function(t,i){return this.setSize(t,i),this}},{key:"fillColor",get:function(){return this._fillColor},set:function(t){this.setFillStyle(t,this._fillAlpha);}},{key:"fillAlpha",get:function(){return this._fillAlpha},set:function(t){this.setFillStyle(this._fillColor,t);}},{key:"setFillStyle",value:function(t,i){return void 0===i&&(i=1),this.dirty=this.dirty||this.fillColor!==t||this.fillAlpha!==i,this._fillColor=t,this._fillAlpha=i,this}},{key:"lineWidth",get:function(){return this._lineWidth},set:function(t){this.setStrokeStyle(t,this._strokeColor,this._strokeAlpha);}},{key:"strokeColor",get:function(){return this._strokeColor},set:function(t){this.setStrokeStyle(this._lineWidth,t,this._strokeAlpha);}},{key:"strokeAlpha",get:function(){return this._strokeAlpha},set:function(t){this.setStrokeStyle(this._lineWidth,this._strokeColor,t);}},{key:"setStrokeStyle",value:function(t,i,e){return void 0===e&&(e=1),this.dirty=this.dirty||this.lineWidth!==t||this.strokeColor!==i||this.strokeAlpha!==e,this._lineWidth=t,this._strokeColor=i,this._strokeAlpha=e,this}},{key:"updateShapes",value:function(){}},{key:"updateData",value:function(){if(!this.dirty)return this;this.updateShapes();for(var t=this.geom,i=0,e=t.length;i<e;i++){var s=t[i];s.dirty&&s.updateData();}return this.isSizeChanged=!1,this.dirty=!1,this}},{key:"clear",value:function(){return this.geom.length=0,p(this.shapes),this}},{key:"getShape",value:function(t){return this.shapes[t]}},{key:"getShapes",value:function(){return this.geom}},{key:"addShape",value:function(t){this.geom.push(t);var i=t.name;return i&&(this.shapes[i]=t),this.dirty=!0,this}},{key:"deleteShape",value:function(t){var i=this.getShape(t);return i&&(delete this.shapes[t],g(this.geom,i)),this}}]),r}(v);Object.assign(k.prototype,y);var b={fillStyle:function(t,i){return null==t?this.isFilled=!1:(void 0===i&&(i=1),this.isFilled=!0,this.fillColor=t,this.fillAlpha=i),this},lineStyle:function(t,i,e){return null==t||null==i?this.isStroked=!1:(void 0===e&&(e=1),this.isStroked=!0,this.lineWidth=t,this.strokeColor=i,this.strokeAlpha=e),this}},P={enableData:function(){return void 0===this.data&&(this.data={}),this},setData:function(t,i){if(this.enableData(),1===arguments.length){var e=t;for(t in e)this.data[t]=e[t];}else this.data[t]=i;return this},getData:function(t,i){return this.enableData(),void 0===t?this.data:function(t,i,e){if(t&&"number"!=typeof t){if(t.hasOwnProperty(i))return t[i];if(-1!==i.indexOf(".")){for(var s=i.split("."),n=t,r=e,h=0;h<s.length;h++){if(!n.hasOwnProperty(s[h])){r=e;break}r=n[s[h]],n=n[s[h]];}return r}return e}return e}(this.data,t,i)},incData:function(t,i,e){return void 0===e&&(e=0),this.enableData(),this.setData(t,this.getData(t,e)+i),this},mulData:function(t,i,e){return void 0===e&&(e=0),this.enableData(),this.setData(t,this.getData(t,e)*i),this},clearData:function(){return this.data&&p(this.data),this}},_=function(){function t(){i(this,t),this.name=void 0,this.dirty=!0,this.data=void 0,this.isFilled=!1,this.fillColor=void 0,this.fillAlpha=1,this.isStroked=!1,this.lineWidth=1,this.strokeColor=void 0,this.strokeAlpha=1;}return s(t,[{key:"setName",value:function(t){return this.name=t,this}},{key:"reset",value:function(){return this.fillStyle().lineStyle(),this}},{key:"webglRender",value:function(t,i,e,s,n){}},{key:"canvasRender",value:function(t,i,e){}},{key:"updateData",value:function(){this.dirty=!1;}}]),t}();Object.assign(_.prototype,b,P);var D=Phaser.Renderer.WebGL.Utils,x=Phaser.Renderer.WebGL.Utils,m=function(t,i,e,s,n){var r=t.strokeTint,h=x.getTintAppendFloatAlpha(i.strokeColor,i.strokeAlpha*e);r.TL=h,r.TR=h,r.BL=h,r.BR=h;var a=i.pathData,o=a.length-1,u=i.lineWidth,l=u/2,c=a[0]-s,d=a[1]-n;i.closePath||(o-=2);for(var f=2;f<o;f+=2){var y=a[f]-s,p=a[f+1]-n;t.batchLine(c,d,y,p,l,l,u,f-2,!!i.closePath&&f===o-1),c=y,d=p;}},S=function(t,i,e,s){var n=e||i.fillColor,r=s||i.fillAlpha,h=(16711680&n)>>>16,a=(65280&n)>>>8,o=255&n;t.fillStyle="rgba("+h+","+a+","+o+","+r+")";},T=function(t,i,e,s){var n=e||i.strokeColor,r=s||i.strokeAlpha,h=(16711680&n)>>>16,a=(65280&n)>>>8,o=255&n;t.strokeStyle="rgba("+h+","+a+","+o+","+r+")",t.lineWidth=i.lineWidth;},C=Phaser.Geom.Polygon.Earcut,A=function(t){n(h,t);var e=o(h);function h(){var t;return i(this,h),(t=e.call(this)).pathData=[],t.pathIndexes=[],t.closePath=!1,t}return s(h,[{key:"updateData",value:function(){return this.pathIndexes=C(this.pathData),u(r(h.prototype),"updateData",this).call(this),this}},{key:"webglRender",value:function(t,i,e,s,n){this.isFilled&&function(t,i,e,s,n,r){for(var h=D.getTintAppendFloatAlpha(e.fillColor,e.fillAlpha*s),a=e.pathData,o=e.pathIndexes,u=0;u<o.length;u+=3){var l=2*o[u],c=2*o[u+1],d=2*o[u+2],f=a[l+0]-n,y=a[l+1]-r,p=a[c+0]-n,v=a[c+1]-r,g=a[d+0]-n,k=a[d+1]-r,b=i.getX(f,y),P=i.getY(f,y),_=i.getX(p,v),x=i.getY(p,v),m=i.getX(g,k),S=i.getY(g,k);t.batchTri(e,b,P,_,x,m,S,0,0,1,1,h,h,h,2);}}(t,i,this,e,s,n),this.isStroked&&m(t,this,e,s,n);}},{key:"canvasRender",value:function(t,i,e){var s=this.pathData,n=s.length-1,r=s[0]-i,h=s[1]-e;t.beginPath(),t.moveTo(r,h),this.closePath||(n-=2);for(var a=2;a<n;a+=2){var o=s[a]-i,u=s[a+1]-e;t.lineTo(o,u);}this.closePath&&t.closePath(),this.isFilled&&(S(t,this),t.fill()),this.isStroked&&(T(t,this),t.stroke());}}]),h}(_),w=function(t,i,e){var s=e.length;if(s>=2){var n=e[s-2],r=e[s-1];if(t===n&&i===r)return e}return e.push(t,i),e},R=Phaser.Math.DegToRad,L=function(t,i,e,s,n,r,h,a,o){h&&r>n?r-=360:!h&&r<n&&(r+=360);var u=R(r-n)/a;n=R(n);for(var l=0;l<=a;l++){var c=n+u*l,d=t+e*Math.cos(c),f=i+s*Math.sin(c);w(d,f,o);}return o},X=Phaser.Math.DegToRad,Y=function(t){n(h,t);var e=o(h);function h(t,s,n,r,a,o,u,l){var c;return i(this,h),void 0===t&&(t=0),void 0===s&&(s=0),void 0===n&&(n=0),void 0===r&&(r=0),void 0===a&&(a=0),void 0===o&&(o=360),void 0===u&&(u=!1),void 0===l&&(l=!1),(c=e.call(this)).setCenterPosition(t,s),c.setRadius(n,r),c.setAngle(a,o,u),c.setPie(l),c.setIterations(32),c}return s(h,[{key:"x",get:function(){return this._x},set:function(t){this.dirty=this.dirty||this._x!==t,this._x=t;}},{key:"y",get:function(){return this._y},set:function(t){this.dirty=this.dirty||this._y!==t,this._y=t;}},{key:"setCenterPosition",value:function(t,i){return void 0===i&&(i=t),this.x=t,this.y=i,this}},{key:"radiusX",get:function(){return this._radiusX},set:function(t){this.dirty=this.dirty||this._radiusX!==t,this._radiusX=t;}},{key:"radiusY",get:function(){return this._radiusY},set:function(t){this.dirty=this.dirty||this._radiusY!==t,this._radiusY=t;}},{key:"setRadius",value:function(t,i){return void 0===i&&(i=t),this.radiusX=t,this.radiusY=i,this}},{key:"startAngle",get:function(){return this._startAngle},set:function(t){this.dirty=this.dirty||this._startAngle!==t,this._startAngle=t;}},{key:"endAngle",get:function(){return this._endAngle},set:function(t){this.dirty=this.dirty||this._endAngle!==t,this._endAngle=t;}},{key:"anticlockwise",get:function(){return this._anticlockwise},set:function(t){this.dirty=this.dirty||this._anticlockwise!==t,this._anticlockwise=t;}},{key:"setAngle",value:function(t,i,e){return void 0===e&&(e=!1),this.startAngle=t,this.endAngle=i,this.anticlockwise=e,this}},{key:"pie",get:function(){return this._pie},set:function(t){this.dirty=this.dirty||this._pie!==t,this._pie=t;}},{key:"setPie",value:function(t){return void 0===t&&(t=!0),this.pie=t,this}},{key:"iterations",get:function(){return this._iterations},set:function(t){this.dirty=this.dirty||this._iterations!==t,this._iterations=t;}},{key:"setIterations",value:function(t){return this.iterations=t,this}},{key:"updateData",value:function(){return this.pathData.length=0,this.pie&&this.pathData.push(this.x,this.y),L(this.x,this.y,this.radiusX,this.radiusY,this.startAngle,this.endAngle,this.anticlockwise,this.iterations,this.pathData),this.pie&&this.pathData.push(this.x,this.y),this.pathData.push(this.pathData[0],this.pathData[1]),u(r(h.prototype),"updateData",this).call(this),this}},{key:"canvasRender",value:function(t,i,e){t.beginPath();var s=this.x-i,n=this.y-e,r=X(this.startAngle),h=X(this.endAngle);this.pie&&(t.moveTo(s,n),t.lineTo(s+Math.cos(r)*this.radiusX,n+Math.sin(r)*this.radiusY)),t.ellipse(s,n,this.radiusX,this.radiusY,0,r,h,this.anticlockwise),this.pie&&t.lineTo(s,n),this.isFilled&&(S(t,this),t.fill()),this.isStroked&&(T(t,this),t.stroke());}}]),h}(A),O=function(t){n(r,t);var e=o(r);function r(t,s,n){return i(this,r),e.call(this,t,s,n,n,0,360)}return s(r)}(Y),B=function(t){n(h,t);var e=o(h);function h(t){var s;return i(this,h),(s=e.call(this)).setCurve(t),s.setIterations(32),s}return s(h,[{key:"curve",get:function(){return this._curve},set:function(t){this.dirty=this.dirty||this._curve!==t,this._curve=t;}},{key:"setCurve",value:function(t){return this.curve=t,this}},{key:"iterations",get:function(){return this._iterations},set:function(t){this.dirty=this.dirty||this._iterations!==t,this._iterations=t;}},{key:"setIterations",value:function(t){return this.iterations=t,this}},{key:"updateData",value:function(){this.pathData.length=0;for(var t=this.curve.getPoints(this.iterations),i=0,e=t.length;i<e;i++)this.pathData.push(t[i].x,t[i].y);return this.pathData.push(t[0].x,t[0].y),u(r(h.prototype),"updateData",this).call(this),this}}]),h}(A),j=function(t){n(r,t);var e=o(r);function r(t,s,n,h){return i(this,r),e.call(this,t,s,n,h,0,360)}return s(r)}(Y),z=function(t){n(h,t);var e=o(h);function h(t,s,n,r){var a;return i(this,h),void 0===t&&(t=0),void 0===s&&(s=0),void 0===n&&(n=0),void 0===r&&(r=0),(a=e.call(this)).setP0(t,s),a.setP1(n,r),a}return s(h,[{key:"x0",get:function(){return this._x0},set:function(t){this.dirty=this.dirty||this._x0!==t,this._x0=t;}},{key:"y0",get:function(){return this._y0},set:function(t){this.dirty=this.dirty||this._y0!==t,this._y0=t;}},{key:"setP0",value:function(t,i){return this.x0=t,this.y0=i,this}},{key:"x1",get:function(){return this._x1},set:function(t){this.dirty=this.dirty||this._x1!==t,this._x1=t;}},{key:"y1",get:function(){return this._y1},set:function(t){this.dirty=this.dirty||this._y1!==t,this._y1=t;}},{key:"setP1",value:function(t,i){return this.x1=t,this.y1=i,this}},{key:"updateData",value:function(){return this.pathData.length=0,this.pathData.push(this.x0,this.y0),this.pathData.push(this.x1,this.y1),this.pathData.push(this.x0,this.y0),u(r(h.prototype),"updateData",this).call(this),this}}]),h}(A),F=Phaser.Math.Interpolation.QuadraticBezier,M=Phaser.Math.Interpolation.CubicBezier,I=function(t){var i=t.length;if(i<2)return t;var e=t[i-2],s=t[i-1];return t.push(e),t.push(s),t},G={clear:function(){return this.start(),this},start:function(){return this.startAt(),this},startAt:function(t,i){return this.restorePathData(),this.accumulationLengths=void 0,function(t,i,e){e.length=0,null!=t&&e.push(t,i);}(t,i,this.pathData),this.firstPointX=t,this.firstPointY=i,this.lastPointX=t,this.lastPointY=i,this},lineTo:function(t,i,e){return void 0===e&&(e=!1),e&&(t+=this.lastPointX,i+=this.lastPointY),w(t,i,this.pathData),this.lastPointX=t,this.lastPointY=i,this},verticalLineTo:function(t,i){return this.lineTo(t,this.lastPointY,i),this},horizontalLineTo:function(t,i){return this.lineTo(this.lastPointX,t,i),this},ellipticalArc:function(t,i,e,s,n,r,h){return void 0===h&&(h=!1),L(t,i,e,s,n,r,h,this.iterations,this.pathData),this.lastPointX=this.pathData[this.pathData.length-2],this.lastPointY=this.pathData[this.pathData.length-1],this},arc:function(t,i,e,s,n,r){return this.ellipticalArc(t,i,e,e,s,n,r),this},quadraticBezierTo:function(t,i,e,s){return function(t,i,e,s,n,r){for(var h=r.length,a=r[h-2],o=r[h-1],u=1,l=n-1;u<=l;u++){var c=u/l;r.push(F(c,a,t,e),F(c,o,i,s));}}(t,i,e,s,this.iterations,this.pathData),this.lastPointX=e,this.lastPointY=s,this.lastCX=t,this.lastCY=i,this},smoothQuadraticBezierTo:function(t,i){var e=2*this.lastPointX-this.lastCX,s=2*this.lastPointY-this.lastCY;return this.quadraticBezierTo(e,s,t,i),this},cubicBezierCurveTo:function(t,i,e,s,n,r){return function(t,i,e,s,n,r,h,a){for(var o=a.length,u=a[o-2],l=a[o-1],c=1,d=h-1;c<=d;c++){var f=c/d;a.push(M(f,u,t,e,n),M(f,l,i,s,r));}}(t,i,e,s,n,r,this.iterations,this.pathData),this.lastPointX=n,this.lastPointY=r,this.lastCX=e,this.lastCY=s,this},smoothCubicBezierCurveTo:function(t,i,e,s){var n=2*this.lastPointX-this.lastCX,r=2*this.lastPointY-this.lastCY;return this.cubicBezierCurveTo(n,r,t,i,e,s),this},close:function(){var t=this.pathData[0],i=this.pathData[1];return t===this.lastPointX&&i===this.lastPointY||this.lineTo(t,i),this.closePath=!0,this},end:function(){return I(this.pathData),this}},W=Phaser.Math.RotateAround,U=function(t,i,e){for(var s=0,n=e.length-1;s<n;s+=2)e[s]+=t,e[s+1]+=i;return e},E=Phaser.Math.DegToRad,q=Phaser.Math.RotateAround,Q={rotateAround:function(t,i,e){if(0===this.pathData.length)return this;!function(t,i,e,s){for(var n={x:0,y:0},r=0,h=s.length-1;r<h;r+=2)n.x=s[r],n.y=s[r+1],W(n,t,i,e),s[r]=n.x,s[r+1]=n.y;}(t,i,e=E(e),this.pathData);var s=this.pathData.length;if(this.lastPointX=this.pathData[s-2],this.lastPointY=this.pathData[s-1],void 0!==this.lastCX){var n={x:this.lastCX,y:this.lastCY};q(n,t,i,e),this.lastCX=n.x,this.lastCY=n.y;}return this},scale:function(t,i,e,s){if(0===this.pathData.length)return this;if(function(t,i,e,s,n){for(var r=0,h=n.length-1;r<h;r+=2){var a=n[r]-t,o=n[r+1]-i;a*=e,o*=s,n[r]=a+t,n[r+1]=o+i;}}(t,i,e,s,this.pathData),this.lastPointX=this.pathData[pathDataCnt-2],this.lastPointY=this.pathData[pathDataCnt-1],void 0!==this.lastCX){var n=this.lastCX-t,r=this.lastCY-i;n*=e,r*=s,this.lastCX=n+t,this.lastCY=r+i;}return this},offset:function(t,i){return U(t,i,this.pathData),this}},V={savePathData:function(){return this.pathDataSaved||(this.pathDataSave=l(this.pathData),this.pathData.length=0,this.pathDataSaved=!0),this},restorePathData:function(){return this.pathDataSaved?(function(t,i,e,s){void 0===e&&(e=0),void 0===s&&(s=i.length),t.length=s-e;for(var n=0,r=t.length;n<r;n++)t[n]=i[n+e];}(this.pathData,this.pathDataSave),this.pathDataSave=void 0,this.pathDataSaved=!1,this):this}},N=Phaser.Math.Distance.Between,H=Phaser.Math.Wrap,$=Phaser.Math.Linear,J=function(t,i,e,s,n){if(void 0===s&&(s=e,e=0),(e=tt(e))!==(s=tt(s))){var r=i[i.length-1],h=r*e,a=r*s;e<s?K(t,i,h,a,n):(K(t,i,h,r,n),K(t,i,0,a,n)),I(n);}},K=function(t,i,e,s,n){for(var r=e>0,h=0,a=i.length;h<a;h++){var o=2*h,u=i[h];if(r){if(u<e)continue;if(u==e)r=!1;else {var l=1-(u-e)/(u-i[h-1]);n.push(Z(t,o-2,o,l)),n.push(Z(t,o-1,o+1,l)),r=!1;}}if(!(u<=s)){l=1-(u-s)/(u-i[h-1]);n.push(Z(t,o-2,o,l)),n.push(Z(t,o-1,o+1,l));break}if(n.push(t[o]),n.push(t[o+1]),u===s)break}},Z=function(t,i,e,s){var n=t[i],r=t[e];return $(n,r,s)},tt=function(t){return 0===t?0:t%1==0?1:H(t,0,1)},it={updateAccumulationLengths:function(){if(null==this.accumulationLengths)this.accumulationLengths=[];else if(this.accumulationLengths.length===this.pathData.length/2)return this;for(var t,i,e,s,n=this.accumulationLengths,r=this.pathData,h=0,a=0,o=r.length;a<o;a+=2)e=r[a],s=r[a+1],h+=void 0===t?0:N(t,i,e,s),n.push(h),t=e,i=s;return this.totalPathLength=h,this},setDisplayPathSegment:function(t,i){return this.pathDataSaved||(this.updateAccumulationLengths(),this.savePathData()),this.pathData.length=0,J(this.pathDataSave,this.accumulationLengths,t,i,this.pathData),this},appendFromPathSegment:function(t,i,e){var s;void 0===i?(s=this.pathData).push.apply(s,l(t.pathData)):(t.updateAccumulationLengths(),J(t.pathData,t.accumulationLengths,i,e,this.pathData));return this.firstPointX=this.pathData[0],this.firstPointY=this.pathData[1],this.lastPointX=this.pathData[this.pathData.length-2],this.lastPointY=this.pathData[this.pathData.length-1],this}},et=Phaser.Geom.Polygon,st=function(){function t(e){i(this,t),void 0===e&&(e=[]),this.pathData=e,this.closePath=!1,this.setIterations(32),this.firstPointX=void 0,this.firstPointY=void 0,this.lastPointX=void 0,this.lastPointY=void 0,this.accumulationLengths=void 0;}return s(t,[{key:"setIterations",value:function(t){return this.iterations=t,this}},{key:"toPoints",value:function(){return function(t,i){void 0===i&&(i=[]);for(var e=0,s=t.length-1;e<s;e+=2)i.push({x:t[e],y:t[e+1]});return i}(this.pathData)}},{key:"toPolygon",value:function(t){return function(t,i){return void 0===i&&(i=new et),i.setTo(t),i}(this.pathData,t)}}]),t}();Object.assign(st.prototype,G,Q,V,it,{draw:function(t,i,e){var s=this.toPoints();return i&&t.fillPoints(s,this.closePath,this.closePath),e&&t.strokePoints(s,this.closePath,this.closePath),this}});var nt,rt,ht=function(t){n(r,t);var e=o(r);function r(){var t;return i(this,r),(t=e.call(this)).builder=new st(t.pathData),t}return s(r,[{key:"iterations",get:function(){return this.builder.iterations},set:function(t){this.dirty=this.dirty||this.builder.iterations!==t,this.builder.setIterations(t);}},{key:"setIterations",value:function(t){return this.iterations=t,this}},{key:"lastPointX",get:function(){return this.builder.lastPointX}},{key:"lastPointY",get:function(){return this.builder.lastPointY}},{key:"start",value:function(){return this.builder.start(),this.dirty=!0,this}},{key:"startAt",value:function(t,i){return this.builder.startAt(t,i),this.dirty=!0,this}},{key:"lineTo",value:function(t,i,e){return this.builder.lineTo(t,i,e),this.dirty=!0,this}},{key:"verticalLineTo",value:function(t,i){return this.builder.verticalLineTo(t,i),this.dirty=!0,this}},{key:"horizontalLineTo",value:function(t,i){return this.builder.horizontalLineTo(t,i),this.dirty=!0,this}},{key:"ellipticalArc",value:function(t,i,e,s,n,r,h){return this.builder.ellipticalArc(t,i,e,s,n,r,h),this.dirty=!0,this}},{key:"arc",value:function(t,i,e,s,n,r){return this.builder.arc(t,i,e,s,n,r),this.dirty=!0,this}},{key:"quadraticBezierTo",value:function(t,i,e,s){return this.builder.quadraticBezierTo(t,i,e,s),this.dirty=!0,this}},{key:"smoothQuadraticBezierTo",value:function(t,i){return this.builder.smoothQuadraticBezierTo(t,i),this.dirty=!0,this}},{key:"cubicBezierCurveTo",value:function(t,i,e,s,n,r){return this.builder.cubicBezierCurveTo(t,i,e,s,n,r),this.dirty=!0,this}},{key:"smoothCubicBezierCurveTo",value:function(t,i,e,s){return this.builder.smoothCubicBezierCurveTo(t,i,e,s),this.dirty=!0,this}},{key:"close",value:function(){return this.builder.close(),this.closePath=this.builder.closePath,this.dirty=!0,this}},{key:"end",value:function(){return this.builder.end(),this.dirty=!0,this}},{key:"rotateAround",value:function(t,i,e){return this.builder.rotateAround(t,i,e),this.dirty=!0,this}},{key:"scale",value:function(t,i,e,s){return this.builder.scale(t,i,e,s),this.dirty=!0,this}},{key:"offset",value:function(t,i){return this.builder.offset(t,i),this.dirty=!0,this}},{key:"toPolygon",value:function(t){return this.builder.toPolygon(t)}},{key:"appendPathFrom",value:function(t,i,e){return this.builder.appendFromPathSegment(t.builder,i,e),this}},{key:"copyPathFrom",value:function(t,i,e){return this.builder.clear().appendFromPathSegment(t.builder,i,e),this}},{key:"setDisplayPathSegment",value:function(t,i){return this.builder.setDisplayPathSegment(t,i),this}}]),r}(A),at=Phaser.Renderer.WebGL.Utils.getTintAppendFloatAlpha,ot=function(t){n(h,t);var e=o(h);function h(t,s,n,r){var a;return i(this,h),void 0===t&&(t=0),void 0===s&&(s=0),void 0===n&&(n=0),void 0===r&&(r=n),(a=e.call(this)).pathData=[],a.closePath=!0,a.setTopLeftPosition(t,s),a.setSize(n,r),a}return s(h,[{key:"x",get:function(){return this._x},set:function(t){this.dirty=this.dirty||this._x!==t,this._x=t;}},{key:"y",get:function(){return this._y},set:function(t){this.dirty=this.dirty||this._y!==t,this._y=t;}},{key:"setTopLeftPosition",value:function(t,i){return this.x=t,this.y=i,this}},{key:"width",get:function(){return this._width},set:function(t){this.dirty=this.dirty||this._width!==t,this._width=t;}},{key:"height",get:function(){return this._height},set:function(t){this.dirty=this.dirty||this._height!==t,this._height=t;}},{key:"setSize",value:function(t,i){return this.width=t,this.height=i,this}},{key:"centerX",get:function(){return this.x+this.width/2},set:function(t){this.x=t-this.width/2;}},{key:"centerY",get:function(){return this.y+this.height/2},set:function(t){this.y=t-this.height/2;}},{key:"setCenterPosition",value:function(t,i){return this.centerX=t,this.centerY=i,this}},{key:"updateData",value:function(){this.pathData.length=0;var t=this.x,i=t+this.width,e=this.y,s=e+this.height;return this.pathData.push(t,e),this.pathData.push(i,e),this.pathData.push(i,s),this.pathData.push(t,s),this.pathData.push(t,e),u(r(h.prototype),"updateData",this).call(this),this}},{key:"webglRender",value:function(t,i,e,s,n){if(this.isFilled){var r=t.fillTint,h=at(this.fillColor,this.fillAlpha*e);r.TL=h,r.TR=h,r.BL=h,r.BR=h,t.batchFillRect(-s+this.x,-n+this.y,this.width,this.height);}this.isStroked&&m(t,this,e,s,n);}},{key:"canvasRender",value:function(t,i,e){this.isFilled&&(S(t,this),t.fillRect(-i,-e,this.width,this.height)),this.isStroked&&(T(t,this),t.beginPath(),t.rect(-i,-e,this.width,this.height),t.stroke());}}]),h}(_),ut=Phaser.Utils.Objects.GetValue,lt=function(t){n(h,t);var e=o(h);function h(t,s,n,r,a,o){var u;return i(this,h),void 0===t&&(t=0),void 0===s&&(s=0),void 0===n&&(n=0),void 0===r&&(r=n),void 0===a&&(a=0),void 0===o&&(o=6),(u=e.call(this)).setTopLeftPosition(t,s),u.setSize(n,r),u.setRadius(a),u.setIterations(o),u.closePath=!0,u}return s(h,[{key:"x",get:function(){return this._x},set:function(t){this.dirty=this.dirty||this._x!==t,this._x=t;}},{key:"y",get:function(){return this._y},set:function(t){this.dirty=this.dirty||this._y!==t,this._y=t;}},{key:"setTopLeftPosition",value:function(t,i){return this.x=t,this.y=i,this}},{key:"width",get:function(){return this._width},set:function(t){this.dirty=this.dirty||this._width!==t,this._width=t;}},{key:"height",get:function(){return this._height},set:function(t){this.dirty=this.dirty||this._height!==t,this._height=t;}},{key:"setSize",value:function(t,i){return this.width=t,this.height=i,this}},{key:"centerX",get:function(){return this.x+this.width/2},set:function(t){this.x=t-this.width/2;}},{key:"centerY",get:function(){return this.y+this.height/2},set:function(t){this.y=t-this.height/2;}},{key:"setCenterPosition",value:function(t,i){return this.centerX=t,this.centerY=i,this}},{key:"radiusTL",get:function(){return this._radiusTL},set:function(t){var i=t>0;this.dirty=this.dirty||this._radiusTL!==t||this._convexTL!==i,this._convexTL=i,this._radiusTL=Math.abs(t);}},{key:"radiusTR",get:function(){return this._radiusTR},set:function(t){var i=t>0;this.dirty=this.dirty||this._radiusTR!==t||this._convexTR!==i,this._convexTR=i,this._radiusTR=Math.abs(t);}},{key:"radiusBL",get:function(){return this._radiusBL},set:function(t){var i=t>0;this.dirty=this.dirty||this._radiusBL!==t||this._convexBL!==i,this._convexBL=i,this._radiusBL=Math.abs(t);}},{key:"radiusBR",get:function(){return this._radiusBR},set:function(t){var i=t>0;this.dirty=this.dirty||this._radiusBR!==t||this._convexBR!==i,this._convexBR=i,this._radiusBR=Math.abs(t);}},{key:"radius",get:function(){return Math.max(this.radiusTL,this.radiusTR,this.radiusBL,this.radiusBR)},set:function(t){"number"==typeof t?(this.radiusTL=t,this.radiusTR=t,this.radiusBL=t,this.radiusBR=t):(this.radiusTL=ut(t,"tl",0),this.radiusTR=ut(t,"tr",0),this.radiusBL=ut(t,"bl",0),this.radiusBR=ut(t,"br",0));}},{key:"setRadius",value:function(t){return void 0===t&&(t=0),this.radius=t,this}},{key:"iterations",get:function(){return this._iterations},set:function(t){this.dirty=this.dirty||this._iterations!==t,this._iterations=t;}},{key:"setIterations",value:function(t){return this.iterations=t,this}},{key:"updateData",value:function(){var t=this.pathData;t.length=0;var i,e=this.width,s=this.height,n=this.iterations+1;(i=this.radiusTL)>0?this._convexTL?L(i,i,i,i,180,270,!1,n,t):L(0,0,i,i,90,0,!0,n,t):w(0,0,t);(i=this.radiusTR)>0?this._convexTR?L(e-i,i,i,i,270,360,!1,n,t):L(e,0,i,i,180,90,!0,n,t):w(e,0,t);(i=this.radiusBR)>0?this._convexBR?L(e-i,s-i,i,i,0,90,!1,n,t):L(e,s,i,i,270,180,!0,n,t):w(e,s,t);(i=this.radiusBL)>0?this._convexBL?L(i,s-i,i,i,90,180,!1,n,t):L(0,s,i,i,360,270,!0,n,t):w(0,s,t);return t.push(t[0],t[1]),U(this.x,this.y,t),u(r(h.prototype),"updateData",this).call(this),this}}]),h}(A),ct=Phaser.Renderer.WebGL.Utils.getTintAppendFloatAlpha,dt={arc:Y,circle:O,curve:B,ellipse:j,line:z,lines:ht,rectangle:ot,roundRectangle:lt,triangle:function(t){n(h,t);var e=o(h);function h(t,s,n,r,a,o){var u;return i(this,h),void 0===t&&(t=0),void 0===s&&(s=0),void 0===n&&(n=0),void 0===r&&(r=0),void 0===a&&(a=0),void 0===o&&(o=0),(u=e.call(this)).pathData=[],u.closePath=!0,u.setP0(t,s),u.setP1(n,r),u.setP2(a,o),u}return s(h,[{key:"x0",get:function(){return this._x0},set:function(t){this.dirty=this.dirty||this._x0!==t,this._x0=t;}},{key:"y0",get:function(){return this._y0},set:function(t){this.dirty=this.dirty||this._y0!==t,this._y0=t;}},{key:"setP0",value:function(t,i){return this.x0=t,this.y0=i,this}},{key:"x1",get:function(){return this._x1},set:function(t){this.dirty=this.dirty||this._x1!==t,this._x1=t;}},{key:"y1",get:function(){return this._y1},set:function(t){this.dirty=this.dirty||this._y1!==t,this._y1=t;}},{key:"setP1",value:function(t,i){return this.x1=t,this.y1=i,this}},{key:"x2",get:function(){return this._x2},set:function(t){this.dirty=this.dirty||this._x2!==t,this._x2=t;}},{key:"y2",get:function(){return this._y2},set:function(t){this.dirty=this.dirty||this._y2!==t,this._y2=t;}},{key:"setP2",value:function(t,i){return this.dirty=this.dirty||this.x2!==t||this.y2!==i,this.x2=t,this.y2=i,this}},{key:"updateData",value:function(){return this.pathData.length=0,this.pathData.push(this.x0,this.y0),this.pathData.push(this.x1,this.y1),this.pathData.push(this.x2,this.y2),this.pathData.push(this.x0,this.y0),u(r(h.prototype),"updateData",this).call(this),this}},{key:"webglRender",value:function(t,i,e,s,n){if(this.isFilled){var r=ct(this.fillColor,this.fillAlpha*e),h=this.x0-s,a=this.y0-n,o=this.x1-s,u=this.y1-n,l=this.x2-s,c=this.y2-n,d=i.getX(h,a),f=i.getY(h,a),y=i.getX(o,u),p=i.getY(o,u),v=i.getX(l,c),g=i.getY(l,c);t.batchTri(d,f,y,p,v,g,r,r,r);}this.isStroked&&m(t,this,e,s,n);}},{key:"canvasRender",value:function(t,i,e){var s=this.x1-i,n=this.y1-e,r=this.x2-i,h=this.y2-e,a=this.x3-i,o=this.y3-e;t.beginPath(),t.moveTo(s,n),t.lineTo(r,h),t.lineTo(a,o),t.closePath(),this.isFilled&&(S(t,this),t.fill()),this.isStroked&&(T(t,this),t.stroke());}}]),h}(_)},ft=Phaser.Utils.Objects.GetValue,yt=Phaser.Utils.Objects.IsPlainObject,pt=function(){for(var t=this.getShapes(),i=0,e=t.length;i<e;i++)t[i].lineStyle().fillStyle();},vt={createShape:function(t,i){var e=new(dt[t]);return i&&e.setName(i),e},buildShapes:function(i){var e=ft(i,"create",void 0);if(yt(e)){var s=e;for(var n in s){var r=s[n];switch(t(r)){case"number":for(var h=0;h<r;h++)this.addShape(this.createShape(n));break;case"string":this.addShape(this.createShape(n,r));break;default:for(var a=r,o=(h=0,a.length);h<o;h++)this.addShape(this.createShape(n,a[h]));}}}else if(Array.isArray(e))for(h=0,o=(s=e).length;h<o;h++){var u=s[h];this.addShape(this.createShape(u.type,u.name));}else "function"==typeof e&&e.call(this);this.setUpdateShapesCallback(ft(i,"update"));},setUpdateShapesCallback:function(t){return void 0===t&&(t=pt),this.dirty=this.dirty||this.updateCallback!==t,this.updateCallback=t,this},updateShapes:function(){this.updateCallback.call(this);}},gt=Phaser.GameObjects.Components.TransformMatrix,kt=Phaser.Math.TransformXY,bt={},Pt=Phaser.Utils.Objects.GetValue,_t=Phaser.Utils.Objects.IsPlainObject,Dt=function(t){n(r,t);var e=o(r);function r(t,s,n,h,a,o){var u;return i(this,r),_t(s)&&(s=Pt(o=s,"x",0),n=Pt(o,"y",0),h=Pt(o,"width",2),a=Pt(o,"height",2)),(u=e.call(this,t,s,n,h,a)).type=Pt(o,"type","rexCustomShapes"),u.buildShapes(o),u}return s(r,[{key:"centerX",get:function(){return this.width/2}},{key:"centerY",get:function(){return this.height/2}},{key:"worldToLocalXY",value:function(t,i,e,s){return "boolean"==typeof e&&(s=e,e=void 0),function(t,i,e,s,n){void 0===s&&(s=t.scene.cameras.main),void 0===n?n={}:!0===n&&(n=bt);var r=s.scrollX,h=s.scrollY,a=i+r*t.scrollFactorX-r,o=e+h*t.scrollFactorY-h;return t.parentContainer?(void 0===nt&&(nt=new gt,rt=new gt),t.getWorldTransformMatrix(nt,rt),nt.applyInverse(a,o,n)):kt(a,o,t.x,t.y,t.rotation,t.scaleX,t.scaleY,n),n.x+=t.displayOriginX,n.y+=t.displayOriginY,n}(this,t,i,e,s)}}]),r}(k);function xt(t,i,e,s,n){var r=new Dt(this.scene,t,i,e,s,n);return this.scene.add.existing(r),r}Object.assign(Dt.prototype,vt);var mt=Phaser.Utils.Objects.GetAdvancedValue,St=Phaser.GameObjects.BuildGameObject;function Tt(t,i){void 0===t&&(t={}),void 0!==i&&(t.add=i);var e=mt(t,"width",void 0),s=mt(t,"height",e),n=new Dt(this.scene,0,0,e,s,t);return St(this.scene,n,t),n}var Ct=function(t){return null==t||""===t||0===t.length},At=function(t){n(r,Phaser.Plugins.BasePlugin);var e=o(r);function r(t){var s;return i(this,r),s=e.call(this,t),t.registerGameObject("rexCustomShapes",xt,Tt),s}return s(r,[{key:"start",value:function(){this.game.events.on("destroy",this.destroy,this);}}]),r}();return function(i,e,s,n){if(void 0===n&&(n="."),"object"===t(i)){if(Ct(e)){if(null==s)return;"object"===t(s)&&(i=s);}else {"string"==typeof e&&(e=e.split(n));var r=e.pop(),h=function(i,e,s){var n=i;if(Ct(e));else {var r;"string"==typeof e&&(e=e.split("."));for(var h=0,a=e.length;h<a;h++){var o;null!=n[r=e[h]]&&"object"===t(n[r])||(o=h===a-1?void 0===s?{}:s:{},n[r]=o),n=n[r];}}return n}(i,e);h[r]=s;}}}(window,"RexPlugins.GameObjects.CustomShapes",Dt),At}));