var gdjs;(function(s){const o=new s.Logger("CustomRuntimeObject");class h extends s.RuntimeObject{constructor(t,e,i){super(t,e,i);this._isUntransformedHitBoxesDirty=!0;this._untransformedHitBoxes=[];this._unrotatedAABB={min:[0,0],max:[0,0]};this._innerArea=null;this._isInnerAreaFollowingParentSize=!1;this._scaleX=1;this._scaleY=1;this._flippedX=!1;this._flippedY=!1;this.opacity=255;this._customCenter=null;this._localTransformation=new s.AffineTransformation;this._localInverseTransformation=new s.AffineTransformation;this._isLocalTransformationDirty=!0;this._type=e.type,this._instanceContainer=new s.CustomRuntimeObjectInstanceContainer(t,this),this._renderer=this._createRender(),this._initializeFromObjectData(e)}_initializeFromObjectData(t){const e=this._runtimeScene.getGame().getEventsBasedObjectData(t.type);if(!e){o.error(`A CustomRuntimeObject was initialized (or re-initialized) from object data referring to an non existing events based object data with type "${t.type}".`);return}const i=this.getRuntimeScene().getGame().getEventsBasedObjectVariantData(t.type,t.variant);if(!i){o.error(`Unknown variant "${t.variant}" for object "${t.type}".`);return}this._isInnerAreaFollowingParentSize=e.isInnerAreaFollowingParentSize,i.instances.length>0&&(this._innerArea||(this._innerArea={min:[0,0,0],max:[0,0,0]}),this._innerArea.min[0]=i.areaMinX,this._innerArea.min[1]=i.areaMinY,this._innerArea.min[2]=i.areaMinZ,this._innerArea.max[0]=i.areaMaxX,this._innerArea.max[1]=i.areaMaxY,this._innerArea.max[2]=i.areaMaxZ),this._instanceContainer.loadFrom(t,i)}reinitialize(t){super.reinitialize(t),this._reinitializeContentFromObjectData(t),this.onCreated()}_reinitializeContentFromObjectData(t){this._reinitializeRenderer(),this._instanceContainer._unloadContent(),this._initializeFromObjectData(t)}updateFromObjectData(t,e){const i=this.getAnimator();if(i&&i.updateFromObjectData(t.animatable||[],e.animatable||[]),t.variant!==e.variant){const n=this.getWidth(),r=this.getHeight(),a=t.isInnerAreaFollowingParentSize&&this._instanceContainer._initialInnerArea&&this._innerArea&&(this._instanceContainer._initialInnerArea.min[0]!==this._innerArea.min[0]||this._instanceContainer._initialInnerArea.min[1]!==this._innerArea.min[1]||this._instanceContainer._initialInnerArea.max[0]!==this._innerArea.max[0]||this._instanceContainer._initialInnerArea.max[1]!==this._innerArea.max[1]);this._reinitializeContentFromObjectData(e),this.onCreated(),a&&(this.setWidth(n),this.setHeight(r))}return!0}getNetworkSyncData(t){const e=this.getAnimator(),i={...super.getNetworkSyncData(t),ifx:this.isFlippedX(),ify:this.isFlippedY(),sx:this._scaleX,sy:this._scaleY,op:this.opacity};return e&&(i.anim=e.getNetworkSyncData()),this._customCenter&&(i.cc=this._customCenter),i}updateFromNetworkSyncData(t,e){if(super.updateFromNetworkSyncData(t,e),t.ifx!==void 0&&this.flipX(t.ifx),t.ify!==void 0&&this.flipY(t.ify),t.sx!==void 0&&this.setScaleX(Math.abs(t.sx)),t.sy!==void 0&&this.setScaleY(Math.abs(t.sy)),t.op!==void 0&&this.setOpacity(t.op),t.anim){const i=this.getAnimator();i&&i.updateFromNetworkSyncData(t.anim)}t.cc&&this.setRotationCenter(t.cc[0],t.cc[1]),(t.ifx!==void 0||t.ify!==void 0||t.sx!==void 0||t.sy!==void 0||t.anim!==void 0||t.cc!==void 0)&&this.onChildrenLocationChanged()}extraInitializationFromInitialInstance(t){const e=this.getAnimator();if(t.numberProperties)for(let i=0,n=t.numberProperties.length;i=this.hitBoxes.length&&this.hitBoxes.push(new s.Polygon);for(let i=0;i=this.hitBoxes[e].vertices.length&&this.hitBoxes[e].vertices.push([0,0]),t.transform(this._untransformedHitBoxes[e].vertices[i],this.hitBoxes[e].vertices[i]);this.hitBoxes[e].vertices.length=this._untransformedHitBoxes[e].vertices.length}}_updateUntransformedHitBoxes(){this._isUntransformedHitBoxesDirty=!1,this._untransformedHitBoxes.length=0;let t=Number.MAX_VALUE,e=Number.MAX_VALUE,i=-Number.MAX_VALUE,n=-Number.MAX_VALUE;for(const r of this._instanceContainer.getAdhocListOfAllInstances()){if(!r.isIncludedInParentCollisionMask())continue;Array.prototype.push.apply(this._untransformedHitBoxes,r.getHitBoxes());const a=r.getAABB();t=Math.min(t,a.min[0]),e=Math.min(e,a.min[1]),i=Math.max(i,a.max[0]),n=Math.max(n,a.max[1])}for(t===Number.MAX_VALUE&&(t=0,e=0,i=1,n=1),this._unrotatedAABB.min[0]=t,this._unrotatedAABB.min[1]=e,this._unrotatedAABB.max[0]=i,this._unrotatedAABB.max[1]=n;this.hitBoxes.length255&&(t=255),this.opacity=t,this.getRenderer().updateOpacity()}getOpacity(){return this.opacity}hide(t){t===void 0&&(t=!0),this.hidden=t,this.getRenderer().updateVisibility()}flipX(t){t!==this._flippedX&&(this._scaleX*=-1,this._flippedX=t,this.invalidateHitboxes(),this.getRenderer().update())}flipY(t){t!==this._flippedY&&(this._scaleY*=-1,this._flippedY=t,this.invalidateHitboxes(),this.getRenderer().update())}isFlippedX(){return this._flippedX}isFlippedY(){return this._flippedY}getAnimator(){return null}}s.CustomRuntimeObject=h,h.supportsReinitialization=!1})(gdjs||(gdjs={})); //# sourceMappingURL=CustomRuntimeObject.js.map