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 import random
from direct.showbase import PythonUtil from direct.showbase import PythonUtil
from toontown.hood import Place from toontown.hood import Place
from toontown.hood import SkyUtil
from toontown.pets import PetTutorial from toontown.pets import PetTutorial
from otp.distributed.TelemetryLimiter import RotationLimitToH, TLGatherAllAvs, TLNull from otp.distributed.TelemetryLimiter import RotationLimitToH, TLGatherAllAvs, TLNull
from toontown.safezone import SZUtil
import HouseGlobals import HouseGlobals
class Estate(Place.Place): class Estate(Place.Place):
@ -356,10 +356,10 @@ class Estate(Place.Place):
def __setUnderwaterFog(self): def __setUnderwaterFog(self):
if base.wantFog: if base.wantFog:
self.fog.setColor(0.245, 0.322, 0.5)
self.fog.setLinearRange(0.1, 100.0) self.fog.setLinearRange(0.1, 100.0)
render.setFog(self.fog) render.setFog(self.fog)
self.loader.hood.sky.setFog(self.fog) self.loader.hood.sky.setFog(self.fog)
SZUtil.startUnderwaterFog()
def __setWhiteFog(self): def __setWhiteFog(self):
if base.wantFog: if base.wantFog:
@ -367,9 +367,11 @@ class Estate(Place.Place):
self.fog.setLinearRange(0.0, 400.0) self.fog.setLinearRange(0.0, 400.0)
render.setFog(self.fog) render.setFog(self.fog)
self.loader.hood.sky.setFog(self.fog) self.loader.hood.sky.setFog(self.fog)
SZUtil.stopUnderwaterFog()
def __setFaintFog(self): def __setFaintFog(self):
if base.wantFog: if base.wantFog:
self.fog.setColor(Vec4(0.8, 0.8, 0.8, 1.0)) self.fog.setColor(Vec4(0.8, 0.8, 0.8, 1.0))
self.fog.setLinearRange(0.0, 700.0) self.fog.setLinearRange(0.0, 700.0)
render.setFog(self.fog) render.setFog(self.fog)
SZUtil.stopUnderwaterFog()

View file

@ -5,13 +5,12 @@ from toontown.distributed.ToontownMsgTypes import *
from direct.fsm import ClassicFSM, State from direct.fsm import ClassicFSM, State
from toontown.minigame import Purchase from toontown.minigame import Purchase
from otp.avatar import DistributedAvatar from otp.avatar import DistributedAvatar
from toontown.hood import SkyUtil
from direct.task.Task import Task from direct.task.Task import Task
from toontown.hood.Hood import Hood from toontown.hood.Hood import Hood
from toontown.estate.EstateLoader import EstateLoader from toontown.estate.EstateLoader import EstateLoader
from toontown.estate import HouseGlobals from toontown.estate import HouseGlobals
from toontown.hood import ZoneUtil from toontown.hood import ZoneUtil
from toontown.safezone import SZUtil
class EstateHood(Hood): class EstateHood(Hood):
notify = directNotify.newCategory('EstateHood') notify = directNotify.newCategory('EstateHood')
@ -113,12 +112,12 @@ class EstateHood(Hood):
self.popupInfo.reparentTo(hidden) self.popupInfo.reparentTo(hidden)
def skyTrack(self, task): def skyTrack(self, task):
return SkyUtil.cloudSkyTrack(task) return SZUtil.cloudSkyTrack(task)
def startSky(self): def startSky(self):
if not self.sky.getTag('sky') == 'Regular': if not self.sky.getTag('sky') == 'Regular':
self.endSpookySky() self.endSpookySky()
SkyUtil.startCloudSky(self) SZUtil.startCloudSky(self)
if base.cloudPlatformsEnabled: if base.cloudPlatformsEnabled:
self.loader.startCloudPlatforms() self.loader.startCloudPlatforms()

View file

