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()
Beispiel #4
0
    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
Beispiel #5
0
    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()