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:
            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/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 None
    
    notify.debug('Loading particle file: %s' % pfile)
    effect = ParticleEffect()
    effect.loadConfig(pfile)
    return effect
    def __init__(self, particleFn, name = 'particleEffect',
               hpr = None, position = None,
                size = None, duration = 0, parent = render,
                **a):
        Proxy.__init__(self, name = name + ":" + str(PandaGlobals.nextModelId), updater = peffectUpdater, types = {"position":p3Type, "hpr":hprType, "size":numType})

        #pathname = "/lib/panda/lib/lib-original/particles/"
        #base.enableParticles() #this should be in start in main program, this should probably go away
        base.enableParticles()
        p = ParticleEffect()
        self._pandaModel = p
        self._onScreen = False
        self._parent = getModel(parent)
        if position is not None:
            self.position = position
        else:
            self.position = P3(0, 0, 0)
        if hpr is not None:
            self.hpr = hpr
        else:
            self.hpr = SHPR(0, 0, 0)
        if size is not None:
            self.size = size
        else:
            self.size = 1
        particleFn(p, a)
        p.start()

        if duration > 0:
            react(self, delay(duration), exitScene)
Beispiel #4
0
 def __init__(self, effectParent = None):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     if effectParent:
         self.reparentTo(effectParent)
     
     self.duration = 10.0
     model = loader.loadModel('models/effects/particleMaps')
     self.card = model.find('**/particleWhiteSmoke')
     self.setDepthWrite(0)
     self.setFogOff()
     self.setLightOff()
     self.setColorScaleOff()
     self.setBin('fixed', 60)
     self.f = ParticleEffect.ParticleEffect('SwordFreeze')
     self.f.reparentTo(self)
     self.p0 = Particles.Particles('particles-1')
     self.p0.setFactory('PointParticleFactory')
     self.p0.setRenderer('SpriteParticleRenderer')
     self.p0.setEmitter('LineEmitter')
     self.f.addParticles(self.p0)
     self.p0.setPoolSize(24)
     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.setFloorZ(-1.0)
     self.p0.factory.setLifespanBase(0.59999999999999998)
     self.p0.factory.setLifespanSpread(0.20000000000000001)
     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, 0.80000000000000004))
     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.25, 0.29999999999999999, 1, 1), Vec4(0.69999999999999996, 0.80000000000000004, 1, 1), 1)
     self.p0.renderer.setAlphaDisable(0)
     self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
     self.p0.emitter.setAmplitude(-0.75)
     self.p0.emitter.setAmplitudeSpread(0.25)
     self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 10.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.setEndpoint1(Point3(-1.25, 0.0, 0.0))
     self.p0.emitter.setEndpoint2(Point3(1.25, 0.0, 0.0))
     self.setEffectScale(1.0)
 def __init__(self, parent = None):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     if parent is not None:
         self.reparentTo(parent)
     
     if not self.particleDummy:
         self.particleDummy = render.attachNewNode(ModelNode('AttuneParticleDummy'))
         self.particleDummy.setDepthWrite(0)
         self.particleDummy.setLightOff()
     
     self.f = ParticleEffect.ParticleEffect('AttuneEffect')
     self.f.reparentTo(self)
     self.effectGeom = loader.loadModel('models/effects/voodooRing')
     self.effectColor = Vec4(1, 1, 1, 1)
     self.p0 = Particles.Particles('particles-1')
     self.p0.setFactory('PointParticleFactory')
     self.p0.setRenderer('GeomParticleRenderer')
     self.p0.setEmitter('DiscEmitter')
     self.f.addParticles(self.p0)
     self.p0.setPoolSize(64)
     self.p0.setBirthRate(0.029999999999999999)
     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(1.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.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT)
     self.p0.renderer.setUserAlpha(1.0)
     self.p0.renderer.setGeomNode(self.effectGeom.node())
     self.p0.renderer.setXScaleFlag(1)
     self.p0.renderer.setYScaleFlag(1)
     self.p0.renderer.setZScaleFlag(1)
     self.p0.renderer.setInitialXScale(1.0)
     self.p0.renderer.setFinalXScale(4.0)
     self.p0.renderer.setInitialYScale(1.0)
     self.p0.renderer.setFinalYScale(4.0)
     self.p0.renderer.setInitialZScale(1.0)
     self.p0.renderer.setFinalZScale(4.0)
     self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
     self.p0.emitter.setAmplitude(0.20000000000000001)
     self.p0.emitter.setAmplitudeSpread(0.0)
     self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, -0.5))
     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.75)
Beispiel #6
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_particleWhiteGlow')
     self.cardScale = 64.0
     self.effectColor = Vec4(1, 1, 1, 1)
     self.effectScale = 1.0
     self.lifespan = 0.5
     if not GlowTrail.particleDummy:
         GlowTrail.particleDummy = render.attachNewNode(ModelNode('GlowTrailParticleDummy'))
         GlowTrail.particleDummy.setDepthWrite(0)
         GlowTrail.particleDummy.setLightOff()
         GlowTrail.particleDummy.setFogOff()
     self.f = ParticleEffect.ParticleEffect('GlowTrail')
     self.f.reparentTo(self)
     self.p0 = Particles.Particles('particles-1')
     self.p0.setFactory('PointParticleFactory')
     self.p0.setRenderer('SpriteParticleRenderer')
     self.p0.setEmitter('PointEmitter')
     self.f.addParticles(self.p0)
     self.p0.setPoolSize(64)
     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.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)
