From a1e77c450b132032dbd90886b02138633d9610e4 Mon Sep 17 00:00:00 2001 From: Roger Hughston Date: Mon, 23 May 2005 23:43:43 +0000 Subject: [PATCH] *** empty log message *** --- .../particles/SpriteParticleRendererExt.py | 85 +++++++++++++++++++ 1 file changed, 85 insertions(+) create mode 100644 direct/src/particles/SpriteParticleRendererExt.py diff --git a/direct/src/particles/SpriteParticleRendererExt.py b/direct/src/particles/SpriteParticleRendererExt.py new file mode 100644 index 0000000000..788a735ee3 --- /dev/null +++ b/direct/src/particles/SpriteParticleRendererExt.py @@ -0,0 +1,85 @@ +from pandac.PandaModules import SpriteParticleRenderer + + +class SpriteParticleRendererExt(SpriteParticleRenderer): + """ + SpriteParticleRenderer-extensions module: contains methods to extend functionality + of the SpriteParticleRenderer class + """ + + # Initialize class variables for texture, source file and node for texture and + # node path textures to None. These will be initialized to a hardcoded default + # or whatever the user specifies in his/her Configrc variable the first time they + # are accessed + # Will use instance copy of this in functions below + sourceTextureName = None + sourceFileName = None + sourceNodeName = None + + def getSourceTextureName(self): + if self.sourceTextureName == None: + SpriteParticleRendererExt.sourceTextureName = base.config.GetString( + 'particle-sprite-texture', 'phase_3/maps/eyes.jpg') + # Return instance copy of class variable + return self.sourceTextureName + + def setSourceTextureName(self, name): + # Set instance copy of class variable + self.sourceTextureName = name + + def setTextureFromFile(self, fileName = None): + if fileName == None: + fileName = self.getSourceTextureName() + else: + self.setSourceTextureName(fileName) + t = loader.loadTexture(fileName) + if (t != None): + self.setTexture(t) + else: + print "Couldn't find rendererSpriteTexture file: %s" % fileName + + def getSourceFileName(self): + if self.sourceFileName == None: + SpriteParticleRendererExt.sourceFileName = base.config.GetString( + 'particle-sprite-model', 'phase_3.5/models/props/suit-particles') + # Return instance copy of class variable + return self.sourceFileName + + def setSourceFileName(self, name): + # Set instance copy of class variable + self.sourceFileName = name + + def getSourceNodeName(self): + if self.sourceNodeName == None: + SpriteParticleRendererExt.sourceNodeName = base.config.GetString( + 'particle-sprite-node', '**/fire') + # Return instance copy of class variable + return self.sourceNodeName + + def setSourceNodeName(self, name): + # Set instance copy of class variable + self.sourceNodeName = name + + def setTextureFromNode(self, modelName = None, nodeName = None): + if modelName == None: + modelName = self.getSourceFileName() + else: + self.setSourceFileName(modelName) + if nodeName == None: + nodeName = self.getSourceNodeName() + else: + self.setSourceNodeName(nodeName) + # Load model and get texture + m = loader.loadModelOnce(modelName) + if (m == None): + print "SpriteParticleRendererExt: Couldn't find model: %s!" % modelName + return None + nodeName = self.getSourceNodeName() + np = m.find(nodeName) + if np.isEmpty(): + print "SpriteParticleRendererExt: Couldn't find node: %s!" % nodeName + m.removeNode() + return None + self.setFromNode(np) + m.removeNode() +