diff --git a/toontown/estate/Estate.py b/toontown/estate/Estate.py index 7087b9e6..160ab258 100755 --- a/toontown/estate/Estate.py +++ b/toontown/estate/Estate.py @@ -12,9 +12,9 @@ from toontown.toonbase import TTLocalizer import random from direct.showbase import PythonUtil from toontown.hood import Place -from toontown.hood import SkyUtil from toontown.pets import PetTutorial from otp.distributed.TelemetryLimiter import RotationLimitToH, TLGatherAllAvs, TLNull +from toontown.safezone import SZUtil import HouseGlobals class Estate(Place.Place): @@ -356,10 +356,10 @@ class Estate(Place.Place): def __setUnderwaterFog(self): if base.wantFog: - self.fog.setColor(0.245, 0.322, 0.5) self.fog.setLinearRange(0.1, 100.0) render.setFog(self.fog) self.loader.hood.sky.setFog(self.fog) + SZUtil.startUnderwaterFog() def __setWhiteFog(self): if base.wantFog: @@ -367,9 +367,11 @@ class Estate(Place.Place): self.fog.setLinearRange(0.0, 400.0) render.setFog(self.fog) self.loader.hood.sky.setFog(self.fog) + SZUtil.stopUnderwaterFog() def __setFaintFog(self): if base.wantFog: self.fog.setColor(Vec4(0.8, 0.8, 0.8, 1.0)) self.fog.setLinearRange(0.0, 700.0) render.setFog(self.fog) + SZUtil.stopUnderwaterFog() diff --git a/toontown/hood/EstateHood.py b/toontown/hood/EstateHood.py index 7ebd888d..3fdde689 100755 --- a/toontown/hood/EstateHood.py +++ b/toontown/hood/EstateHood.py @@ -5,13 +5,12 @@ from toontown.distributed.ToontownMsgTypes import * from direct.fsm import ClassicFSM, State from toontown.minigame import Purchase from otp.avatar import DistributedAvatar -from toontown.hood import SkyUtil from direct.task.Task import Task from toontown.hood.Hood import Hood from toontown.estate.EstateLoader import EstateLoader from toontown.estate import HouseGlobals from toontown.hood import ZoneUtil - +from toontown.safezone import SZUtil class EstateHood(Hood): notify = directNotify.newCategory('EstateHood') @@ -113,12 +112,12 @@ class EstateHood(Hood): self.popupInfo.reparentTo(hidden) def skyTrack(self, task): - return SkyUtil.cloudSkyTrack(task) + return SZUtil.cloudSkyTrack(task) def startSky(self): if not self.sky.getTag('sky') == 'Regular': self.endSpookySky() - SkyUtil.startCloudSky(self) + SZUtil.startCloudSky(self) if base.cloudPlatformsEnabled: self.loader.startCloudPlatforms() diff --git a/toontown/hood/PartyHood.py b/toontown/hood/PartyHood.py index b46c9bc3..669644b1 100755 --- a/toontown/hood/PartyHood.py +++ b/toontown/hood/PartyHood.py @@ -7,11 +7,9 @@ from toontown.toonbase.ToonBaseGlobal import * from toontown.toonbase.ToontownGlobals import * from toontown.distributed.ToontownMsgTypes import * from toontown.minigame import Purchase -from toontown.parties import PartyLoader -from toontown.parties import PartyGlobals -from toontown.hood import SkyUtil -from toontown.hood import Hood -from toontown.hood import ZoneUtil +from toontown.parties import PartyLoader, PartyGlobals +from toontown.hood import Hood, ZoneUtil +from toontown.safezone import SZUtil class PartyHood(Hood.Hood): notify = DirectNotifyGlobal.directNotify.newCategory('PartyHood') @@ -30,7 +28,6 @@ class PartyHood(Hood.Hood): self.holidayStorageDNADict = {CHRISTMAS: ['phase_5.5/dna/winter_storage_estate.pdna']} self.skyFile = 'phase_3.5/models/props/TT_sky' self.popupInfo = None - return def load(self): Hood.Hood.load(self) @@ -107,10 +104,10 @@ class PartyHood(Hood.Hood): pass def skyTrack(self, task): - return SkyUtil.cloudSkyTrack(task) + return SZUtil.cloudSkyTrack(task) def startSky(self): - SkyUtil.startCloudSky(self) + SZUtil.startCloudSky(self) if base.cloudPlatformsEnabled: self.loader.startCloudPlatforms() diff --git a/toontown/hood/SkyUtil.py b/toontown/hood/SkyUtil.py deleted file mode 100755 index 012fc4ef..00000000 --- a/toontown/hood/SkyUtil.py +++ /dev/null @@ -1,37 +0,0 @@ -from pandac.PandaModules import CompassEffect, NodePath -from direct.task.Task import Task - - -notify = directNotify.newCategory('SkyUtil') - - -def cloudSkyTrack(task): - task.h += globalClock.getDt() * 0.25 - if task.cloud1.isEmpty() or task.cloud2.isEmpty(): - notify.warning("Couldn't find clouds!") - return Task.done - - task.cloud1.setH(task.h) - task.cloud2.setH(-task.h * 0.8) - return Task.cont - - -def startCloudSky(hood, parent=camera, effects=CompassEffect.PRot | CompassEffect.PZ): - hood.sky.reparentTo(parent) - hood.sky.setDepthTest(0) - hood.sky.setDepthWrite(0) - hood.sky.setBin('background', 100) - hood.sky.find('**/Sky').reparentTo(hood.sky, -1) - hood.sky.reparentTo(parent) - hood.sky.setZ(0.0) - hood.sky.setHpr(0.0, 0.0, 0.0) - ce = CompassEffect.make(NodePath(), effects) - hood.sky.node().setEffect(ce) - skyTrackTask = Task(hood.skyTrack) - skyTrackTask.h = 0 - skyTrackTask.cloud1 = hood.sky.find('**/cloud1') - skyTrackTask.cloud2 = hood.sky.find('**/cloud2') - if not skyTrackTask.cloud1.isEmpty() and not skyTrackTask.cloud2.isEmpty(): - taskMgr.add(skyTrackTask, 'skyTrack') - else: - notify.warning("Couldn't find clouds!") diff --git a/toontown/hood/ToonHood.py b/toontown/hood/ToonHood.py index 6c43b495..c8c5c81a 100755 --- a/toontown/hood/ToonHood.py +++ b/toontown/hood/ToonHood.py @@ -9,7 +9,7 @@ from toontown.hood.Hood import Hood from toontown.building import SuitInterior from toontown.cogdominium import CogdoInterior from toontown.toon.Toon import teleportDebug -from toontown.hood import SkyUtil +from toontown.safezone import SZUtil class ToonHood(Hood): notify = directNotify.newCategory('ToonHood') @@ -208,12 +208,12 @@ class ToonHood(Hood): pass def skyTrack(self, task): - return SkyUtil.cloudSkyTrack(task) + return SZUtil.cloudSkyTrack(task) def startSky(self): if not self.sky.getTag('sky') == 'Regular': self.endSpookySky() - SkyUtil.startCloudSky(self) + SZUtil.startCloudSky(self) def startSpookySky(self): if hasattr(self, 'sky') and self.sky: @@ -237,10 +237,10 @@ class ToonHood(Hood): def setUnderwaterFog(self): if base.wantFog: - self.fog.setColor(0.245, 0.322, 0.5) self.fog.setLinearRange(0.1, 100.0) render.setFog(self.fog) self.sky.setFog(self.fog) + SZUtil.startUnderwaterFog() def setWhiteFog(self): if base.wantFog: @@ -250,8 +250,10 @@ class ToonHood(Hood): render.setFog(self.fog) self.sky.clearFog() self.sky.setFog(self.fog) + SZUtil.stopUnderwaterFog() def setNoFog(self): if base.wantFog: render.clearFog() self.sky.clearFog() + SZUtil.stopUnderwaterFog() diff --git a/toontown/minigame/DistributedTagGame.py b/toontown/minigame/DistributedTagGame.py index b9dd7197..83495aa1 100755 --- a/toontown/minigame/DistributedTagGame.py +++ b/toontown/minigame/DistributedTagGame.py @@ -4,7 +4,7 @@ from DistributedMinigame import * from direct.interval.IntervalGlobal import * from direct.fsm import ClassicFSM, State from direct.fsm import State -from toontown.safezone import Walk, SnowUtil +from toontown.safezone import Walk, SZUtil from toontown.toonbase import ToontownTimer from direct.gui import OnscreenText import MinigameAvatarScorePanel @@ -54,7 +54,7 @@ class DistributedTagGame(DistributedMinigame): self.IT = None if TagGameGlobals.isSnowHood(safezoneId): - self.snow, self.snowRender = SnowUtil.createSnow(self.ground) + self.snow, self.snowRender = SZUtil.createSnow(self.ground) return diff --git a/toontown/parties/Party.py b/toontown/parties/Party.py index 0a898b45..69d15adc 100755 --- a/toontown/parties/Party.py +++ b/toontown/parties/Party.py @@ -12,7 +12,6 @@ import random from direct.showbase import PythonUtil from otp.distributed.TelemetryLimiter import RotationLimitToH, TLGatherAllAvs, TLNull from toontown.hood import Place -from toontown.hood import SkyUtil from toontown.parties import PartyPlanner from toontown.parties.DistributedParty import DistributedParty diff --git a/toontown/racing/DistributedRace.py b/toontown/racing/DistributedRace.py index 7293057e..8a55d038 100755 --- a/toontown/racing/DistributedRace.py +++ b/toontown/racing/DistributedRace.py @@ -19,7 +19,6 @@ from math import sqrt from RaceGUI import RaceGUI import RaceGlobals from direct.task.Task import Task -from toontown.hood import SkyUtil from direct.fsm import ClassicFSM, State from direct.fsm import State from toontown.battle.BattleProps import * @@ -29,6 +28,7 @@ from toontown.racing import EffectManager from toontown.racing import PiejectileManager from toontown.dna.DNAParser import * from otp.ai.MagicWordGlobal import * +from toontown.safezone import SZUtil class DistributedRace(DistributedObject.DistributedObject): notify = DirectNotifyGlobal.directNotify.newCategory('DistributedRace') @@ -1095,13 +1095,13 @@ class DistributedRace(DistributedObject.DistributedObject): self.gui.racerLeft(avId, unexpected=False) def skyTrack(self, task): - return SkyUtil.cloudSkyTrack(task) + return SZUtil.cloudSkyTrack(task) def startSky(self): if self.hasFog: - SkyUtil.startCloudSky(self, parent=self.dummyNode, effects=CompassEffect.PRot) + SZUtil.startCloudSky(self, parent=self.dummyNode, effects=CompassEffect.PRot) else: - SkyUtil.startCloudSky(self, parent=render) + SZUtil.startCloudSky(self, parent=render) def stopSky(self): taskMgr.remove('skyTrack') diff --git a/toontown/safezone/BRSafeZoneLoader.py b/toontown/safezone/BRSafeZoneLoader.py index 01e8007f..ccff4642 100755 --- a/toontown/safezone/BRSafeZoneLoader.py +++ b/toontown/safezone/BRSafeZoneLoader.py @@ -1,6 +1,6 @@ from toontown.safezone import BRPlayground from toontown.safezone import SafeZoneLoader -import SnowUtil +import SZUtil class BRSafeZoneLoader(SafeZoneLoader.SafeZoneLoader): def __init__(self, hood, parentFSM, doneEvent): @@ -16,7 +16,7 @@ class BRSafeZoneLoader(SafeZoneLoader.SafeZoneLoader): self.windSound = map(base.loadSfx, ['phase_8/audio/sfx/SZ_TB_wind_1.ogg', 'phase_8/audio/sfx/SZ_TB_wind_2.ogg', 'phase_8/audio/sfx/SZ_TB_wind_3.ogg']) - self.snow, self.snowRender = SnowUtil.createSnow(self.geom) + self.snow, self.snowRender = SZUtil.createSnow(self.geom) def unload(self): SafeZoneLoader.SafeZoneLoader.unload(self) diff --git a/toontown/safezone/SZUtil.py b/toontown/safezone/SZUtil.py new file mode 100644 index 00000000..3a63ad86 --- /dev/null +++ b/toontown/safezone/SZUtil.py @@ -0,0 +1,60 @@ +from panda3d.core import * +from direct.task.Task import Task +from toontown.battle import BattleParticles +import colorsys + +def createSnow(geom): + snow = BattleParticles.loadParticleFile('snowdisk.ptf') + snow.setPos(0, 0, 5) + snowRender = geom.attachNewNode('snowRender') + snowRender.setDepthWrite(0) + snowRender.setBin('fixed', 1) + + return snow, snowRender + +def startUnderwaterFog(): + if not base.wantFog: + return + + stopUnderwaterFog() + taskMgr.add(__updateUnderwaterFog, 'underwaterFog') + +def stopUnderwaterFog(): + taskMgr.remove('underwaterFog') + +def __updateUnderwaterFog(task): + fog = base.cr.playGame.hood.fog if hasattr(base.cr.playGame.hood, 'fog') else base.cr.playGame.place.fog + saturation = min(max((base.localAvatar.getZ() / -12.3), 0.51), 1) + fog.setColor(*colorsys.hsv_to_rgb(0.616, saturation, 0.5)) + return task.cont + +def cloudSkyTrack(task): + task.h += globalClock.getDt() * 0.25 + + if task.cloud1.isEmpty() or task.cloud2.isEmpty(): + return + + task.cloud1.setH(task.h) + task.cloud2.setH(-task.h * 0.8) + return task.cont + +def startCloudSky(hood, parent=camera, effects=CompassEffect.PRot | CompassEffect.PZ): + hood.sky.reparentTo(parent) + hood.sky.setDepthTest(0) + hood.sky.setDepthWrite(0) + hood.sky.setBin('background', 100) + hood.sky.find('**/Sky').reparentTo(hood.sky, -1) + hood.sky.reparentTo(parent) + hood.sky.setZ(0.0) + hood.sky.setHpr(0.0, 0.0, 0.0) + + ce = CompassEffect.make(NodePath(), effects) + + hood.sky.node().setEffect(ce) + skyTrackTask = Task(hood.skyTrack) + skyTrackTask.h = 0 + skyTrackTask.cloud1 = hood.sky.find('**/cloud1') + skyTrackTask.cloud2 = hood.sky.find('**/cloud2') + + if not skyTrackTask.cloud1.isEmpty() and not skyTrackTask.cloud2.isEmpty(): + taskMgr.add(skyTrackTask, 'skyTrack') \ No newline at end of file diff --git a/toontown/safezone/SnowUtil.py b/toontown/safezone/SnowUtil.py deleted file mode 100644 index 6b73eee2..00000000 --- a/toontown/safezone/SnowUtil.py +++ /dev/null @@ -1,10 +0,0 @@ -from toontown.battle import BattleParticles - -def createSnow(geom): - snow = BattleParticles.loadParticleFile('snowdisk.ptf') - snow.setPos(0, 0, 5) - snowRender = geom.attachNewNode('snowRender') - snowRender.setDepthWrite(0) - snowRender.setBin('fixed', 1) - - return snow, snowRender diff --git a/toontown/safezone/Walk.py b/toontown/safezone/Walk.py index bbd4c0aa..d61fcc18 100755 --- a/toontown/safezone/Walk.py +++ b/toontown/safezone/Walk.py @@ -1,9 +1,6 @@ from panda3d.core import * -from direct.task.Task import Task from direct.directnotify import DirectNotifyGlobal -from direct.fsm import StateData -from direct.fsm import ClassicFSM, State -import colorsys +from direct.fsm import ClassicFSM, StateData, State class Walk(StateData.StateData): notify = DirectNotifyGlobal.directNotify.newCategory('Walk') @@ -91,13 +88,7 @@ class Walk(StateData.StateData): self.swimSoundPlaying = 0 self.swimSound.stop() - saturation = min(max((base.localAvatar.getZ() / -12.3), 0.51), 1) - self.getFog().setColor(*colorsys.hsv_to_rgb(0.616, saturation, 0.5)) - - return Task.cont - - def getFog(self): - return base.cr.playGame.hood.fog if hasattr(base.cr.playGame.hood, 'fog') else base.cr.playGame.place.fog + return task.cont def enterSlowWalking(self): self.accept(base.localAvatar.uniqueName('positiveHP'), self.__handlePositiveHP) diff --git a/toontown/shtiker/MapPage.py b/toontown/shtiker/MapPage.py index cc5f4c0e..835e55c2 100755 --- a/toontown/shtiker/MapPage.py +++ b/toontown/shtiker/MapPage.py @@ -75,7 +75,6 @@ class MapPage(ShtikerPage.ShtikerPage): text=TTLocalizer.MapPageBackToPlayground, text_scale=TTLocalizer.MPsafeZoneButton, text_pos=(0, -0.02), - textMayChange=0, command=self.backToSafeZone) self.goHomeButton = DirectButton( parent=self.map, @@ -86,7 +85,6 @@ class MapPage(ShtikerPage.ShtikerPage): text=TTLocalizer.MapPageGoHome, text_scale=TTLocalizer.MPgoHomeButton, text_pos=(0, -0.02), - textMayChange=0, command=self.goHome) self.goHomeButton.hide() guiButton.removeNode()