Beispiel #7
0
    def __init__(self, parent=None):
        PooledEffect.__init__(self)
        EffectController.__init__(self)
        if parent is not None:
            self.reparentTo(parent)

        if not SteamCloud.particleDummy:
            SteamCloud.particleDummy = base.effectsRoot.attachNewNode(
                ModelNode('SteamCloudParticleDummy'))
            SteamCloud.particleDummy.setDepthWrite(0)
            SteamCloud.particleDummy.setLightOff()
            SteamCloud.particleDummy.setBin('fixed', 120)

        self.f = ParticleEffect.ParticleEffect('SteamCloud')
        self.f.reparentTo(self)
        model = loader.loadModel('models/effects/particleMaps')
        self.card = model.find('**/particleWhiteSteam')
        self.p0 = Particles.Particles('particles-1')
        self.p0.setFactory('PointParticleFactory')
        self.p0.setRenderer('SpriteParticleRenderer')
        self.p0.setEmitter('RectangleEmitter')
        self.f.addParticles(self.p0)
        self.p0.setPoolSize(8)
        self.p0.setBirthRate(0.5)
        self.p0.setLitterSize(1)
        self.p0.setLitterSpread(1)
        self.p0.setSystemLifespan(0.0)
        self.p0.setLocalVelocityFlag(1)
        self.p0.setSystemGrowsOlderFlag(0)
        self.p0.setFloorZ(-10.0)
        self.p0.factory.setLifespanBase(10.0)
        self.p0.factory.setLifespanSpread(4.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(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.setNonanimatedTheta(0.0)
        self.p0.renderer.setAlphaBlendMethod(
            BaseParticleRenderer.PPBLENDLINEAR)
        self.p0.renderer.setAlphaDisable(0)
        self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
        self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0))
        self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0))
        self.setEffectScale(1.0)
 def __init__(self):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     model = loader.loadModel('models/effects/particleMaps')
     self.card = model.find('**/particleSmoke')
     self.radius = 10.0
     self.setDepthWrite(0)
     self.setLightOff()
     self.f = ParticleEffect.ParticleEffect('DesolationSmoke')
     self.f.reparentTo(self)
     self.p0 = Particles.Particles('particles-1')
     self.p0.setFactory('PointParticleFactory')
     self.p0.setRenderer('SpriteParticleRenderer')
     self.p0.setEmitter('RingEmitter')
     self.f.addParticles(self.p0)
     f0 = ForceGroup.ForceGroup('gravity')
     force0 = LinearVectorForce(Vec3(0.0, 0.0, -2.0), 1.0, 1)
     force0.setActive(1)
     f0.addForce(force0)
     self.f.addForceGroup(f0)
     self.p0.setPoolSize(128)
     self.p0.setLitterSpread(8)
     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.2)
     self.p0.factory.setTerminalVelocityBase(400.0)
     self.p0.factory.setTerminalVelocitySpread(0.0)
     self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT)
     self.p0.renderer.setUserAlpha(0.5)
     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.05 * self.cardScale)
     self.p0.renderer.setFinalXScale(0.2 * self.cardScale)
     self.p0.renderer.setInitialYScale(0.05 * self.cardScale)
     self.p0.renderer.setFinalYScale(0.2 * 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(30.0)
     self.p0.emitter.setAmplitudeSpread(0.0)
     self.p0.emitter.setExplicitLaunchVector(Vec3(5.0, 0.0, 0.0))
     self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 3.0))
     self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0))
    def __init__(self, effectParent=None):
        PooledEffect.__init__(self)
        EffectController.__init__(self)
        self.effectScale = 1.0
        model = loader.loadModel('models/effects/particleCards')
        self.card = model.find('**/particleSparkle')
        if not LightSparks.particleDummy:
            LightSparks.particleDummy = base.effectsRoot.attachNewNode(
                ModelNode('LightSparksParticleDummy'))
            LightSparks.particleDummy.setColorScaleOff()
            LightSparks.particleDummy.setDepthWrite(0)
            LightSparks.particleDummy.setLightOff()
            LightSparks.particleDummy.setBin('fixed', 70)

        self.f = ParticleEffect.ParticleEffect('FireSparks')
        self.f.reparentTo(self)
        self.p0 = Particles.Particles('particles-sparks')
        self.p0.setFactory('PointParticleFactory')
        self.p0.setRenderer('SpriteParticleRenderer')
        self.p0.setEmitter('DiscEmitter')
        self.f.addParticles(self.p0)
        self.p0.setPoolSize(10)
        self.p0.setBirthRate(0.10000000000000001)
        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(1.0)
        self.p0.factory.setLifespanSpread(0.25)
        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, 0.25, 0.10000000000000001, 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.PPNOBLEND)
        self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd,
                                           ColorBlendAttrib.OIncomingAlpha,
                                           ColorBlendAttrib.OOne)
        self.p0.renderer.setAlphaDisable(0)
        self.p0.emitter.setEmissionType(BaseParticleEmitter.ETCUSTOM)
        self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0))
        self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 1.0))
        self.setEffectScale(1.0)
 def __init__(self):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     model = loader.loadModel('models/effects/particleMaps')
     self.card = model.find('**/particleRockShower')
     self.cardScale = 64.0
     self.effectScale = 1.0
     self.particleDummy = base.effectsRoot.attachNewNode(ModelNode('WaterDripsParticleDummy'))
     self.particleDummy.setDepthWrite(0)
     self.particleDummy.setFogOff()
     self.particleDummy.setLightOff()
     self.particleDummy.setBin('fixed', 60)
     self.f = ParticleEffect.ParticleEffect('TentacleWaterDrips')
     self.f.reparentTo(self)
     self.p0 = Particles.Particles('particles-1')
     self.p0.setFactory('PointParticleFactory')
     self.p0.setRenderer('SpriteParticleRenderer')
     self.p0.setEmitter('RectangleEmitter')
     self.f.addParticles(self.p0)
     self.p0.setPoolSize(36)
     self.p0.setBirthRate(0.02)
     self.p0.setLitterSize(1)
     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(1.5)
     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.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT)
     self.p0.renderer.setUserAlpha(0.75)
     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.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.25)
     self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0))
     self.p0.emitter.setOffsetForce(Vec3(0.0, 1.0, -32))
     self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0))
     self.setEffectScale(self.effectScale)
     self.setEffectLength(self.effectScale)
 def __init__(self):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     model = loader.loadModel('models/effects/particleMaps')
     self.card = model.find('**/particleWhiteSmoke')
     if not self.particleDummy:
         self.particleDummy = render.attachNewNode(ModelNode('selfParticleDummy'))
         self.particleDummy.setDepthWrite(0)
         self.particleDummy.setColorScaleOff()
         self.particleDummy.setLightOff()
         self.particleDummy.hide(OTPRender.ShadowCameraBitmask)
     self.f = ParticleEffect.ParticleEffect('DesolationChargeSmoke')
     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)
     self.p0.setPoolSize(256)
     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.25)
     self.p0.factory.setMassBase(1.0)
     self.p0.factory.setMassSpread(0.2)
     self.p0.factory.setTerminalVelocityBase(400.0)
     self.p0.factory.setTerminalVelocitySpread(0.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.001 * self.cardScale)
     self.p0.renderer.setFinalXScale(0.01 * self.cardScale)
     self.p0.renderer.setInitialYScale(0.001 * self.cardScale)
     self.p0.renderer.setFinalYScale(0.01 * 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(0.25)
     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, 10.0))
     self.p0.emitter.setRadius(0.1)