@ -7,11 +7,9 @@ from toontown.toonbase.ToonBaseGlobal import *
from toontown.toonbase.ToontownGlobals import * from toontown.toonbase.ToontownGlobals import *
from toontown.distributed.ToontownMsgTypes import * from toontown.distributed.ToontownMsgTypes import *
from toontown.minigame import Purchase from toontown.minigame import Purchase
from toontown.parties import PartyLoader from toontown.parties import PartyLoader, PartyGlobals
from toontown.parties import PartyGlobals from toontown.hood import Hood, ZoneUtil
from toontown.hood import SkyUtil from toontown.safezone import SZUtil
from toontown.hood import Hood
from toontown.hood import ZoneUtil
class PartyHood(Hood.Hood): class PartyHood(Hood.Hood):
notify = DirectNotifyGlobal.directNotify.newCategory('PartyHood') 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.holidayStorageDNADict = {CHRISTMAS: ['phase_5.5/dna/winter_storage_estate.pdna']}
self.skyFile = 'phase_3.5/models/props/TT_sky' self.skyFile = 'phase_3.5/models/props/TT_sky'
self.popupInfo = None self.popupInfo = None
return
def load(self): def load(self):
Hood.Hood.load(self) Hood.Hood.load(self)
@ -107,10 +104,10 @@ class PartyHood(Hood.Hood):
pass pass
def skyTrack(self, task): def skyTrack(self, task):
return SkyUtil.cloudSkyTrack(task) return SZUtil.cloudSkyTrack(task)
def startSky(self): def startSky(self):
SkyUtil.startCloudSky(self) SZUtil.startCloudSky(self)
if base.cloudPlatformsEnabled: if base.cloudPlatformsEnabled:
self.loader.startCloudPlatforms() 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.building import SuitInterior
from toontown.cogdominium import CogdoInterior from toontown.cogdominium import CogdoInterior
from toontown.toon.Toon import teleportDebug from toontown.toon.Toon import teleportDebug
from toontown.hood import SkyUtil from toontown.safezone import SZUtil
class ToonHood(Hood): class ToonHood(Hood):
notify = directNotify.newCategory('ToonHood') notify = directNotify.newCategory('ToonHood')
@ -208,12 +208,12 @@ class ToonHood(Hood):
pass pass
def skyTrack(self, task): def skyTrack(self, task):
return SkyUtil.cloudSkyTrack(task) return SZUtil.cloudSkyTrack(task)
def startSky(self): def startSky(self):
if not self.sky.getTag('sky') == 'Regular': if not self.sky.getTag('sky') == 'Regular':
self.endSpookySky() self.endSpookySky()
SkyUtil.startCloudSky(self) SZUtil.startCloudSky(self)
def startSpookySky(self): def startSpookySky(self):
if hasattr(self, 'sky') and self.sky: if hasattr(self, 'sky') and self.sky:
@ -237,10 +237,10 @@ class ToonHood(Hood):
def setUnderwaterFog(self): def setUnderwaterFog(self):
if base.wantFog: if base.wantFog:
self.fog.setColor(0.245, 0.322, 0.5)
self.fog.setLinearRange(0.1, 100.0) self.fog.setLinearRange(0.1, 100.0)
render.setFog(self.fog) render.setFog(self.fog)
self.sky.setFog(self.fog) self.sky.setFog(self.fog)
SZUtil.startUnderwaterFog()
def setWhiteFog(self): def setWhiteFog(self):
if base.wantFog: if base.wantFog:
@ -250,8 +250,10 @@ class ToonHood(Hood):
render.setFog(self.fog) render.setFog(self.fog)
self.sky.clearFog() self.sky.clearFog()
self.sky.setFog(self.fog) self.sky.setFog(self.fog)
SZUtil.stopUnderwaterFog()
def setNoFog(self): def setNoFog(self):
if base.wantFog: if base.wantFog:
render.clearFog() render.clearFog()
self.sky.clearFog() self.sky.clearFog()
SZUtil.stopUnderwaterFog()

View file

@ -4,7 +4,7 @@ from DistributedMinigame import *
from direct.interval.IntervalGlobal import * from direct.interval.IntervalGlobal import *
from direct.fsm import ClassicFSM, State from direct.fsm import ClassicFSM, State
from direct.fsm import State from direct.fsm import State
from toontown.safezone import Walk, SnowUtil from toontown.safezone import Walk, SZUtil
from toontown.toonbase import ToontownTimer from toontown.toonbase import ToontownTimer
from direct.gui import OnscreenText from direct.gui import OnscreenText
import MinigameAvatarScorePanel import MinigameAvatarScorePanel
@ -54,7 +54,7 @@ class DistributedTagGame(DistributedMinigame):
self.IT = None self.IT = None
if TagGameGlobals.isSnowHood(safezoneId): if TagGameGlobals.isSnowHood(safezoneId):
self.snow, self.snowRender = SnowUtil.createSnow(self.ground) self.snow, self.snowRender = SZUtil.createSnow(self.ground)
return return

View file

@ -12,7 +12,6 @@ import random
from direct.showbase import PythonUtil from direct.showbase import PythonUtil
from otp.distributed.TelemetryLimiter import RotationLimitToH, TLGatherAllAvs, TLNull from otp.distributed.TelemetryLimiter import RotationLimitToH, TLGatherAllAvs, TLNull
from toontown.hood import Place from toontown.hood import Place
from toontown.hood import SkyUtil
from toontown.parties import PartyPlanner from toontown.parties import PartyPlanner
from toontown.parties.DistributedParty import DistributedParty from toontown.parties.DistributedParty import DistributedParty

View file

