Exemple #1
0
    def __init__(self, name=None, poolSize=1024):
        if (name == None):
            self.name = 'particles-%d' % Particles.id
            Particles.id += 1
        else:
            self.name = name
        ParticleSystem.__init__(self, poolSize)
        # self.setBirthRate(0.02)
        # self.setLitterSize(10)
        # self.setLitterSpread(0)

        # Set up a physical node
        self.node = PhysicalNode(self.name)
        self.nodePath = NodePath(self.node)
        self.setRenderParent(self.node)
        self.node.addPhysical(self)

        self.factory = None
        self.factoryType = "undefined"
        # self.setFactory("PointParticleFactory")
        self.renderer = None
        self.rendererType = "undefined"
        # self.setRenderer("PointParticleRenderer")
        self.emitter = None
        self.emitterType = "undefined"
        # self.setEmitter("SphereVolumeEmitter")

        # Enable particles by default
        self.fEnabled = 0
        #self.enable()
        self.geomReference = ""
Exemple #2
0
 def setRenderer(self, type):
     if (self.rendererType == type):
         return None
     if (self.renderer):
         self.renderer = None
     self.rendererType = type
     if (type == "PointParticleRenderer"):
         self.renderer = PointParticleRenderer()
         self.renderer.setPointSize(1.0)
     elif (type == "LineParticleRenderer"):
         self.renderer = LineParticleRenderer()
     elif (type == "GeomParticleRenderer"):
         self.renderer = GeomParticleRenderer()
         # This was moved here because we do not want to download
         # the direct tools with toontown.
         if __dev__:
             from panda3d.direct.directtools import DirectSelection
             npath = NodePath('default-geom')
             bbox = DirectSelection.DirectBoundingBox(npath)
             self.renderer.setGeomNode(bbox.lines.node())
     elif (type == "SparkleParticleRenderer"):
         self.renderer = SparkleParticleRenderer()
     elif (type == "SpriteParticleRenderer"):
         self.renderer = SpriteParticleRendererExt.SpriteParticleRendererExt()
         # self.renderer.setTextureFromFile()
     else:
         print "unknown renderer type: %s" % type
         return None
     ParticleSystem.setRenderer(self, self.renderer)
Exemple #3
0
 def setEmitter(self, type):
     if (self.emitterType == type):
         return None
     if (self.emitter):
         self.emitter = None
     self.emitterType = type
     if (type == "ArcEmitter"):
         self.emitter = ArcEmitter()
     elif (type == "BoxEmitter"):
         self.emitter = BoxEmitter()
     elif (type == "DiscEmitter"):
         self.emitter = DiscEmitter()
     elif (type == "LineEmitter"):
         self.emitter = LineEmitter()
     elif (type == "PointEmitter"):
         self.emitter = PointEmitter()
     elif (type == "RectangleEmitter"):
         self.emitter = RectangleEmitter()
     elif (type == "RingEmitter"):
         self.emitter = RingEmitter()
     elif (type == "SphereSurfaceEmitter"):
         self.emitter = SphereSurfaceEmitter()
     elif (type == "SphereVolumeEmitter"):
         self.emitter = SphereVolumeEmitter()
         self.emitter.setRadius(1.0)
     elif (type == "TangentRingEmitter"):
         self.emitter = TangentRingEmitter()
     else:
         print "unknown emitter type: %s" % type
         return None
     ParticleSystem.setEmitter(self, self.emitter)
Exemple #4
0
 def setFactory(self, type):
     if (self.factoryType == type):
         return None
     if (self.factory):
         self.factory = None
     self.factoryType = type
     if (type == "PointParticleFactory"):
         self.factory = PointParticleFactory()
     elif (type == "ZSpinParticleFactory"):
         self.factory = ZSpinParticleFactory()
     elif (type == "OrientedParticleFactory"):
         self.factory = OrientedParticleFactory()
     else:
         print "unknown factory type: %s" % type
         return None
     self.factory.setLifespanBase(0.5)
     ParticleSystem.setFactory(self, self.factory)