Beispiel #12
0
    def __init__(self):
        PooledEffect.__init__(self)
        EffectController.__init__(self)
        model = loader.loadModel('models/effects/particleMaps')
        self.card = model.find('**/particleSmoke')
        self.speed = 20.0
        self.radius = 6.0
        self.spriteScale = 1.0
        if not SmokeBlast.particleDummy:
            SmokeBlast.particleDummy = render.attachNewNode(
                ModelNode('SmokeBlastParticleDummy'))
            SmokeBlast.particleDummy.setDepthWrite(0)
            SmokeBlast.particleDummy.setLightOff()
            SmokeBlast.particleDummy.setColorScaleOff()

        self.f = ParticleEffect.ParticleEffect('SmokeBlast')
        self.f.reparentTo(self)
        self.p0 = Particles.Particles('particles-1')
        self.p0.setFactory('PointParticleFactory')
        self.p0.setRenderer('SpriteParticleRenderer')
        self.p0.setEmitter('RectangleEmitter')
        self.f.addParticles(self.p0)
        self.p0.setPoolSize(16)
        self.p0.setBirthRate(0.5)
        self.p0.setLitterSize(4)
        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(2.0)
        self.p0.factory.setLifespanSpread(0.75)
        self.p0.factory.setMassBase(1.0)
        self.p0.factory.setMassSpread(0.0)
        self.p0.factory.setTerminalVelocityBase(500.0)
        self.p0.factory.setTerminalVelocitySpread(0.0)
        self.p0.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAOUT)
        self.p0.renderer.setUserAlpha(0.75)
        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.PPNOBLEND)
        self.p0.renderer.setAlphaDisable(0)
        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, 1.0))
        self.setEffectScale(1.0)
