Browse Source

*** empty log message ***

Mike Goslin 24 years ago
parent
commit
0f47f9fc83
2 changed files with 44 additions and 23 deletions
  1. 12 6
      direct/src/particles/ParticleEffect.py
  2. 32 17
      direct/src/particles/Particles.py

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

@@ -3,11 +3,19 @@ from DirectObject import *
 
 
 import Particles
 import Particles
 import ForceGroup
 import ForceGroup
+import DirectNotifyGlobal
 
 
 class ParticleEffect(NodePath):
 class ParticleEffect(NodePath):
-    def __init__(self, name = 'ParticleEffect'):
+
+    notify = DirectNotifyGlobal.directNotify.newCategory('ParticleEffect')
+    id = 1 
+
+    def __init__(self, name=None):
 	"""__init__()"""
 	"""__init__()"""
 	NodePath.__init__(self)
 	NodePath.__init__(self)
+	if (name == None):
+	    name = 'particle-effect-%d' % ParticleEffect.id
+	    ParticleEffect.id += 1
         self.assign(hidden.attachNewNode(name))
         self.assign(hidden.attachNewNode(name))
         # Record particle effect name
         # Record particle effect name
 	self.name = name
 	self.name = name
@@ -118,9 +126,6 @@ class ParticleEffect(NodePath):
 
 
     def saveConfig(self, filename):
     def saveConfig(self, filename):
         """saveFileData(filename)"""
         """saveFileData(filename)"""
-        #fname = Filename(filename)
-        #fname.resolveFilename(getParticlePath())
-        #fname.resolveFilename(getModelPath())
         f = open(filename.toOsSpecific(), 'wb')
         f = open(filename.toOsSpecific(), 'wb')
         # Add a blank line
         # Add a blank line
         f.write('\n')
         f.write('\n')
@@ -129,7 +134,7 @@ class ParticleEffect(NodePath):
         f.write('for p in self.getParticlesList():\n')
         f.write('for p in self.getParticlesList():\n')
         f.write('\tself.removeParticles(p)\n')
         f.write('\tself.removeParticles(p)\n')
         f.write('for fg in self.getForceGroupList():\n')
         f.write('for fg in self.getForceGroupList():\n')
-        f.write('\tpe.removeForceGroup(fg)\n')
+        f.write('\tself.removeForceGroup(fg)\n')
 	f.write('self.particlesDict = {}\n')
 	f.write('self.particlesDict = {}\n')
 	f.write('self.forceGroupDict = {}\n')
 	f.write('self.forceGroupDict = {}\n')
 
 
@@ -157,7 +162,8 @@ class ParticleEffect(NodePath):
 	for fg in self.forceGroupDict.values():
 	for fg in self.forceGroupDict.values():
 	    target = 'f%d' % num
 	    target = 'f%d' % num
 	    num = num + 1
 	    num = num + 1
-	    f.write(target + ' = ForceGroup.ForceGroup(\'%s\')\n' % fg.getName())
+	    f.write(target + ' = ForceGroup.ForceGroup(\'%s\')\n' % \
+						fg.getName())
 	    fg.printParams(f, target)	
 	    fg.printParams(f, target)	
 	    f.write('self.addForceGroup(%s)\n' % target)
 	    f.write('self.addForceGroup(%s)\n' % target)
 
 

+ 32 - 17
direct/src/particles/Particles.py

@@ -26,20 +26,22 @@ import TangentRingEmitter
 import string
 import string
 import os
 import os
 import DirectSelection
 import DirectSelection
+import DirectNotifyGlobal
 
 
 SparkleParticleRenderer.SparkleParticleRenderer.SPNOSCALE = 0
 SparkleParticleRenderer.SparkleParticleRenderer.SPNOSCALE = 0
 SparkleParticleRenderer.SparkleParticleRenderer.SPSCALE = 1
 SparkleParticleRenderer.SparkleParticleRenderer.SPSCALE = 1
 
 
 class Particles(ParticleSystem.ParticleSystem):
 class Particles(ParticleSystem.ParticleSystem):
 
 
-    particleNum = 1
+    notify = DirectNotifyGlobal.directNotify.newCategory('Particles')
+    id = 1
 
 
-    def __init__(self, name = None, poolSize = 1024):
+    def __init__(self, name=None, poolSize=1024):
 	"""__init__(name, poolSize)"""
 	"""__init__(name, poolSize)"""
 
 
 	if (name == None):
 	if (name == None):
-	    self.name = 'particles-%d' % self.particleNum
-	    self.particleNum = self.particleNum + 1
+	    self.name = 'particles-%d' % Particles.id
+	    Particles.id += 1
 	else:
 	else:
 	    self.name = name
 	    self.name = name
 	ParticleSystem.ParticleSystem.__init__(self, poolSize)
 	ParticleSystem.ParticleSystem.__init__(self, poolSize)
@@ -221,23 +223,34 @@ class Particles(ParticleSystem.ParticleSystem):
 	file.write('# Factory parameters\n')
 	file.write('# Factory parameters\n')
 	file.write(targ + ('.factory.setLifespanBase(%.4f)\n' %
 	file.write(targ + ('.factory.setLifespanBase(%.4f)\n' %
                            self.factory.getLifespanBase()))
                            self.factory.getLifespanBase()))
