phaser4-rex-plugins
Version:
2 lines (1 loc) • 5.55 kB
JavaScript
var t,e;t=void 0,e=function(){var t={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 e=Phaser.Scene;var s=function(t){return t instanceof e};const i=Phaser.Game;var n=function(t){return t instanceof i};const r=Phaser.Utils.Objects.GetValue;class h{constructor(t,e){this.setParent(t),this.isShutdown=!1,this.setEventEmitter(r(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:s(e)?e:e.scene&&s(e.scene)?e.scene:e.parent&&e.parent.scene&&s(e.parent.scene)?e.parent.scene:null,this.game=function(t){return null==t||"object"!=typeof t?null:n(t)?t:n(t.game)?t.game:s(t)?t.sys.game:s(t.scene)?t.scene.sys.game:void 0}(t),this}}Object.assign(h.prototype,t);const a=Phaser.Math.Linear,o=Phaser.Math.Percent;var v={setValue(t,e,s){return null==t||(void 0!==e&&(t=o(t,e,s)),this.value=t),this},addValue(t,e,s){return void 0!==e&&(t=o(t,e,s)),this.value+=t,this},getValue(t,e){var s=this.value;return void 0!==t&&void 0!==e&&(s=a(t,e,s)),s}};const u=Phaser.Utils.Objects.GetValue,l=Phaser.Math.Angle.BetweenPoints,m=Phaser.Math.Distance.Between,d=Phaser.Math.RotateAroundDistance,p=Phaser.Math.Clamp,E=Phaser.Math.Linear,y=Phaser.Math.Percent;class c extends h{constructor(t,e){super(t,e),this._enable=void 0,this._value=void 0,this.endPoints=[{x:0,y:0},{x:0,y:0}];var s=u(e,"valuechangeCallback",null);if(null!==s){var i=u(e,"valuechangeCallbackScope",void 0);this.on("valuechange",s,i)}this.parent.setInteractive(u(e,"inputConfig",void 0)),this.resetFromJSON(e),this.boot()}resetFromJSON(t){this.setValue(u(t,"value",0));var e=u(t,"endPoints",void 0);return void 0!==e&&this.setEndPoints(e),this.setEnable(u(t,"enable",!0)),this}toJSON(){return{value:this.value,endPoints:this.endPoints,enable:this.enable}}boot(){this.parent.on("drag",this.onDragging,this)}get enable(){return this._enable}set enable(t){if(this._enable!==t)return this._enable=t,this.scene.input.setDraggable(this.parent,t),this}setEnable(t){return void 0===t&&(t=!0),this.enable=t,this}toggleEnable(){return this.setEnable(!this.enable),this}setEndPoints(t,e,s,i){var n=this.endPoints;return"number"==typeof t?(n[0].x=t,n[0].y=e,n[1].x=s,n[1].y=i):Array.isArray(t)?(n[0]=t[0],n[1]=t[1]):(n[0]=t,n[1]=e),this.axisRotation=l(n[0],n[1]),this.updatePos(),this}get value(){return this._value}set value(t){if((t=p(t,0,1))!==this._value){var e=this._value;this._value=t,this.updatePos(this._value),this.emit("valuechange",this._value,e)}}get isDragging(){return this.parent.input.dragState>0}onDragging(t,e,s){var i,n=this.endPoints;if(n[0].y===n[1].y){var r=Math.min(n[0].x,n[1].x),h=Math.max(n[0].x,n[1].x);i=y(e,r,h)}else if(n[0].x===n[1].x)r=Math.min(n[0].y,n[1].y),h=Math.max(n[0].y,n[1].y),i=y(s,r,h);else{var a,o=this.parent,v={x:e,y:s};a=m(v.x,v.y,o.x,o.y),(v=d(v,o.x,o.y,-this.axisRotation,a)).y=o.y,a=m(v.x,v.y,o.x,o.y),v=d(v,o.x,o.y,this.axisRotation,a),r=Math.min(n[0].x,n[1].x),h=Math.max(n[0].x,n[1].x),i=y(v.x,r,h)}this.value=i}updatePos(){var t=this.parent,e=this.endPoints;return t.x=E(e[0].x,e[1].x,this._value),t.y=E(e[0].y,e[1].y,this._value),this}}Object.assign(c.prototype,v);class _ extends Phaser.Plugins.BasePlugin{constructor(t){super(t)}start(){this.game.events.on("destroy",this.destroy,this)}add(t,e){return new c(t,e)}}return _},"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).rexsliderplugin=e();