Poodletooth-iLand/toontown/dna/DNAProp.py

67 lines
2 KiB
Python
Raw Normal View History

2015-03-03 16:10:12 -06:00
from panda3d.core import LVector4f, ModelNode
import DNANode
import DNAUtil
class DNAProp(DNANode.DNANode):
COMPONENT_CODE = 4
def __init__(self, name):
DNANode.DNANode.__init__(self, name)
self.code = ''
self.color = LVector4f(1, 1, 1, 1)
def getCode(self):
return self.code
def setCode(self, code):
self.code = code
def getColor(self):
return self.color
def setColor(self, color):
self.color = color
def smartFlatten(self, node):
if 'trolley' in self.name:
return
elif self.children:
node.flattenMedium()
elif 'HQTelescopeAnimatedProp' in self.name:
node.flattenMedium()
elif node.find('**/water1*').isEmpty():
node.flattenStrong()
elif not node.find('**/water').isEmpty():
water = node.find('**/water')
water.setTransparency(1)
water.setColor(1, 1, 1, 0.8)
node.flattenStrong()
elif not node.find('**/water1*').isEmpty():
water = node.find('**/water1*')
water.setTransparency(1)
water.setColorScale(1.0, 1.0, 1.0, 1.0)
water.setBin('water', 51, 1)
node.flattenStrong()
def makeFromDGI(self, dgi):
DNANode.DNANode.makeFromDGI(self, dgi)
self.code = DNAUtil.dgiExtractString8(dgi)
self.color = DNAUtil.dgiExtractColor(dgi)
def traverse(self, nodePath, dnaStorage):
if self.code == 'DCS':
node = ModelNode(self.name)
node.setPreserveTransform(ModelNode.PTNet)
node = nodePath.attachNewNode(node)
else:
node = dnaStorage.findNode(self.code)
if node is None:
return
node = node.copyTo(nodePath, 0)
node.setPosHprScale(self.pos, self.hpr, self.scale)
node.setName(self.name)
node.setColorScale(self.color, 0)
#self.smartFlatten(node)
for child in self.children:
child.traverse(node, dnaStorage)