@animech-public/playcanvas
Version:
PlayCanvas WebGL game engine
2 lines (1 loc) • 1.75 kB
JavaScript
import{EventHandler as t}from"../../core/event-handler.js";import{SCRIPT_INITIALIZE as i,SCRIPT_POST_INITIALIZE as e}from"./constants.js";class s extends t{constructor(t){super(),this.app=void 0,this.entity=void 0,this._enabled=void 0,this._enabledOld=void 0,this._initialized=void 0,this._postInitialized=void 0,this.__destroyed=void 0,this.__scriptType=void 0,this.__executionOrder=void 0,this.initScript(t)}set enabled(t){this._enabled=!!t,this.enabled!==this._enabledOld&&(this._enabledOld=this.enabled,this.fire(this.enabled?"enable":"disable"),this.fire("state",this.enabled),!this._initialized&&this.enabled&&(this._initialized=!0,this.fire("preInitialize"),this.initialize&&this.entity.script._scriptMethod(this,i)),this._initialized&&!this._postInitialized&&this.enabled&&!this.entity.script._beingEnabled&&(this._postInitialized=!0,this.postInitialize&&this.entity.script._scriptMethod(this,e)))}get enabled(){return this._enabled&&!this._destroyed&&this.entity.script.enabled&&this.entity.enabled}initScript(t){const i=this.constructor;this.app=t.app,this.entity=t.entity,this._enabled="boolean"!=typeof t.enabled||t.enabled,this._enabledOld=this.enabled,this.__destroyed=!1,this.__scriptType=i,this.__executionOrder=-1}static get scriptName(){return this.__name}}s.EVENT_ENABLE="enable",s.EVENT_DISABLE="disable",s.EVENT_STATE="state",s.EVENT_DESTROY="destroy",s.EVENT_ATTR="attr",s.EVENT_ERROR="error",s.__name=null,s.__getScriptName=d;const n=/^\s*function(?:\s|\s*\/\*.*\*\/\s*)+([^(\s\/]*)\s*/;function d(t){if("function"!=typeof t)return;if("name"in Function.prototype)return t.name;if(t===Function||t===Function.prototype.constructor)return"Function";const i=`${t}`.match(n);return i?i[1]:void 0}export{s as Script,d as getScriptName};