def shootFireworkRocket(x, y, z, color1, color2, amp): f = ParticleEffect.ParticleEffect() p0 = Particles.Particles('particles-1') p0.setFactory('PointParticleFactory') p0.setRenderer('SparkleParticleRenderer') p0.setEmitter('SphereVolumeEmitter') p0.setPoolSize(110) p0.setBirthRate(0.01) p0.setLitterSize(2) p0.setLitterSpread(0) p0.factory.setLifespanBase(0.4) p0.factory.setLifespanSpread(0.1) p0.factory.setMassBase(1.0) p0.factory.setMassSpread(0.0) p0.factory.setTerminalVelocityBase(400.0) p0.factory.setTerminalVelocitySpread(0.0) p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) p0.renderer.setUserAlpha(1.0) p0.renderer.setCenterColor(color1) p0.renderer.setEdgeColor(color2) p0.renderer.setBirthRadius(0.6) p0.renderer.setDeathRadius(0.6) p0.renderer.setLifeScale(SparkleParticleRenderer.SPNOSCALE) p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) p0.emitter.setAmplitude(amp) p0.emitter.setAmplitudeSpread(0.0) p0.emitter.setRadius(0.3) f.addParticles(p0) gravityForceGroup = ForceGroup.ForceGroup('gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -10.0), 1.0, 0) force0.setActive(1) gravityForceGroup.addForce(force0) f.addForceGroup(gravityForceGroup) f.setPos(x, y, z) sfxName = random.choice(('phase_4/audio/sfx/firework_whistle_01.mp3', 'phase_4/audio/sfx/firework_whistle_02.mp3')) sfx = loader.loadSfx(sfxName) t = Sequence(Func(f.start, render, render), Func(sfx.play), LerpPosInterval(f, 2.0, Vec3(x, y, z + 20 * amp), blendType='easeInOut'), Func(p0.setBirthRate, 3), Wait(0.5), Func(f.cleanup), name=getNextSequenceName('shootFirework')) t.start()
def shootFireworkCircleSprite(x, y, z, color, texture, amp): f = ParticleEffect.ParticleEffect() p0 = Particles.Particles('particles-1') p0.setFactory('PointParticleFactory') p0.setRenderer('SpriteParticleRenderer') p0.setEmitter('SphereVolumeEmitter') p0.setPoolSize(100) p0.setBirthRate(0.01) p0.setLitterSize(100) p0.factory.setLifespanBase(2.0) p0.factory.setLifespanSpread(0.5) p0.factory.setTerminalVelocityBase(400.0) p0.factory.setTerminalVelocitySpread(40.0) p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAUSER) p0.renderer.setUserAlpha(1.0) p0.renderer.setFromNode(texture) p0.renderer.setColor(color) p0.renderer.setXScaleFlag(1) p0.renderer.setYScaleFlag(1) p0.renderer.setInitialXScale(0.12) p0.renderer.setFinalXScale(0.48) p0.renderer.setInitialYScale(0.12) p0.renderer.setFinalYScale(0.48) p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) p0.emitter.setAmplitudeSpread(0.1) p0.emitter.setAmplitude(amp) p0.emitter.setRadius(0.1) f.addParticles(p0) circleForceGroup = ForceGroup.ForceGroup('gravity') force1 = LinearSinkForce(Point3(x, y, z - 100), LinearDistanceForce.FTONEOVERRSQUARED, 2.0, 0.3 * amp * 0.1, 1) force1.setActive(1) circleForceGroup.addForce(force1) f.addForceGroup(circleForceGroup) f.setPos(x, y, z) sfxName = random.choice(('phase_4/audio/sfx/firework_explosion_01.mp3', 'phase_4/audio/sfx/firework_explosion_02.mp3', 'phase_4/audio/sfx/firework_explosion_03.mp3')) sfx = loader.loadSfx(sfxName) t = Sequence(Func(f.start, render, render), Func(sfx.play), Wait(0.5), Func(p0.setBirthRate, 3), Wait(2.0), Func(f.cleanup), name=getNextSequenceName('shootFireworkSprite')) t.start()
def __init__(self, parent): # Initialize the superclass NodePath.__init__(self) notify = DirectNotifyGlobal.directNotify.newCategory('CarSmokeParticles') self.effectNode = parent.attachNewNode('carSmoke') self.effectNode.setBin("fixed", 1) self.effectNode.setDepthWrite(0) self.effect = ParticleEffect.ParticleEffect() particleSearchPath = DSearchPath() if AppRunnerGlobal.appRunner: # In the web-publish runtime, it will always be here: particleSearchPath.appendDirectory(Filename.expandFrom('$TT_3_5_ROOT/phase_3.5/etc')) else: # In other environments, including the dev environment, look here: basePath = os.path.expandvars('$TOONTOWN') or './toontown' particleSearchPath.appendDirectory(Filename.fromOsSpecific(basePath+'/src/effects')) particleSearchPath.appendDirectory(Filename('phase_3.5/etc')) particleSearchPath.appendDirectory(Filename('phase_4/etc')) particleSearchPath.appendDirectory(Filename('phase_5/etc')) particleSearchPath.appendDirectory(Filename('phase_6/etc')) particleSearchPath.appendDirectory(Filename('phase_7/etc')) particleSearchPath.appendDirectory(Filename('phase_8/etc')) particleSearchPath.appendDirectory(Filename('phase_9/etc')) particleSearchPath.appendDirectory(Filename('.')) pfile = Filename('smokeTest4.ptf') found = vfs.resolveFilename(pfile, particleSearchPath) if not found: notify.warning('loadParticleFile() - no path: %s' % pfile) return notify.debug('Loading particle file: %s' % pfile) self.effect.loadConfig(pfile) ren = self.effect.getParticlesNamed('particles-1').getRenderer() ren.setTextureFromNode('phase_4/models/props/tt_m_efx_ext_smoke','**/*')
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/pir_t_efx_msc_vomit') if not VomitEffect.particleDummy: VomitEffect.particleDummy = render.attachNewNode( ModelNode('VomitEffectParticleDummy')) VomitEffect.particleDummy.setDepthWrite(0) VomitEffect.particleDummy.setFogOff() VomitEffect.particleDummy.setLightOff() VomitEffect.particleDummy.setColorScaleOff() VomitEffect.particleDummy.setTwoSided(1) self.f = ParticleEffect.ParticleEffect('VomitEffect') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereSurfaceEmitter') self.f.addParticles(self.p0) self.f0 = None self.setParticleOptions() return
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleWhiteSmoke') self.speed = 20.0 self.radius = 8.0 if not UnholyFlare.particleDummy: UnholyFlare.particleDummy = render.attachNewNode( ModelNode('UnholyFlareParticleDummy')) UnholyFlare.particleDummy.setDepthWrite(0) UnholyFlare.particleDummy.setLightOff() UnholyFlare.particleDummy.setFogOff() UnholyFlare.particleDummy.setColorOff() UnholyFlare.particleDummy.setColorScaleOff() UnholyFlare.particleDummy.setBin('fixed', 120) self.f = ParticleEffect.ParticleEffect('UnholyFlare') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereSurfaceEmitter') self.f.addParticles(self.p0)
def __init__(self): NodePath.__init__(self, "particleFloorTest") # Sort Order of Particles self.setDepthWrite(0) # Load Particle Effects self.f = ParticleEffect.ParticleEffect() self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') # Particles parameters self.p0.setFactory("PointParticleFactory") self.p0.setRenderer("PointParticleRenderer") self.p0.setEmitter("SphereVolumeEmitter") self.p0.setPoolSize(64) self.p0.setBirthRate(0.020) self.p0.setLitterSize(7) self.p0.setLitterSpread(2) self.p0.setSystemLifespan(0.0000) #self.p0.setLocalVelocityFlag(1) self.p0.setFloorZ(-1.0) self.p0.setSystemGrowsOlderFlag(0) # Factory parameters self.p0.factory.setLifespanBase(10.000) self.p0.factory.setLifespanSpread(0.50) self.p0.factory.setMassBase(1.80) self.p0.factory.setMassSpread(1.00) self.p0.factory.setTerminalVelocityBase(400.0000) self.p0.factory.setTerminalVelocitySpread(0.0000) self.f.addParticles(self.p0) if 1: f0 = ForceGroup.ForceGroup('frict') # Force parameters force0 = LinearVectorForce(Vec3(0., 0., -1.)) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0)
def createSparkles(self, color1, color2, amp): self.f = ParticleEffect.ParticleEffect('particleEffect_sparkles') p0 = Particles.Particles('particles-1') p0.setFactory('PointParticleFactory') p0.setRenderer('SparkleParticleRenderer') p0.setEmitter('RingEmitter') p0.setPoolSize(15) p0.setBirthRate(0.1) p0.setLitterSize(100) p0.setLitterSpread(0) p0.factory.setLifespanBase(0.6) p0.factory.setLifespanSpread(0.1) p0.factory.setMassBase(1.0) p0.factory.setMassSpread(0.0) p0.factory.setTerminalVelocityBase(3.0) p0.factory.setTerminalVelocitySpread(1.0) p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) p0.renderer.setUserAlpha(1.0) p0.renderer.setCenterColor(color1) p0.renderer.setEdgeColor(color2) p0.renderer.setBirthRadius(0.3) p0.renderer.setDeathRadius(0.3) p0.renderer.setLifeScale(SparkleParticleRenderer.SPNOSCALE) p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) p0.emitter.setAmplitude(0) p0.emitter.setAmplitudeSpread(0) f0 = ForceGroup.ForceGroup('Gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -10.0), 1.0, 0) force0.setVectorMasks(1, 1, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) p0.emitter.setRadius(2.0) self.f.addParticles(p0) self.f.setPos(0, 0, 0) self.f.setHpr(0, random.random() * 180, random.random() * 180) return self.f
def __init__(self, parent): NodePath.__init__(self) notify = DirectNotifyGlobal.directNotify.newCategory( 'CarSmokeParticles') self.effectNode = parent.attachNewNode('carSmoke') self.effectNode.setBin('fixed', 1) self.effectNode.setDepthWrite(0) self.effect = ParticleEffect.ParticleEffect() particleSearchPath = DSearchPath() if AppRunnerGlobal.appRunner: particleSearchPath.appendDirectory( Filename.expandFrom('$TT_3_5_ROOT/phase_3.5/etc')) elif not os.path.expandvars('$TOONTOWN'): pass basePath = './toontown' particleSearchPath.appendDirectory( Filename.fromOsSpecific(basePath + '/src/effects')) particleSearchPath.appendDirectory(Filename('phase_3.5/etc')) particleSearchPath.appendDirectory(Filename('phase_4/etc')) particleSearchPath.appendDirectory(Filename('phase_5/etc')) particleSearchPath.appendDirectory(Filename('phase_6/etc')) particleSearchPath.appendDirectory(Filename('phase_7/etc')) particleSearchPath.appendDirectory(Filename('phase_8/etc')) particleSearchPath.appendDirectory(Filename('phase_9/etc')) particleSearchPath.appendDirectory(Filename('.')) pfile = Filename('smokeTest4.ptf') found = vfs.resolveFilename(pfile, particleSearchPath) if not found: notify.warning('loadParticleFile() - no path: %s' % pfile) return None notify.debug('Loading particle file: %s' % pfile) self.effect.loadConfig(pfile) ren = self.effect.getParticlesNamed('particles-1').getRenderer() ren.setTextureFromNode('phase_4/models/props/tt_m_efx_ext_smoke', '**/*')
def shootFireworkCircleGeneric(x, y, z, color1, color2, amp, poolSize): f = ParticleEffect.ParticleEffect() p0 = Particles.Particles('particles-1') p0.setFactory('PointParticleFactory') p0.setRenderer('SparkleParticleRenderer') p0.setEmitter('SphereVolumeEmitter') p0.setPoolSize(poolSize) p0.setBirthRate(0.01) p0.setLitterSize(poolSize) p0.factory.setLifespanBase(2.0) p0.factory.setLifespanSpread(0.5) p0.factory.setTerminalVelocityBase(400.0) p0.factory.setTerminalVelocitySpread(40.0) p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) p0.renderer.setUserAlpha(1.0) p0.renderer.setCenterColor(color1) p0.renderer.setEdgeColor(color1) p0.renderer.setBirthRadius(0.4) p0.renderer.setDeathRadius(0.6) p0.renderer.setLifeScale(SparkleParticleRenderer.SPSCALE) p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) p0.emitter.setAmplitudeSpread(0.1) p0.emitter.setAmplitude(amp) p0.emitter.setRadius(0.1) f.addParticles(p0) circleForceGroup = ForceGroup.ForceGroup('gravity') force1 = LinearSinkForce(Point3(x, y, z - 100), LinearDistanceForce.FTONEOVERRSQUARED, 2.0, 0.3 * amp * 0.1, 1) force1.setActive(1) circleForceGroup.addForce(force1) f.addForceGroup(circleForceGroup) f.setPos(x, y, z) sfxName = random.choice(('phase_4/audio/sfx/firework_explosion_01.ogg', 'phase_4/audio/sfx/firework_explosion_02.ogg', 'phase_4/audio/sfx/firework_explosion_03.ogg')) sfx = loader.loadSfx(sfxName) sfx.setVolume(0.7) t = Sequence(Func(f.start, render, render), Func(sfx.play), Wait(0.5), Func(p0.setBirthRate, 3), Wait(0.5), Func(p0.renderer.setCenterColor, color2), Func(p0.renderer.setEdgeColor, color2), Wait(1.5), Func(f.cleanup), name=getNextSequenceName('shootFireworkCircle')) t.start()
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleSpark') if not Sparks.particleDummy: Sparks.particleDummy = render.attachNewNode(ModelNode('SparksParticleDummy')) Sparks.particleDummy.setDepthWrite(0) Sparks.particleDummy.node().setAttrib(ColorBlendAttrib.make(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne)) Sparks.particleDummy.setFogOff() Sparks.particleDummy.setLightOff() Sparks.particleDummy.setBin('fixed', 120) self.f = ParticleEffect.ParticleEffect('Sparks') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('RingEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -6.5), 2.0, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0)
def __init__(self, particleFn, name=None, hpr=None, position=None, size=None, duration=0, **a): if name is None: name = 'PEffect-%d' % PEffect.pid PEffect.pid += 1 Handle.__init__(self, name=name, duration=duration) #pathname = "/lib/panda/lib/lib-original/particles/" base.enableParticles() p = ParticleEffect() particleFn(p, a) self.d.model = p # ??? self.__dict__['position'] = newSignalRefd(self, 'position', P3Type, P3(0, 0, 0)) self.__dict__['hpr'] = newSignalRefd(self, 'hpr', HPRType, HPR(0, 0, 0)) self.__dict__['size'] = newSignalRefd(self, 'size', numType, 1) if size is not None: self.size.setBehavior(size) if position is not None: self.position.setBehavior(position) if hpr is not None: self.hpr.setBehavior(hpr) p.reparentTo(render) p.start()
def loadParticleFile(name): global particleSearchPath if particleSearchPath == None: particleSearchPath = DSearchPath() if AppRunnerGlobal.appRunner: # In the web-publish runtime, it will always be here: particleSearchPath.appendDirectory( Filename.expandFrom('$TT_3_5_ROOT/phase_3.5/etc')) else: # In other environments, including the dev environment, look here: basePath = os.path.expandvars('$TOONTOWN') or './toontown' particleSearchPath.appendDirectory( Filename.fromOsSpecific(basePath + '/src/battle')) particleSearchPath.appendDirectory( Filename.fromOsSpecific(basePath + '/src/safezone')) particleSearchPath.appendDirectory(Filename('phase_3.5/etc')) particleSearchPath.appendDirectory(Filename('phase_4/etc')) particleSearchPath.appendDirectory(Filename('phase_5/etc')) particleSearchPath.appendDirectory(Filename('phase_8/etc')) particleSearchPath.appendDirectory(Filename('phase_9/etc')) particleSearchPath.appendDirectory(Filename('.')) pfile = Filename(name) found = vfs.resolveFilename(pfile, particleSearchPath) if not found: notify.warning('loadParticleFile() - no path: %s' % name) return notify.debug('Loading particle file: %s' % pfile) effect = ParticleEffect() # print("particle filename = ", pfile.getFullpath()) effect.loadConfig(pfile) # Don't render shadows on any particles. There are some particles that are # non-triangles (like points or lines). The shadow render shader does not # currently handle non-triangle geometry. OTPRender.renderShadow(False, effect) return effect
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/fireworkCards') self.card = model.find('**/pir_t_efx_msc_particleStars') self.cardScale = 64.0 self.setDepthWrite(0) self.setColorScaleOff() self.setLightOff() self.effectScale = 1.0 self.effectColor = Vec4(1, 1, 1, 1) self.f = ParticleEffect.ParticleEffect('StarBurst') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-0') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereSurfaceEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -25.0), 1.0, 0) force0.setVectorMasks(1, 1, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(128) self.p0.setBirthRate(0.040000000000000001) self.p0.setLitterSize(64) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(1.25) self.p0.factory.setLifespanSpread(0.5) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(360.0) self.p0.factory.enableAngularVelocity(1) self.p0.factory.setAngularVelocity(0.0) self.p0.factory.setAngularVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.renderer.getColorInterpolationManager().addLinear( 0.0, 0.10000000000000001, Vec4(0, 0, 0, 0), self.effectColor, 1) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.setEffectScale(self.effectScale) self.setEffectColor(self.effectColor)
def __init__(self, parent = None): PooledEffect.__init__(self) EffectController.__init__(self) self.effectScale = 1.0 if parent is not None: self.reparentTo(parent) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleBlackSmoke') if not FeastSmoke.particleDummy: FeastSmoke.particleDummy = base.effectsRoot.attachNewNode(ModelNode('FeastSmokeParticleDummy')) FeastSmoke.particleDummy.setDepthWrite(0) FeastSmoke.particleDummy.setColorScaleOff() FeastSmoke.particleDummy.setLightOff() self.f = ParticleEffect.ParticleEffect('HeavySmoke') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) self.p0.setPoolSize(96) self.p0.setBirthRate(1.5) self.p0.setLitterSize(2) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.setFloorZ(0.0) self.p0.factory.setLifespanBase(25.0) self.p0.factory.setLifespanSpread(5.0) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.20000000000000001) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(30.0) self.p0.factory.enableAngularVelocity(0) self.p0.factory.setAngularVelocity(0.0) self.p0.factory.setAngularVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(0.80000000000000004) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setInitialXScale(1.5 * self.cardScale) self.p0.renderer.setInitialYScale(1.5 * self.cardScale) self.p0.renderer.setFinalXScale(6.0 * self.cardScale) self.p0.renderer.setFinalYScale(6.0 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPNOBLEND) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETCUSTOM) self.p0.emitter.setAmplitude(6.0) self.p0.emitter.setAmplitudeSpread(2.0) self.p0.emitter.setOffsetForce(Vec3(4.0, 4.0, 75.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 1.0)) self.p0.emitter.setRadius(10.0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/fireworkCards') self.card = model.find('**/pir_t_efx_msc_particleSpark_soft') self.cardScale = 16.0 self.setDepthWrite(0) self.setColorScaleOff() self.setLightOff() self.effectScale = 1.0 self.effectColor = Vec4(1, 1, 1, 1) self.f = ParticleEffect.ParticleEffect('NoiseSparkles') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-2') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereSurfaceEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -15.0), 1.0, 0) force0.setVectorMasks(1, 1, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) f1 = ForceGroup.ForceGroup('Noise') self.noiseForce = LinearNoiseForce(25.0, 0.0) self.noiseForce.setVectorMasks(1, 1, 1) self.noiseForce.setActive(0) f1.addForce(self.noiseForce) self.f.addForceGroup(f1) self.p0.setPoolSize(150) self.p0.setBirthRate(0.02) self.p0.setLitterSize(50) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(2.0) self.p0.factory.setLifespanSpread(0.5) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAUSER) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.setEffectScale(self.effectScale) self.setEffectColor(self.effectColor)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleEvilSmoke') self.effectScale = 1.0 if not self.particleDummy: self.particleDummy = render.attachNewNode( ModelNode('selfParticleDummy')) self.particleDummy.setDepthWrite(0) self.particleDummy.setColorScaleOff() self.particleDummy.setLightOff() self.particleDummy.setFogOff() self.particleDummy.hide(OTPRender.ShadowCameraBitmask) self.f = ParticleEffect.ParticleEffect('VoodooPestilence') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereVolumeEmitter') self.f.addParticles(self.p0) self.f.setP(90.0) self.p0.setPoolSize(256) self.p0.setBirthRate(0.01) self.p0.setLitterSize(3) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(0) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(1.2) self.p0.factory.setLifespanSpread(0.20000000000000001) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(360.0) self.p0.factory.enableAngularVelocity(1) self.p0.factory.setAngularVelocity(300.0) self.p0.factory.setAngularVelocitySpread(25.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAINOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.renderer.setColorBlendMode( ColorBlendAttrib.MAdd, ColorBlendAttrib.OOneMinusFbufferAlpha, ColorBlendAttrib.OOneMinusIncomingAlpha) self.p0.renderer.getColorInterpolationManager().addLinear( 0.0, 1.0, Vec4(1.0, 1.0, 1.0, 1.0), Vec4(0.10000000000000001, 0.20000000000000001, 0.10000000000000001, 0.5), 1) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(0.29999999999999999) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, -0.45000000000000001)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(0.01)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleSplash') if not CannonSplash.particleDummy: CannonSplash.particleDummy = render.attachNewNode( ModelNode('CannonSplashParticleDummy')) CannonSplash.particleDummy.setDepthWrite(0) if not self.splashSfx: for audio in self.splashSfxNames: self.splashSfx.append(loadSfx(audio)) self.f = ParticleEffect.ParticleEffect('CannonSplash') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -40.0), 1.0, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(32) self.p0.setLitterSize(5) self.p0.setLitterSpread(2) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.setFloorZ(-8.0) self.p0.factory.setLifespanBase(3.0) self.p0.factory.setLifespanSpread(1.0) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.90000000000000002) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(0.20000000000000001) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setInitialXScale(0.10000000000000001 * self.cardScale) self.p0.renderer.setFinalXScale(0.69999999999999996 * self.cardScale) self.p0.renderer.setInitialYScale(0.10000000000000001 * self.cardScale) self.p0.renderer.setFinalYScale(0.69999999999999996 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPNOBLEND) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETCUSTOM) self.p0.emitter.setAmplitude(2.0) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 40.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 1.0)) self.p0.emitter.setRadius(1.0) self.p0.emitter.setOuterAngle(90.0) self.p0.emitter.setInnerAngle(0.0) self.p0.emitter.setOuterMagnitude(20.0) self.p0.emitter.setInnerMagnitude(0.0) self.p0.emitter.setCubicLerping(0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/effectWindBlur') self.speed = 20.0 if not VoodooShieldBlast.particleDummy: VoodooShieldBlast.particleDummy = render.attachNewNode( ModelNode('VoodooShieldBlastParticleDummy')) VoodooShieldBlast.particleDummy.setDepthWrite(0) VoodooShieldBlast.particleDummy.setLightOff() self.f = ParticleEffect.ParticleEffect('VoodooShieldBlast') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereSurfaceEmitter') self.f.addParticles(self.p0) self.p0.setPoolSize(32) self.p0.setBirthRate(0.029999999999999999) self.p0.setLitterSize(2) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(1.5) self.p0.factory.setLifespanSpread(0) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor( Vec4(0.80000000000000004, 0.80000000000000004, 0.80000000000000004, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(0) self.p0.renderer.setInitialXScale(0.0080000000000000002 * self.cardScale) self.p0.renderer.setFinalXScale(0.01 * self.cardScale) self.p0.renderer.setInitialYScale(0.029999999999999999 * self.cardScale) self.p0.renderer.setFinalYScale(0.014999999999999999 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne) self.p0.renderer.getColorInterpolationManager().addLinear( 0.0, 1.0, Vec4(0, 0.20000000000000001, 1, 0.80000000000000004), Vec4(0.80000000000000004, 0.90000000000000002, 1, 0), 1) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(1.5) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(1.0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleFlameSmoke') if not CeilingDust.particleDummy: CeilingDust.particleDummy = render.attachNewNode( ModelNode('CeilingDustParticleDummy')) CeilingDust.particleDummy.setDepthWrite(0) self.f = ParticleEffect.ParticleEffect('CeilingDust') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -1.0), 1.0, 1) force0.setVectorMasks(1, 1, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(64) self.p0.setBirthRate(0.02) self.p0.setLitterSize(8) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.setFloorZ(-5.0) self.p0.factory.setLifespanBase(3.0) self.p0.factory.setLifespanSpread(2.5) self.p0.factory.setMassBase(2.0) self.p0.factory.setMassSpread(1.5) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAINOUT) self.p0.renderer.setUserAlpha(0.25) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(0) self.p0.renderer.setInitialXScale(0.080000000000000002 * self.cardScale) self.p0.renderer.setFinalXScale(0.080000000000000002 * self.cardScale) self.p0.renderer.setInitialYScale(0.040000000000000001 * self.cardScale) self.p0.renderer.setFinalYScale(0.040000000000000001 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(1.0) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, -0.29999999999999999)) self.p0.emitter.setExplicitLaunchVector( Vec3(0.20000000000000001, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(100.0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleRockShower') if not SmallRockShower.particleDummy: SmallRockShower.particleDummy = render.attachNewNode( ModelNode('SmallRockShowerParticleDummy')) SmallRockShower.particleDummy.setDepthWrite(0) self.f = ParticleEffect.ParticleEffect('RockShower') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -15.0), 1.0, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(8) self.p0.setBirthRate(0.5) self.p0.setLitterSize(1) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.setFloorZ(-5.0) self.p0.factory.setLifespanBase(3.0) self.p0.factory.setLifespanSpread(0.0) self.p0.factory.setMassBase(0.45000000000000001) self.p0.factory.setMassSpread(0.10000000000000001) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAUSER) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor( Vec4(0.29999999999999999, 0.20000000000000001, 0, 1)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setInitialXScale(0.02 * self.cardScale) self.p0.renderer.setFinalXScale(0.040000000000000001 * self.cardScale) self.p0.renderer.setInitialYScale(0.02 * self.cardScale) self.p0.renderer.setFinalYScale(0.040000000000000001 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPNOBLEND) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETCUSTOM) self.p0.emitter.setAmplitude(1.0) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 25.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 1.0)) self.p0.emitter.setRadius(0.20000000000000001) self.p0.emitter.setOuterAngle(45.0) self.p0.emitter.setInnerAngle(0.0) self.p0.emitter.setOuterMagnitude(5.0) self.p0.emitter.setInnerMagnitude(0.0) self.p0.emitter.setCubicLerping(0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/sigils') self.card = model.find('**/effectSkull') self.setDepthWrite(0) self.setLightOff() self.effectColor = Vec4(1, 1, 1, 1) self.f = ParticleEffect.ParticleEffect('WitherStar') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereSurfaceEmitter') self.f.addParticles(self.p0) self.p0.setPoolSize(64) self.p0.setBirthRate(0.02) self.p0.setLitterSize(6) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(0.40000000000000002) self.p0.factory.setLifespanSpread(0.10000000000000001) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(360.0) self.p0.factory.enableAngularVelocity(1) self.p0.factory.setAngularVelocity(0.0) self.p0.factory.setAngularVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAINOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setInitialXScale(0.0001 * self.cardScale) self.p0.renderer.setFinalXScale(0.0025000000000000001 * self.cardScale) self.p0.renderer.setInitialYScale(0.00050000000000000001 * self.cardScale) self.p0.renderer.setFinalYScale(0.025000000000000001 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.renderer.setColorBlendMode( ColorBlendAttrib.MAdd, ColorBlendAttrib.OOneMinusFbufferAlpha, ColorBlendAttrib.OOneMinusIncomingAlpha) self.p0.renderer.getColorInterpolationManager().addLinear( 0.0, 1.0, Vec4(1.0, 1.0, 1.0, 1.0), Vec4(0.59999999999999998, 0.90000000000000002, 0.69999999999999996, 0.40000000000000002), 1) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(1.0) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 0.10000000000000001)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(0.01)
def __init__(self, type=None): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleDarkSmoke') if not VoodooProjectile.particleDummy: VoodooProjectile.particleDummy = render.attachNewNode( ModelNode('VoodooProjectileParticleDummy')) VoodooProjectile.particleDummy.setDepthWrite(0) VoodooProjectile.particleDummy.setLightOff() VoodooProjectile.particleDummy.setColorScaleOff() VoodooProjectile.particleDummy.setFogOff() self.effectColor = Vec4(0.5, 0.2, 1, 1) self.f = ParticleEffect.ParticleEffect('VoodooProjectile') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) self.motion_color = [ Vec4(0.5, 0.2, 1.0, 1.0), Vec4(0.5, 0.2, 1.0, 1.0), Vec4(0.5, 0.2, 1.0, 1.0), Vec4(0.5, 0.2, 1.0, 1.0), Vec4(0.5, 0.2, 1.0, 1.0) ] r = 0.2 vertex_list = [ Vec4(r, 0.0, r, 1.0), Vec4(r, 0.0, -r, 1.0), Vec4(-r, 0.0, -r, 1.0), Vec4(-r, 0.0, r, 1.0), Vec4(r, 0.0, r, 1.0) ] self.motion_trail = PolyTrail.PolyTrail(None, vertex_list, self.motion_color) self.motion_trail.reparentTo(self) self.motion_trail.node().setAttrib( ColorBlendAttrib.make(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne)) self.p0.setPoolSize(256) self.p0.setBirthRate(0.01) self.p0.setLitterSize(1) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(0.5) self.p0.factory.setLifespanSpread(0.15) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(90.0) self.p0.factory.enableAngularVelocity(1) self.p0.factory.setFinalAngle(1080.0) self.p0.factory.setFinalAngleSpread(0.0) self.p0.factory.setAngularVelocity(500.0) self.p0.factory.setAngularVelocitySpread(100.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAINOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setInitialXScale(0.01 * self.cardScale) self.p0.renderer.setInitialYScale(0.01 * self.cardScale) self.p0.renderer.setFinalXScale(0.025 * self.cardScale) self.p0.renderer.setFinalYScale(0.025 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne) self.p0.renderer.getColorInterpolationManager().addLinear( 0.0, 1.0, Vec4(1.0, 1.0, 1.0, 1.0), Vec4(0.5, 0.2, 1.0, 0.25), 1) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(-0.25) self.p0.emitter.setAmplitudeSpread(0.25) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, -2.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(0.1) return
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleGlowBlue') self.faceCard = model.find('**/effectFury') self.faceCard.reparentTo(self) self.faceCard.setDepthWrite(0) self.faceCard.setLightOff() self.faceCard.setColorScale(0.0, 0.0, 0.0, 1.0) self.faceCard.setBillboardPointEye(3.0) self.faceCard.setScale(5.0) self.faceCard.setBin('fixed', 10) if not FuryTrail.particleDummy: FuryTrail.particleDummy = render.attachNewNode( ModelNode('FuryTrailParticleDummy')) FuryTrail.particleDummy.setDepthWrite(0) FuryTrail.particleDummy.setLightOff() FuryTrail.particleDummy.setBin('fixed', 0) self.f = ParticleEffect.ParticleEffect('FuryTrail') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('noise') force0 = LinearNoiseForce(1.5, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(32) self.p0.setBirthRate(0.01) self.p0.setLitterSize(1) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(0.29999999999999999) self.p0.factory.setLifespanSpread(0.0) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.20000000000000001) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(0) self.p0.renderer.setInitialXScale(0.13 * self.cardScale) self.p0.renderer.setInitialYScale(0.13 * self.cardScale) self.p0.renderer.setFinalXScale(0.050000000000000003 * self.cardScale) self.p0.renderer.setFinalYScale(0.050000000000000003 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPNOBLEND) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(-2.0) self.p0.emitter.setAmplitudeSpread(0.5) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 10.0)) self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(1.0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleSmoke') self.spriteScale = 1.0 if not SmokeExplosion.particleDummy: SmokeExplosion.particleDummy = render.attachNewNode( ModelNode('SmokeExplosionParticleDummy')) SmokeExplosion.particleDummy.setDepthWrite(0) SmokeExplosion.particleDummy.setColorScaleOff() self.f = ParticleEffect.ParticleEffect('SmokeExplosion') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereVolumeEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -20.0), 1.0, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(64) self.p0.setBirthRate(0.3) self.p0.setLitterSize(6) self.p0.setLitterSpread(2) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.setFloorZ(-10.0) self.p0.factory.setLifespanBase(1.5) self.p0.factory.setLifespanSpread(0.5) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.5) self.p0.factory.setTerminalVelocityBase(1000.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(30.0) self.p0.factory.enableAngularVelocity(0) self.p0.factory.setAngularVelocity(5.0) self.p0.factory.setAngularVelocitySpread(1.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(0.25) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setInitialXScale(0.075 * self.spriteScale * self.cardScale) self.p0.renderer.setFinalXScale(0.25 * self.spriteScale * self.cardScale) self.p0.renderer.setInitialYScale(0.075 * self.spriteScale * self.cardScale) self.p0.renderer.setFinalYScale(0.25 * self.spriteScale * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPNOBLEND) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(1.5) self.p0.emitter.setAmplitudeSpread(0.5) self.p0.emitter.setOffsetForce(Vec3(1.0, 1.0, 30.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 1.0)) self.p0.emitter.setRadius(10.0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleVolcanoSmoke') self.setLightOff() self.setColorScaleOff() self.setDepthWrite(0) self.f = ParticleEffect.ParticleEffect('TeleportDust') self.f.reparentTo(self) self.p0 = Particles.Particles('dust') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('forceGroup-1') force0 = LinearCylinderVortexForce(10.0, 10.0, 0.5, 2.25, 0) force0.setVectorMasks(1, 1, 0) force0.setActive(1) f0.addForce(force0) force1 = LinearSinkForce(Point3(0.0, 0.0, 0.0), LinearDistanceForce.FTONEOVERRSQUARED, 1.0, 25.0, 0) force1.setVectorMasks(1, 1, 0) force1.setActive(1) f0.addForce(force1) force2 = LinearVectorForce(Vec3(0.0, 0.0, 3.0), 1.0, 0) force2.setVectorMasks(0, 0, 1) force2.setActive(1) f0.addForce(force2) self.f.addForceGroup(f0) self.p0.setPoolSize(32) self.p0.setBirthRate(0.1) self.p0.setLitterSize(2) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(2.75) self.p0.factory.setLifespanSpread(0.0) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(0.0) self.p0.factory.enableAngularVelocity(1) self.p0.factory.setAngularVelocity(0.0) self.p0.factory.setAngularVelocitySpread(90.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAINOUT) self.p0.renderer.setUserAlpha(0.8) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(0.8, 0.8, 0.8, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setInitialXScale(0.008 * self.cardScale) self.p0.renderer.setFinalXScale(0.015 * self.cardScale) self.p0.renderer.setInitialYScale(0.008 * self.cardScale) self.p0.renderer.setFinalYScale(0.015 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(1.0) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(2.0)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleSpark') if not HealPotion.particleDummy: HealPotion.particleDummy = render.attachNewNode( ModelNode('HealPotionParticleDummy')) HealPotion.particleDummy.setDepthWrite(0) HealPotion.particleDummy.setLightOff() HealPotion.particleDummy.setFogOff() HealPotion.particleDummy.setColorScaleOff() self.effectColor = Vec4(1, 1, 1, 1) self.f = ParticleEffect.ParticleEffect('HealSparks') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereVolumeEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -10.0), 1.0, 0) force0.setVectorMasks(1, 1, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(32) self.p0.setBirthRate(0.01) self.p0.setLitterSize(2) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(0.80000000000000004) self.p0.factory.setLifespanSpread(0.10000000000000001) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1, 1, 1, 1)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(0) self.p0.renderer.setInitialXScale(0.002 * self.cardScale) self.p0.renderer.setFinalXScale(0.0030000000000000001 * self.cardScale) self.p0.renderer.setInitialYScale(0.002 * self.cardScale) self.p0.renderer.setFinalYScale(0.0040000000000000001 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(0.0) self.p0.emitter.setAmplitudeSpread(0.5) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(0.10000000000000001)
def __init__(self, effectParent=None): PooledEffect.__init__(self) EffectController.__init__(self) if effectParent: self.reparentTo(effectParent) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleFire2') if not self.burningSfx: self.burningSfx = loadSfx(SoundGlobals.SFX_WEAPON_GRENADE_FIREBOMB) if not MysticFire.particleDummy: MysticFire.particleDummy = render.attachNewNode( ModelNode('FireParticleDummy')) MysticFire.particleDummy.setDepthWrite(0) MysticFire.particleDummy.setFogOff() MysticFire.particleDummy.setLightOff() MysticFire.particleDummy.setColorScaleOff() MysticFire.particleDummy.setBin('fixed', 60) self.duration = 4.0 self.effectScale = 1.0 self.f = ParticleEffect.ParticleEffect('MysticFire') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('DiscEmitter') self.f.addParticles(self.p0) self.p0.setPoolSize(64) self.p0.setBirthRate(0.01) self.p0.setLitterSize(3) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.setFloorZ(-1.0) self.p0.factory.setLifespanBase(0.75) self.p0.factory.setLifespanSpread(0.25) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(360.0) self.p0.factory.enableAngularVelocity(1) self.p0.factory.setAngularVelocity(0.0) self.p0.factory.setAngularVelocitySpread(350.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAINOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne) self.p0.renderer.getColorInterpolationManager().addLinear( 0.0, 1.0, Vec4(0.75, 0.84999999999999998, 0.29999999999999999, 1.0), Vec4(0.40000000000000002, 0.84999999999999998, 0.29999999999999999, 0.5), 1) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(-1) self.p0.emitter.setAmplitudeSpread(0.25) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 15.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0))
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel( 'phase_4/models/props/tt_m_efx_ext_particleCards') self.card = model.find('**/tt_t_efx_ext_particleStars') self.cardScale = 64.0 self.effectColor = Vec4(1, 1, 1, 1) self.effectScale = 1.0 self.lifespan = 2.0 if not SparksTrailLong.particleDummy: SparksTrailLong.particleDummy = render.attachNewNode( ModelNode('SparksTrailLongParticleDummy')) SparksTrailLong.particleDummy.setDepthWrite(0) self.f = ParticleEffect.ParticleEffect('SparksTrailLong') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('PointEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('Gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, -2.0), 1.0, 0) force0.setVectorMasks(1, 1, 1) force0.setActive(1) f0.addForce(force0) self.f.addForceGroup(f0) self.p0.setPoolSize(128) self.p0.setBirthRate(0.02) self.p0.setLitterSize(1) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(0) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(self.lifespan) self.p0.factory.setLifespanSpread(0.1) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(90.0) self.p0.factory.enableAngularVelocity(1) self.p0.factory.setAngularVelocity(0.0) self.p0.factory.setAngularVelocitySpread(25.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, -2.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.setEffectScale(self.effectScale)
def __init__(self): PooledEffect.__init__(self) EffectController.__init__(self) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleGroundFog') if not FartEffect.particleDummy: FartEffect.particleDummy = render.attachNewNode(ModelNode('FartEffectParticleDummy')) FartEffect.particleDummy.setDepthWrite(0) FartEffect.particleDummy.setFogOff() FartEffect.particleDummy.setLightOff() FartEffect.particleDummy.setColorScaleOff() FartEffect.particleDummy.setTwoSided(1) self.icon = loader.loadModel('models/effects/skull') self.icon.setBillboardAxis(0.0) self.icon.setDepthWrite(0) self.icon.setFogOff() self.icon.setLightOff() self.icon.setColorScaleOff() self.icon.reparentTo(self) self.icon.setPos(self, 0, 0, -0.29999999999999999) self.icon.setBin('fixed', 65) self.icon.hide(OTPRender.ShadowCameraBitmask) self.f = ParticleEffect.ParticleEffect('FartEffect') self.f.reparentTo(self) self.p0 = Particles.Particles('particles-1') self.p0.setFactory('PointParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereSurfaceEmitter') self.f.addParticles(self.p0) f0 = ForceGroup.ForceGroup('gravity') force0 = LinearVectorForce(Vec3(0.0, 0.0, 0.5), 1.0, 0) force0.setVectorMasks(1, 1, 1) force0.setActive(1) f0.addForce(force0) force1 = LinearJitterForce(1.0, 0) force1.setVectorMasks(1, 1, 1) force1.setActive(1) f0.addForce(force1) self.f.addForceGroup(f0) self.p0.setPoolSize(128) self.p0.setBirthRate(0.20000000000000001) self.p0.setLitterSize(5) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(0) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(5.0) self.p0.factory.setLifespanSpread(0.10000000000000001) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT) self.p0.renderer.setUserAlpha(0.20000000000000001) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(0.0, 1.0, 0.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setInitialXScale(0.001 * self.cardScale) self.p0.renderer.setInitialYScale(0.001 * self.cardScale) self.p0.renderer.setFinalXScale(0.02 * self.cardScale) self.p0.renderer.setFinalYScale(0.02 * self.cardScale) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPNOBLEND) self.p0.renderer.setAlphaDisable(0) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE) self.p0.emitter.setAmplitude(1.0) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, -1.0, 0.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(0.25)
def __init__(self): NodePath.__init__(self, 'VolcanoSmoke') EffectController.__init__(self) self.particleDummy = self.attachNewNode( ModelNode('VolcanoSmokeParticleDummy')) self.particleDummy.setDepthWrite(0) self.particleDummy.setColorScaleOff() self.particleDummy.setLightOff() self.particleDummy.clearFog() self.particleDummy.setBin('fixed', 10) model = loader.loadModel('models/effects/particleMaps') self.card = model.find('**/particleWhiteSmoke') self.f = ParticleEffect.ParticleEffect('VolcanoSmoke') self.p0 = Particles.Particles('particles-1') self.p0.setFactory('ZSpinParticleFactory') self.p0.setRenderer('SpriteParticleRenderer') self.p0.setEmitter('SphereVolumeEmitter') self.duration = 10.0 self.f0 = ForceGroup.ForceGroup('volcano') self.force0 = LinearJitterForce(12.0, 0) self.force0.setVectorMasks(1, 1, 0) self.force0.setActive(1) self.f0.addForce(self.force0) self.f.addForceGroup(self.f0) self.p0.setPoolSize(32) self.p0.setBirthRate(3.0) self.p0.setLitterSize(1) self.p0.setLitterSpread(0) self.p0.setSystemLifespan(0.0) self.p0.setLocalVelocityFlag(1) self.p0.setSystemGrowsOlderFlag(0) self.p0.factory.setLifespanBase(60.0) self.p0.factory.setLifespanSpread(30.0) self.p0.factory.setMassBase(1.0) self.p0.factory.setMassSpread(0.0) self.p0.factory.setTerminalVelocityBase(400.0) self.p0.factory.setTerminalVelocitySpread(0.0) self.p0.factory.setInitialAngle(0.0) self.p0.factory.setInitialAngleSpread(180.0) self.p0.factory.setFinalAngle(0.0) self.p0.factory.setFinalAngleSpread(360.0) self.p0.factory.enableAngularVelocity(0) self.p0.factory.setAngularVelocity(0.0) self.p0.factory.setAngularVelocitySpread(0.0) self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAUSER) self.p0.renderer.setUserAlpha(1.0) self.p0.renderer.setFromNode(self.card) self.p0.renderer.setColor(Vec4(1.0, 1.0, 1.0, 1.0)) self.p0.renderer.setXScaleFlag(1) self.p0.renderer.setYScaleFlag(1) self.p0.renderer.setAnimAngleFlag(1) self.p0.renderer.setNonanimatedTheta(0.0) self.p0.renderer.setAlphaBlendMethod( BaseParticleRenderer.PPBLENDLINEAR) self.p0.renderer.setAlphaDisable(0) self.p0.renderer.getColorInterpolationManager().addLinear( 0.0, 0.05, Vec4(1, 0, 0, 0), Vec4(1, 0.6, 0.25, 1.0)) self.p0.renderer.getColorInterpolationManager().addLinear( 0.05, 0.1, Vec4(1, 0.6, 0.25, 1), Vec4(0.25, 0.25, 0.25, 1.0)) self.p0.renderer.getColorInterpolationManager().addConstant( 0.1, 0.8, Vec4(0.25, 0.25, 0.25, 1)) self.p0.renderer.getColorInterpolationManager().addLinear( 0.8, 1.0, Vec4(0.25, 0.25, 0.25, 1.0), Vec4(0.5, 0.5, 0.5, 0.0)) self.p0.emitter.setEmissionType(BaseParticleEmitter.ETEXPLICIT) self.p0.emitter.setAmplitude(0.0) self.p0.emitter.setAmplitudeSpread(0.0) self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setExplicitLaunchVector(Vec3(0.0, 0.0, 0.0)) self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0)) self.p0.emitter.setRadius(2.0) self.f.addParticles(self.p0)