phaser4-rex-plugins
Version:
2 lines (1 loc) • 34.6 kB
JavaScript
var e,t;e=void 0,t=function(){var e=function(e,t){if(!e)return!1;if(e.hasOwnProperty(t))return!0;for(;e;){if(Object.getOwnPropertyDescriptor(e,t))return!0;e=e.__proto__}return!1},t=function(e,t){return void 0===t&&(t=!1),e.filters||e.enableFilters().focusFilters(),t?e.filters.external:e.filters.internal},r=function(e,t){e._effectSwitchNames||(e._effectSwitchNames=[],e.clearAllEffects=function(){for(var t=e._effectSwitchNames,r=0,n=t.length;r<n;r++)e[t[r]]=null;return e},e.on("destroy",e.clearAllEffects,e)),e._effectSwitchNames.push(t)},n=function(n,i,o){if(e(n,i))return n;var s,l=t(n),c=`_${i}Effect`;return Object.defineProperty(n,i,{get:function(){return s},set:function(e){s!==e&&(null===(s=e)||!1===s?n[c]&&(l.remove(n[c]),n[c]=void 0):(n[c]||(n[c]=l.addColorMatrix()),n[c].colorMatrix[i](1===o?e:void 0)))}}),n[i]=null,r(n,i),n};const i=Phaser.Game;var o=function(e){return e instanceof i};const s=Phaser.Scene;var l=function(e){return e instanceof s},c=function(e){return null==e||"object"!=typeof e?null:o(e)?e:o(e.game)?e.game:l(e)?e.sys.game:l(e.scene)?e.scene.sys.game:void 0},f=function(e,t){var r=t.FilterName,n=c(e).renderer.renderNodes;return!n.hasNode(r)&&(n.addNodeConstructor(r,t),!0)},a=function(e,t){var r=Phaser.GameObjects.Components.FilterList.prototype;r[e]||(r[e]=t)};const u="FilterP3BloomStep";class d extends Phaser.Renderer.WebGL.RenderNodes.BaseFilterShader{static FilterName=u;constructor(e){super(u,e,null,"#pragma phaserTemplate(shaderName)\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n#define highmedp highp\n#else\n#define highmedp mediump\n#endif\nprecision highmedp float;\n\n// Scene buffer\nuniform sampler2D uMainSampler; \nvarying vec2 outTexCoord;\n\n// Effect parameters\nuniform vec2 offset;\nuniform float strength;\nuniform vec3 color;\n\n#pragma phaserTemplate(fragmentHeader)\n\nvoid main (void) {\n vec4 sum = texture2D(uMainSampler, outTexCoord) * 0.204164 * strength;\n\n sum = sum + texture2D(uMainSampler, outTexCoord + offset * 1.407333) * 0.304005;\n sum = sum + texture2D(uMainSampler, outTexCoord - offset * 1.407333) * 0.304005;\n sum = sum + texture2D(uMainSampler, outTexCoord + offset * 3.294215) * 0.093913;\n sum = sum + texture2D(uMainSampler, outTexCoord - offset * 3.294215) * 0.093913;\n\n gl_FragColor = sum * vec4(color, 1);\n}\n")}setupUniforms(e,t){const r=this.programManager;var n=2/t.width*e.offsetX,i=2/t.height*e.offsetY;r.setUniform("offset",[n,i]),r.setUniform("strength",e.strength),r.setUniform("color",e.glcolor)}}const h=Phaser.Utils.Objects.GetValue;class g extends Phaser.Filters.Controller{static FilterName=u;constructor(e,t){super(e,u),this.offsetX=1,this.offsetY=1,this.strength=1,this.glcolor=[1,1,1],this.resetFromJSON(t)}resetFromJSON(e){return this.setOffset(h(e,"offsetX",1),h(e,"offsetY",1)),this.setStrength(h(e,"strength",1)),this.setColor(h(e,"color",16777215)),this}get color(){var e=this.glcolor;return(255*e[0]<<16)+(255*e[1]<<8)+(255*e[2]|0)}set color(e){var t=this.glcolor;t[0]=(e>>16&255)/255,t[1]=(e>>8&255)/255,t[2]=(255&e)/255}setOffset(e,t){return this.offsetX=e,this.offsetY=t,this}setStrength(e){return this.strength=e,this}setColor(e){return this.color=e,this}}const p=Phaser.Utils.Objects.GetValue;let m=class extends Phaser.Filters.ParallelFilters{constructor(e,t){super(e),this.steps=0,this.offsetX=1,this.offsetY=1,this.blurStrength=1,this.color=16777215,this.strength=1,this.resetFromJSON(t)}resetFromJSON(e){return this.setOffset(p(e,"offsetX",1),p(e,"offsetY",1)),this.setBlurStrength(p(e,"blurStrength",1)),this.setColor(p(e,"color",16777215)),this.setStrength(p(e,"strength",1)),this.setSteps(p(e,"steps",4)),this}forEachController(e,t){this.top.list.forEach(e,t)}get steps(){return this._steps}set steps(e){if(this._steps!==e){var t=this.camera;if(this.steps<e)for(var r=this.top,n=2*e,i=2*this.steps;i<n;i++)r.add(new g(t));else{var o=this.top.list;for(n=2*e,i=2*this.steps-1;i>=n;i--)o[i].destroy();o.length=n}this._steps=e,this.setOffset(this.offsetX,this.offsetY),this.setBlurStrength(this.strength),this.setColor(this.color)}}setSteps(e){return this.steps=e,this}get offsetX(){return this._offsetX}set offsetX(e){this._offsetX=e,this.forEachController((function(t,r){t.offsetX=r%2==0?e:0}))}get offsetY(){return this._offsetY}set offsetY(e){this._offsetY=e,this.forEachController((function(t,r){t.offsetY=r%2==1?e:0}))}setOffset(e,t){return this.offsetX=e,this.offsetY=t,this}get blurStrength(){return this._blurStrength}set blurStrength(e){this._blurStrength=e,this.forEachController((function(t){t.strength=e}))}setBlurStrength(e){return this.blurStrength=e,this}get color(){return this._color}set color(e){this._color=e,this.forEachController((function(t){t.color=e}))}setColor(e){return this.color=e,this}get strength(){return this._strength}set strength(e){this._strength=e,this.blend.amount=e}setStrength(e){return this.strength=e,this}};const v="FilterP3Circle";class _ extends Phaser.Renderer.WebGL.RenderNodes.BaseFilterShader{static FilterName=v;constructor(e){super(v,e,null,"#pragma phaserTemplate(shaderName)\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n#define highmedp highp\n#else\n#define highmedp mediump\n#endif\nprecision highmedp float;\n\n// Scene buffer\nuniform sampler2D uMainSampler; \nvarying vec2 outTexCoord;\n\n// Effect parameters\nuniform vec2 texSize;\nuniform vec3 color;\nuniform vec4 backgroundColor;\nuniform vec3 config;\n\n#pragma phaserTemplate(fragmentHeader)\n\nvoid main (void) {\n float thickness = config.x;\n float scale = config.y;\n float feather = config.z;\n\n vec4 texture = texture2D(uMainSampler, outTexCoord);\n\n vec2 position = (gl_FragCoord.xy / texSize.xy) * 2.0 - 1.0;\n\n float aspectRatio = texSize.x / texSize.y;\n\n position.x *= aspectRatio;\n\n float grad = length(position);\n\n // height > width\n float outer = aspectRatio;\n float inner = outer - (thickness * 2.0 / texSize.y);\n\n // width > height\n if (aspectRatio >= 1.0)\n {\n float f = 2.0 + (texSize.y / texSize.x);\n outer = 1.0;\n inner = 1.0 - (thickness * f / texSize.x);\n }\n\n outer *= scale;\n inner *= scale;\n\n float circle = smoothstep(outer, outer - 0.01, grad);\n\n float ring = circle - smoothstep(inner, inner - feather, grad);\n\n texture = mix(backgroundColor * backgroundColor.a, texture, texture.a);\n\n texture = (texture * (circle - ring));\n\n gl_FragColor = vec4(texture.rgb + (ring * color), texture.a);\n}\n")}setupUniforms(e,t){const r=this.programManager;r.setUniform("texSize",[t.width,t.height]),r.setUniform("color",e.glcolor),r.setUniform("backgroundColor",e.glcolor2),r.setUniform("config",[e.thickness,e.scale,e.feather])}}const b=Phaser.Utils.Objects.GetValue;class y extends Phaser.Filters.Controller{static FilterName=v;constructor(e,t){super(e,v),this.thickness=8,this.scale=1,this.feather=.005,this.glcolor=[1,.2,.7],this.glcolor2=[1,0,0,.4],this.resetFromJSON(t)}resetFromJSON(e){return this.setThickness(b(e,"thickness",8)),this.setScale(b(e,"scale",1)),this.setFeather(b(e,"feather",.005)),this.setColor(b(e,"color",16724914)),this.setBackgroundColor(b(e,"backgroundColor",16711680)),this.setBackgroundAlpha(b(e,"backgroundAlpha",.4)),this}get color(){var e=this.glcolor;return(255*e[0]<<16)+(255*e[1]<<8)+(255*e[2]|0)}set color(e){var t=this.glcolor;t[0]=(e>>16&255)/255,t[1]=(e>>8&255)/255,t[2]=(255&e)/255}get backgroundColor(){var e=this.glcolor2;return(255*e[0]<<16)+(255*e[1]<<8)+(255*e[2]|0)}set backgroundColor(e){var t=this.glcolor2;t[0]=(e>>16&255)/255,t[1]=(e>>8&255)/255,t[2]=(255&e)/255}get backgroundAlpha(){return this.glcolor2[3]}set backgroundAlpha(e){this.glcolor2[3]=e}setThickness(e){return this.thickness=e,this}setScale(e){return this.scale=e,this}setFeather(e){return this.feather=e,this}setColor(e){return this.color=e,this}setBackgroundColor(e){return this.backgroundColor=e,this}setBackgroundAlpha(e){return this.backgroundAlpha=e,this}}const S="FilterP3Gradient";class P extends Phaser.Renderer.WebGL.RenderNodes.BaseFilterShader{static FilterName=S;constructor(e){super(S,e,null,"#pragma phaserTemplate(shaderName)\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n#define highmedp highp\n#else\n#define highmedp mediump\n#endif\nprecision highmedp float;\n\n#define SRGB_TO_LINEAR(c) pow((c), vec3(2.2))\n#define LINEAR_TO_SRGB(c) pow((c), vec3(1.0 / 2.2))\n#define SRGB(r, g, b) SRGB_TO_LINEAR(vec3(float(r), float(g), float(b)) / 255.0)\n\n// Scene buffer\nuniform sampler2D uMainSampler; \nvarying vec2 outTexCoord;\n\n// Effect parameters\nuniform float alpha;\nuniform vec2 positionFrom;\nuniform vec2 positionTo;\nuniform vec3 color1;\nuniform vec3 color2;\nuniform int size;\n\n#pragma phaserTemplate(fragmentHeader)\n\nfloat gradientNoise(in vec2 uv)\n{\n const vec3 magic = vec3(0.06711056, 0.00583715, 52.9829189);\n return fract(magic.z * fract(dot(uv, magic.xy)));\n}\n\nfloat stepped (in float s, in float scale, in int steps)\n{\n return steps > 0 ? floor( s / ((1.0 * scale) / float(steps))) * 1.0 / float(steps - 1) : s;\n}\n\nvoid main ()\n{\n vec2 a = positionFrom;\n vec2 b = positionTo;\n vec2 ba = b - a;\n\n float d = dot(outTexCoord - a, ba) / dot(ba, ba);\n float t = size > 0 ? stepped(d, 1.0, size) : d;\n\n t = smoothstep(0.0, 1.0, clamp(t, 0.0, 1.0));\n\n vec3 color = mix(SRGB(color1.r, color1.g, color1.b), SRGB(color2.r, color2.g, color2.b), t);\n\n color = LINEAR_TO_SRGB(color);\n color += (1.0 / 255.0) * gradientNoise(outTexCoord) - (0.5 / 255.0);\n\n vec4 texture = texture2D(uMainSampler, outTexCoord);\n\n gl_FragColor = vec4(mix(color.rgb, texture.rgb, alpha), 1.0) * texture.a;\n}\n")}setupUniforms(e,t){const r=this.programManager;r.setUniform("alpha",e.alpha),r.setUniform("positionFrom",[e.fromX,e.fromY]),r.setUniform("positionTo",[e.toX,e.toY]),r.setUniform("color1",e.glcolor1),r.setUniform("color2",e.glcolor2),r.setUniform("size",e.size)}}const x=Phaser.Utils.Objects.GetValue;class w extends Phaser.Filters.Controller{static FilterName=S;constructor(e,t){super(e,S),this.alpha=.2,this.fromX=0,this.fromY=0,this.toX=0,this.toY=1,this.glcolor1=[255,0,0],this.glcolor2=[0,255,0],this.size=0,this.resetFromJSON(t)}resetFromJSON(e){return this.setAlpha(x(e,"alpha",.2)),this.setFromPosition(x(e,"fromX",0),x(e,"fromY",0)),this.setToPosition(x(e,"toX",0),x(e,"toY",1)),this.setColor1(x(e,"color1",16711680)),this.setColor2(x(e,"color2",65280)),this.setSize(x(e,"size",0)),this}get color1(){var e=this.glcolor1;return(e[0]<<16)+(e[1]<<8)+(0|e[2])}set color1(e){var t=this.glcolor1;t[0]=e>>16&255,t[1]=e>>8&255,t[2]=255&e}get color2(){var e=this.glcolor2;return(e[0]<<16)+(e[1]<<8)+(0|e[2])}set color2(e){var t=this.glcolor2;t[0]=e>>16&255,t[1]=e>>8&255,t[2]=255&e}setAlpha(e){return this.alpha=e,this}setFromPosition(e,t){return this.fromX=e,this.fromY=t,this}setToPosition(e,t){return this.toX=e,this.toY=t,this}setColor1(e){return this.color1=e,this}setColor2(e){return this.color2=e,this}setSize(e){return this.size=e,this}}const O="FilterP3Wipe";class C extends Phaser.Renderer.WebGL.RenderNodes.BaseFilterShader{static FilterName=O;constructor(e){super(O,e,null,"#pragma phaserTemplate(shaderName)\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n#define highmedp highp\n#else\n#define highmedp mediump\n#endif\nprecision highmedp float;\n\n// Scene buffer\nuniform sampler2D uMainSampler; \nvarying vec2 outTexCoord;\n\n// Effect parameters\nuniform vec4 config;\nuniform bool reveal;\n\n#pragma phaserTemplate(fragmentHeader)\n\nvoid main (void) {\n vec2 uv = outTexCoord;\n\n vec4 color0;\n vec4 color1;\n\n if (reveal) {\n color0 = vec4(0);\n color1 = texture2D(uMainSampler, uv);\n } else {\n color0 = texture2D(uMainSampler, uv);\n color1 = vec4(0);\n }\n\n float distance = config.x;\n float width = config.y;\n float direction = config.z;\n float axis = uv.x;\n\n if (config.w == 1.0) {\n axis = uv.y;\n }\n\n float adjust = mix(width, -width, distance);\n float value = smoothstep(distance - width, distance + width, abs(direction - axis) + adjust);\n gl_FragColor = mix(color1, color0, value);\n}\n")}setupUniforms(e,t){const r=this.programManager;r.setUniform("config",[e.progress,e.wipeWidth,e.direction,e.axis]),r.setUniform("reveal",e.reveal)}}const E=Phaser.Utils.Objects.GetValue,j=Phaser.Math.Clamp;class F extends Phaser.Filters.Controller{static FilterName=O;constructor(e,t){super(e,O),this.progress=0,this.wipeWidth=.1,this.direction=0,this.axis=0,this.reveal=!1,this.resetFromJSON(t)}resetFromJSON(e){this.setProgress(E(e,"progress",0)),this.setWipeWidth(E(e,"wipeWidth",.1)),this.setDirection(E(e,"direction",0)),this.setAxis(E(e,"axis",0));var t=E(e,"reveal",void 0);return void 0===t&&(t=!E(e,"wipe",!0)),t?this.enableRevealMode():this.enableWipeMode(),this}get progress(){return this._progress}set progress(e){this._progress=j(e,0,1)}setProgress(e){return this.progress=e,this}get wipeWidth(){return this._wipeWidth}set wipeWidth(e){this._wipeWidth=j(e,0,1)}setWipeWidth(e){return this.wipeWidth=e,this}setDirection(e){return this.direction=e,this}setAxis(e){return this.axis=e,this}enableWipeMode(){return this.reveal=!1,this}enableRevealMode(){return this.reveal=!0,this}}var k=function(e){return e=c(e),!!f(e,C)&&(a("addP3Wipe",(function(e,t,r){return void 0===e&&(e=.1),void 0===t&&(t=0),void 0===r&&(r=0),this.add(new F(this.camera,{wipeWidth:e,direction:t,axis:r}))})),a("addP3Reveal",(function(e,t,r){return void 0===e&&(e=.1),void 0===t&&(t=0),void 0===r&&(r=0),this.add(new F(this.camera,{wipeWidth:e,direction:t,axis:r,reveal:!0}))})),!0)};const R="FilterP3Shine",N=36e5;var T=function(e,t){var r=t+c(e).loop.delta;return r>=N&&(r-=N),r};class G extends Phaser.Renderer.WebGL.RenderNodes.BaseFilterShader{static FilterName=R;constructor(e){super(R,e,null,"#pragma phaserTemplate(shaderName)\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n#define highmedp highp\n#else\n#define highmedp mediump\n#endif\nprecision highmedp float;\n\n// Scene buffer\nuniform sampler2D uMainSampler; \nvarying vec2 outTexCoord;\n\n// Effect parameters\nuniform vec4 config;\nuniform bool reveal;\nuniform vec2 texSize;\n\n#pragma phaserTemplate(fragmentHeader)\n\nvoid main (void) {\n float speed = config.x;\n float time = config.y;\n float lineWidth = config.z;\n float gradient = config.w;\n\n\tvec2 uv = gl_FragCoord.xy / texSize;\n\n vec4 tex = texture2D(uMainSampler, outTexCoord);\n\n vec4 col1 = vec4(0.3, 0.0, 0.0, 1.0);\n vec4 col2 = vec4(0.85, 0.85, 0.85, 1.0);\n\n uv.x = uv.x - mod(time * speed, 2.0) + 0.5;\n float y = uv.x * gradient;\n\n float s = smoothstep(y - lineWidth, y, uv.y) - smoothstep(y, y + lineWidth, uv.y);\n\n gl_FragColor = (((s * col1) + (s * col2)) * tex);\n\n if (!reveal)\n {\n // Apply the shine effect\n gl_FragColor += tex;\n }\n}\n")}setupUniforms(e,t){const r=this.programManager;e.now=T(this.manager.renderer.game,e.now),r.setUniform("config",[e.speed,e.now,e.lineWidth,e.gradient]),r.setUniform("reveal",e.reveal),r.setUniform("texSize",[t.width,t.height])}}const W=Phaser.Utils.Objects.GetValue;class B extends Phaser.Filters.Controller{static FilterName=R;constructor(e,t){super(e,R),this.now=0,this.speed=.5,this.lineWidth=.5,this.gradient=3,this.reveal=!1,this.resetFromJSON(t)}resetFromJSON(e){return this.setSpeed(W(e,"speed",.5)),this.setLineWidth(W(e,"lineWidth",.5)),this.setGradient(W(e,"gradient",3)),this.setReveal(W(e,"reveal",!1)),this}setSpeed(e){return this.speed=e,this}setLineWidth(e){return this.lineWidth=e,this}setGradient(e){return this.gradient=e,this}setReveal(e){return this.reveal=e,this}}const X="FilterP3Vignette";class Y extends Phaser.Renderer.WebGL.RenderNodes.BaseFilterShader{static FilterName=X;constructor(e){super(X,e,null,"#pragma phaserTemplate(shaderName)\n\n#ifdef GL_FRAGMENT_PRECISION_HIGH\n#define highmedp highp\n#else\n#define highmedp mediump\n#endif\nprecision highmedp float;\n\n// Scene buffer\nuniform sampler2D uMainSampler; \nvarying vec2 outTexCoord;\n\n// Effect parameters\nuniform vec2 config;\nuniform vec2 position;\n\n#pragma phaserTemplate(fragmentHeader)\n\nvoid main (void) {\n float radius = config.x;\n float strength = config.y;\n\n vec4 col = vec4(1.0);\n\n float d = length(outTexCoord - position);\n\n if (d <= radius)\n {\n float g = d / radius;\n g = sin(g * 3.14 * strength);\n \tcol = vec4(g * g * g);\n }\n\n vec4 texture = texture2D(uMainSampler, outTexCoord);\n\n gl_FragColor = texture * (1.0 - col);\n}\n")}setupUniforms(e,t){const r=this.programManager;r.setUniform("config",[e.radius,e.strength]),r.setUniform("position",[e.x,e.y])}}const U=Phaser.Utils.Objects.GetValue;class M extends Phaser.Filters.Controller{static FilterName=X;constructor(e,t){super(e,X),this.x=.5,this.y=.5,this.radius=.5,this.strength=.5,this.resetFromJSON(t)}resetFromJSON(e){return this.setPosition(U(e,"x",.5),U(e,"y",.5)),this.setRadius(U(e,"radius",.5)),this.setStrength(U(e,"strength",.5)),this}setPosition(e,t){return this.x=e,this.y=t,this}setRadius(e){return this.radius=e,this}setStrength(e){return this.strength=e,this}}const z={barrel:function(n){if(e(n,"barrel"))return n;var i,o=t(n);return Object.defineProperty(n,"barrel",{get:function(){return i},set:function(e){i!==e&&(null===(i=e)||!1===i?n._barrelEffect&&(o.remove(n._barrelEffect),n._barrelEffect=void 0):(n._barrelEffect||(n._barrelEffect=o.addBarrel()),n._barrelEffect.amount=i))}}),n.barrel=null,r(n,"barrel"),n},blackWhite:function(e){return n(e,"blackWhite"),e},blocky:function(n){if(e(n,"blockySize"))return n;var i,o=t(n),s=0,l=0;return Object.defineProperty(n,"blockySize",{get:function(){return i},set:function(e){i!==e&&(null===(i=e)||!1===i?n._blockyEffect&&(o.remove(n._blockyEffect),n._blockyEffect=void 0):(n._blockyEffect||(n._blockyEffect=o.addBlocky({size:i,offset:{x:s,y:l}})),n._blockyEffect.size.x=i,n._blockyEffect.size.y=i))}}),Object.defineProperty(n,"blockyOffsetX",{get:function(){return s},set:function(e){s!==e&&(s=e,n._blockyEffect&&(n._blockyEffect.offset.x=s))}}),Object.defineProperty(n,"blockyOffsetY",{get:function(){return l},set:function(e){l!==e&&(l=e,n._blockyEffect&&(n._blockyEffect.offset.y=l))}}),r(n,"blockySize"),n},bloom:function(n){if(e(n,"bloomColor"))return n;var i;i=c(i=n),f(i,d)&&a("addP3Bloom",(function(e,t,r,n,i,o){return void 0===e&&(e=16777215),void 0===t&&(t=1),void 0===r&&(r=1),void 0===n&&(n=1),void 0===i&&(i=1),void 0===o&&(o=4),this.add(new m(this.camera,{color:e,offsetX:t,offsetY:r,blurStrength:n,strength:i,steps:o}))}));var o,s=t(n),l=1,u=1,h=1,g=1,p=4;return Object.defineProperty(n,"bloomColor",{get:function(){return o},set:function(e){o!==e&&(null===(o=e)||!1===o?n._bloom&&(s.remove(n._bloom),n._bloom=void 0):(n._bloom||(n._bloom=s.addBloom(o,l,u,h,g,p)),n._bloom.color=o))}}),Object.defineProperty(n,"bloomOffsetX",{get:function(){return l},set:function(e){l!==e&&(l=e,n._bloom&&(n._bloom.offsetX=l))}}),Object.defineProperty(n,"bloomOffsetY",{get:function(){return u},set:function(e){u!==e&&(u=e,n._bloom&&(n._bloom.offsetY=u))}}),Object.defineProperty(n,"bloomBlurStrength",{get:function(){return h},set:function(e){h!==e&&(h=e,n._bloom&&(n._bloom.blurStrength=h))}}),Object.defineProperty(n,"bloomStrength",{get:function(){return g},set:function(e){g!==e&&(g=e,n._bloom&&(n._bloom.strength=g))}}),Object.defineProperty(n,"bloomSteps",{get:function(){return p},set:function(e){p!==e&&(p=e,n._bloom&&(n._bloom.steps=p))}}),n.bloomColor=null,r(n,"bloomColor"),n},blur:function(n){if(e(n,"blurColor"))return n;var i,o=t(n),s=0,l=1,c=1,f=1,a=4;return Object.defineProperty(n,"blurColor",{get:function(){return i},set:function(e){i!==e&&(null===(i=e)||!1===i?n._blur&&(o.remove(n._blur),n._blur=void 0):(n._blur||(n._blur=o.addBlur(s,l,c,f,i,a)),n._blur.color=i))}}),Object.defineProperty(n,"blurQuality",{get:function(){return s},set:function(e){s!==e&&(s=e,n._blur&&(n._blur.quality=s))}}),Object.defineProperty(n,"blurX",{get:function(){return l},set:function(e){l!==e&&(l=e,n._blur&&(n._blur.x=l))}}),Object.defineProperty(n,"blurY",{get:function(){return c},set:function(e){c!==e&&(c=e,n._blur&&(n._blur.y=c))}}),Object.defineProperty(n,"blurStrength",{get:function(){return f},set:function(e){f!==e&&(f=e,n._blur&&(n._blur.strength=f))}}),Object.defineProperty(n,"blurSteps",{get:function(){return a},set:function(e){a!==e&&(a=e,n._blur&&(n._blur.steps=a))}}),n.blurColor=null,r(n,"blurColor"),n},bokeh:function(n){if(e(n,"bokehRadius"))return n;var i,o=t(n),s=1,l=.2;return Object.defineProperty(n,"bokehRadius",{get:function(){return i},set:function(e){i!==e&&(null===(i=e)||!1===i?n._bokeh&&(o.remove(n._bokeh),n._bokeh=void 0):(n._bokeh||(n._bokeh=o.addBokeh(i,s,l)),n._bokeh.radius=i))}}),Object.defineProperty(n,"bokehAmount",{get:function(){return s},set:function(e){s!==e&&(s=e,n._bokeh&&(n._bokeh.amount=s))}}),Object.defineProperty(n,"bokehContrast",{get:function(){return l},set:function(e){l!==e&&(l=e,n._bokeh&&(n._bokeh.contrast=l))}}),n.bokehRadius=null,r(n,"bokehRadius"),n},brightness:function(e){return n(e,"brightness",1),e},brown:function(e){return n(e,"brown"),e},circle:function(n){if(e(n,"circleColor"))return n;var i;i=c(i=n),f(i,_)&&(a("addP3Bloom",(function(e,t,r,n,i,o){return void 0===e&&(e=16777215),void 0===t&&(t=1),void 0===r&&(r=1),void 0===n&&(n=1),void 0===i&&(i=1),void 0===o&&(o=4),this.add(new BloomController(this.camera,{color:e,offsetX:t,offsetY:r,blurStrength:n,strength:i,steps:o}))})),a("addP3Circle",(function(e,t,r,n,i){return void 0===e&&(e=8),void 0===t&&(t=16724914),void 0===r&&(r=16711680),void 0===n&&(n=1),void 0===i&&(i=.005),this.add(new y(this.camera,{thickness:e,color:t,backgroundColor:r,scale:n,feather:i}))})));var o,s=t(n),l=8,u=0,d=.4,h=1,g=.005;return Object.defineProperty(n,"circleColor",{get:function(){return o},set:function(e){o!==e&&(null===(o=e)||!1===o?n._circle&&(s.remove(n._circle),n._circle=void 0):(n._circle||(n._circle=s.addP3Circle(l,o,u,h,g),n.circleBackgroundAlpha=d),n._circle.color=o))}}),Object.defineProperty(n,"circleThickness",{get:function(){return l},set:function(e){l!==e&&(l=e,n._circle&&(n._circle.thickness=l))}}),Object.defineProperty(n,"circleBackgroundColor",{get:function(){return u},set:function(e){u!==e&&(u=e,n._circle&&(n._circle.backgroundColor=u))}}),Object.defineProperty(n,"circleBackgroundAlpha",{get:function(){return d},set:function(e){d!==e&&(d=e,n._circle&&(n._circle.glcolor2[3]=d))}}),Object.defineProperty(n,"circleScale",{get:function(){return h},set:function(e){h!==e&&(h=e,n._circle&&(n._circle.scale=h))}}),Object.defineProperty(n,"circleFeather",{get:function(){return g},set:function(e){g!==e&&(g=e,n._circle&&(n._circle.feather=g))}}),n.circleColor=null,r(n,"circleColor"),n},contrast:function(e){return n(e,"contrast",1),e},desaturate:function(e){return n(e,"desaturate",1),e},desaturateLuminance:function(e){return n(e,"desaturateLuminance"),e},displacement:function(n){if(e(n,"displacementKey"))return n;var i,o=t(n),s=.005,l=.005;return Object.defineProperty(n,"displacementKey",{get:function(){return i},set:function(e){i!==e&&(null===(i=e)||!1===i?n._displacement&&(o.remove(n._displacement),n._displacement=void 0):(n._displacement||(n._displacement=o.addDisplacement(i,s,l)),n._displacement.setTexture(i)))}}),Object.defineProperty(n,"displacementX",{get:function(){return s},set:function(e){s!==e&&(s=e,n._displacement&&(n._displacement.x=s))}}),Object.defineProperty(n,"displacementY",{get:function(){return l},set:function(e){l!==e&&(l=e,n._displacement&&(n._displacement.y=l))}}),n.displacementKey=null,r(n,"displacementKey"),n},glow:function(n){if(e(n,"glowColor"))return n;var i,o=t(n),s=4,l=0;return Object.defineProperty(n,"glowColor",{get:function(){return i},set:function(e){i!==e&&(null===(i=e)||!1===i?n._glow&&(o.remove(n._glow),n._glow=void 0):(n._glow||(n._glow=o.addGlow(i,s,l)),n._glow.color=i))}}),Object.defineProperty(n,"glowOuterStrength",{get:function(){return s},set:function(e){s!==e&&(s=e,n._glow&&(n._glow.outerStrength=s))}}),Object.defineProperty(n,"glowInnerStrength",{get:function(){return l},set:function(e){l!==e&&(l=e,n._glow&&(n._glow.innerStrength=l))}}),n.glowColor=null,r(n,"glowColor"),n},gradient:function(n){if(e(n,"gradientColor"))return n;var i;i=c(i=n),f(i,P)&&a("addP3Gradient",(function(e,t,r,n,i,o,s,l){return void 0===e&&(e=16711680),void 0===t&&(t=65280),void 0===r&&(r=.2),void 0===n&&(n=0),void 0===i&&(i=0),void 0===o&&(o=0),void 0===s&&(s=1),void 0===l&&(l=0),this.add(new w(this.camera,{color1:e,color2:t,alpha:r,fromX:n,fromY:i,toX:o,toY:s,size:l}))}));var o,s,l=t(n),u=.5,d=0,h=0,g=0,p=1,m=0;return Object.defineProperty(n,"gradientColor",{get:function(){return[o,s]},set:function(e){var t,r;null===e||!1===e?(t=null,r=null):(t=e[0],r=e[1]),o===t&&s===r||(s=r,null===(o=t)||!1===o?n._gradient&&(l.remove(n._gradient),n._gradient=void 0):(n._gradient||(n._gradient=l.addP3Gradient(o,s,u,d,h,g,p,m)),n._gradient.color1=o,n._gradient.color2=s))}}),Object.defineProperty(n,"gradientColor1",{get:function(){return o},set:function(e){null!==e&&!1!==e?o!==e&&(o=e,n._gradient&&(n._gradient.color1=o)):n.gradientColor=e}}),Object.defineProperty(n,"gradientColor2",{get:function(){return s},set:function(e){null!==e&&!1!==e?s!==e&&(s=e,n._gradient&&(n._gradient.color2=s)):n.gradientColor=e}}),Object.defineProperty(n,"gradientAlpha",{get:function(){return u},set:function(e){u!==e&&(u=e,n._gradient&&(n._gradient.alpha=u))}}),Object.defineProperty(n,"gradientFromX",{get:function(){return d},set:function(e){d!==e&&(d=e,n._gradient&&(n._gradient.fromX=d))}}),Object.defineProperty(n,"gradientFromY",{get:function(){return h},set:function(e){h!==e&&(h=e,n._gradient&&(n._gradient.fromY=h))}}),Object.defineProperty(n,"gradientToX",{get:function(){return g},set:function(e){g!==e&&(g=e,n._gradient&&(n._gradient.toX=g))}}),Object.defineProperty(n,"gradientToY",{get:function(){return p},set:function(e){p!==e&&(p=e,n._gradient&&(n._gradient.toY=p))}}),Object.defineProperty(n,"gradientSize",{get:function(){return m},set:function(e){m!==e&&(m=e,n._gradient&&(n._gradient.size=m))}}),n.gradientColor=null,r(n,"gradientColor"),n},grayscale:function(e){return n(e,"grayscale",1),e},hue:function(e){return n(e,"hue",1),e},kodachrome:function(e){return n(e,"kodachrome"),e},lsd:function(e){return n(e,"lsd"),e},negative:function(e){return n(e,"negative"),e},pixelate:function(n){if(e(n,"pixelate"))return n;var i,o=t(n);return Object.defineProperty(n,"pixelate",{get:function(){return i},set:function(e){i!==e&&(null===(i=e)||!1===i?n._pixelateEffect&&(o.remove(n._pixelateEffect),n._pixelateEffect=void 0):(n._pixelateEffect||(n._pixelateEffect=o.addPixelate()),n._pixelateEffect.amount=i))}}),n.pixelate=null,r(n,"pixelate"),n},polaroid:function(e){return n(e,"polaroid"),e},reveal:function(n){if(e(n,"revealLeft"))return n;k(n);var i,o,s,l,c=t(n),f=.1,a=function(){i=null,o=null,s=null,l=null},u=function(e){e._revealEffect&&(c.remove(e._revealEffect),e._revealEffect=void 0)};return Object.defineProperty(n,"revealLeft",{get:function(){return i},set:function(e){i!==e&&(a(),null===(i=e)||!1===i?u(n):(n._revealEffect||(n._revealEffect=c.addP3Reveal(f,0,0)),n._revealEffect.direction=1,n._revealEffect.axis=0,n._revealEffect.progress=i))}}),Object.defineProperty(n,"revealRight",{get:function(){return o},set:function(e){o!==e&&(a(),null===(o=e)||!1===o?u(n):(n._revealEffect||(n._revealEffect=c.addP3Reveal(f,0,0)),n._revealEffect.direction=0,n._revealEffect.axis=0,n._revealEffect.progress=o))}}),Object.defineProperty(n,"revealUp",{get:function(){return s},set:function(e){s!==e&&(a(),null===(s=e)||!1===s?u(n):(n._revealEffect||(n._revealEffect=c.addP3Reveal(f,0,0)),n._revealEffect.direction=1,n._revealEffect.axis=1,n._revealEffect.progress=s))}}),Object.defineProperty(n,"revealDown",{get:function(){return l},set:function(e){l!==e&&(a(),null===(l=e)||!1===l?u(n):(n._revealEffect||(n._revealEffect=c.addP3Reveal(f,0,0)),n._revealEffect.direction=0,n._revealEffect.axis=1,n._revealEffect.progress=l))}}),Object.defineProperty(n,"revealWidth",{get:function(){return f},set:function(e){f!==e&&(f=e,n._revealEffect&&(n._revealEffect.wipeWidth=f))}}),n.revealLeft=null,r(n,"revealLeft"),r(n,"revealRight"),r(n,"revealUp"),r(n,"revealDown"),n},saturate:function(e){return n(e,"saturate",1),e},sepia:function(e){return n(e,"sepia"),e},shadow:function(n){if(e(n,"shadowColor"))return n;var i,o=t(n),s=0,l=0,c=.1,f=1,a=6,u=1;return Object.defineProperty(n,"shadowColor",{get:function(){return i},set:function(e){i!==e&&(null===(i=e)||!1===i?n._shadow&&(o.remove(n._shadow),n._shadow=void 0):(n._shadow||(n._shadow=o.addShadow(s,l,c,f,i,a,u)),n._shadow.color=i))}}),Object.defineProperty(n,"shadowX",{get:function(){return s},set:function(e){s!==e&&(s=e,n._shadow&&(n._shadow.x=s))}}),Object.defineProperty(n,"shadowY",{get:function(){return l},set:function(e){l!==e&&(l=e,n._shadow&&(n._shadow.y=l))}}),Object.defineProperty(n,"decay",{get:function(){return c},set:function(e){c!==e&&(c=e,n._shadow&&(n._shadow.decay=c))}}),Object.defineProperty(n,"shadowPower",{get:function(){return f},set:function(e){f!==e&&(f=e,n._shadow&&(n._shadow.power=f))}}),Object.defineProperty(n,"shadowSamples",{get:function(){return a},set:function(e){a!==e&&(a=e,n._shadow&&(n._shadow.samples=a))}}),Object.defineProperty(n,"shadowIntensity",{get:function(){return u},set:function(e){u!==e&&(u=e,n._shadow&&(n._shadow.intensity=u))}}),n.shadowColor=null,r(n,"shadowColor"),n},shiftToBGR:function(e){return n(e,"shiftToBGR"),e},shine:function(n){if(e(n,"shineSpeed"))return n;var i;i=c(i=n),f(i,G)&&a("addP3Shine",(function(e,t,r,n){return void 0===e&&(e=.5),void 0===t&&(t=.5),void 0===r&&(r=3),void 0===n&&(n=!1),this.add(new B(this.camera,{speed:e,lineWidth:t,gradient:r,reveal:n}))}));var o,s=t(n),l=.5,u=3;return Object.defineProperty(n,"shineSpeed",{get:function(){return o},set:function(e){o!==e&&(null===(o=e)||!1===o?n._shine&&(s.remove(n._shine),n._shine=void 0):(n._shine||(n._shine=s.addP3Shine(o,l,u)),n._shine.speed=o))}}),Object.defineProperty(n,"shineLineWidth",{get:function(){return l},set:function(e){l!==e&&(l=e,n._shine&&(n._shine.lineWidth=l))}}),Object.defineProperty(n,"shineGradient",{get:function(){return u},set:function(e){u!==e&&(u=e,n._shine&&(n._shine.gradient=u))}}),n.shineSpeed=null,r(n,"shineSpeed"),n},technicolor:function(e){return n(e,"technicolor"),e},tiltShift:function(n){if(e(n,"tiltShiftRadius"))return n;var i,o=t(n),s=1,l=.2,c=1,f=1,a=1;return Object.defineProperty(n,"tiltShiftRadius",{get:function(){return i},set:function(e){i!==e&&(null===(i=e)||!1===i?n._tiltShift&&(o.remove(n._tiltShift),n._tiltShift=void 0):(n._tiltShift||(n._tiltShift=o.addTiltShift(i,s,l,c,f,a)),n._tiltShift.radius=i))}}),Object.defineProperty(n,"tiltShiftAmount",{get:function(){return s},set:function(e){s!==e&&(s=e,n._tiltShift&&(n._tiltShift.amount=s))}}),Object.defineProperty(n,"tiltShiftContrast",{get:function(){return l},set:function(e){l!==e&&(l=e,n._tiltShift&&(n._tiltShift.contrast=l))}}),Object.defineProperty(n,"tiltShiftBlurX",{get:function(){return c},set:function(e){c!==e&&(c=e,n._tiltShift&&(n._tiltShift.blurX=c))}}),Object.defineProperty(n,"tiltShiftBlurY",{get:function(){return f},set:function(e){f!==e&&(f=e,n._tiltShift&&(n._tiltShift.blurY=f))}}),Object.defineProperty(n,"tiltShiftStrength",{get:function(){return a},set:function(e){a!==e&&(a=e,n._tiltShift&&(n._tiltShift.strength=a))}}),n.tiltShiftRadius=null,r(n,"tiltShiftRadius"),n},vignette:function(n){if(e(n,"vignetteRadius"))return n;var i;i=c(i=n),f(i,Y)&&a("addP3Vignette",(function(e,t,r,n){return void 0===e&&(e=.5),void 0===t&&(t=.5),void 0===r&&(r=.5),void 0===n&&(n=.5),this.add(new M(this.camera,{x:e,y:t,radius:r,strength:n}))}));var o,s=t(n),l=.5,u=.5,d=.5;return Object.defineProperty(n,"vignetteRadius",{get:function(){return o},set:function(e){o!==e&&(null===(o=e)||!1===o?n._vignette&&(s.remove(n._vignette),n._vignette=void 0):(n._vignette||(n._vignette=s.addP3Vignette(l,u,o,d)),n._vignette.radius=o))}}),Object.defineProperty(n,"vignetteX",{get:function(){return l},set:function(e){l!==e&&(l=e,n._vignette&&(n._vignette.x=l))}}),Object.defineProperty(n,"vignetteY",{get:function(){return u},set:function(e){u!==e&&(u=e,n._vignette&&(n._vignette.y=u))}}),Object.defineProperty(n,"vignetteStrength",{get:function(){return d},set:function(e){d!==e&&(d=e,n._vignette&&(n._vignette.strength=d))}}),n.vignetteRadius=null,r(n,"vignetteRadius"),n},vintagePinhole:function(e){return n(e,"vintagePinhole"),e},wipe:function(n){if(e(n,"wipeLeft"))return n;k(n);var i,o,s,l,c=t(n),f=.1,a=function(){i=null,o=null,s=null,l=null},u=function(e){e._wipeEffect&&(c.remove(e._wipeEffect),e._wipeEffect=void 0)};return Object.defineProperty(n,"wipeLeft",{get:function(){return i},set:function(e){i!==e&&(a(),null===(i=e)||!1===i?u(n):(n._wipeEffect||(n._wipeEffect=c.addP3Wipe(f,0,0)),n._wipeEffect.direction=1,n._wipeEffect.axis=0,n._wipeEffect.progress=i))}}),Object.defineProperty(n,"wipeRight",{get:function(){return o},set:function(e){o!==e&&(a(),null===(o=e)||!1===o?u(n):(n._wipeEffect||(n._wipeEffect=c.addP3Wipe(f,0,0)),n._wipeEffect.direction=0,n._wipeEffect.axis=0,n._wipeEffect.progress=o))}}),Object.defineProperty(n,"wipeUp",{get:function(){return s},set:function(e){s!==e&&(a(),null===(s=e)||!1===s?u(n):(n._wipeEffect||(n._wipeEffect=c.addP3Wipe(f,0,0)),n._wipeEffect.direction=1,n._wipeEffect.axis=1,n._wipeEffect.progress=s))}}),Object.defineProperty(n,"wipeDown",{get:function(){return l},set:function(e){l!==e&&(a(),null===(l=e)||!1===l?u(n):(n._wipeEffect||(n._wipeEffect=c.addP3Wipe(f,0,0)),n._wipeEffect.direction=0,n._wipeEffect.axis=1,n._wipeEffect.progress=l))}}),Object.defineProperty(n,"wipeWidth",{get:function(){return f},set:function(e){f!==e&&(f=e,n._wipeEffect&&(n._wipeEffect.wipeWidth=f))}}),n.wipeLeft=null,r(n,"wipeLeft"),r(n,"wipeRight"),r(n,"wipeUp"),r(n,"wipeDown"),n}};class A extends Phaser.Plugins.BasePlugin{constructor(e){super(e)}start(){this.game.events.on("destroy",this.destroy,this)}add(e,t){return function(e,t){if(void 0===t)t=!0;else if("string"==typeof t)t={config:!0};else if(Array.isArray(t))for(var r=t,n=(t={},0),i=r.length;n<i;n++)t[r[n]]=!0;if(!0===t)for(var o in z)z[o](e);else for(var o in t)t[o]&&z[o]&&z[o](e);return e}(e,t)}}return A},"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).rexeffectpropertiesplugin=t();