Răsfoiți Sursa

*** empty log message ***

Mike Goslin 24 ani în urmă
părinte
comite
7910c64f53

+ 0 - 1
direct/src/interval/Interval.py

@@ -14,7 +14,6 @@ class Interval(DirectObject):
 
     # create Interval DirectNotify category
     notify = directNotify.newCategory("Interval")
-    #notify.setDebug(1)
 
     playbackCounter = 0
 

+ 12 - 4
direct/src/particles/ForceGroup.py

@@ -3,17 +3,19 @@ from DirectObject import *
 from PhysicsManagerGlobal import *
 
 import ForceNode
+import DirectNotifyGlobal
 
 class ForceGroup(DirectObject):
 
-    forceNum = 1
+    notify = DirectNotifyGlobal.directNotify.newCategory('ForceGroup')
+    id = 1
 
     def __init__(self, name = None):
 	"""__init__(self)"""
 
 	if (name == None):
-	    self.name = 'ForceGroup-%d' % self.forceNum
-	    self.forceNum = self.forceNum + 1
+	    self.name = 'ForceGroup-%d' % ForceGroup.id 
+	    ForceGroup.id += 1
 	else:
 	    self.name = name
 
@@ -24,7 +26,13 @@ class ForceGroup(DirectObject):
 	self.particleEffect = None
 	
 	# Default to enabled
-	self.enable()
+	#self.enable()
+
+    def cleanup(self):
+	self.disable()
+	self.nodePath.removeNode()
+	self.node = None
+	self.particleEffect = None
 
     def enable(self):
 	"""enable(self)

+ 12 - 2
direct/src/particles/ParticleEffect.py

@@ -10,7 +10,7 @@ class ParticleEffect(NodePath):
     notify = DirectNotifyGlobal.directNotify.newCategory('ParticleEffect')
     id = 1 
 
-    def __init__(self, name=None):
+    def __init__(self, name=None, particles=None):
 	"""__init__()"""
 	NodePath.__init__(self)
 	if (name == None):
@@ -25,7 +25,17 @@ class ParticleEffect(NodePath):
 	self.particlesDict = {}
 	self.forceGroupDict = {}
         # The effect's particle system
-	self.addParticles(Particles.Particles())
+	if (particles != None):
+	    self.addParticles(particles)
+
+    def cleanup(self):
+	for f in self.forceGroupDict.values():
+	    f.cleanup()
+	for p in self.particlesDict.values():
+	    p.cleanup()
+	forceGroupDict = {}
+	particlesDict = {}
+	self.removeNode()
 
     def enable(self):
 	"""enable()"""

+ 14 - 1
direct/src/particles/Particles.py

@@ -67,7 +67,17 @@ class Particles(ParticleSystem.ParticleSystem):
 
 	# Enable particles by default
 	self.fEnabled = 0
-	self.enable()
+	#self.enable()
+
+    def cleanup(self):
+	self.disable()
+	self.setRenderParent(self.node)
+	self.node.removePhysical(self)
+	self.nodePath.removeNode()
+	self.node = None
+	self.factory = None
+	self.renderer = None
+	self.emitter = None
 
     def enable(self):
 	"""enable()"""
@@ -86,6 +96,9 @@ class Particles(ParticleSystem.ParticleSystem):
     def isEnabled(self):
         return self.fEnabled
 
+    def getNode(self):
+	return self.node
+
     def setFactory(self, type):
 	"""setFactory(type)"""
 	if (self.factoryType == type):

+ 2 - 1
direct/src/tkpanels/ParticlePanel.py

@@ -37,7 +37,8 @@ class ParticlePanel(AppShell):
             self.particleEffect = particleEffect
         else:
             # Or create a new one if none given
-            pe = ParticleEffect.ParticleEffect('effect-1')
+	    particles = Particles.Particles()
+            pe = ParticleEffect.ParticleEffect('effect-1', particles)
             self.particleEffect = pe
             pe.reparentTo(render)
             pe.enable()