from direct.directnotify import DirectNotifyGlobal from . import HoodDataAI from toontown.toonbase import ToontownGlobals from toontown.safezone import DistributedTrolleyAI from toontown.safezone import TTTreasurePlannerAI from toontown.classicchars import DistributedMickeyAI from toontown.safezone import ButterflyGlobals from direct.task import Task class TTHoodDataAI(HoodDataAI.HoodDataAI): notify = DirectNotifyGlobal.directNotify.newCategory('TTHoodDataAI') def __init__(self, air, zoneId=None): hoodId = ToontownGlobals.ToontownCentral if zoneId == None: zoneId = hoodId HoodDataAI.HoodDataAI.__init__(self, air, zoneId, hoodId) return def startup(self): HoodDataAI.HoodDataAI.startup(self) trolley = DistributedTrolleyAI.DistributedTrolleyAI(self.air) trolley.generateWithRequired(self.zoneId) trolley.start() self.addDistObj(trolley) self.trolley = trolley self.treasurePlanner = TTTreasurePlannerAI.TTTreasurePlannerAI(self.zoneId) self.treasurePlanner.start() self.classicChar = DistributedMickeyAI.DistributedMickeyAI(self.air) self.classicChar.generateWithRequired(self.zoneId) self.classicChar.start() self.addDistObj(self.classicChar) self.createButterflies(ButterflyGlobals.TTC) if simbase.blinkTrolley: taskMgr.doMethodLater(0.5, self._deleteTrolley, 'deleteTrolley') messenger.send('TTHoodSpawned', [self]) def shutdown(self): HoodDataAI.HoodDataAI.shutdown(self) messenger.send('TTHoodDestroyed', [self]) def _deleteTrolley(self, task): self.trolley.requestDelete() taskMgr.doMethodLater(0.5, self._createTrolley, 'createTrolley') return Task.done def _createTrolley(self, task): trolley = DistributedTrolleyAI.DistributedTrolleyAI(self.air) trolley.generateWithRequired(self.zoneId) trolley.start() self.trolley = trolley taskMgr.doMethodLater(0.5, self._deleteTrolley, 'deleteTrolley') return Task.done