Beispiel #13
0
 def __init__(self):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     self.setDepthWrite(0)
     self.setLightOff()
     self.setColorScaleOff()
     self.setFogOff()
     model = loader.loadModel('models/effects/candleHalo')
     self.card = model.find('**/effectCandleHalo')
     self.f = ParticleEffect.ParticleEffect('AttuneSmoke')
     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)
     self.p0.setPoolSize(64)
     self.p0.setBirthRate(0.02)
     self.p0.setLitterSize(7)
     self.p0.setLitterSpread(0)
     self.p0.setSystemLifespan(0.0)
     self.p0.setLocalVelocityFlag(0)
     self.p0.setSystemGrowsOlderFlag(0)
     self.p0.factory.setLifespanBase(0.59999999999999998)
     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.PRALPHAOUT)
     self.p0.renderer.setUserAlpha(1.0)
     self.p0.renderer.setFromNode(self.card)
     self.p0.renderer.setColor(Vec4(0, 0, 0, 1.0))
     self.p0.renderer.setXScaleFlag(1)
     self.p0.renderer.setYScaleFlag(1)
     self.p0.renderer.setAnimAngleFlag(0)
     self.p0.renderer.setInitialXScale(0.02 * self.cardScale)
     self.p0.renderer.setFinalXScale(0.01 * self.cardScale)
     self.p0.renderer.setInitialYScale(0.001 * self.cardScale)
     self.p0.renderer.setFinalYScale(0.059999999999999998 * 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(0.0)
     self.p0.emitter.setAmplitudeSpread(0.0)
     self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 4.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.5)
 def __init__(self):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     model = loader.loadModel('models/effects/particleMaps')
     self.card = model.find('**/particleGlow')
     self.blueCard = model.find('**/particleGlowBlue')
     self.darkCard = model.find('**/effectDarkGlow')
     self.particleDummy = render.attachNewNode(ModelNode('SparkBurstParticleDummy'))
     self.particleDummy.setDepthWrite(0)
     self.particleDummy.setLightOff()
     self.particleDummy.setFogOff()
     self.particleDummy.setColorScaleOff()
     self.effectColor = Vec4(1, 1, 1, 1)
     self.f = ParticleEffect.ParticleEffect('SparkBurst')
     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('Noise')
     self.f.addForceGroup(f0)
     self.p0.setPoolSize(32)
     self.p0.setBirthRate(0.02)
     self.p0.setLitterSize(10)
     self.p0.setLitterSpread(0)
     self.p0.setSystemLifespan(0.0)
     self.p0.setLocalVelocityFlag(1)
     self.p0.setSystemGrowsOlderFlag(0)
     self.p0.factory.setLifespanBase(0.3)
     self.p0.factory.setLifespanSpread(0.2)
     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.8)
     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.setNonanimatedTheta(0.0)
     self.p0.renderer.setAlphaBlendMethod(BaseParticleRenderer.PPBLENDLINEAR)
     self.p0.renderer.setAlphaDisable(1)
     self.p0.renderer.setColorBlendMode(ColorBlendAttrib.MAdd, ColorBlendAttrib.OOne, ColorBlendAttrib.OOneMinusIncomingAlpha)
     self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
     self.p0.emitter.setAmplitudeSpread(4.0)
     self.p0.emitter.setOffsetForce(Vec3(1.0, 1.0, -0.1))
     self.p0.emitter.setExplicitLaunchVector(Vec3(0.1, 0.0, 100.0))
     self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0))
     self.p0.emitter.setRadius(0.5)
 def __init__(self, effectParent=None):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     if effectParent:
         self.reparentTo(effectParent)
     self.effectGeom = loader.loadModel('models/effects/pir_m_efx_msc_auraSplat')
     self.effectGeom.setColorScale(0, 0, 0, 0.3)
     self.effectGeom.setBillboardAxis(1)
     if not VoodooAuraDiscBase.particleDummy:
         VoodooAuraDiscBase.particleDummy = base.effectsRoot.attachNewNode(ModelNode('VoodooAuraDiscParticleDummy'))
         VoodooAuraDiscBase.particleDummy.hide(OTPRender.MainCameraBitmask)
         VoodooAuraDiscBase.particleDummy.showThrough(OTPRender.EnviroCameraBitmask)
         VoodooAuraDiscBase.particleDummy.setDepthWrite(0)
         VoodooAuraDiscBase.particleDummy.setLightOff()
         VoodooAuraDiscBase.particleDummy.setColorScaleOff()
         VoodooAuraDiscBase.particleDummy.setBin('shadow', -10)
     self.duration = 10.0
     self.effectScale = 1.0
     self.f = ParticleEffect.ParticleEffect('FireSplats')
     self.f.reparentTo(self)
     self.p0 = Particles.Particles('particles-1')
     self.p0.setFactory('PointParticleFactory')
     self.p0.setRenderer('GeomParticleRenderer')
     self.p0.setEmitter('DiscEmitter')
     self.f.addParticles(self.p0)
     self.p0.setPoolSize(8)
     self.p0.setBirthRate(0.1)
     self.p0.setLitterSize(1)
     self.p0.setLocalVelocityFlag(1)
     self.p0.setSystemGrowsOlderFlag(0)
     self.p0.factory.setLifespanBase(0.5)
     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.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAINOUT)
     self.p0.renderer.setUserAlpha(1.0)
     self.p0.renderer.setGeomNode(self.effectGeom.node())
     self.p0.renderer.setXScaleFlag(1)
     self.p0.renderer.setYScaleFlag(1)
     self.p0.renderer.setZScaleFlag(1)
     self.p0.renderer.setXScaleFlag(1)
     self.p0.renderer.setYScaleFlag(1)
     self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
     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(1.0, 0.0, 0.0))
     self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0))
     self.setEffectScale(1.0)
