phaser4-rex-plugins
Version:
2 lines (1 loc) • 7.1 kB
JavaScript
var t,e;t=void 0,e=function(){var t=function(t,e,i){return"__BASE"===i?`${t},${e}`:`${i}:${t},${e}`};function e(t){if(null===t||"object"!=typeof t)return t;if(Array.isArray(t))return t.map((t=>e(t)));if(t instanceof Date)return new Date(t);if(t instanceof RegExp)return new RegExp(t);if(Object.getPrototypeOf(t)!==Object.prototype)return t;const i={};for(let s in t)t.hasOwnProperty(s)&&(i[s]=e(t[s]));return i}const i=Phaser.Utils.Objects.IsPlainObject,s=Phaser.Utils.Objects.GetValue;var r=function(t){return"string"==typeof t&&(t=a[t]),t};const a={scale:0,repeat:1};var o=function(t,e){return 0===t||t===this.columns.count-1||0===e||e===this.rows.count-1},h=function(){},n={_beginDraw:h,_drawImage:h,_drawTileSprite:h,_endDraw:h,setGetFrameNameCallback:function(e){return void 0===e&&(e=t),this.getFrameNameCallback=e,this},setBaseTexture:function(t,i,s,r){Array.isArray(i)&&(r=s,s=i,i=void 0),null==i&&(i="__BASE"),"number"==typeof s&&arguments.length>=6?(s=[arguments[2],void 0,arguments[3]],r=[arguments[4],void 0,arguments[5]]):void 0===s&&void 0===r&&void 0!==this.columns.data&&void 0!==this.rows.data?(s=this.columns.data,r=this.rows.data):(s=e(s),r=e(r)),this.textureKey=t,this.baseFrameName=i,this.columns.data=s,this.columns.count=s?s.length:0,this.columns.stretch=0,this.columns.minWidth=0,this.columns.scale=1,this.rows.data=r,this.rows.count=r?r.length:0,this.rows.stretch=0,this.rows.minHeight=0,this.rows.scale=1;var a=this.scene.sys.textures.get(t);if(!a)return this.clear(),this;if(!s||!r)return this.clear(),this;for(var o=a.get(i),h=o.width,n=0,c=0,d=s.length;c<d;c++)void 0===s[c]?n++:"number"==typeof s[c]?h-=s[c]:h-=s[c].width;var u=n>0?h/n:0,l=o.height,m=0;for(c=0,d=r.length;c<d;c++)void 0===r[c]?m++:"number"==typeof r[c]?l-=r[c]:l-=r[c].width;for(var v,f,g,w,p,x=m?l/m:0,y=0,b=0,P=0,S=r.length;P<S;P++){void 0===r[P]&&(r[P]=x),"number"==typeof r[P]&&(r[P]={height:r[P],stretch:P%2}),g=(v=r[P]).height,this.rows.stretch+=0|v.stretch,this.rows.minHeight+=v.stretch>0?0:g,y=0,c=0;for(var F=s.length;c<F;c++){if(void 0===s[c]&&(s[c]=u),"number"==typeof s[c]&&(s[c]={width:s[c],stretch:c%2}),w=(f=s[c]).width,0===P&&(this.columns.stretch+=0|f.stretch,this.columns.minWidth+=f.stretch>0?0:w),w>=1&&g>=1){var O=typeof(p=this.getFrameNameCallback(c,P,i));"string"!==O&&"number"!==O||a.add(p,0,y+o.cutX,b+o.cutY,w,g)}y+=w}b+=g}return this.updateTexture(),this},updateTexture:function(){if(this.clear(),void 0===this.textureKey)return this;var t=this.scene.sys.textures.get(this.textureKey);if(!t)return this;var e,i,s,r,a,o,h,n=this.columns.minWidth*this.maxFixedPartScaleX,c=this.rows.minHeight*this.maxFixedPartScaleY,d=this.width-n,u=this.height-c,l=d>=0?this.maxFixedPartScaleX:this.width/n,m=u>=0?this.maxFixedPartScaleY:this.height/c;if(this.preserveRatio){var v=Math.min(l,m);if(l>v){var f=(l-v)*n;d>=0?d+=f:d=f,l=v}if(m>v){var g=(m-v)*c;u>=0?u+=g:u=g,m=v}}this.columns.scale=l,this.rows.scale=m,e=d>0&&this.columns.stretch>0?d/this.columns.stretch:0,i=u>0&&this.rows.stretch>0?u/this.rows.stretch:0;var w=0,p=0;this._beginDraw();for(var x=0,y=this.rows.count;x<y;x++){h=0===(a=this.rows.data[x]).stretch?a.height*m:i*a.stretch,w=0;for(var b=0,P=this.columns.count;b<P;b++)o=0===(r=this.columns.data[b]).stretch?r.width*l:e*r.stretch,s=this.getFrameNameCallback(b,x,this.baseFrameName),t.has(s)&&o>0&&h>0&&(0==(0===a.stretch&&0===r.stretch||0===this.getStretchMode(b,x)?0:1)?this._drawImage(this.textureKey,s,w,p,o,h):this._drawTileSprite(this.textureKey,s,w,p,o,h)),w+=o;p+=h}this._endDraw()},setStretchMode:function(t){return i(t)?(this.stretchMode.edge=r(s(t,"edge",0)),this.stretchMode.internal=r(s(t,"internal",0))):(t=r(t),this.stretchMode.edge=t,this.stretchMode.internal=t),this},getStretchMode:function(t,e){return o.call(this,t,e)?this.stretchMode.edge:this.stretchMode.internal},setPreserveRatio:function(t){return null==t&&(t=!0),this.preserveRatio=t,this},setMaxFixedPartScale:function(t,e){return void 0===e&&(e=t),this.maxFixedPartScaleX=t,this.maxFixedPartScaleY=e,this}};const c=Phaser.Utils.Objects.IsPlainObject,d=Phaser.Utils.Objects.GetValue,u=Phaser.Game;var l=function(t){return t instanceof u};const m=Phaser.Scene;var v=function(t){return t instanceof m},f=function(t){return null==t||"object"!=typeof t?null:l(t)?t:l(t.game)?t.game:v(t)?t.sys.game:v(t.scene)?t.scene.sys.game:void 0};const g=Phaser.GameObjects;var w=void 0,p=function(t,e){if(w||(w={},f(t).events.once("destroy",(function(){for(var t in w)w[t].destroy();w=void 0}))),!w.hasOwnProperty(e)){var i=f(t).scene.systemScene;(t=new g[e](i)).setOrigin(0),w[e]=t}return w[e]};const x=Phaser.GameObjects.RenderTexture;class y extends(function(t,e){class i extends t{constructor(t,i,s,r,a,o,h,n,u,l){if(c(i)?(i=d(l=i,"x",0),s=d(l,"y",0),r=d(l,"width",1),a=d(l,"height",1),o=d(l,"key",void 0),h=d(l,"baseFrame",void 0),n=d(l,"columns",void 0),u=d(l,"rows",void 0)):c(r)?(r=d(l=r,"width",1),a=d(l,"height",1),o=d(l,"key",void 0),h=d(l,"baseFrame",void 0),n=d(l,"columns",void 0),u=d(l,"rows",void 0)):c(o)?(o=d(l=o,"key",void 0),h=d(l,"baseFrame",void 0),n=d(l,"columns",void 0),u=d(l,"rows",void 0)):c(h)?(h=d(l=h,"baseFrame",void 0),n=d(l,"columns",void 0),u=d(l,"rows",void 0)):Array.isArray(h)?(l=u,u=n,n=h,h=d(l,"baseFrame",void 0)):c(n)&&(n=d(l=n,"columns",void 0),u=d(l,"rows",void 0)),void 0===h&&(h=d(l,"frame",void 0)),void 0===n){var m=d(l,"leftWidth",void 0),v=d(l,"rightWidth",void 0);void 0!==m&&void 0!==v&&(n=[m,void 0,v])}if(void 0===u){var f=d(l,"topHeight",void 0),g=d(l,"bottomHeight",void 0);void 0!==f&&void 0!==g&&(u=[f,void 0,g])}super(t),this.type=e,this.setPosition(i,s).setSize(r,a).setOrigin(.5,.5),this.columns={},this.rows={},this.stretchMode={},this._tileSprite=void 0,this._image=void 0,this.setGetFrameNameCallback(d(l,"getFrameNameCallback",void 0)),this.setStretchMode(d(l,"stretchMode",0)),this.setPreserveRatio(d(l,"preserveRatio",!0));var w=d(l,"maxFixedPartScale",1),p=d(l,"maxFixedPartScaleX",w),x=d(l,"maxFixedPartScaleY",void 0);this.setMaxFixedPartScale(p,x),this.setBaseTexture(o,h,n,u)}get minWidth(){return this.columns.minWidth}get minHeight(){return this.rows.minHeight}get fixedPartScaleX(){return this.columns.scale}get fixedPartScaleY(){return this.rows.scale}resize(t,e){return this.width===t&&this.height===e||(super.resize?super.resize(t,e):super.setSize(t,e),this.updateTexture()),this}get leftWidth(){return this.columns.data[0]}get rightWidth(){return this.columns.data[this.columns.count-1]}get topHeight(){return this.rows.data[0]}get bottomHeight(){return this.rows.data[this.rows.count-1]}}return Object.assign(i.prototype,n),i}(x,"rexNinePatch")){}var b={_drawImage:function(t,e,i,s,r,a){var o=p(this,"Image").setTexture(t,e).setDisplaySize(r,a);this.draw(o,i,s).render()},_drawTileSprite:function(t,e,i,s,r,a){var o=p(this,"TileSprite").setTexture(t,e).setSize(r,a);this.draw(o,i,s).render()}};return Object.assign(y.prototype,b),y},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).rexninepatch=e();