Пример #1
0
    def findLeaderBoards(self, dnaGroup, zoneId):
        if not self.air.wantKarts:
            return

        leaderBoards = []

        if isinstance(dnaGroup, DNAGroup) and ('leader_board' in dnaGroup.getName()):
            for i in xrange(dnaGroup.getNumChildren()):
                childDnaGroup = dnaGroup.at(i)

                if 'leaderBoard' in childDnaGroup.getName():
                    pos = childDnaGroup.getPos()
                    hpr = childDnaGroup.getHpr()
                    nameInfo = childDnaGroup.getName().split('_')

                    if nameInfo[1] in RaceGlobals.LBSubscription:
                        leaderBoard = DistributedLeaderBoardAI(simbase.air, RaceGlobals.LBSubscription[nameInfo[1]])
                        leaderBoard.setPosHpr(pos[0], pos[1], pos[2], hpr[0], hpr[1], hpr[2])
                        leaderBoard.generateWithRequired(zoneId)
                        leaderBoards.append(leaderBoard)
        elif isinstance(dnaGroup, DNAVisGroup):
            zoneId = int(dnaGroup.getName().split(':')[0])

        for i in xrange(dnaGroup.getNumChildren()):
            foundLeaderBoards = self.findLeaderBoards(dnaGroup.at(i), zoneId)
            leaderBoards.extend(foundLeaderBoards)

        return leaderBoards
Пример #2
0
    def findLeaderBoards(self, dnaData, zoneId):
        leaderboards = []
        if 'leaderBoard' in dnaData.getName():
            x, y, z = dnaData.getPos()
            h, p, r = dnaData.getHpr()
            leaderboard = DistributedLeaderBoardAI(self, dnaData.getName(), x,
                                                   y, z, h, p, r)
            leaderboard.generateWithRequired(zoneId)
            leaderboards.append(leaderboard)
        for i in xrange(dnaData.getNumChildren()):
            foundLeaderBoards = self.findLeaderBoards(dnaData.at(i), zoneId)
            leaderboards.extend(foundLeaderBoards)

        return leaderboards
Пример #3
0
 def findLeaderBoards(self, dnaPool, zoneID):
     '''
     Find and return leader boards
     '''
     leaderBoards = []
     if (string.find(dnaPool.getName(), 'leaderBoard') >= 0):
         #found a leader board
         pos = dnaPool.getPos()
         hpr = dnaPool.getHpr()
             
         lb = DistributedLeaderBoardAI(self, dnaPool.getName(), zoneID, [], pos, hpr)
         lb.generateWithRequired(zoneID)
         leaderBoards.append(lb)
     else: 
         for i in range(dnaPool.getNumChildren()):
             result = self.findLeaderBoards(dnaPool.at(i), zoneID)
             if result:
                 leaderBoards += result
                 
     return leaderBoards
Пример #4
0
    def findLeaderBoards(self, dnaGroup, zoneId):
        if not self.air.wantKarts:
            return

        leaderBoards = []

        if isinstance(dnaGroup, DNAGroup) and ('leader_board'
                                               in dnaGroup.getName()):
            for i in xrange(dnaGroup.getNumChildren()):
                childDnaGroup = dnaGroup.at(i)

                if 'leaderBoard' in childDnaGroup.getName():
                    pos = childDnaGroup.getPos()
                    hpr = childDnaGroup.getHpr()
                    nameInfo = childDnaGroup.getName().split('_')

                    if nameInfo[1] in RaceGlobals.LBSubscription:
                        leaderBoard = DistributedLeaderBoardAI(
                            simbase.air,
                            RaceGlobals.LBSubscription[nameInfo[1]])
                        leaderBoard.setPosHpr(pos[0], pos[1], pos[2], hpr[0],
                                              hpr[1], hpr[2])
                        leaderBoard.generateWithRequired(zoneId)
                        leaderBoards.append(leaderBoard)
        elif isinstance(dnaGroup, DNAVisGroup):
            zoneId = int(dnaGroup.getName().split(':')[0])

        for i in xrange(dnaGroup.getNumChildren()):
            foundLeaderBoards = self.findLeaderBoards(dnaGroup.at(i), zoneId)
            leaderBoards.extend(foundLeaderBoards)

        return leaderBoards
Пример #5
0
    def findLeaderBoards(self, dnaGroup, zoneId):
        if isinstance(dnaGroup, DNAGroup) and ('leaderBoard' in dnaGroup.getName()):
            boardType = dnaGroup.getName()
            x, y, z = dnaGroup.getPos()
            h, p, r = dnaGroup.getHpr()

            leaderBoard = DistributedLeaderBoardAI(simbase.air)

            if boardType == "leaderBoard_stadium":
                leaderBoard.setGenre(self.Stadium)
            elif boardType == "leaderBoard_country":
                leaderBoard.setGenre(self.Rural)
            elif boardType == "leaderBoard_city":
                leaderBoard.setGenre(self.Urban)

            leaderBoard.generateWithRequired(zoneId)
            leaderBoard.setPosHpr(x,y,z,h,p,r)

            self.leaderBoards.append(leaderBoard)


        for i in range(dnaGroup.getNumChildren()):
            (foundLeaderBoards) = self.findLeaderBoards(dnaGroup.at(i), zoneId)
        
        return (self.leaderBoards)
Пример #6
0
    def findLeaderBoards(self, dnaGroup, zoneId):
        if isinstance(dnaGroup, DNAGroup) and ('leaderBoard' in dnaGroup.getName()):
            boardType = dnaGroup.getName()
            x, y, z = dnaGroup.getPos()
            h, p, r = dnaGroup.getHpr()

            leaderBoard = DistributedLeaderBoardAI(simbase.air)

            if boardType == "leaderBoard_stadium":
                leaderBoard.setGenre(self.Stadium)
            elif boardType == "leaderBoard_country":
                leaderBoard.setGenre(self.Rural)
            elif boardType == "leaderBoard_city":
                leaderBoard.setGenre(self.Urban)

            leaderBoard.generateWithRequired(zoneId)
            leaderBoard.setPosHpr(x,y,z,h,p,r)

            self.leaderBoards.append(leaderBoard)


        for i in xrange(dnaGroup.getNumChildren()):
            (foundLeaderBoards) = self.findLeaderBoards(dnaGroup.at(i), zoneId)
        
        return (self.leaderBoards)