phaser3-rex-plugins
Version:
2 lines (1 loc) • 35.1 kB
JavaScript
var t,e;t=void 0,e=function(){const t=Phaser.GameObjects.GetCalcMatrix,e=Phaser.Renderer.Canvas.SetTransform;var i={renderWebGL:function(e,i,s,r){i.updateData(),s.addToRenderList(i);var h=e.pipelines.set(i.pipeline),a=t(i,s,r),n=h.calcMatrix.copyFrom(a.calc),o=i._displayOriginX,l=i._displayOriginY,u=s.alpha*i.alpha;e.pipelines.preBatch(i);for(var d,p=i.geom,c=0,v=p.length;c<v;c++)(d=p[c]).visible&&d.webglRender(h,n,u,o,l);e.pipelines.postBatch(i)},renderCanvas:function(t,i,s,r){i.updateData(),s.addToRenderList(i);var h=t.currentContext;if(e(t,h,i,s,r)){for(var a,n=i._displayOriginX,o=i._displayOriginY,l=i.geom,u=0,d=l.length;u<d;u++)(a=l[u]).visible&&a.canvasRender(h,n,o);h.restore()}}},s=function(t){if("object"!=typeof t||null===t)return t;if(Array.isArray(t))t.length=0;else for(var e in t)delete t[e];return t};const r=Phaser.GameObjects.Shape,h=Phaser.Utils.Array.Remove;class a extends r{constructor(t,e,i,s,r){void 0===e&&(e=0),void 0===i&&(i=0),void 0===s&&(s=2),void 0===r&&(r=s),super(t,"rexShapes",[]),this._width=-1,this._height=-1,this.dirty=!0,this.isSizeChanged=!0,this.shapes={},this.setPosition(e,i),this.setSize(s,r),this.updateDisplayOrigin()}get width(){return this._width}set width(t){this.setSize(t,this._height)}get height(){return this._height}set height(t){this.setSize(this._width,t)}setDirty(t){return void 0===t&&(t=!0),this.dirty=t,this}setSize(t,e){this.isSizeChanged=this.isSizeChanged||this._width!==t||this._height!==e,this.dirty=this.dirty||this.isSizeChanged,this._width=t,this._height=e,this.updateDisplayOrigin();var i=this.input;return i&&!i.customHitArea&&(i.hitArea.width=t,i.hitArea.height=e),this}resize(t,e){return this.setSize(t,e),this}get fillColor(){return this._fillColor}set fillColor(t){this.setFillStyle(t,this._fillAlpha)}get fillAlpha(){return this._fillAlpha}set fillAlpha(t){this.setFillStyle(this._fillColor,t)}setFillStyle(t,e){return void 0===e&&(e=1),this.dirty=this.dirty||this.fillColor!==t||this.fillAlpha!==e,this._fillColor=t,this._fillAlpha=e,this}get lineWidth(){return this._lineWidth}set lineWidth(t){this.setStrokeStyle(t,this._strokeColor,this._strokeAlpha)}get strokeColor(){return this._strokeColor}set strokeColor(t){this.setStrokeStyle(this._lineWidth,t,this._strokeAlpha)}get strokeAlpha(){return this._strokeAlpha}set strokeAlpha(t){this.setStrokeStyle(this._lineWidth,this._strokeColor,t)}setStrokeStyle(t,e,i){return void 0===i&&(i=1),this.dirty=this.dirty||this.lineWidth!==t||this.strokeColor!==e||this.strokeAlpha!==i,this._lineWidth=t,this._strokeColor=e,this._strokeAlpha=i,this}updateShapes(){}updateData(){if(!this.dirty)return this;this.updateShapes();for(var t=this.geom,e=0,i=t.length;e<i;e++){var s=t[e];s.dirty&&s.updateData()}return this.isSizeChanged=!1,this.dirty=!1,this}clear(){return this.geom.length=0,s(this.shapes),this.dirty=!0,this}getShape(t){return this.shapes[t]}getShapes(){return this.geom}addShape(t){this.geom.push(t);var e=t.name;return e&&(this.shapes[e]=t),this.dirty=!0,this}deleteShape(t){var e=this.getShape(t);return e&&(delete this.shapes[t],h(this.geom,e)),this}}Object.assign(a.prototype,i);const n=Phaser.Math.Linear,o=Phaser.Math.Percent;var l={setValue(t,e,i){return null==t||(void 0!==e&&(t=o(t,e,i)),this.value=t),this},addValue(t,e,i){return void 0!==e&&(t=o(t,e,i)),this.value+=t,this},getValue(t,e){var i=this.value;return void 0!==t&&void 0!==e&&(i=n(t,e,i)),i}},u={setEventEmitter(t,e){return void 0===e&&(e=Phaser.Events.EventEmitter),this._privateEE=!0===t||void 0===t,this._eventEmitter=this._privateEE?new e:t,this},destroyEventEmitter(){return this._eventEmitter&&this._privateEE&&this._eventEmitter.shutdown(),this},getEventEmitter(){return this._eventEmitter},on(){return this._eventEmitter&&this._eventEmitter.on.apply(this._eventEmitter,arguments),this},once(){return this._eventEmitter&&this._eventEmitter.once.apply(this._eventEmitter,arguments),this},off(){return this._eventEmitter&&this._eventEmitter.off.apply(this._eventEmitter,arguments),this},emit(t){return this._eventEmitter&&t&&this._eventEmitter.emit.apply(this._eventEmitter,arguments),this},addListener(){return this._eventEmitter&&this._eventEmitter.addListener.apply(this._eventEmitter,arguments),this},removeListener(){return this._eventEmitter&&this._eventEmitter.removeListener.apply(this._eventEmitter,arguments),this},removeAllListeners(){return this._eventEmitter&&this._eventEmitter.removeAllListeners.apply(this._eventEmitter,arguments),this},listenerCount(){return this._eventEmitter?this._eventEmitter.listenerCount.apply(this._eventEmitter,arguments):0},listeners(){return this._eventEmitter?this._eventEmitter.listeners.apply(this._eventEmitter,arguments):[]},eventNames(){return this._eventEmitter?this._eventEmitter.eventNames.apply(this._eventEmitter,arguments):[]}};const d=Phaser.Scene;var p=function(t){return t instanceof d};const c=Phaser.Game;var v=function(t){return t instanceof c};const g=Phaser.Utils.Objects.GetValue;class y{constructor(t,e){this.setParent(t),this.isShutdown=!1,this.setEventEmitter(g(e,"eventEmitter",!0)),this.parent&&(this.parent===this.scene?this.scene.sys.events.once("shutdown",this.onEnvDestroy,this):this.parent===this.game?this.game.events.once("shutdown",this.onEnvDestroy,this):this.parent.once&&this.parent.once("destroy",this.onParentDestroy,this))}shutdown(t){this.isShutdown||(this.parent&&(this.parent===this.scene?this.scene.sys.events.off("shutdown",this.onEnvDestroy,this):this.parent===this.game?this.game.events.off("shutdown",this.onEnvDestroy,this):this.parent.once&&this.parent.off("destroy",this.onParentDestroy,this)),this.destroyEventEmitter(),this.parent=void 0,this.scene=void 0,this.game=void 0,this.isShutdown=!0)}destroy(t){this.shutdown(t)}onEnvDestroy(){this.destroy(!0)}onParentDestroy(t,e){this.destroy(e)}setParent(t){var e;return this.parent=t,this.scene=null==(e=t)||"object"!=typeof e?null:p(e)?e:e.scene&&p(e.scene)?e.scene:e.parent&&e.parent.scene&&p(e.parent.scene)?e.parent.scene:null,this.game=function(t){return null==t||"object"!=typeof t?null:v(t)?t:v(t.game)?t.game:p(t)?t.sys.game:p(t.scene)?t.scene.sys.game:void 0}(t),this}}Object.assign(y.prototype,u);const f=Phaser.Utils.Objects.GetValue;class m extends y{constructor(t,e){super(t,e),this._isRunning=!1,this.isPaused=!1,this.tickingState=!1,this.setTickingMode(f(e,"tickingMode",1))}boot(){2!==this.tickingMode||this.tickingState||this.startTicking()}shutdown(t){this.isShutdown||(this.stop(),this.tickingState&&this.stopTicking(),super.shutdown(t))}setTickingMode(t){"string"==typeof t&&(t=P[t]),this.tickingMode=t}startTicking(){this.tickingState=!0}stopTicking(){this.tickingState=!1}get isRunning(){return this._isRunning}set isRunning(t){this._isRunning!==t&&(this._isRunning=t,1===this.tickingMode&&t!=this.tickingState&&(t?this.startTicking():this.stopTicking()))}start(){return this.isPaused=!1,this.isRunning=!0,this}pause(){return this.isRunning&&(this.isPaused=!0,this.isRunning=!1),this}resume(){return this.isPaused&&(this.isPaused=!1,this.isRunning=!0),this}stop(){return this.isPaused=!1,this.isRunning=!1,this}complete(){this.isPaused=!1,this.isRunning=!1,this.emit("complete",this.parent,this)}}const P={no:0,lazy:1,always:2},k=Phaser.Utils.Objects.GetValue;class D extends m{constructor(t,e){super(t,e);var i=this.scene?"update":"step";this.tickEventName=k(e,"tickEventName",i),this.isSceneTicker=!b(this.tickEventName)}startTicking(){super.startTicking(),this.isSceneTicker?this.scene.sys.events.on(this.tickEventName,this.update,this):this.game.events.on(this.tickEventName,this.update,this)}stopTicking(){super.stopTicking(),this.isSceneTicker&&this.scene?this.scene.sys.events.off(this.tickEventName,this.update,this):this.game&&this.game.events.off(this.tickEventName,this.update,this)}}var b=function(t){return"step"===t||"poststep"===t};const S=Phaser.Utils.Objects.GetValue,_=Phaser.Math.Clamp;class T{constructor(t){this.resetFromJSON(t)}resetFromJSON(t){this.state=S(t,"state",w),this.timeScale=S(t,"timeScale",1),this.delay=S(t,"delay",0),this.repeat=S(t,"repeat",0),this.repeatCounter=S(t,"repeatCounter",0),this.repeatDelay=S(t,"repeatDelay",0),this.duration=S(t,"duration",0),this.nowTime=S(t,"nowTime",0),this.justRestart=S(t,"justRestart",!1)}toJSON(){return{state:this.state,timeScale:this.timeScale,delay:this.delay,repeat:this.repeat,repeatCounter:this.repeatCounter,repeatDelay:this.repeatDelay,duration:this.duration,nowTime:this.nowTime,justRestart:this.justRestart}}destroy(){}setTimeScale(t){return this.timeScale=t,this}setDelay(t){return void 0===t&&(t=0),this.delay=t,this}setDuration(t){return this.duration=t,this}setRepeat(t){return this.repeat=t,this}setRepeatInfinity(){return this.repeat=-1,this}setRepeatDelay(t){return this.repeatDelay=t,this}start(){return this.nowTime=this.delay>0?-this.delay:0,this.state=this.nowTime>=0?C:E,this.repeatCounter=0,this}stop(){return this.state=w,this}update(t,e){this.state!==w&&this.state!==R&&0!==e&&0!==this.timeScale&&(this.nowTime+=e*this.timeScale,this.justRestart=!1,this.nowTime>=this.duration?-1===this.repeat||this.repeatCounter<this.repeat?(this.repeatCounter++,this.justRestart=!0,this.nowTime-=this.duration,this.repeatDelay>0&&(this.nowTime-=this.repeatDelay,this.state=x)):(this.nowTime=this.duration,this.state=R):this.nowTime>=0&&(this.state=C))}get t(){var t;switch(this.state){case w:case E:case x:t=0;break;case C:t=this.nowTime/this.duration;break;case R:t=1}return _(t,0,1)}set t(t){(t=_(t,-1,1))<0?(this.state=E,this.nowTime=-this.delay*t):(this.state=C,this.nowTime=this.duration*t,1===t&&0!==this.repeat&&this.repeatCounter++)}setT(t){return this.t=t,this}get isIdle(){return this.state===w}get isDelay(){return this.state===E}get isCountDown(){return this.state===C}get isRunning(){return this.state===E||this.state===C}get isDone(){return this.state===R}get isOddIteration(){return!(1&~this.repeatCounter)}get isEvenIteration(){return!(1&this.repeatCounter)}}const w=0,E=1,C=2,x=3,R=-1;class A extends D{constructor(t,e){super(t,e),this.timer=new T}shutdown(t){this.isShutdown||(super.shutdown(t),this.timer.destroy(),this.timer=void 0)}start(){return this.timer.start(),super.start(),this}stop(){return this.timer.stop(),super.stop(),this}complete(){return this.timer.stop(),super.complete(),this}}const O=Phaser.Utils.Objects.GetValue,L=Phaser.Utils.Objects.GetAdvancedValue,V=Phaser.Tweens.Builders.GetEaseFunction;class M extends A{resetFromJSON(t){return this.timer.resetFromJSON(O(t,"timer")),this.setEnable(O(t,"enable",!0)),this.setTarget(O(t,"target",this.parent)),this.setDelay(L(t,"delay",0)),this.setDuration(L(t,"duration",1e3)),this.setEase(O(t,"ease","Linear")),this.setRepeat(O(t,"repeat",0)),this}setEnable(t){return null==t&&(t=!0),this.enable=t,this}setTarget(t){return void 0===t&&(t=this.parent),this.target=t,this}setDelay(t){return this.delay=t,this}setDuration(t){return this.duration=t,this}setRepeat(t){return this.repeat=t,this}setRepeatDelay(t){return this.repeatDelay=t,this}setEase(t){return void 0===t&&(t="Linear"),this.ease=t,this.easeFn=V(t),this}start(){return this.timer.isRunning||super.start(),this}restart(){return this.timer.stop(),this.start.apply(this,arguments),this}stop(t){return void 0===t&&(t=!1),super.stop(),t&&(this.timer.setT(1),this.updateTarget(this.target,this.timer),this.complete()),this}update(t,e){if(!this.isRunning||!this.enable||this.parent.hasOwnProperty("active")&&!this.parent.active)return this;var i=this.target,s=this.timer;return s.update(t,e),s.isDelay||this.updateTarget(i,s),this.emit("update",i,this),s.isDone&&this.complete(),this}updateTarget(t,e){}}const j=Phaser.Utils.Objects.GetValue,F=Phaser.Math.Linear;class X extends M{constructor(t,e){super(t,e),this.resetFromJSON(),this.boot()}start(t){if(this.timer.isRunning)return this;var e=this.target;this.propertyKey=j(t,"key","value");var i=e[this.propertyKey];return this.fromValue=j(t,"from",i),this.toValue=j(t,"to",i),this.setEase(j(t,"ease",this.ease)),this.setDuration(j(t,"duration",this.duration)),this.setRepeat(j(t,"repeat",0)),this.setDelay(j(t,"delay",0)),this.setRepeatDelay(j(t,"repeatDelay",0)),this.timer.setDuration(this.duration).setRepeat(this.repeat).setDelay(this.delay).setRepeatDelay(this.repeatDelay),e[this.propertyKey]=this.fromValue,super.start(),this}updateTarget(t,e){var i=e.t;i=this.easeFn(i),t[this.propertyKey]=F(this.fromValue,this.toValue,i)}}const G=Phaser.Math.Percent;var Y={setEaseValuePropName(t){return this.easeValuePropName=t,this},setEaseValueDuration(t){return this.easeValueDuration=t,this},setEaseValueFunction(t){return this.easeFunction=t,this},stopEaseValue(){return this.easeValueTask&&this.easeValueTask.stop(),this},easeValueTo(t,e,i){return null==t||(void 0!==e&&(t=G(t,e,i)),void 0===this.easeValueTask&&(this.easeValueTask=new X(this,{eventEmitter:null})),this.easeValueTask.restart({key:this.easeValuePropName,to:t,duration:this.easeValueDuration,ease:this.easeFunction})),this},easeValueRepeat(t,e,i,s){return void 0===i&&(i=-1),void 0===s&&(s=0),void 0===this.easeValueTask&&(this.easeValueTask=new X(this,{eventEmitter:null})),this.easeValueTask.restart({key:this.easeValuePropName,from:t,to:e,duration:this.easeValueDuration,ease:this.easeFunction,repeat:i,repeatDelay:s}),this}};const z=Phaser.Utils.Objects.GetValue,N=Phaser.Math.Clamp;var B={fillStyle:function(t,e){return null==t?this.isFilled=!1:(void 0===e&&(e=1),this.isFilled=!0,this.fillColor=t,this.fillAlpha=e),this},lineStyle:function(t,e,i){return null==t||null==e?this.isStroked=!1:(void 0===i&&(i=1),this.isStroked=!0,this.lineWidth=t,this.strokeColor=e,this.strokeAlpha=i),this}},I=function(t,e,i){for(var s=t,r=i,h=0,a=e.length;h<a;h++){var n=e[h];if(!s||"object"!=typeof s&&"function"!=typeof s||!(n in s))return W.found=!1,W;s=r=s[n]}return W.found=!0,W.value=r,W},W={},U={enableData(){return void 0===this.data&&(this.data={}),this},setData(t,e){if(this.enableData(),1===arguments.length){var i=t;for(t in i)this.data[t]=i[t]}else this.data[t]=e;return this},getData(t,e){return this.enableData(),void 0===t?this.data:function(t,e,i,s){var r=t&&("object"==typeof t||"function"==typeof t),h=s&&("object"==typeof s||"function"==typeof s);if(!r&&!h)return i;var a=String(e);if(r&&a in t)return t[a];if(h&&a in s)return s[a];if(-1===a.indexOf("."))return i;var n=a.split(".");if(r){var o=I(t,n,i);if(o.found)return o.value}if(h){var l=I(s,n,i);if(l.found)return l.value}return i}(this.data,t,e)},incData(t,e,i){return void 0===i&&(i=0),this.enableData(),this.setData(t,this.getData(t,i)+e),this},mulData(t,e,i){return void 0===i&&(i=0),this.enableData(),this.setData(t,this.getData(t,i)*e),this},clearData(){return this.data&&s(this.data),this}};class J{constructor(){this.name=void 0,this.dirty=!0,this.visible=!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}setName(t){return this.name=t,this}setVisible(t){return void 0===t&&(t=!0),this.visible=t,this}reset(){return this.setVisible().fillStyle().lineStyle(),this}webglRender(t,e,i,s,r){}canvasRender(t,e,i){}updateData(){this.dirty=!1}}Object.assign(J.prototype,B,U);var q=Phaser.Renderer.WebGL.Utils,K=function(t,e,i,s,r,h){for(var a=q.getTintAppendFloatAlpha(i.fillColor,i.fillAlpha*s),n=i.pathData,o=i.pathIndexes,l=0;l<o.length;l+=3){var u=2*o[l],d=2*o[l+1],p=2*o[l+2],c=n[u+0]-r,v=n[u+1]-h,g=n[d+0]-r,y=n[d+1]-h,f=n[p+0]-r,m=n[p+1]-h,P=e.getX(c,v),k=e.getY(c,v),D=e.getX(g,y),b=e.getY(g,y),S=e.getX(f,m),_=e.getY(f,m);t.batchTri(i,P,k,D,b,S,_,0,0,1,1,a,a,a,2)}},H=Phaser.Renderer.WebGL.Utils,Q=function(t,e,i,s,r){var h=t.strokeTint,a=H.getTintAppendFloatAlpha(e.strokeColor,e.strokeAlpha*i);h.TL=a,h.TR=a,h.BL=a,h.BR=a;var n,o,l=e.isDashed&&!!e.strokePathData,u=l?e.strokePathData:e.pathData,d=u.length-1,p=e.lineWidth,c=p/2,v=u[0]-s,g=u[1]-r;if(e.closePath||(d-=2),l){var y=e.strokePathMask,f=0,m=0;for(P=2;P<d;P+=2)n=u[P]-s,o=u[P+1]-r,y[f]?(t.batchLine(v,g,n,o,c,c,p,m,!1),m++):m=0,v=n,g=o,f++}else for(var P=2;P<d;P+=2)n=u[P]-s,o=u[P+1]-r,t.batchLine(v,g,n,o,c,c,p,P-2,!!e.closePath&&P===d-1),v=n,g=o},Z=function(t,e,i,s){var r=i||e.fillColor,h=s||e.fillAlpha,a=(16711680&r)>>>16,n=(65280&r)>>>8,o=255&r;t.fillStyle="rgba("+a+","+n+","+o+","+h+")"},$=function(t,e,i,s){var r=e.pathData;if(r&&!(r.length<4)){var h=r.length-1,a=r[0]-i,n=r[1]-s;t.beginPath(),t.moveTo(a,n),e.closePath||(h-=2);for(var o=2;o<h;o+=2){var l=r[o]-i,u=r[o+1]-s;t.lineTo(l,u)}e.closePath&&t.closePath(),Z(t,e),t.fill()}},tt=function(t,e,i,s){var r=e.isDashed&&!!e.strokePathData,h=r?e.strokePathData:e.pathData;if(h&&!(h.length<4)){var a=h.length-1,n=h[0]-i,o=h[1]-s;if(function(t,e,i,s){var r=i||e.strokeColor,h=s||e.strokeAlpha,a=(16711680&r)>>>16,n=(65280&r)>>>8,o=255&r;t.strokeStyle="rgba("+a+","+n+","+o+","+h+")",t.lineWidth=e.lineWidth}(t,e),t.beginPath(),e.closePath||(a-=2),r){var l=e.strokePathMask,u=0;for(d=2;d<a;d+=2)p=h[d]-i,c=h[d+1]-s,l[u]&&(t.moveTo(n,o),t.lineTo(p,c)),n=p,o=c,u++}else{t.moveTo(n,o);for(var d=2;d<a;d+=2){var p=h[d]-i,c=h[d+1]-s;t.lineTo(p,c)}e.closePath&&t.closePath()}t.stroke()}};const et=1e-6,it=10,st=.5;var rt=function(t,e){return function(t){if(!Array.isArray(t))return null;for(var e=[],i=0,s=t.length;i<s;i++){var r=Number(t[i]);isFinite(r)&&r>0&&e.push(r)}return e.length>0?e:null}(t)||function(t,e){var{segments:i=it,drawRatio:s=st}=t;if(i=Math.round(i),!isFinite(i)||i<=0)return null;if(!(e>et))return null;var r=e/i;if(!(r>et))return null;if((s=Math.max(0,Math.min(1,s)))>=.999999)return null;var h=r*s;h<=et&&(h=et);var a=r-h;return a<=et?null:[h,a]}(t,e)},ht=function(t,e,i){if(t&&!(t.length<4)){var s=t.length-1;if(e||(s-=2),!(s<2))for(var r=t[0],h=t[1],a=2;a<s;a+=2){var n=t[a],o=t[a+1];i(r,h,n,o),r=n,h=o}}},at=function(t,e,i){void 0===e&&(e={}),void 0===i&&(i={});var{closePath:s=!1,dashPattern:r,dashOffset:h=0}=e,a=function(t,e){var i=0;return ht(t,e,(function(t,e,s,r){var h=s-t,a=r-e;i+=Math.sqrt(h*h+a*a)})),i}(t,s);if(null===(r=rt(r,a)))return null;for(var n=[],o=[],l=0,u=0,d=r.length;u<d;u++)l+=r[u];if(l<=et)return i.strokePathData=t?t.slice():[],i.strokePathMask=void 0,i;for(var p=0,c=!0,v=r[p],g=function(){p=(p+1)%r.length,c=!c,v=r[p]},y=function(t,e){return isFinite(t)||(t=0),(t%=e)<0&&(t+=e),t}(h,l);y>et;)y<v-et?(v-=y,y=0):(y-=v,g());var f=function(t,e,i,s,r){if(0===n.length)n.push(t,e);else{var h=n[n.length-2],a=n[n.length-1];h===t&&a===e||n.push(t,e)}n.push(i,s),o.push(r?1:0)};return ht(t,s,(function(t,e,i,s){var r=i-t,h=s-e,a=Math.sqrt(r*r+h*h);if(!(a<=et))for(var n=0;n<a-et;){var o=Math.min(v,a-n);if(o<=et)g();else{var l=n/a,u=(n+o)/a;f(t+r*l,e+h*l,t+r*u,e+h*u,c),n+=o,(v-=o)<=et&&g()}}})),!s&&n.length>=2&&n.push(n[n.length-2],n[n.length-1]),i.strokePathData=n,i.strokePathMask=o,i},nt={setDashPattern:function(t,e){return this.dashPattern=t,this.dashOffset=e||0,this.isDashed=!!t,this},clearDashPattern:function(){return this.setDashPattern(),this},setDashed:function(t){return void 0===t&&(t=!0),this.isDashed=t,this}},ot={buildStrokePath:function(){if(this.isDashed){var t=at(this.pathData,{closePath:this.closePath,dashPattern:this.dashPattern,dashOffset:this.dashOffset},this);t?(this.strokePathData=t.strokePathData,this.strokePathMask=t.strokePathMask):this.isDashed=!1}return this}};Object.assign(ot,nt);const lt=Phaser.Geom.Polygon.Earcut;class ut extends J{constructor(){super(),this.pathData=[],this.isDashed=!1,this.strokePathData=void 0,this.strokePathMask=void 0,this.dashPattern=void 0,this.dashOffset=0,this.pathIndexes=[],this.closePath=!1}updateData(){return this.pathIndexes=lt(this.pathData),super.updateData(),this.buildStrokePath(),this}webglRender(t,e,i,s,r){this.isFilled&&K(t,e,this,i,s,r),this.isStroked&&Q(t,this,i,s,r)}canvasRender(t,e,i){this.isFilled&&$(t,this,e,i),this.isStroked&&tt(t,this,e,i)}}Object.assign(ut.prototype,ot);var dt=function(t,e,i){var s=i.length;if(s>=2){var r=i[s-2],h=i[s-1];if(t===r&&e===h)return i}return i.push(t,e),i};const pt=Phaser.Math.DegToRad;Phaser.Math.DegToRad;const ct=Phaser.Math.Interpolation.QuadraticBezier,vt=Phaser.Math.Interpolation.CubicBezier,gt=Phaser.Math.Interpolation.CatmullRom;var yt=function(t){var e=t.length;if(e<2)return t;var i=t[e-2],s=t[e-1];return t.push(i),t.push(s),t},ft={clear(){return this.start(),this},start(){return this.startAt(),this},startAt(t,e){return this.restorePathData(),this.accumulationLengths=void 0,function(t,e,i){i.length=0,null!=t&&i.push(t,e)}(t,e,this.pathData),this.firstPointX=t,this.firstPointY=e,this.lastPointX=t,this.lastPointY=e,this},lineTo(t,e,i){return void 0===i&&(i=!1),i&&(t+=this.lastPointX,e+=this.lastPointY),dt(t,e,this.pathData),this.lastPointX=t,this.lastPointY=e,this},verticalLineTo(t,e){return this.lineTo(t,this.lastPointY,e),this},horizontalLineTo(t,e){return this.lineTo(this.lastPointX,t,e),this},ellipticalArc(t,e,i,s,r,h,a){return void 0===a&&(a=!1),function(t,e,i,s,r,h,a,n,o){a&&h>r?h-=360:!a&&h<r&&(h+=360);var l=pt(h-r)/n;r=pt(r);for(var u=0;u<=n;u++){var d=r+l*u,p=t+i*Math.cos(d),c=e+s*Math.sin(d);dt(p,c,o)}}(t,e,i,s,r,h,a,this.iterations,this.pathData),this.lastPointX=this.pathData[this.pathData.length-2],this.lastPointY=this.pathData[this.pathData.length-1],this},arc(t,e,i,s,r,h){return this.ellipticalArc(t,e,i,i,s,r,h),this},quadraticBezierTo(t,e,i,s){return function(t,e,i,s,r,h){for(var a=h.length,n=h[a-2],o=h[a-1],l=1,u=r-1;l<=u;l++){var d=l/u;h.push(ct(d,n,t,i),ct(d,o,e,s))}}(t,e,i,s,this.iterations,this.pathData),this.lastPointX=i,this.lastPointY=s,this},cubicBezierTo(t,e,i,s,r,h){return function(t,e,i,s,r,h,a,n){for(var o=n.length,l=n[o-2],u=n[o-1],d=1,p=a-1;d<=p;d++){var c=d/p;n.push(vt(c,l,t,i,r),vt(c,u,e,s,h))}}(t,e,i,s,r,h,this.iterations,this.pathData),this.lastPointX=r,this.lastPointY=h,this},catmullRomTo(...t){return function(t,e,i){for(var s=i.length,r=[i[s-2]],h=[i[s-1]],a=0,n=t.length;a<n;a+=2)r.push(t[a]),h.push(t[a+1]);a=1;for(var o=e-1;a<=o;a++){var l=a/o;i.push(gt(r,l),gt(h,l))}}(t,this.iterations,this.pathData),this.lastPointX=t[t.length-2],this.lastPointY=t[t.length-1],this},close(){var t=this.pathData[0],e=this.pathData[1];return t===this.lastPointX&&e===this.lastPointY||this.lineTo(t,e),this.closePath=!0,this},end(){return yt(this.pathData),this}};const mt=Phaser.Math.RotateAround,Pt=Phaser.Math.DegToRad;Phaser.Math.RotateAround;var kt={rotateAround(t,e,i){if(0===this.pathData.length)return this;!function(t,e,i,s){for(var r={x:0,y:0},h=0,a=s.length-1;h<a;h+=2)r.x=s[h],r.y=s[h+1],mt(r,t,e,i),s[h]=r.x,s[h+1]=r.y}(t,e,i=Pt(i),this.pathData);var s=this.pathData.length;return this.lastPointX=this.pathData[s-2],this.lastPointY=this.pathData[s-1],this},scale(t,e,i,s){return 0===this.pathData.length||(function(t,e,i,s,r){for(var h=0,a=r.length-1;h<a;h+=2){var n=r[h]-t,o=r[h+1]-e;n*=i,o*=s,r[h]=n+t,r[h+1]=o+e}}(t,e,i,s,this.pathData),this.lastPointX=this.pathData[pathDataCnt-2],this.lastPointY=this.pathData[pathDataCnt-1]),this},offset(t,e){return function(t,e,i){for(var s=0,r=i.length-1;s<r;s+=2)i[s]+=t,i[s+1]+=e}(t,e,this.pathData),this}},Dt={savePathData(){return this.pathDataSaved||(this.pathDataSave=[...this.pathData],this.pathData.length=0,this.pathDataSaved=!0),this},restorePathData(){return this.pathDataSaved?(function(t,e,i,s){void 0===i&&(i=0),void 0===s&&(s=e.length),t.length=s-i;for(var r=0,h=t.length;r<h;r++)t[r]=e[r+i]}(this.pathData,this.pathDataSave),this.pathDataSave=void 0,this.pathDataSaved=!1,this):this}};const bt=Phaser.Math.Distance.Between,St=Phaser.Math.Wrap,_t=Phaser.Math.Linear;var Tt=function(t,e,i,s,r){if(void 0===s&&(s=i,i=0),(i=Ct(i))!==(s=Ct(s))){var h=e[e.length-1],a=h*i,n=h*s;i<s?wt(t,e,a,n,r):(wt(t,e,a,h,r),wt(t,e,0,n,r)),yt(r)}},wt=function(t,e,i,s,r){for(var h=i>0,a=0,n=e.length;a<n;a++){var o=2*a,l=e[a];if(h){if(l<i)continue;if(l==i)h=!1;else{var u=1-(l-i)/(l-e[a-1]);r.push(Et(t,o-2,o,u)),r.push(Et(t,o-1,o+1,u)),h=!1}}if(!(l<=s)){u=1-(l-s)/(l-e[a-1]),r.push(Et(t,o-2,o,u)),r.push(Et(t,o-1,o+1,u));break}if(r.push(t[o]),r.push(t[o+1]),l===s)break}},Et=function(t,e,i,s){var r=t[e],h=t[i];return _t(r,h,s)},Ct=function(t){return 0===t?0:t%1==0?1:St(t,0,1)},xt={updateAccumulationLengths(){if(null==this.accumulationLengths)this.accumulationLengths=[];else if(this.accumulationLengths.length===this.pathData.length/2)return this;for(var t,e,i,s,r=this.accumulationLengths,h=this.pathData,a=0,n=0,o=h.length;n<o;n+=2)i=h[n],s=h[n+1],a+=void 0===t?0:bt(t,e,i,s),r.push(a),t=i,e=s;return this.totalPathLength=a,this},setDisplayPathSegment(t,e){return this.pathDataSaved||(this.updateAccumulationLengths(),this.savePathData()),this.pathData.length=0,Tt(this.pathDataSave,this.accumulationLengths,t,e,this.pathData),this},appendFromPathSegment(t,e,i){return void 0===e?this.pathData.push(...t.pathData):(t.updateAccumulationLengths(),Tt(t.pathData,t.accumulationLengths,e,i,this.pathData)),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}},Rt={draw(t,e,i){var s=this.toPoints();return e&&t.fillPoints(s,this.closePath,this.closePath),i&&t.strokePoints(s,this.closePath,this.closePath),this}};const At=Phaser.Geom.Polygon;class Ot{constructor(t){void 0===t&&(t=[]),this.pathData=t,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}setIterations(t){return this.iterations=t,this}toPoints(){return function(t,e){void 0===e&&(e=[]);for(var i=0,s=t.length-1;i<s;i+=2)e.push({x:t[i],y:t[i+1]});return e}(this.pathData)}toPolygon(t){return function(t,e){return void 0===e&&(e=new At),e.setTo(t),e}(this.pathData,t)}}Object.assign(Ot.prototype,ft,kt,Dt,xt,Rt);class Lt extends ut{constructor(){super(),this.builder=new Ot(this.pathData)}get iterations(){return this.builder.iterations}set iterations(t){this.dirty=this.dirty||this.builder.iterations!==t,this.builder.setIterations(t)}setIterations(t){return this.iterations=t,this}get lastPointX(){return this.builder.lastPointX}get lastPointY(){return this.builder.lastPointY}start(){return this.builder.start(),this.dirty=!0,this}startAt(t,e){return this.builder.startAt(t,e),this.dirty=!0,this}lineTo(t,e,i){return this.builder.lineTo(t,e,i),this.dirty=!0,this}verticalLineTo(t,e){return this.builder.verticalLineTo(t,e),this.dirty=!0,this}horizontalLineTo(t,e){return this.builder.horizontalLineTo(t,e),this.dirty=!0,this}ellipticalArc(t,e,i,s,r,h,a){return this.builder.ellipticalArc(t,e,i,s,r,h,a),this.dirty=!0,this}arc(t,e,i,s,r,h){return this.builder.arc(t,e,i,s,r,h),this.dirty=!0,this}quadraticBezierTo(t,e,i,s){return this.builder.quadraticBezierTo(t,e,i,s),this.dirty=!0,this}cubicBezierTo(t,e,i,s,r,h){return this.builder.cubicBezierTo(t,e,i,s,r,h),this.dirty=!0,this}catmullRomTo(...t){return this.builder.catmullRomTo(...t),this.dirty=!0,this}close(){return this.builder.close(),this.closePath=this.builder.closePath,this.dirty=!0,this}end(){return this.builder.end(),this.dirty=!0,this}rotateAround(t,e,i){return this.builder.rotateAround(t,e,i),this.dirty=!0,this}scale(t,e,i,s){return this.builder.scale(t,e,i,s),this.dirty=!0,this}offset(t,e){return this.builder.offset(t,e),this.dirty=!0,this}toPolygon(t){return this.builder.toPolygon(t)}appendPathFrom(t,e,i){return this.builder.appendFromPathSegment(t.builder,e,i),this}copyPathFrom(t,e,i){return this.builder.clear().appendFromPathSegment(t.builder,e,i),this}setDisplayPathSegment(t,e){return this.builder.setDisplayPathSegment(t,e),this}}const Vt=Phaser.Renderer.WebGL.Utils.getTintAppendFloatAlpha;Object.assign(class extends J{constructor(t,e,i,s){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===s&&(s=i),super(),this.pathData=[],this.isDashed=!1,this.strokePathData=void 0,this.strokePathMask=void 0,this.dashPattern=void 0,this.dashOffset=0,this.closePath=!0,this.setTopLeftPosition(t,e),this.setSize(i,s)}get x(){return this._x}set x(t){this.dirty=this.dirty||this._x!==t,this._x=t}get y(){return this._y}set y(t){this.dirty=this.dirty||this._y!==t,this._y=t}setTopLeftPosition(t,e){return this.x=t,this.y=e,this}get width(){return this._width}set width(t){this.dirty=this.dirty||this._width!==t,this._width=t}get height(){return this._height}set height(t){this.dirty=this.dirty||this._height!==t,this._height=t}setSize(t,e){return this.width=t,this.height=e,this}get centerX(){return this.x+this.width/2}set centerX(t){this.x=t-this.width/2}get centerY(){return this.y+this.height/2}set centerY(t){this.y=t-this.height/2}setCenterPosition(t,e){return this.centerX=t,this.centerY=e,this}updateData(){this.pathData.length=0;var t=this.x,e=t+this.width,i=this.y,s=i+this.height;return this.pathData.push(t,i),this.pathData.push(e,i),this.pathData.push(e,s),this.pathData.push(t,s),this.pathData.push(t,i),super.updateData(),this.buildStrokePath(),this}webglRender(t,e,i,s,r){if(this.isFilled){var h=t.fillTint,a=Vt(this.fillColor,this.fillAlpha*i);h.TL=a,h.TR=a,h.BL=a,h.BR=a,t.batchFillRect(-s+this.x,-r+this.y,this.width,this.height)}this.isStroked&&Q(t,this,i,s,r)}canvasRender(t,e,i){this.isFilled&&(Z(t,this),t.fillRect(-e,-i,this.width,this.height)),this.isStroked&&tt(t,this,e,i)}}.prototype,ot),Phaser.Utils.Objects.GetValue;const Mt=Phaser.Geom.Polygon.Earcut;Object.assign(class extends J{constructor(t,e,i,s,r,h){void 0===t&&(t=0),void 0===e&&(e=0),void 0===i&&(i=0),void 0===s&&(s=0),void 0===r&&(r=0),void 0===h&&(h=0),super(),this.pathData=[],this.isDashed=!1,this.strokePathData=void 0,this.strokePathMask=void 0,this.dashPattern=void 0,this.dashOffset=0,this.pathIndexes=[],this.closePath=!0,this.setP0(t,e),this.setP1(i,s),this.setP2(r,h)}get x0(){return this._x0}set x0(t){this.dirty=this.dirty||this._x0!==t,this._x0=t}get y0(){return this._y0}set y0(t){this.dirty=this.dirty||this._y0!==t,this._y0=t}setP0(t,e){return this.x0=t,this.y0=e,this}get x1(){return this._x1}set x1(t){this.dirty=this.dirty||this._x1!==t,this._x1=t}get y1(){return this._y1}set y1(t){this.dirty=this.dirty||this._y1!==t,this._y1=t}setP1(t,e){return this.x1=t,this.y1=e,this}get x2(){return this._x2}set x2(t){this.dirty=this.dirty||this._x2!==t,this._x2=t}get y2(){return this._y2}set y2(t){this.dirty=this.dirty||this._y2!==t,this._y2=t}setP2(t,e){return this.dirty=this.dirty||this.x2!==t||this.y2!==e,this.x2=t,this.y2=e,this}updateData(){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),this.pathIndexes=Mt(this.pathData),super.updateData(),this.buildStrokePath(),this}webglRender(t,e,i,s,r){this.isFilled&&K(t,e,this,i,s,r),this.isStroked&&Q(t,this,i,s,r)}canvasRender(t,e,i){this.isFilled&&$(t,this,e,i),this.isStroked&&tt(t,this,e,i)}}.prototype,ot);var jt=function(t,e,i,s,r,h){var a=(e+s)/2;return h>=0?t.startAt(a+h,i).lineTo(s+h,i).lineTo(s,r).lineTo(e,r).lineTo(e+h,i).lineTo(a+h,i):t.startAt(a,i).lineTo(s,i).lineTo(s-h,r).lineTo(e-h,r).lineTo(e,i).lineTo(a,i),t.close(),t};const Ft=Phaser.Utils.Objects.GetValue,Xt=Phaser.Utils.Objects.IsPlainObject;class Gt extends(function(t){class e extends t{bootProgressBase(t){this.eventEmitter=z(t,"eventEmitter",this);var e=z(t,"valuechangeCallback",null);if(null!==e){var i=z(t,"valuechangeCallbackScope",void 0);this.eventEmitter.on("valuechange",e,i)}return this.setEaseValuePropName("value").setEaseValueDuration(z(t,"easeValue.duration",0)).setEaseValueFunction(z(t,"easeValue.ease","Linear")),this}get value(){return this._value}set value(t){t=N(t,0,1);var e=this._value,i=e!=t;this.dirty=this.dirty||i,this._value=t,i&&this.eventEmitter.emit("valuechange",this._value,e,this.eventEmitter)}}return Object.assign(e.prototype,l,Y),e}(a)){constructor(t,e,i,s,r,h,a,n){Xt(e)?(e=(n=e).x,i=n.y,s=n.width,r=n.height,h=n.barColor,a=n.value):Xt(s)?(s=(n=s).width,r=n.height,h=n.barColor,a=n.value):Xt(h)&&(h=(n=h).barColor,a=n.value),void 0===e&&(e=0),void 0===i&&(i=0),void 0===s&&(s=2),void 0===r&&(r=s),void 0===a&&(a=0),super(t,e,i,s,r,n),this.type="rexLineProgress",this.bootProgressBase(n),this.addShape((new Lt).setName("trackFill")).addShape((new Lt).setName("bar")).addShape((new Lt).setName("trackStroke")),this.setTrackColor(Ft(n,"trackColor",void 0)),this.setBarColor(h),this.setTrackStroke(Ft(n,"trackStrokeThickness",2),Ft(n,"trackStrokeColor",void 0)),this.setSkewX(Ft(n,"skewX",0)),this.setRTL(Ft(n,"rtl",!1)),this.setValue(a)}get trackColor(){return this._trackColor}set trackColor(t){this.dirty=this.dirty||this._trackColor!=t,this._trackColor=t}setTrackColor(t){return this.trackColor=t,this}get trackStrokeColor(){return this._trackStrokeColor}set trackStrokeColor(t){this.dirty=this.dirty||this._trackStrokeColor!=t,this._trackStrokeColor=t}get trackStrokeThickness(){return this._trackStrokeThickness}set trackStrokeThickness(t){this.dirty=this.dirty||this._trackStrokeThickness!=t,this._trackStrokeThickness=t}setTrackStroke(t,e){return this.trackStrokeThickness=t,this.trackStrokeColor=e,this}get barColor(){return this._barColor}set barColor(t){this.dirty=this.dirty||this._barColor!=t,this._barColor=t}setBarColor(t){return this.barColor=t,this}get skewX(){return this._skewX}set skewX(t){this.dirty=this.dirty||this._skewX!=t,this._skewX=t}setSkewX(t){return this.skewX=t,this}get rtl(){return this._rtl}set rtl(t){t=!!t,this.dirty=this.dirty||this._rtl!=t,this._rtl=t}setRTL(t){return void 0===t&&(t=!0),this.rtl=t,this}}var Yt={updateShapes:function(){var t=this.skewX,e=this.width-Math.abs(t),i=this.height,s=this.getShape("trackFill");s.fillStyle(this.trackColor),s.isFilled&&jt(s,0,0,e,i,t);var r,h,a=this.getShape("bar");a.fillStyle(this.barColor),a.isFilled&&(this.rtl?(r=e*(1-this.value),h=e):(r=0,h=e*this.value),jt(a,r,0,h,i,t));var n=this.getShape("trackStroke");n.lineStyle(this.trackStrokeThickness,this.trackStrokeColor),n.isStroked&&jt(n,0,0,e,i,t)}};function zt(t,e,i,s,r,h,a){var n=new Gt(this.scene,t,e,i,s,r,h,a);return this.scene.add.existing(n),n}Object.assign(Gt.prototype,Yt);const Nt=Phaser.GameObjects.BuildGameObject;function Bt(t,e){void 0===t&&(t={}),void 0!==e&&(t.add=e);var i=new Gt(this.scene,t);return Nt(this.scene,i,t),i}var It=function(t){return null!==t&&"object"==typeof t};class Wt extends Phaser.Plugins.BasePlugin{constructor(t){super(t),t.registerGameObject("rexLineProgress",zt,Bt)}start(){this.game.events.on("destroy",this.destroy,this)}}return function(t,e,i,s="."){if(!It(t))return t;if(function(t){return null==t}(e)||""===e||Array.isArray(e)&&0===e.length)return t;if("string"==typeof e&&-1===e.indexOf(s)||"number"==typeof e)return t[e]=i,t;var r=function(t,e){return Array.isArray(t)||(t="string"!=typeof t||""===t.trim()?[]:t.split(e).filter(Boolean)),t}(e,s);if(0===r.length)return t;for(var h=t,a=r.length,n=0;n<a-1;n++){var o=r[n],l=h[o];It(l)||(h[o]={}),h=h[o]}h[r[a-1]]=i}(window,"RexPlugins.GameObjects.LineProgress",Gt),Wt},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).rexlineprogressplugin=e();