Beispiel #16
0
 def __init__(self, parent=None):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     if parent is not None:
         self.reparentTo(parent)
     if not WaterRipple.particleDummy:
         WaterRipple.particleDummy = render.attachNewNode(
             ModelNode('DarkAuraParticleDummy'))
         WaterRipple.particleDummy.setDepthWrite(0)
         WaterRipple.particleDummy.setFogOff()
         WaterRipple.particleDummy.setBin('water', 50)
     self.effectScale = 1.0
     self.f = ParticleEffect.ParticleEffect('WaterRipple')
     self.f.reparentTo(self)
     self.effectGeom = loader.loadModel('models/effects/ripple')
     if not self.effectGeom:
         self.effectGeom = loader.loadModel('models/misc/smiley')
     self.p0 = Particles.Particles('particles-1')
     self.p0.setFactory('PointParticleFactory')
     self.p0.setRenderer('GeomParticleRenderer')
     self.p0.setEmitter('DiscEmitter')
     self.p0.emitter.setRadius(0.25)
     self.f.addParticles(self.p0)
     self.p0.setPoolSize(8)
     self.p0.setBirthRate(0.75)
     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(4.0)
     self.p0.factory.setLifespanSpread(1.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.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.01))
     self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0))
     self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0))
     self.p0.renderer.setGeomNode(self.effectGeom.node())
     self.p0.renderer.setXScaleFlag(1)
     self.p0.renderer.setYScaleFlag(1)
     self.p0.renderer.setZScaleFlag(1)
     self.setEffectScale(self.effectScale)
     self.disturb = None
     return
Beispiel #17
0
def shootFireworkRing(x, y, z, color1, color2, amp):
    f = ParticleEffect.ParticleEffect()
    p0 = Particles.Particles('particles-1')
    p0.setFactory('PointParticleFactory')
    p0.setRenderer('SparkleParticleRenderer')
    p0.setEmitter('RingEmitter')
    p0.setPoolSize(100)
    p0.setBirthRate(0.01)
    p0.setLitterSize(100)
    p0.setLitterSpread(0)
    p0.factory.setLifespanBase(1.5)
    p0.factory.setLifespanSpread(0.5)
    p0.factory.setMassBase(1.0)
    p0.factory.setMassSpread(0.0)
    p0.factory.setTerminalVelocityBase(20.0)
    p0.factory.setTerminalVelocitySpread(2.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 = LinearSourceForce(Point3(x, y, z), LinearDistanceForce.FTONEOVERR,
                               0.1, 1.1 * amp, 1)
    force0.setActive(1)
    f0.addForce(force0)
    force1 = LinearSinkForce(Point3(x, y, z), LinearDistanceForce.FTONEOVERR,
                             0.5, 2.0 * amp, 1)
    force1.setActive(1)
    f0.addForce(force1)
    f.addForceGroup(f0)
    p0.emitter.setRadius(4.0)
    f.addParticles(p0)
    f.setPos(x, y, z)
    f.setHpr(0, random.random() * 180, random.random() * 180)
    sfx = loader.loadSfx('phase_4/audio/sfx/firework_distance_03.ogg')
    sfx.setVolume(0.7)
    t = Sequence(Func(f.start, render, render),
                 Func(sfx.play),
                 Wait(0.5),
                 Func(p0.setBirthRate, 3),
                 Wait(1.5),
                 Func(f.cleanup),
                 name=getNextSequenceName('shootFireworkRing'))
    t.start()
    def __init__(self):
        PooledEffect.__init__(self)
        EffectController.__init__(self)
        model = loader.loadModel('models/effects/particleMaps')
        self.card = model.find('**/particleSmoke')
        if not SimpleSmokeCloud.particleDummy:
            SimpleSmokeCloud.particleDummy = render.attachNewNode(
                ModelNode('SimpleSmokeCloudParticleDummy'))
            SimpleSmokeCloud.particleDummy.setColorScaleOff()
            SimpleSmokeCloud.particleDummy.setDepthWrite(0)
            SimpleSmokeCloud.particleDummy.setLightOff()

        self.f = ParticleEffect.ParticleEffect('SimpleSmokeCloud')
        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.p0.setPoolSize(3)
        self.p0.setBirthRate(0.10000000000000001)
        self.p0.setLitterSize(1)
        self.p0.setLitterSpread(0)
        self.p0.setSystemLifespan(0.0)
        self.p0.setSystemGrowsOlderFlag(0)
        self.p0.factory.setLifespanBase(1.5)
        self.p0.factory.setLifespanSpread(0.25)
        self.p0.factory.setMassBase(1.0)
        self.p0.factory.setMassSpread(0.0)
        self.p0.factory.setTerminalVelocityBase(2000.0)
        self.p0.factory.setTerminalVelocitySpread(0.0)
        self.p0.factory.setInitialAngle(0.0)
        self.p0.factory.setInitialAngleSpread(180.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(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.PPNOBLEND)
        self.p0.renderer.setAlphaDisable(0)
        self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
        self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0))
        self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 1.0))
        self.setEffectScale(1.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.radius = 8.0
     self.f = ParticleEffect.ParticleEffect('SoulHarvest2')
     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)
     self.p0.setPoolSize(256)
     self.p0.setBirthRate(0.02)
     self.p0.setLitterSize(10)
     self.p0.setLitterSpread(0)
     self.p0.setSystemLifespan(0.0)
     self.p0.setLocalVelocityFlag(1)
     self.p0.setSystemGrowsOlderFlag(0)
     self.p0.factory.setLifespanBase(1.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.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAINOUT)
     self.p0.renderer.setUserAlpha(0.5)
     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.01 * self.cardScale)
     self.p0.renderer.setFinalXScale(0.012 * self.cardScale)
     self.p0.renderer.setInitialYScale(0.01 * self.cardScale)
     self.p0.renderer.setFinalYScale(0.012 * self.cardScale)
     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.25, Vec4(0, 0, 0, 0), Vec4(1, 1, 1, 0.75), 1)
     self.p0.renderer.getColorInterpolationManager().addLinear(0.25, 1.0, Vec4(1, 1, 1, 0.75), Vec4(0, 0, 0, 0), 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.0))
     self.p0.emitter.setExplicitLaunchVector(Vec3(0.0, 0.0, 1.0))
     self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0))