-	file.write(targ + '.factory.setLifespanSpread(%.4f)\n' % self.factory.getLifespanSpread())
-	file.write(targ + '.factory.setMassBase(%.4f)\n' % self.factory.getMassBase())
-	file.write(targ + '.factory.setMassSpread(%.4f)\n' % self.factory.getMassSpread())
-	file.write(targ + '.factory.setTerminalVelocityBase(%.4f)\n' % self.factory.getTerminalVelocityBase())
-	file.write(targ + '.factory.setTerminalVelocitySpread(%.4f)\n' % self.factory.getTerminalVelocitySpread())
+	file.write(targ + '.factory.setLifespanSpread(%.4f)\n' % \
+				self.factory.getLifespanSpread())
+	file.write(targ + '.factory.setMassBase(%.4f)\n' % \
+				self.factory.getMassBase())
+	file.write(targ + '.factory.setMassSpread(%.4f)\n' % \
+				self.factory.getMassSpread())
+	file.write(targ + '.factory.setTerminalVelocityBase(%.4f)\n' % \
+				self.factory.getTerminalVelocityBase())
+	file.write(targ + '.factory.setTerminalVelocitySpread(%.4f)\n' % \
+				self.factory.getTerminalVelocitySpread())
 	if (self.factoryType == "PointParticleFactory"):
 	if (self.factoryType == "PointParticleFactory"):
 	    file.write('# Point factory parameters\n')
 	    file.write('# Point factory parameters\n')
 	elif (self.factoryType == "ZSpinParticleFactory"):
 	elif (self.factoryType == "ZSpinParticleFactory"):
 	    file.write('# Z Spin factory parameters\n')
 	    file.write('# Z Spin factory parameters\n')
-	    file.write(targ + '.factory.setInitialAngle(%.4f)\n' % self.factory.getInitialAngle())
-	    file.write(targ + '.factory.setFinalAngle(%.4f)\n' % self.factory.getFinalAngle())
-	    file.write(targ + '.factory.setInitialAngleSpread(%.4f)\n' % self.factory.getInitialAngleSpread())
-	    file.write(targ + '.factory.setFinalAngleSpread(%.4f)\n' % self.factory.getFinalAngleSpread())
+	    file.write(targ + '.factory.setInitialAngle(%.4f)\n' % \
+					self.factory.getInitialAngle())
+	    file.write(targ + '.factory.setFinalAngle(%.4f)\n' % \
+					self.factory.getFinalAngle())
+	    file.write(targ + '.factory.setInitialAngleSpread(%.4f)\n' % \
+					self.factory.getInitialAngleSpread())
+	    file.write(targ + '.factory.setFinalAngleSpread(%.4f)\n' % \
+					self.factory.getFinalAngleSpread())
 	elif (self.factoryType == "OrientedParticleFactory"):
 	elif (self.factoryType == "OrientedParticleFactory"):
 	    file.write('# Oriented factory parameters\n')
 	    file.write('# Oriented factory parameters\n')
-	    file.write(targ + '.factory.setInitialOrientation(%.4f)\n' % self.factory.getInitialOrientation()) 
-	    file.write(targ + '.factory.setFinalOrientation(%.4f)\n' % self.factory.getFinalOrientation())
+	    file.write(targ + '.factory.setInitialOrientation(%.4f)\n' % \
+					self.factory.getInitialOrientation()) 
+	    file.write(targ + '.factory.setFinalOrientation(%.4f)\n' % \
+					self.factory.getFinalOrientation())
 
 
 	file.write('# Renderer parameters\n')
 	file.write('# Renderer parameters\n')
 	alphaMode = self.renderer.getAlphaMode()
 	alphaMode = self.renderer.getAlphaMode()
@@ -254,10 +267,12 @@ class Particles(ParticleSystem.ParticleSystem):
 	   	BaseParticleRenderer.BaseParticleRenderer.PRALPHAUSER):
 	   	BaseParticleRenderer.BaseParticleRenderer.PRALPHAUSER):
 	    aMode = "PRALPHAUSER"
 	    aMode = "PRALPHAUSER"
 	file.write(targ + '.renderer.setAlphaMode(BaseParticleRenderer.' + aMode + ')\n')
 	file.write(targ + '.renderer.setAlphaMode(BaseParticleRenderer.' + aMode + ')\n')
-	file.write(targ + '.renderer.setUserAlpha(%.2f)\n' % self.renderer.getUserAlpha())
+	file.write(targ + '.renderer.setUserAlpha(%.2f)\n' % \
+					self.renderer.getUserAlpha())
 	if (self.rendererType == "Point"):
 	if (self.rendererType == "Point"):
 	    file.write('# Point parameters\n')
 	    file.write('# Point parameters\n')
-	    file.write(targ + '.renderer.setPointSize(%.2f)\n' % self.renderer.getPointSize())
+	    file.write(targ + '.renderer.setPointSize(%.2f)\n' % \
+					self.renderer.getPointSize())
 	    sColor = self.renderer.getStartColor()
 	    sColor = self.renderer.getStartColor()
 	    file.write((targ + '.renderer.setStartColor(Vec4(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) 
 	    file.write((targ + '.renderer.setStartColor(Vec4(%.2f, %.2f, %.2f, %.2f))\n' % (sColor[0], sColor[1], sColor[2], sColor[3]))) 
 	    sColor = self.renderer.getEndColor()
 	    sColor = self.renderer.getEndColor()