def createTimer(self): self.timer = DistributedTimerAI(self.air) self.timer.generateWithRequired(self.zoneId)
class OZHoodAI(HoodAI.HoodAI): def __init__(self, air): HoodAI.HoodAI.__init__(self, air, ToontownGlobals.OutdoorZone, ToontownGlobals.OutdoorZone) self.timer = None self.picnicTables = [] self.gameTables = [] self.startup() def startup(self): HoodAI.HoodAI.startup(self) self.createTimer() self.createPicnicTables() if simbase.config.GetBool('want-game-tables', True): self.createGameTables() def createTimer(self): self.timer = DistributedTimerAI(self.air) self.timer.generateWithRequired(self.zoneId) def findPicnicTables(self, dnaGroup, zoneId, area, overrideDNAZone=False): picnicTables = [] if isinstance(dnaGroup, DNAGroup) and ('picnic_table' in dnaGroup.getName()): nameInfo = dnaGroup.getName().split('_') for i in xrange(dnaGroup.getNumChildren()): childDnaGroup = dnaGroup.at(i) if 'picnic_table' in childDnaGroup.getName(): pos = childDnaGroup.getPos() hpr = childDnaGroup.getHpr() picnicTable = DistributedPicnicBasketAI( simbase.air, nameInfo[2], pos[0], pos[1], pos[2], hpr[0], hpr[1], hpr[2]) picnicTable.generateWithRequired(zoneId) picnicTables.append(picnicTable) elif isinstance(dnaGroup, DNAVisGroup) and (not overrideDNAZone): zoneId = int(dnaGroup.getName().split(':')[0]) for i in xrange(dnaGroup.getNumChildren()): foundPicnicTables = self.findPicnicTables( dnaGroup.at(i), zoneId, area, overrideDNAZone=overrideDNAZone) picnicTables.extend(foundPicnicTables) return picnicTables def createPicnicTables(self): self.picnicTables = [] for zoneId in self.getZoneTable(): dnaData = self.air.dnaDataMap.get(zoneId, None) if dnaData.getName() == 'root': area = ZoneUtil.getCanonicalZoneId(zoneId) foundPicnicTables = self.findPicnicTables(dnaData, zoneId, area, overrideDNAZone=True) self.picnicTables.extend(foundPicnicTables) for picnicTable in self.picnicTables: picnicTable.start() def findGameTables(self, dnaGroup, zoneId, area, overrideDNAZone=False): gameTables = [] if isinstance(dnaGroup, DNAGroup) and ('game_table' in dnaGroup.getName()): for i in xrange(dnaGroup.getNumChildren()): childDnaGroup = dnaGroup.at(i) if 'game_table' in childDnaGroup.getName(): pos = childDnaGroup.getPos() hpr = childDnaGroup.getHpr() nameInfo = childDnaGroup.getName().split('_') tableIndex = int( childDnaGroup.get_parent().getName().split('_')[-1]) gameTable = DistributedPicnicTableAI.DistributedPicnicTableAI( simbase.air, zoneId, nameInfo[2], pos[0], pos[1], pos[2], hpr[0], hpr[1], hpr[2]) gameTable.setTableIndex(tableIndex) gameTable.generateOtpObject( simbase.air.districtId, zoneId, ['setX', 'setY', 'setZ', 'setH', 'setP', 'setR']) elif isinstance(dnaGroup, DNAVisGroup) and (not overrideDNAZone): zoneId = int(dnaGroup.getName().split(':')[0]) for i in xrange(dnaGroup.getNumChildren()): foundGameTables = self.findGameTables( dnaGroup.at(i), zoneId, area, overrideDNAZone=overrideDNAZone) gameTables.extend(foundGameTables) return gameTables def createGameTables(self): self.gameTables = [] for zoneId in self.getZoneTable(): dnaData = self.air.dnaDataMap.get(zoneId, None) if dnaData.getName() == 'root': area = ZoneUtil.getCanonicalZoneId(zoneId) foundGameTables = self.findGameTables(dnaData, zoneId, area, overrideDNAZone=True) self.gameTables.extend(foundGameTables)
class OZHoodAI(HoodAI.HoodAI): def __init__(self, air): HoodAI.HoodAI.__init__(self, air, ToontownGlobals.OutdoorZone, ToontownGlobals.OutdoorZone) self.timer = None self.picnicTables = [] self.gameTables = [] self.startup() def startup(self): HoodAI.HoodAI.startup(self) self.createTimer() self.createPicnicTables() if simbase.config.GetBool('want-game-tables', True): self.createGameTables() def createTimer(self): self.timer = DistributedTimerAI(self.air) self.timer.generateWithRequired(self.zoneId) def findPicnicTables(self, dnaGroup, zoneId, area, overrideDNAZone=False): picnicTables = [] if isinstance(dnaGroup, DNAGroup) and ('picnic_table' in dnaGroup.getName()): nameInfo = dnaGroup.getName().split('_') for i in xrange(dnaGroup.getNumChildren()): childDnaGroup = dnaGroup.at(i) if 'picnic_table' in childDnaGroup.getName(): pos = childDnaGroup.getPos() hpr = childDnaGroup.getHpr() picnicTable = DistributedPicnicBasketAI( simbase.air, nameInfo[2], pos[0], pos[1], pos[2], hpr[0], hpr[1], hpr[2]) picnicTable.generateWithRequired(zoneId) picnicTables.append(picnicTable) elif isinstance(dnaGroup, DNAVisGroup) and (not overrideDNAZone): zoneId = int(dnaGroup.getName().split(':')[0]) for i in xrange(dnaGroup.getNumChildren()): foundPicnicTables = self.findPicnicTables( dnaGroup.at(i), zoneId, area, overrideDNAZone=overrideDNAZone) picnicTables.extend(foundPicnicTables) return picnicTables def createPicnicTables(self): self.picnicTables = [] for zoneId in self.getZoneTable(): dnaData = self.air.dnaDataMap.get(zoneId, None) if dnaData.getName() == 'root': area = ZoneUtil.getCanonicalZoneId(zoneId) foundPicnicTables = self.findPicnicTables( dnaData, zoneId, area, overrideDNAZone=True) self.picnicTables.extend(foundPicnicTables) for picnicTable in self.picnicTables: picnicTable.start() def findGameTables(self, dnaGroup, zoneId, area, overrideDNAZone=False): gameTables = [] if isinstance(dnaGroup, DNAGroup) and ('game_table' in dnaGroup.getName()): for i in xrange(dnaGroup.getNumChildren()): childDnaGroup = dnaGroup.at(i) if 'game_table' in childDnaGroup.getName(): pos = childDnaGroup.getPos() hpr = childDnaGroup.getHpr() nameInfo = childDnaGroup.getName().split('_') tableIndex = int(childDnaGroup.get_parent().getName().split('_')[-1]) gameTable = DistributedPicnicTableAI.DistributedPicnicTableAI(simbase.air, zoneId, nameInfo[2], pos[0], pos[1], pos[2], hpr[0], hpr[1], hpr[2]) gameTable.setTableIndex(tableIndex) gameTable.generateOtpObject(simbase.air.districtId, zoneId, ['setX', 'setY', 'setZ', 'setH', 'setP', 'setR']) elif isinstance(dnaGroup, DNAVisGroup) and (not overrideDNAZone): zoneId = int(dnaGroup.getName().split(':')[0]) for i in xrange(dnaGroup.getNumChildren()): foundGameTables = self.findGameTables( dnaGroup.at(i), zoneId, area, overrideDNAZone=overrideDNAZone) gameTables.extend(foundGameTables) return gameTables def createGameTables(self): self.gameTables = [] for zoneId in self.getZoneTable(): dnaData = self.air.dnaDataMap.get(zoneId, None) if dnaData.getName() == 'root': area = ZoneUtil.getCanonicalZoneId(zoneId) foundGameTables = self.findGameTables( dnaData, zoneId, area, overrideDNAZone=True) self.gameTables.extend(foundGameTables)