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()
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()
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()
def _postGenerate(self, storage, np): height = np.getPythonTag('wall_height') or 0.0 np.clearPythonTag('wall_height') 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) block = DNAUtil.getBlockFromName(self.name) if block is not None: for collisionNP in np.findAllMatches('**/door_*/+CollisionNode'): collisionNP.setName('KnockKnockDoorSphere_%d' % block) np.flattenStrong() return
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) # 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()