@ -19,7 +19,6 @@ from math import sqrt
from RaceGUI import RaceGUI from RaceGUI import RaceGUI
import RaceGlobals import RaceGlobals
from direct.task.Task import Task from direct.task.Task import Task
from toontown.hood import SkyUtil
from direct.fsm import ClassicFSM, State from direct.fsm import ClassicFSM, State
from direct.fsm import State from direct.fsm import State
from toontown.battle.BattleProps import * from toontown.battle.BattleProps import *
@ -29,6 +28,7 @@ from toontown.racing import EffectManager
from toontown.racing import PiejectileManager from toontown.racing import PiejectileManager
from toontown.dna.DNAParser import * from toontown.dna.DNAParser import *
from otp.ai.MagicWordGlobal import * from otp.ai.MagicWordGlobal import *
from toontown.safezone import SZUtil
class DistributedRace(DistributedObject.DistributedObject): class DistributedRace(DistributedObject.DistributedObject):
notify = DirectNotifyGlobal.directNotify.newCategory('DistributedRace') notify = DirectNotifyGlobal.directNotify.newCategory('DistributedRace')
@ -1095,13 +1095,13 @@ class DistributedRace(DistributedObject.DistributedObject):
self.gui.racerLeft(avId, unexpected=False) self.gui.racerLeft(avId, unexpected=False)
def skyTrack(self, task): def skyTrack(self, task):
return SkyUtil.cloudSkyTrack(task) return SZUtil.cloudSkyTrack(task)
def startSky(self): def startSky(self):
if self.hasFog: if self.hasFog:
SkyUtil.startCloudSky(self, parent=self.dummyNode, effects=CompassEffect.PRot) SZUtil.startCloudSky(self, parent=self.dummyNode, effects=CompassEffect.PRot)
else: else:
SkyUtil.startCloudSky(self, parent=render) SZUtil.startCloudSky(self, parent=render)
def stopSky(self): def stopSky(self):
taskMgr.remove('skyTrack') taskMgr.remove('skyTrack')

View file

@ -1,6 +1,6 @@
from toontown.safezone import BRPlayground from toontown.safezone import BRPlayground
from toontown.safezone import SafeZoneLoader from toontown.safezone import SafeZoneLoader
import SnowUtil import SZUtil
class BRSafeZoneLoader(SafeZoneLoader.SafeZoneLoader): class BRSafeZoneLoader(SafeZoneLoader.SafeZoneLoader):
def __init__(self, hood, parentFSM, doneEvent): 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', 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_2.ogg',
'phase_8/audio/sfx/SZ_TB_wind_3.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): def unload(self):
SafeZoneLoader.SafeZoneLoader.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 panda3d.core import *
from direct.task.Task import Task
from direct.directnotify import DirectNotifyGlobal from direct.directnotify import DirectNotifyGlobal
from direct.fsm import StateData from direct.fsm import ClassicFSM, StateData, State
from direct.fsm import ClassicFSM, State
import colorsys
class Walk(StateData.StateData): class Walk(StateData.StateData):
notify = DirectNotifyGlobal.directNotify.newCategory('Walk') notify = DirectNotifyGlobal.directNotify.newCategory('Walk')
@ -91,13 +88,7 @@ class Walk(StateData.StateData):
self.swimSoundPlaying = 0 self.swimSoundPlaying = 0
self.swimSound.stop() self.swimSound.stop()
saturation = min(max((base.localAvatar.getZ() / -12.3), 0.51), 1) return task.cont
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
def enterSlowWalking(self): def enterSlowWalking(self):
self.accept(base.localAvatar.uniqueName('positiveHP'), self.__handlePositiveHP) self.accept(base.localAvatar.uniqueName('positiveHP'), self.__handlePositiveHP)

View file

@ -75,7 +75,6 @@ class MapPage(ShtikerPage.ShtikerPage):
text=TTLocalizer.MapPageBackToPlayground, text=TTLocalizer.MapPageBackToPlayground,
text_scale=TTLocalizer.MPsafeZoneButton, text_scale=TTLocalizer.MPsafeZoneButton,
text_pos=(0, -0.02), text_pos=(0, -0.02),
textMayChange=0,
command=self.backToSafeZone) command=self.backToSafeZone)
self.goHomeButton = DirectButton( self.goHomeButton = DirectButton(
parent=self.map, parent=self.map,
@ -86,7 +85,6 @@ class MapPage(ShtikerPage.ShtikerPage):
text=TTLocalizer.MapPageGoHome, text=TTLocalizer.MapPageGoHome,
text_scale=TTLocalizer.MPgoHomeButton, text_scale=TTLocalizer.MPgoHomeButton,
text_pos=(0, -0.02), text_pos=(0, -0.02),
textMayChange=0,
command=self.goHome) command=self.goHome)
self.goHomeButton.hide() self.goHomeButton.hide()
guiButton.removeNode() guiButton.removeNode()