Beispiel #20
0
 def __init__(self):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     model = loader.loadModel('models/effects/darkglow')
     self.card = model.find('**/effectDarkGlow2')
     self.setDepthWrite(0)
     self.setLightOff()
     self.f = ParticleEffect.ParticleEffect('SpectralSmoke')
     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)
     self.p0.setPoolSize(256)
     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(2.0)
     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.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAINOUT)
     self.p0.renderer.setUserAlpha(0.14999999999999999)
     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.0074999999999999997 * self.cardScale)
     self.p0.renderer.setFinalXScale(0.014999999999999999 * self.cardScale)
     self.p0.renderer.setInitialYScale(0.0074999999999999997 * 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.OIncomingColor, ColorBlendAttrib.OOneMinusIncomingAlpha)
     self.p0.renderer.getColorInterpolationManager().addLinear(0.0, 1.0, Vec4(0.65000000000000002, 0.65000000000000002, 1.0, 1.0), Vec4(0.0, 0.0, 0.0, 0.0), 1)
     self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
     self.p0.emitter.setAmplitude(0.5)
     self.p0.emitter.setAmplitudeSpread(0.0)
     self.p0.emitter.setOffsetForce(Vec3(0.0, 0.0, 0.25))
     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.5)
Beispiel #21
0
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.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(2.0),
                 Func(f.cleanup),
                 name=getNextSequenceName('shootFireworkSprite'))
    t.start()
Beispiel #22
0
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.ogg',
                             'phase_4/audio/sfx/firework_whistle_02.ogg'))
    sfx = loader.loadSfx(sfxName)
    sfx.setVolume(0.4)
    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()
Beispiel #23
0
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.40000000000000002)
    p0.renderer.setDeathRadius(0.59999999999999998)
    p0.renderer.setLifeScale(SparkleParticleRenderer.SPSCALE)
    p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
    p0.emitter.setAmplitudeSpread(0.10000000000000001)
    p0.emitter.setAmplitude(amp)
    p0.emitter.setRadius(0.10000000000000001)
    f.addParticles(p0)
    circleForceGroup = ForceGroup.ForceGroup('gravity')
    force1 = LinearSinkForce(Point3(x, y, z - 100),
                             LinearDistanceForce.FTONEOVERRSQUARED, 2.0,
                             0.29999999999999999 * amp * 0.10000000000000001,
                             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(0.5),
                 Func(p0.renderer.setCenterColor, color2),
                 Func(p0.renderer.setEdgeColor, color2),
                 Wait(1.5),
                 Func(f.cleanup),
                 name=getNextSequenceName('shootFireworkCircle'))
    t.start()
Beispiel #24
0
 def __init__(self, parent=None):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     if parent is not None:
         self.reparentTo(parent)
     model = loader.loadModel('models/effects/particleMaps')
     self.card = model.find('**/particleWhiteSmoke')
     if not ShipSmoke.particleDummy:
         ShipSmoke.particleDummy = render.attachNewNode(
             ModelNode('ShipSmokeParticleDummy'))
         ShipSmoke.particleDummy.setDepthWrite(0)
         ShipSmoke.particleDummy.setLightOff()
         ShipSmoke.particleDummy.setColorScaleOff()
     self.f = ParticleEffect.ParticleEffect('ShipSmoke')
     self.f.reparentTo(self)
     self.p0 = Particles.Particles('particles-1')
     self.p0.setFactory('PointParticleFactory')
     self.p0.setRenderer('SpriteParticleRenderer')
     self.p0.setEmitter('LineEmitter')
     self.f.addParticles(self.p0)
     self.p0.setPoolSize(16)
     self.p0.setBirthRate(0.2)
     self.p0.setLitterSize(2)
     self.p0.setLitterSpread(0)
     self.p0.setSystemLifespan(0.0)
     self.p0.setLocalVelocityFlag(1)
     self.p0.setSystemGrowsOlderFlag(0)
     self.p0.setFloorZ(-10.0)
     self.p0.factory.setLifespanBase(0.8)
     self.p0.factory.setLifespanSpread(0.25)
     self.p0.factory.setMassBase(1.0)
     self.p0.factory.setMassSpread(0.2)
     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.3, 0.3, 0.3, 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.PPNOBLEND)
     self.p0.renderer.setAlphaDisable(0)
     self.p0.emitter.setEmissionType(BaseParticleEmitter.ETCUSTOM)
     self.p0.emitter.setExplicitLaunchVector(Vec3(1.0, 0.0, 0.0))
     self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 1.0))
     self.setEffectScale(1.0)
     return
 def __init__(self, parent = None):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     if parent is not None:
         self.reparentTo(parent)
     
     if not LavaVent.particleDummy:
         LavaVent.particleDummy = base.effectsRoot.attachNewNode(ModelNode('LavaVentParticleDummy'))
         LavaVent.particleDummy.setDepthWrite(0)
         LavaVent.particleDummy.setLightOff()
     
     model = loader.loadModel('models/effects/particleMaps')
     self.card = model.find('**/particleWhiteSmoke')
     self.f = ParticleEffect.ParticleEffect('LavaVent')
     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)
     self.p0.setPoolSize(10)
     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.factory.setLifespanBase(4.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.PRALPHAINOUT)
     self.p0.renderer.setUserAlpha(1.0)
     self.p0.renderer.setFromNode(self.card)
     self.p0.renderer.setColor(Vec4(1, 1, 1, 1.0))
     self.p0.renderer.setXScaleFlag(1)
     self.p0.renderer.setYScaleFlag(1)
     self.p0.renderer.setAnimAngleFlag(0)
     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.40000000000000002, Vec4(0.59999999999999998, 0.20000000000000001, 0, 1.0), Vec4(0.20000000000000001, 0.20000000000000001, 0.20000000000000001, 1.0))
     self.p0.renderer.getColorInterpolationManager().addConstant(0.40000000000000002, 1.0, Vec4(0.20000000000000001, 0.20000000000000001, 0.20000000000000001, 1))
     self.p0.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)
     self.p0.emitter.setExplicitLaunchVector(Vec3(0.0, 0.0, 0.0))
     self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0))
     self.setEffectScale(1.0)
