mirror of
https://github.com/panda3d/panda3d.git
synced 2025-10-04 10:54:24 -04:00
*** empty log message ***
This commit is contained in:
parent
cbd8bf2164
commit
a1e77c450b
85
direct/src/particles/SpriteParticleRendererExt.py
Normal file
85
direct/src/particles/SpriteParticleRendererExt.py
Normal file
@ -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()
|
||||
|
Loading…
x
Reference in New Issue
Block a user