Merge SnowUtil and SkyUtil into SZUtil, fix mayChange spam in log because of the map, fix the various issues with the underwater fog.

This commit is contained in:
John 2015-08-14 17:23:45 +03:00
parent 699c54b40d
commit d686796023
13 changed files with 88 additions and 87 deletions

View file

@ -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()

View file

@ -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()

View file

@ -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()

View file

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

View file

@ -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()

View file

@ -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

View file

@ -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

View file

@ -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')

View file

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

View file

@ -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')

View file

@ -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

View file

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

View file

@ -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()