Beispiel #26
0
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
Beispiel #27
0
    def __init__(self, parent=None):
        PooledEffect.__init__(self)
        EffectController.__init__(self)
        if parent is not None:
            self.reparentTo(parent)

        self.effectScale = 1.0
        self.setDepthWrite(0)
        self.setLightOff()
        self.f = ParticleEffect.ParticleEffect('WaterSplash')
        self.f.reparentTo(self)
        model = loader.loadModel('models/effects/particleMaps')
        self.card = model.find('**/pir_t_efx_env_waterSplash')
        self.p0 = Particles.Particles('particles-1')
        self.p0.setFactory('PointParticleFactory')
        self.p0.setRenderer('SpriteParticleRenderer')
        self.p0.setEmitter('RectangleEmitter')
        self.f.addParticles(self.p0)
        self.p0.setPoolSize(24)
        self.p0.setBirthRate(0.014999999999999999)
        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.75)
        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.5)
        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.setAmplitude(1.0)
        self.p0.emitter.setAmplitudeSpread(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(1.0)
Beispiel #28
0
 def __init__(self):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     model = loader.loadModel('models/effects/particleMaps')
     self.card = model.find('**/particleSpark')
     self.setDepthWrite(0)
     self.setLightOff()
     self.setFogOff()
     self.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('RingEmitter')
     self.f.addParticles(self.p0)
     self.p0.setPoolSize(16)
     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(1.25)
     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.renderer.setAlphaMode(BaseParticleRenderer.PRALPHAINOUT)
     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.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.setExplicitLaunchVector(Vec3(0.0, 0.0, 0.0))
     self.p0.emitter.setRadiateOrigin(Point3(0.0, 0.0, 0.0))
     self.setEffectScale(1.0)
 def __init__(self):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     model = loader.loadModel('models/effects/particleMaps')
     self.card = model.find('**/particleWhiteSteam')
     self.spriteScale = 5.0
     self.duration = 0
     if not IceShotEffect.particleDummy:
         IceShotEffect.particleDummy = render.attachNewNode(ModelNode('IceShotEffectParticleDummy'))
         IceShotEffect.particleDummy.setDepthWrite(0)
         IceShotEffect.particleDummy.setColorScaleOff()
     self.f = ParticleEffect.ParticleEffect('IceShotEffect')
     self.f.reparentTo(self)
     self.p0 = Particles.Particles('particles-1')
     self.f.addParticles(self.p0)
     self.setParticleParamters()
Beispiel #30
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 RepeaterCannonUpgradeEffect.particleDummy:
         RepeaterCannonUpgradeEffect.particleDummy = render.attachNewNode(
             ModelNode('RepeaterCannonUpgradeEffectParticleDummy'))
         RepeaterCannonUpgradeEffect.particleDummy.setDepthWrite(0)
         RepeaterCannonUpgradeEffect.particleDummy.setColorScaleOff()
     self.f = ParticleEffect.ParticleEffect('RepeaterCannonUpgradeEffect')
     self.f.reparentTo(self)
     self.p0 = Particles.Particles('particles-1')
     self.f.addParticles(self.p0)
     self.setParticleParamters()
Beispiel #31
0
 def __init__(self):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     model = loader.loadModel('models/effects/particleMaps')
     self.card = model.find('**/effectYellowGlowRing')
     self.speed = 20.0
     if not CurseHit.particleDummy:
         CurseHit.particleDummy = render.attachNewNode(
             ModelNode('CurseHitParticleDummy'))
         CurseHit.particleDummy.setDepthWrite(0)
     self.f = ParticleEffect.ParticleEffect('CurseHit')
     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)
Beispiel #32
0
 def __init__(self):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     model = loader.loadModel('models/effects/particleMaps')
     self.card = model.find('**/effectSoftBlueGlow')
     self.setDepthWrite(0)
     self.setLightOff()
     self.setFogOff()
     self.setColorScaleOff()
     self.node().setAttrib(ColorBlendAttrib.make(ColorBlendAttrib.MAdd, ColorBlendAttrib.OIncomingAlpha, ColorBlendAttrib.OOne))
     self.f = ParticleEffect.ParticleEffect('NovaStar')
     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)
