Files
moon-gaming/gd games 3/Extensions/ParticleSystem/particleemitterobject.js
T
2023-11-24 03:27:59 +00:00

3 lines
12 KiB
JavaScript

var gdjs;(function(t){class s extends t.RuntimeObject{constructor(i,e){super(i,e);this._jumpForwardInTimeCompleted=!1;this._posDirty=!0;this._angleDirty=!0;this._forceDirty=!0;this._zoneRadiusDirty=!0;this._lifeTimeDirty=!0;this._gravityDirty=!0;this._colorDirty=!0;this._sizeDirty=!0;this._alphaDirty=!0;this._flowDirty=!0;this._tankDirty=!0;this._particleRotationSpeedDirty=!0;this._maxParticlesCountDirty=!0;this._additiveRenderingDirty=!0;this._renderer=new t.ParticleEmitterObjectRenderer(i,this,e),this.angleA=e.emitterAngleA,this.angleB=e.emitterAngleB,this.forceMin=e.emitterForceMin,this.forceMax=e.emitterForceMax,this.zoneRadius=e.zoneRadius,this.lifeTimeMin=e.particleLifeTimeMin,this.lifeTimeMax=e.particleLifeTimeMax,this.gravityX=e.particleGravityX,this.gravityY=e.particleGravityY,this.colorR1=e.particleRed1,this.colorR2=e.particleRed2,this.colorG1=e.particleGreen1,this.colorG2=e.particleGreen2,this.colorB1=e.particleBlue1,this.colorB2=e.particleBlue2,this.size1=e.particleSize1,this.size2=e.particleSize2,this.alpha1=e.particleAlpha1,this.alpha2=e.particleAlpha2,this.rendererType=e.rendererType,this.rendererParam1=e.rendererParam1,this.rendererParam2=e.rendererParam2,this.texture=e.textureParticleName,this.flow=e.flow,this.tank=e.tank,this.destroyWhenNoParticles=e.destroyWhenNoParticles,this.particleRotationMinSpeed=e.particleAngle1,this.particleRotationMaxSpeed=e.particleAngle2,this.maxParticlesCount=e.maxParticleNb,this.additiveRendering=e.additive,this.jumpForwardInTimeOnCreation=e.jumpForwardInTimeOnCreation,this._textureDirty=this.texture!=="",this.onCreated()}setX(i){this.x!==i&&(this._posDirty=!0),super.setX(i)}setY(i){this.y!==i&&(this._posDirty=!0),super.setY(i)}setAngle(i){this.angle!==i&&(this._angleDirty=!0),super.setAngle(i)}getRendererObject(){return this._renderer.getRendererObject()}updateFromObjectData(i,e){return i.emitterAngleA!==e.emitterAngleA&&this.setEmitterAngleA(e.emitterAngleA),i.emitterAngleB!==e.emitterAngleB&&this.setEmitterAngleB(e.emitterAngleB),i.emitterForceMin!==e.emitterForceMin&&this.setEmitterForceMin(e.emitterForceMin),i.particleAngle1!==e.particleAngle1&&this.setParticleRotationMinSpeed(e.particleAngle1),i.particleAngle2!==e.particleAngle2&&this.setParticleRotationMaxSpeed(e.particleAngle2),i.maxParticleNb!==e.maxParticleNb&&this.setMaxParticlesCount(e.maxParticleNb),i.additive!==e.additive&&this.setAdditiveRendering(e.additive),i.emitterForceMax!==e.emitterForceMax&&this.setEmitterForceMax(e.emitterForceMax),i.zoneRadius!==e.zoneRadius&&this.setZoneRadius(e.zoneRadius),i.particleLifeTimeMin!==e.particleLifeTimeMin&&this.setParticleLifeTimeMin(e.particleLifeTimeMin),i.particleLifeTimeMax!==e.particleLifeTimeMax&&this.setParticleLifeTimeMax(e.particleLifeTimeMax),i.particleGravityX!==e.particleGravityX&&this.setParticleGravityX(e.particleGravityX),i.particleGravityY!==e.particleGravityY&&this.setParticleGravityY(e.particleGravityY),i.particleRed1!==e.particleRed1&&this.setParticleRed1(e.particleRed1),i.particleRed2!==e.particleRed2&&this.setParticleRed2(e.particleRed2),i.particleGreen1!==e.particleGreen1&&this.setParticleGreen1(e.particleGreen1),i.particleGreen2!==e.particleGreen2&&this.setParticleGreen2(e.particleGreen2),i.particleBlue1!==e.particleBlue1&&this.setParticleBlue1(e.particleBlue1),i.particleBlue2!==e.particleBlue2&&this.setParticleBlue2(e.particleBlue2),i.particleSize1!==e.particleSize1&&this.setParticleSize1(e.particleSize1),i.particleSize2!==e.particleSize2&&this.setParticleSize2(e.particleSize2),i.particleAlpha1!==e.particleAlpha1&&this.setParticleAlpha1(e.particleAlpha1),i.particleAlpha2!==e.particleAlpha2&&this.setParticleAlpha2(e.particleAlpha2),i.textureParticleName!==e.textureParticleName&&this.setTexture(e.textureParticleName,this.getRuntimeScene()),i.flow!==e.flow&&this.setFlow(e.flow),i.tank!==e.tank&&this.setTank(e.tank),i.destroyWhenNoParticles!==e.destroyWhenNoParticles&&(this.destroyWhenNoParticles=e.destroyWhenNoParticles),(i.particleSizeRandomness1!==e.particleSizeRandomness1||i.particleSizeRandomness2!==e.particleSizeRandomness2||i.particleAngle1!==e.particleAngle1||i.particleAngle2!==e.particleAngle2||i.maxParticleNb!==e.maxParticleNb||i.additive!==e.additive||i.rendererType!==e.rendererType||i.rendererParam1!==e.rendererParam1||i.rendererParam2!==e.rendererParam2)&&(this.getInstanceContainer().getLayer(this.layer).getRenderer().removeRendererObject(this._renderer.getRendererObject()),this._renderer.destroy(),this._renderer=new t.ParticleEmitterObjectRenderer(this.getInstanceContainer(),this,e),this._posDirty=this._angleDirty=this._forceDirty=this._zoneRadiusDirty=!0,this._lifeTimeDirty=this._gravityDirty=this._colorDirty=this._sizeDirty=!0,this._alphaDirty=this._flowDirty=this._tankDirty=this._textureDirty=!0),!0}update(i){if(this._posDirty&&this._renderer.setPosition(this.getX(),this.getY()),this._particleRotationSpeedDirty&&this._renderer.setParticleRotationSpeed(this.particleRotationMinSpeed,this.particleRotationMaxSpeed),this._maxParticlesCountDirty&&this._renderer.setMaxParticlesCount(this.maxParticlesCount),this._additiveRenderingDirty&&this._renderer.setAdditiveRendering(this.additiveRendering),this._angleDirty){const e=this.getAngle();this._renderer.setAngle(e-this.angleB/2,e+this.angleB/2)}this._forceDirty&&this._renderer.setForce(this.forceMin,this.forceMax),this._zoneRadiusDirty&&this._renderer.setZoneRadius(this.zoneRadius),this._lifeTimeDirty&&this._renderer.setLifeTime(this.lifeTimeMin,this.lifeTimeMax),this._gravityDirty&&this._renderer.setGravity(this.gravityX,this.gravityY),this._colorDirty&&this._renderer.setColor(this.colorR1,this.colorG1,this.colorB1,this.colorR2,this.colorG2,this.colorB2),this._sizeDirty&&this._renderer.setSize(this.size1,this.size2),this._alphaDirty&&this._renderer.setAlpha(this.alpha1,this.alpha2),(this._flowDirty||this._tankDirty)&&this._renderer.resetEmission(this.flow,this.tank),this._textureDirty&&this._renderer.setTextureName(this.texture,i),this._posDirty=this._angleDirty=this._forceDirty=this._zoneRadiusDirty=!1,this._lifeTimeDirty=this._gravityDirty=this._colorDirty=this._sizeDirty=!1,this._alphaDirty=this._flowDirty=this._textureDirty=this._tankDirty=!1,this._additiveRenderingDirty=this._maxParticlesCountDirty=this._particleRotationSpeedDirty=!1,this._renderer.update(this.getElapsedTime()/1e3),this._renderer.hasStarted()&&this.getParticleCount()===0&&this.destroyWhenNoParticles&&this.deleteFromScene(i),this.jumpForwardInTimeOnCreation>0&&this._jumpForwardInTimeCompleted===!1&&(this._renderer.update(this.jumpForwardInTimeOnCreation),this._jumpForwardInTimeCompleted=!0)}onDestroyed(){this._renderer.destroy(),super.onDestroyed()}getEmitterForceMin(){return this.forceMin}setEmitterForceMin(i){i<0&&(i=0),this.forceMin!==i&&(this._forceDirty=!0,this.forceMin=i)}getEmitterForceMax(){return this.forceMax}setEmitterForceMax(i){i<0&&(i=0),this.forceMax!==i&&(this._forceDirty=!0,this.forceMax=i)}setParticleRotationMinSpeed(i){this.particleRotationMinSpeed!==i&&(this._particleRotationSpeedDirty=!0,this.particleRotationMinSpeed=i)}getParticleRotationMinSpeed(){return this.particleRotationMinSpeed}setParticleRotationMaxSpeed(i){this.particleRotationMaxSpeed!==i&&(this._particleRotationSpeedDirty=!0,this.particleRotationMaxSpeed=i)}getParticleRotationMaxSpeed(){return this.particleRotationMaxSpeed}setMaxParticlesCount(i){this.maxParticlesCount!==i&&(this._maxParticlesCountDirty=!0,this.maxParticlesCount=i)}getMaxParticlesCount(){return this.maxParticlesCount}setAdditiveRendering(i){this.additiveRendering!==i&&(this._additiveRenderingDirty=!0,this.additiveRendering=i)}getAdditiveRendering(){return this.additiveRendering}getEmitterAngle(){return(this.angleA+this.angleB)/2}setEmitterAngle(i){const e=this.getEmitterAngle();i!==e&&(this._angleDirty=!0,this.angleA+=i-e,this.angleB+=i-e)}getEmitterAngleA(){return this.angleA}setEmitterAngleA(i){this.angleA!==i&&(this._angleDirty=!0,this.angleA=i)}getEmitterAngleB(){return this.angleB}setEmitterAngleB(i){this.angleB!==i&&(this._angleDirty=!0,this.angleB=i)}getConeSprayAngle(){return this.getEmitterAngleB()}setConeSprayAngle(i){this.setEmitterAngleB(i)}getZoneRadius(){return this.zoneRadius}setZoneRadius(i){i<0&&(i=0),this.zoneRadius!==i&&i>0&&(this._zoneRadiusDirty=!0,this.zoneRadius=i)}getParticleLifeTimeMin(){return this.lifeTimeMin}setParticleLifeTimeMin(i){i<0&&(i=0),this.lifeTimeMin!==i&&(this._lifeTimeDirty=!0,this.lifeTimeMin=i)}getParticleLifeTimeMax(){return this.lifeTimeMax}setParticleLifeTimeMax(i){i<0&&(i=0),this.lifeTimeMax!==i&&(this._lifeTimeDirty=!0,this.lifeTimeMax=i)}getParticleGravityX(){return this.gravityX}setParticleGravityX(i){this.gravityX!==i&&(this._gravityDirty=!0,this.gravityX=i)}getParticleGravityY(){return this.gravityY}setParticleGravityY(i){this.gravityY!==i&&(this._gravityDirty=!0,this.gravityY=i)}getParticleGravityAngle(){return Math.atan2(this.gravityY,this.gravityX)*180/Math.PI}setParticleGravityAngle(i){if(this.getParticleGravityAngle()!==i){this._gravityDirty=!0;const r=this.getParticleGravityLength();this.gravityX=r*Math.cos(i*Math.PI/180),this.gravityY=r*Math.sin(i*Math.PI/180)}}getParticleGravityLength(){return Math.sqrt(this.gravityX*this.gravityX+this.gravityY*this.gravityY)}setParticleGravityLength(i){i<0&&(i=0);const e=this.getParticleGravityLength();e!==i&&(this._gravityDirty=!0,this.gravityX*=i/e,this.gravityY*=i/e)}getParticleRed1(){return this.colorR1}setParticleRed1(i){i<0&&(i=0),i>255&&(i=255),this.colorR1!==i&&(this._colorDirty=!0,this.colorR1=i)}getParticleRed2(){return this.colorR2}setParticleRed2(i){i<0&&(i=0),i>255&&(i=255),this.colorR2!==i&&(this._colorDirty=!0,this.colorR2=i)}getParticleGreen1(){return this.colorG1}setParticleGreen1(i){i<0&&(i=0),i>255&&(i=255),this.colorG1!==i&&(this._colorDirty=!0,this.colorG1=i)}getParticleGreen2(){return this.colorG2}setParticleGreen2(i){i<0&&(i=0),i>255&&(i=255),this.colorG2!==i&&(this._colorDirty=!0,this.colorG2=i)}getParticleBlue1(){return this.colorB1}setParticleBlue1(i){i<0&&(i=0),i>255&&(i=255),this.colorB1!==i&&(this._colorDirty=!0,this.colorB1=i)}getParticleBlue2(){return this.colorB2}setParticleBlue2(i){i<0&&(i=0),i>255&&(i=255),this.colorB2!==i&&(this._colorDirty=!0,this.colorB2=i)}setParticleColor1(i){const e=i.split(";");e.length<3||(this.setParticleRed1(parseInt(e[0],10)),this.setParticleGreen1(parseInt(e[1],10)),this.setParticleBlue1(parseInt(e[2],10)))}setParticleColor2(i){const e=i.split(";");e.length<3||(this.setParticleRed2(parseInt(e[0],10)),this.setParticleGreen2(parseInt(e[1],10)),this.setParticleBlue2(parseInt(e[2],10)))}getParticleSize1(){return this.size1}setParticleSize1(i){i<0&&(i=0),this.size1!==i&&(this._sizeDirty=!0,this.size1=i)}getParticleSize2(){return this.size2}setParticleSize2(i){this.size2!==i&&(this._sizeDirty=!0,this.size2=i)}getParticleAlpha1(){return this.alpha1}setParticleAlpha1(i){this.alpha1!==i&&(this._alphaDirty=!0,this.alpha1=i)}getParticleAlpha2(){return this.alpha2}setParticleAlpha2(i){this.alpha2!==i&&(this._alphaDirty=!0,this.alpha2=i)}startEmission(){this._renderer.start()}stopEmission(){this._renderer.stop()}isEmitting(){return this._renderer.emitter.emit}noMoreParticles(){return!this.isEmitting()}recreateParticleSystem(){this._renderer.recreate()}getFlow(){return this.flow}setFlow(i){this.flow!==i&&(this.flow=i,this._flowDirty=!0)}getParticleCount(){return this._renderer.getParticleCount()}getTank(){return this.tank}setTank(i){this.tank=i,this._tankDirty=!0}getTexture(){return this.texture}setTexture(i,e){this.texture!==i&&this._renderer.isTextureNameValid(i,e)&&(this.texture=i,this._textureDirty=!0)}jumpEmitterForwardInTime(i){this._renderer.update(i)}}t.ParticleEmitterObject=s,t.registerObject("ParticleSystem::ParticleEmitter",t.ParticleEmitterObject)})(gdjs||(gdjs={}));
//# sourceMappingURL=particleemitterobject.js.map