本文整理汇总了Python中DNAUtil类的典型用法代码示例。如果您正苦于以下问题:Python DNAUtil类的具体用法?Python DNAUtil怎么用?Python DNAUtil使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DNAUtil类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: _postGenerate
def _postGenerate(self, storage, np):
height = np.getPythonTag('wall_height') or 0.0
np.clearPythonTag('wall_height')
# First, set up collisions. We need a (self.width, height)-sized square.
barrierNode = storage.findNode('wall_camera_barrier')
if not barrierNode:
raise DNAError('No wall_camera_barrier in storage.')
barrier = barrierNode.copyTo(np)
barrier.setScale(self.width, 1, height)
type = DNAUtil.getBuildingClassFromName(self.id)
if type == 'tb':
self.generateSuitGeometry(storage, np, height, barrier)
self.generateCogdoGeometry(storage, np, height, barrier)
# We need to set collisions on all of our knock knock doors:
block = DNAUtil.getBlockFromName(self.name)
if block is not None:
for collisionNP in np.findAllMatches('**/door_*/+CollisionNode'):
collisionNP.setName('KnockKnockDoorSphere_%d' % block)
# Finally, flatten down:
np.flattenStrong()
示例2: generateCogdoGeometry
def generateCogdoGeometry(self, storage, np, height, barrier):
node = np.getParent().attachNewNode('cb' + self.id[2:])
node.setTransform(np.getTransform())
barrier.copyTo(node)
block = DNAUtil.getBlockFromName(self.id)
x = int(np.getX())
y = int(np.getY())
seed = block*1231 + x*83 + y
codes = storage.getNumCatalogCodes('cogdo_wall')
if codes != 0:
wallCode = storage.getCatalogCode('cogdo_wall', seed%codes)
wall = storage.findNode(wallCode)
else:
wall = None
if wall:
wallNode = wall.copyTo(node)
wallNode.setScale(self.width, 1, height)
for door in DNAUtil.getChildrenOfType(self, DNAFlatDoor):
door.generateSuitGeometry(storage, wallNode)
node.flattenStrong()
node.stash()
示例3: makeFromDGI
def makeFromDGI(self, dgi):
DNANode.DNANode.makeFromDGI(self, dgi)
self.code = DNAUtil.dgiExtractString8(dgi)
self.wallColor = DNAUtil.dgiExtractColor(dgi)
self.title = DNAUtil.dgiExtractString8(dgi)
self.article = DNAUtil.dgiExtractString8(dgi)
self.buildingType = DNAUtil.dgiExtractString8(dgi)
示例4: makeFromDGI
def makeFromDGI(self, dgi):
DNANode.DNANode.makeFromDGI(self, dgi)
self.code = DNAUtil.dgiExtractString8(dgi)
self.color = DNAUtil.dgiExtractColor(dgi)
self.width = dgi.getInt16() / 100.0
self.height = dgi.getInt16() / 100.0
self.bDefaultColor = dgi.getBool()
示例5: handleNode
def handleNode(self, dgi, target = None):
if target is None:
return
numNodes = dgi.getUint16()
for _ in xrange(numNodes):
code = DNAUtil.dgiExtractString8(dgi)
file = DNAUtil.dgiExtractString8(dgi)
node = DNAUtil.dgiExtractString8(dgi)
np = NodePath(loader.pdnaModel(file))
if node:
newNode = np.find('**/' + node).copyTo(NodePath())
np.removeNode()
np = newNode
np.setTag('DNACode', code)
np.setTag('DNARoot', node)
target(np, code)
示例6: _makeNode
def _makeNode(self, storage, parent):
frontNode = parent.find('**/*building*_front')
if frontNode.isEmpty():
frontNode = parent.find('**/*_front')
if not frontNode.getNode(0).isGeomNode():
frontNode = frontNode.find('**/+GeomNode')
frontNode.setEffect(DecalEffect.make())
node = storage.findNode(self.code)
if node is None:
pass
doorNode = node.copyTo(frontNode, 0)
origin = parent.find('**/*door_origin')
origin.node().setPreserveTransform(ModelNode.PTNet)
self.setupDoor(doorNode, parent, origin, storage, DNAUtil.getBlockFromName(parent.getName()), self.getColor())
return doorNode
示例7: setupSuitBuildingOrigin
def setupSuitBuildingOrigin(self, nodePath):
building = DNAUtil.getBuildingClassFromName(self.id)
if building != 'tb':
return
name = 'sb' + self.id[2:]
node = nodePath.find('**/*suit_building_origin')
if node.isEmpty():
#TODO: dna logging
#print 'DNALandmarkBuilding ' + name + ' did not find **/*suit_building_origin'
node = nodePath.attachNewNode(ModelNode(self.name))
else:
node.wrtReparentTo(nodePath)
node.setName(name)
node.node().setPreserveTransform(ModelNode.PTNet)
node.hide()
示例8: makeFromDGI
def makeFromDGI(self, dgi, dnaStorage):
DNAGroup.DNAGroup.makeFromDGI(self, dgi)
numEdges = dgi.getUint16()
for _ in xrange(numEdges):
index = dgi.getUint16()
endPoint = dgi.getUint16()
self.addSuitEdge(dnaStorage.getSuitEdge(index, endPoint))
numVisibles = dgi.getUint16()
for _ in xrange(numVisibles):
self.addVisible(DNAUtil.dgiExtractString8(dgi))
numCells = dgi.getUint16()
for _ in xrange(numCells):
w = dgi.getUint8()
h = dgi.getUint8()
x, y, z = [dgi.getInt32() / 100.0 for i in xrange(3)]
self.addBattleCell(DNABattleCell.DNABattleCell(w, h, LVector3f(x, y, z)))
示例9: makeFromDGI
def makeFromDGI(self, dgi):
DNAGroup.DNAGroup.makeFromDGI(self, dgi)
self.code = DNAUtil.dgiExtractString8(dgi)
self.color = DNAUtil.dgiExtractColor(dgi)
示例10: makeFromDGI
def makeFromDGI(self, dgi):
DNAGroup.DNAGroup.makeFromDGI(self, dgi)
self.code = DNAUtil.dgiExtractString8(dgi)
self.color = DNAUtil.dgiExtractColor(dgi)
self.windowCount = dgi.getUint8()
示例11: makeFromDGI
def makeFromDGI(self, dgi):
DNALandmarkBuilding.DNALandmarkBuilding.makeFromDGI(self, dgi)
self.animName = DNAUtil.dgiExtractString8(dgi)
示例12: _storeData
def _storeData(self, data):
block = data.getBlock(DNAUtil.getBlockFromName(self.id))
block.title = self.getTitle()
block.buildingType = self.type
block.zone = self.getVisGroup().getZone()
block.node = self
示例13: handleStorageData
def handleStorageData(self, dgi):
# Catalog Codes
numRoots = dgi.getUint16()
for _ in xrange(numRoots):
root = DNAUtil.dgiExtractString8(dgi)
numCodes = dgi.getUint8()
for i in xrange(numCodes):
code = DNAUtil.dgiExtractString8(dgi)
self.dnaStorage.storeCatalogCode(root, code)
# Textures
numTextures = dgi.getUint16()
for _ in xrange(numTextures):
code = DNAUtil.dgiExtractString8(dgi)
filename = DNAUtil.dgiExtractString8(dgi)
self.dnaStorage.storeTexture(code, loader.pdnaTexture(filename, okMissing=True))
# Fonts
numFonts = dgi.getUint16()
for _ in xrange(numFonts):
code = DNAUtil.dgiExtractString8(dgi)
filename = DNAUtil.dgiExtractString8(dgi)
self.dnaStorage.storeFont(code, loader.pdnaFont(filename))
# Nodes
self.handleNode(dgi, target = self.dnaStorage.storeNode)
self.handleNode(dgi, target = self.dnaStorage.storeHoodNode)
self.handleNode(dgi, target = self.dnaStorage.storePlaceNode)
# Blocks
numBlocks = dgi.getUint16()
for _ in xrange(numBlocks):
number = dgi.getUint8()
zone = dgi.getUint16()
title = DNAUtil.dgiExtractString8(dgi)
article = DNAUtil.dgiExtractString8(dgi)
bldgType = DNAUtil.dgiExtractString8(dgi)
self.dnaStorage.storeBlock(number, title, article, bldgType, zone)
# Suit Points
numPoints = dgi.getUint16()
for _ in xrange(numPoints):
index = dgi.getUint16()
pointType = dgi.getUint8()
x, y, z = (dgi.getInt32() / 100.0 for i in xrange(3))
graph = dgi.getUint8()
landmarkBuildingIndex = dgi.getInt8()
self.dnaStorage.storeSuitPoint(DNASuitPoint.DNASuitPoint(index, pointType, LVector3f(x, y, z), landmarkBuildingIndex))
# Suit Edges
numEdges = dgi.getUint16()
for _ in xrange(numEdges):
index = dgi.getUint16()
numPoints = dgi.getUint16()
for i in xrange(numPoints):
endPoint = dgi.getUint16()
zoneId = dgi.getUint16()
self.dnaStorage.storeSuitEdge(index, endPoint, zoneId)
# Battle Cells
numCells = dgi.getUint16()
for _ in xrange(numCells):
w = dgi.getUint8()
h = dgi.getUint8()
x, y, z = (dgi.getInt32() / 100.0 for i in xrange(3))
self.dnaStorage.storeBattleCell(DNABattleCell.DNABattleCell(w, h, LVector3f(x, y, z)))