@animech-public/playcanvas
Version:
PlayCanvas WebGL game engine
2 lines (1 loc) • 935 B
JavaScript
import{EventHandler as t}from"../../core/event-handler.js";class s extends t{constructor(t,s){super(),this.system=void 0,this.entity=void 0,this.system=t,this.entity=s,this.system.schema&&!this._accessorsBuilt&&this.buildAccessors(this.system.schema),this.on("set",(function(t,s,e){this.fire(`set_${t}`,t,s,e)})),this.on("set_enabled",this.onSetEnabled,this)}static _buildAccessors(t,s){s.forEach((s=>{const e="object"==typeof s?s.name:s;Object.defineProperty(t,e,{get:function(){return this.data[e]},set:function(t){const s=this.data,i=s[e];s[e]=t,this.fire("set",e,i,t)},configurable:!0})})),t._accessorsBuilt=!0}buildAccessors(t){s._buildAccessors(this,t)}onSetEnabled(t,s,e){s!==e&&this.entity.enabled&&(e?this.onEnable():this.onDisable())}onEnable(){}onDisable(){}onPostStateChange(){}get data(){const t=this.system.store[this.entity.getGuid()];return t?t.data:null}set enabled(t){}get enabled(){return!0}}export{s as Component};