Beispiel #33
0
 def __init__(self):
     PooledEffect.__init__(self)
     EffectController.__init__(self)
     model = loader.loadModel('models/effects/particleMaps')
     self.card = model.find('**/particleGunSmoke')
     self.setDepthWrite(0)
     self.f = ParticleEffect.ParticleEffect('MusketSmoke')
     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('frict')
     force0 = LinearFrictionForce(1.0, 25.0, 1)
     force0.setActive(1)
     f0.addForce(force0)
     self.f.addForceGroup(f0)
Beispiel #34
0
    def __init__(self, name = None, particleFile = "LikeFountainWater.py",
                defaultPath = True, parent = render, hpr = None, position = None,
                colorType = None, color = gray, endColor = None,
                size = None, birthRate = None, poolSize = None, litterSize = None,
                lineScaleFactor = None, lifeSpanBase = None, terminalVelocityBase = None,
                texture = None, amplitude = None, amplitudeSpread = None,
                emissionType = "ETRADIATE", radius = None, radiusSpread = None ,
                duration = 0):

        """Initalizes the PEffect.

        PEffect __init__(self,
                        name = 'PEffect',
                        particleFile = "LikeFountainWater.py",
                        defaultPath = True,
                        parent = render,
                        hpr = None,
                        position = None,
                        color = gray,
                        startColor = None ,
                        endColor = None,
                        headColor = None,
                        tailColor = None,
                        birthRate = None,
                        poolSize = None,
                        litterSize = None,
                        lineScaleFactor = None,
                        lifeSpanBase = None,
                        terminalVelocityBase = None,
                        amplitude = None,
                        amplitudeSpread = None,
                        particlePic = None
                        ):
        """
        if texture is not None:
            g.texture = loader.loadTexture(findTexture(texture))
        if name is None:
            name = 'PEffect-%d' % PEffect.pid
            PEffect.pid += 1

        Handle.__init__(self, name = name)
        self.d.colorType = colorType

        #pathname = "/lib/panda/lib/lib-original/particles/"
        base.enableParticles()
        p = ParticleEffect()

        self.__dict__[name] = p
        self.particleName = name
        self.d.model = p  # ???
        
        if defaultPath:
            # print particleFile
            p.loadConfig(Filename(g.pandaPath+"/particles/"+ particleFile))
        else:
            p.loadConfig(Filename(particleFile))

        pd = p.particlesDict["particles-1"]

        if emissionType is not None:
            if emissionType is "ETRADIATE":
                pd.emitter.setEmissionType(BaseParticleEmitter.ETRADIATE)  #emitter type ETEXPICIT ETCUSTOM, ETRADIATE
            elif emissionType is "ETCUSTOM":
                pd.emitter.setEmissionType(BaseParticleEmitter.ETCUSTOM)
        if radius is not None:
                    self.__dict__['radius'] = newSignalRef(self, 'radius', numType, radius)
        checkKeyType('PEffect', name, stringType, 'name')

        self.__dict__['position'] = newSignalRef(self, 'position', P3Type)
#        self.__dict__['color'] = newSignalRefd(self, 'color', ColorType,color)
        
        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)
        self.__dict__['color'] = newSignalRefd(self,'color',ColorType,color)# color at which the effect will start
        if endColor is None:
            endColor = color
        self.__dict__['endColor'] = newSignalRefd(self,'endColor',ColorType,endColor)# color at which the effect will end at
        self.color.setBehavior(color)
        if lineScaleFactor is not None:
            self.__dict__['LineScaleFactor'] = newSignalRefd(self,'LineScaleFactor',numType,lineScaleFactor) #how long a particle is
        if poolSize is not None:
            self.__dict__['PoolSize'] = newSignalRefd(self,'PoolSize',numType,poolSize) #Number of particles avaiable for the entire effect
        if birthRate is not None:
            self.__dict__['BirthRate'] = newSignalRefd(self,'BirthRate',numType,birthRate) #The rate in which the particle effect occurs
        if litterSize is not None:
            self.__dict__['LitterSize'] = newSignalRefd(self,'LitterSize',numType,litterSize) #Number of particles per effect occcurance
        if lifeSpanBase is not None:
            self.__dict__['LifeSpanBase']  = newSignalRefd(self,'LIfeSpanBase',numType,lifeSpanBase) #How long the particle effect stays on screen
        if terminalVelocityBase is not None:
            self.__dict__['TerminalVelocityBase'] = newSignalRefd(self,'TerminalVelocityBase',numType,terminalVelocityBase) #how fast the particles move
        if amplitude is not None:
            self.__dict__['Amplitude'] = newSignalRefd(self,'Amplitude', numType, amplitude)#amplitude is the spreading out of particles
        if amplitudeSpread is not None:
            self.__dict__['AmplitudeSpread'] = newSignalRefd(self,'AmplitudeSpread',numType,amplitudeSpread)#amplitude multiplier spreadings of particles.

        if position is not None:
            self.position.setBehavior(position)
        if hpr is not None:
            self.hpr.setBehavior(hpr)
        if color is not None:
            self.color.setBehavior(color)
        if endColor is not None:
            self.endColor.setBehavior(endColor)
        if parent is not render:
            self.__dict__['parent'] = parent.d.model

        p.reparentTo(render)
        p.start()
        #Had to use this hack because the refresh function kept restarting the particle effects.
        self.__dict__["started"] = True
        if duration != 0:
            self.react1(localTimeIs(duration), lambda m, v: m.exit())