def load(self):
     SafeZoneLoader.load(self)
     self.birdSound = map(base.loadSfx, [
         'phase_4/audio/sfx/SZ_TC_bird1.ogg',
         'phase_4/audio/sfx/SZ_TC_bird2.ogg',
         'phase_4/audio/sfx/SZ_TC_bird3.ogg'
     ])
 def unload(self):
     del self.birdSound
     SafeZoneLoader.unload(self)
     self.done = 1
     self.collBase.removeNode()
     if self.geyserTrack:
         self.geyserTrack.finish()
     self.geyserTrack = None
     self.geyserActor.cleanup()
     self.geyserModel.removeNode()
     self.waterfallActor.cleanup()
     self.waterfallModel.removeNode()
     self.bubbles.destroy()
     del self.bubbles
     self.geyserPoolSoundInterval.finish()
     self.geyserPoolSfx.stop()
     self.geyserPoolSfx = None
     self.geyserPoolSoundInterval = None
     self.geyserSoundInterval.finish()
     self.geyserSound.stop()
     self.geyserSoundInterval = None
     self.geyserSound = None
     self.geyserSoundNoToonInterval.finish()
     self.geyserSoundNoToon.stop()
     self.geyserSoundNoToonInterval = None
     self.geyserSoundNoToon = None
 def unload(self):
     del self.birdSound
     SafeZoneLoader.unload(self)
     self.done = 1
     self.collBase.removeNode()
     if self.geyserTrack:
         self.geyserTrack.finish()
     self.geyserTrack = None
     self.geyserActor.cleanup()
     self.geyserModel.removeNode()
     self.waterfallActor.cleanup()
     self.waterfallModel.removeNode()
     self.bubbles.destroy()
     del self.bubbles
     self.geyserPoolSoundInterval.finish()
     self.geyserPoolSfx.stop()
     self.geyserPoolSfx = None
     self.geyserPoolSoundInterval = None
     self.geyserSoundInterval.finish()
     self.geyserSound.stop()
     self.geyserSoundInterval = None
     self.geyserSound = None
     self.geyserSoundNoToonInterval.finish()
     self.geyserSoundNoToon.stop()
     self.geyserSoundNoToonInterval = None
     self.geyserSoundNoToon = None
 def enterPlayground(self, requestStatus):
     self.playgroundClass = GZPlayground
     SafeZoneLoader.enterPlayground(self, requestStatus)
     top = self.geom.find('**/linktunnel_bosshq_10000_DNARoot')
     sign = top.find('**/Sign_5')
     sign.node().setEffect(DecalEffect.make())
     locator = top.find('**/sign_origin')
     signText = DirectGui.OnscreenText(text=TextEncoder.upper(TTLocalizer.BossbotHQ[-1]), font=ToontownGlobals.getSuitFont(), scale=TTLocalizer.GZSZLsignText, fg=(0, 0, 0, 1), mayChange=False, parent=sign)
     signText.setPosHpr(locator, 0, 0, -0.3, 0, 0, 0)
     signText.setDepthWrite(0)
 def __init__(self, hood, parentFSM, doneEvent):
     SafeZoneLoader.__init__(self, hood, parentFSM, doneEvent)
     self.musicFile = 'phase_6/audio/bgm/GZ_SZ.ogg'
     self.activityMusicFile = 'phase_6/audio/bgm/GS_KartShop.ogg'
     self.dnaFile = 'phase_6/dna/golf_zone_sz.pdna'
     self.safeZoneStorageDNAFile = 'phase_6/dna/storage_GZ_sz.pdna'
     del self.fsm
     self.fsm = ClassicFSM.ClassicFSM('SafeZoneLoader', [State.State('start', self.enterStart, self.exitStart, ['quietZone', 'playground', 'toonInterior']),
      State.State('playground', self.enterPlayground, self.exitPlayground, ['quietZone', 'golfcourse']),
      State.State('toonInterior', self.enterToonInterior, self.exitToonInterior, ['quietZone']),
      State.State('quietZone', self.enterQuietZone, self.exitQuietZone, ['playground', 'toonInterior', 'golfcourse']),
      State.State('golfcourse', self.enterGolfCourse, self.exitGolfCourse, ['quietZone', 'playground']),
      State.State('final', self.enterFinal, self.exitFinal, ['start'])], 'start', 'final')
 def __init__(self, hood, parentFSM, doneEvent):
     SafeZoneLoader.__init__(self, hood, parentFSM, doneEvent)
     self.musicFile = "phase_6/audio/bgm/OZ_SZ.ogg"
     self.activityMusicFile = "phase_6/audio/bgm/GS_KartShop.ogg"
     self.dnaFile = "phase_6/dna/outdoor_zone_sz.pdna"
     self.safeZoneStorageDNAFile = "phase_6/dna/storage_OZ_sz.pdna"
     self.__toonTracks = {}
     del self.fsm
     self.fsm = ClassicFSM.ClassicFSM(
         "SafeZoneLoader",
         [
             State.State("start", self.enterStart, self.exitStart, ["quietZone", "playground", "toonInterior"]),
             State.State("playground", self.enterPlayground, self.exitPlayground, ["quietZone", "golfcourse"]),
             State.State("toonInterior", self.enterToonInterior, self.exitToonInterior, ["quietZone"]),
             State.State(
                 "quietZone", self.enterQuietZone, self.exitQuietZone, ["playground", "toonInterior", "golfcourse"]
             ),
             State.State("golfcourse", self.enterGolfCourse, self.exitGolfCourse, ["quietZone", "playground"]),
             State.State("final", self.enterFinal, self.exitFinal, ["start"]),
         ],
         "start",
         "final",
     )
 def exitPlayground(self):
     taskMgr.remove('titleText')
     self.hood.hideTitleText()
     SafeZoneLoader.exitPlayground(self)
     self.playgroundClass = None
     return
 def unload(self):
     del self.birdSound
     SafeZoneLoader.unload(self)
 def load(self):
     SafeZoneLoader.load(self)
     self.birdSound = map(base.loadSfx, ['phase_4/audio/sfx/SZ_TC_bird1.ogg', 'phase_4/audio/sfx/SZ_TC_bird2.ogg', 'phase_4/audio/sfx/SZ_TC_bird3.ogg'])
 def enterPlayground(self, requestStatus):
     self.playgroundClass = GSPlayground
     SafeZoneLoader.enterPlayground(self, requestStatus)
 def load(self):
     self.done = 0
     self.geyserTrack = None
     SafeZoneLoader.load(self)
     self.birdSound = map(base.loadSfx, [
         'phase_4/audio/sfx/SZ_TC_bird1.ogg',
         'phase_4/audio/sfx/SZ_TC_bird2.ogg',
         'phase_4/audio/sfx/SZ_TC_bird3.ogg'
     ])
     self.underwaterSound = base.loadSfx(
         'phase_4/audio/sfx/AV_ambient_water.ogg')
     self.swimSound = base.loadSfx(
         'phase_4/audio/sfx/AV_swim_single_stroke.ogg')
     self.submergeSound = base.loadSfx(
         'phase_5.5/audio/sfx/AV_jump_in_water.ogg')
     geyserPlacer = self.geom.find('**/geyser*')
     waterfallPlacer = self.geom.find('**/waterfall*')
     binMgr = CullBinManager.getGlobalPtr()
     binMgr.addBin('water', CullBinManager.BTFixed, 29)
     pool = self.geom.find('**/pPlane5*')
     pool.setTransparency(1)
     pool.setColorScale(1.0, 1.0, 1.0, 1.0)
     pool.setBin('water', 50, 1)
     self.geyserModel = loader.loadModel(
         'phase_6/models/golf/golf_geyser_model')
     self.geyserSound = loader.loadSfx('phase_6/audio/sfx/OZ_Geyser.ogg')
     self.geyserSoundInterval = SoundInterval(self.geyserSound,
                                              node=geyserPlacer,
                                              listenerNode=base.camera,
                                              seamlessLoop=False,
                                              volume=1.0,
                                              cutOff=120)
     self.geyserSoundNoToon = loader.loadSfx(
         'phase_6/audio/sfx/OZ_Geyser_No_Toon.ogg')
     self.geyserSoundNoToonInterval = SoundInterval(
         self.geyserSoundNoToon,
         node=geyserPlacer,
         listenerNode=base.camera,
         seamlessLoop=False,
         volume=1.0,
         cutOff=120)
     if self.geyserModel:
         self.geyserActor = Actor.Actor(self.geyserModel)
         self.geyserActor.loadAnims(
             {'idle': 'phase_6/models/golf/golf_geyser'})
         self.geyserActor.reparentTo(render)
         self.geyserActor.setPlayRate(8.6, 'idle')
         self.geyserActor.loop('idle')
         self.geyserActor.setDepthWrite(0)
         self.geyserActor.setTwoSided(True, 11)
         self.geyserActor.setColorScale(1.0, 1.0, 1.0, 1.0)
         self.geyserActor.setBin('fixed', 0)
         mesh = self.geyserActor.find('**/mesh_tide1')
         joint = self.geyserActor.find('**/uvj_WakeWhiteTide1')
         mesh.setTexProjector(mesh.findTextureStage('default'), joint,
                              self.geyserActor)
         self.geyserActor.setPos(geyserPlacer.getPos())
         self.geyserActor.setZ(geyserPlacer.getZ() - 100.0)
         self.geyserPos = geyserPlacer.getPos()
         self.geyserPlacer = geyserPlacer
         self.startGeyser()
         base.sfxPlayer.setCutoffDistance(160)
         self.geyserPoolSfx = loader.loadSfx(
             'phase_6/audio/sfx/OZ_Geyser_BuildUp_Loop.ogg')
         self.geyserPoolSoundInterval = SoundInterval(
             self.geyserPoolSfx,
             node=self.geyserPlacer,
             listenerNode=base.camera,
             seamlessLoop=True,
             volume=1.0,
             cutOff=120)
         self.geyserPoolSoundInterval.loop()
         self.bubbles = Bubbles.Bubbles(self.geyserPlacer, render)
         self.bubbles.renderParent.setDepthWrite(0)
         self.bubbles.start()
     self.collBase = render.attachNewNode('collisionBase')
     self.geyserCollSphere = CollisionSphere(0, 0, 0, 7.5)
     self.geyserCollSphere.setTangible(1)
     self.geyserCollNode = CollisionNode('barrelSphere')
     self.geyserCollNode.setIntoCollideMask(OTPGlobals.WallBitmask)
     self.geyserCollNode.addSolid(self.geyserCollSphere)
     self.geyserNodePath = self.collBase.attachNewNode(self.geyserCollNode)
     self.geyserNodePath.setPos(self.geyserPos[0], self.geyserPos[1],
                                self.geyserPos[2] - 100.0)
     self.waterfallModel = loader.loadModel(
         'phase_6/models/golf/golf_waterfall_model')
     if self.waterfallModel:
         self.waterfallActor = Actor.Actor(self.waterfallModel)
         self.waterfallActor.loadAnims(
             {'idle': 'phase_6/models/golf/golf_waterfall'})
         self.waterfallActor.reparentTo(render)
         self.waterfallActor.setPlayRate(3.5, 'idle')
         self.waterfallActor.loop('idle')
         mesh = self.waterfallActor.find('**/mesh_tide1')
         joint = self.waterfallActor.find('**/uvj_WakeWhiteTide1')
         mesh.setTexProjector(mesh.findTextureStage('default'), joint,
                              self.waterfallActor)
     self.waterfallActor.setPos(waterfallPlacer.getPos())
     self.accept('clientLogout', self._handleLogout)
 def enterPlayground(self, requestStatus):
     self.playgroundClass = OZPlayground
     SafeZoneLoader.enterPlayground(self, requestStatus)
 def exit(self):
     self.clearToonTracks()
     SafeZoneLoader.exit(self)
     self.ignore('clientLogout')
 def load(self):
     self.done = 0
     self.geyserTrack = None
     SafeZoneLoader.load(self)
     self.birdSound = map(
         base.loadSfx,
         [
             "phase_4/audio/sfx/SZ_TC_bird1.ogg",
             "phase_4/audio/sfx/SZ_TC_bird2.ogg",
             "phase_4/audio/sfx/SZ_TC_bird3.ogg",
         ],
     )
     self.underwaterSound = base.loadSfx("phase_4/audio/sfx/AV_ambient_water.ogg")
     self.swimSound = base.loadSfx("phase_4/audio/sfx/AV_swim_single_stroke.ogg")
     self.submergeSound = base.loadSfx("phase_5.5/audio/sfx/AV_jump_in_water.ogg")
     geyserPlacer = self.geom.find("**/geyser*")
     waterfallPlacer = self.geom.find("**/waterfall*")
     binMgr = CullBinManager.getGlobalPtr()
     binMgr.addBin("water", CullBinManager.BTFixed, 29)
     pool = self.geom.find("**/pPlane5*")
     pool.setTransparency(1)
     pool.setColorScale(1.0, 1.0, 1.0, 1.0)
     pool.setBin("water", 50, 1)
     self.geyserModel = loader.loadModel("phase_6/models/golf/golf_geyser_model")
     self.geyserSound = loader.loadSfx("phase_6/audio/sfx/OZ_Geyser.ogg")
     self.geyserSoundInterval = SoundInterval(
         self.geyserSound, node=geyserPlacer, listenerNode=base.camera, seamlessLoop=False, volume=1.0, cutOff=120
     )
     self.geyserSoundNoToon = loader.loadSfx("phase_6/audio/sfx/OZ_Geyser_No_Toon.ogg")
     self.geyserSoundNoToonInterval = SoundInterval(
         self.geyserSoundNoToon,
         node=geyserPlacer,
         listenerNode=base.camera,
         seamlessLoop=False,
         volume=1.0,
         cutOff=120,
     )
     if self.geyserModel:
         self.geyserActor = Actor.Actor(self.geyserModel)
         self.geyserActor.loadAnims({"idle": "phase_6/models/golf/golf_geyser"})
         self.geyserActor.reparentTo(render)
         self.geyserActor.setPlayRate(8.6, "idle")
         self.geyserActor.loop("idle")
         self.geyserActor.setDepthWrite(0)
         self.geyserActor.setTwoSided(True, 11)
         self.geyserActor.setColorScale(1.0, 1.0, 1.0, 1.0)
         self.geyserActor.setBin("fixed", 0)
         mesh = self.geyserActor.find("**/mesh_tide1")
         joint = self.geyserActor.find("**/uvj_WakeWhiteTide1")
         mesh.setTexProjector(mesh.findTextureStage("default"), joint, self.geyserActor)
         self.geyserActor.setPos(geyserPlacer.getPos())
         self.geyserActor.setZ(geyserPlacer.getZ() - 100.0)
         self.geyserPos = geyserPlacer.getPos()
         self.geyserPlacer = geyserPlacer
         self.startGeyser()
         base.sfxPlayer.setCutoffDistance(160)
         self.geyserPoolSfx = loader.loadSfx("phase_6/audio/sfx/OZ_Geyser_BuildUp_Loop.ogg")
         self.geyserPoolSoundInterval = SoundInterval(
             self.geyserPoolSfx,
             node=self.geyserPlacer,
             listenerNode=base.camera,
             seamlessLoop=True,
             volume=1.0,
             cutOff=120,
         )
         self.geyserPoolSoundInterval.loop()
         self.bubbles = Bubbles.Bubbles(self.geyserPlacer, render)
         self.bubbles.renderParent.setDepthWrite(0)
         self.bubbles.start()
     self.collBase = render.attachNewNode("collisionBase")
     self.geyserCollSphere = CollisionSphere(0, 0, 0, 7.5)
     self.geyserCollSphere.setTangible(1)
     self.geyserCollNode = CollisionNode("barrelSphere")
     self.geyserCollNode.setIntoCollideMask(OTPGlobals.WallBitmask)
     self.geyserCollNode.addSolid(self.geyserCollSphere)
     self.geyserNodePath = self.collBase.attachNewNode(self.geyserCollNode)
     self.geyserNodePath.setPos(self.geyserPos[0], self.geyserPos[1], self.geyserPos[2] - 100.0)
     self.waterfallModel = loader.loadModel("phase_6/models/golf/golf_waterfall_model")
     if self.waterfallModel:
         self.waterfallActor = Actor.Actor(self.waterfallModel)
         self.waterfallActor.loadAnims({"idle": "phase_6/models/golf/golf_waterfall"})
         self.waterfallActor.reparentTo(render)
         self.waterfallActor.setPlayRate(3.5, "idle")
         self.waterfallActor.loop("idle")
         mesh = self.waterfallActor.find("**/mesh_tide1")
         joint = self.waterfallActor.find("**/uvj_WakeWhiteTide1")
         mesh.setTexProjector(mesh.findTextureStage("default"), joint, self.waterfallActor)
     self.waterfallActor.setPos(waterfallPlacer.getPos())
     self.accept("clientLogout", self._handleLogout)
 def exit(self):
     self.clearToonTracks()
     SafeZoneLoader.exit(self)
     self.ignore("clientLogout")