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 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")