*** empty log message ***
This commit is contained in:
parent
88afd02c4e
commit
21ae42085a
|
|
@ -10,7 +10,7 @@ class ForceGroup(DirectObject):
|
|||
notify = DirectNotifyGlobal.directNotify.newCategory('ForceGroup')
|
||||
id = 1
|
||||
|
||||
def __init__(self, name = None):
|
||||
def __init__(self, name=None):
|
||||
"""__init__(self)"""
|
||||
|
||||
if (name == None):
|
||||
|
|
@ -24,12 +24,10 @@ class ForceGroup(DirectObject):
|
|||
self.fEnabled = 0
|
||||
|
||||
self.particleEffect = None
|
||||
|
||||
# Default to enabled
|
||||
#self.enable()
|
||||
|
||||
def cleanup(self):
|
||||
self.disable()
|
||||
for f in self.asList():
|
||||
self.removeForce(f)
|
||||
self.nodePath.removeNode()
|
||||
self.node = None
|
||||
self.particleEffect = None
|
||||
|
|
@ -62,7 +60,7 @@ class ForceGroup(DirectObject):
|
|||
def removeForce(self, force):
|
||||
"""removeForce(self, force)"""
|
||||
self.node.removeForce(force)
|
||||
if (self.particleEffect):
|
||||
if (self.particleEffect != None):
|
||||
self.particleEffect.removeForce(force)
|
||||
|
||||
# Get/set
|
||||
|
|
|
|||
|
|
@ -37,6 +37,12 @@ class ParticleEffect(NodePath):
|
|||
particlesDict = {}
|
||||
self.removeNode()
|
||||
|
||||
def reset(self):
|
||||
self.removeAllForces()
|
||||
self.removeAllParticles()
|
||||
self.forceGroupDict = {}
|
||||
self.particlesDict = {}
|
||||
|
||||
def enable(self):
|
||||
"""enable()"""
|
||||
for f in self.forceGroupDict.values():
|
||||
|
|
@ -67,7 +73,7 @@ class ParticleEffect(NodePath):
|
|||
self.forceGroupDict[forceGroup.getName()] = forceGroup
|
||||
|
||||
# Associate the force group with all particles
|
||||
for f in forceGroup:
|
||||
for f in forceGroup.asList():
|
||||
self.addForce(f)
|
||||
|
||||
def addForce(self, force):
|
||||
|
|
@ -77,19 +83,23 @@ class ParticleEffect(NodePath):
|
|||
|
||||
def removeForceGroup(self, forceGroup):
|
||||
"""removeForceGroup(forceGroup)"""
|
||||
# Remove forces from all particles
|
||||
for f in forceGroup.asList():
|
||||
self.removeForce(f)
|
||||
|
||||
forceGroup.nodePath.reparentTo(hidden)
|
||||
forceGroup.particleEffect = None
|
||||
self.forceGroupDict[forceGroup.getName()] = None
|
||||
|
||||
# Remove forces from all particles
|
||||
for f in forceGroup:
|
||||
self.removeForce(f)
|
||||
del self.forceGroupDict[forceGroup.getName()]
|
||||
|
||||
def removeForce(self, force):
|
||||
"""removeForce(force)"""
|
||||
for p in self.particlesDict.values():
|
||||
p.removeForce(force)
|
||||
|
||||
def removeAllForces(self):
|
||||
for fg in self.forceGroupDict.values():
|
||||
self.removeForceGroup(fg)
|
||||
|
||||
def addParticles(self, particles):
|
||||
"""addParticles(particles)"""
|
||||
particles.nodePath.reparentTo(self)
|
||||
|
|
@ -97,19 +107,26 @@ class ParticleEffect(NodePath):
|
|||
|
||||
# Associate all forces in all force groups with the particles
|
||||
for fg in self.forceGroupDict.values():
|
||||
for f in fg:
|
||||
for f in fg.asList():
|
||||
particles.addForce(f)
|
||||
|
||||
def removeParticles(self, particles):
|
||||
"""removeParticles(particles)"""
|
||||
if (particles == None):
|
||||
self.notify.warning('removeParticles() - particles == None!')
|
||||
return
|
||||
particles.nodePath.reparentTo(hidden)
|
||||
self.particlesDict[particles.getName()] = None
|
||||
del self.particlesDict[particles.getName()]
|
||||
|
||||
# Remove all forces from the particles
|
||||
for fg in self.forceGroupDict.values():
|
||||
for f in fg:
|
||||
for f in fg.asList():
|
||||
particles.removeForce(f)
|
||||
|
||||
def removeAllParticles(self):
|
||||
for p in self.particlesDict.values():
|
||||
self.removeParticles(p)
|
||||
|
||||
def getParticlesList(self):
|
||||
"""getParticles()"""
|
||||
return self.particlesDict.values()
|
||||
|
|
@ -141,12 +158,7 @@ class ParticleEffect(NodePath):
|
|||
f.write('\n')
|
||||
|
||||
# Make sure we start with a clean slate
|
||||
f.write('for p in self.getParticlesList():\n')
|
||||
f.write('\tself.removeParticles(p)\n')
|
||||
f.write('for fg in self.getForceGroupList():\n')
|
||||
f.write('\tself.removeForceGroup(fg)\n')
|
||||
f.write('self.particlesDict = {}\n')
|
||||
f.write('self.forceGroupDict = {}\n')
|
||||
f.write('self.reset()\n')
|
||||
|
||||
pos = self.getPos()
|
||||
hpr = self.getHpr()
|
||||
|
|
|
|||
|
|
@ -71,6 +71,8 @@ class Particles(ParticleSystem.ParticleSystem):
|
|||
|
||||
def cleanup(self):
|
||||
self.disable()
|
||||
self.clearLinearForces()
|
||||
self.clearAngularForces()
|
||||
self.setRenderParent(self.node)
|
||||
self.node.removePhysical(self)
|
||||
self.nodePath.removeNode()
|
||||
|
|
@ -189,6 +191,9 @@ class Particles(ParticleSystem.ParticleSystem):
|
|||
|
||||
def removeForce(self, force):
|
||||
"""removeForce(force)"""
|
||||
if (force == None):
|
||||
self.notify.warning('removeForce() - force == None!')
|
||||
return
|
||||
if (force.isLinear()):
|
||||
self.removeLinearForce(force)
|
||||
else:
|
||||
|
|
|
|||
Loading…
Reference in New Issue