Poodletooth-iLand/toontown/parties/ServerTimeGui.py
John 35b646c4e6 Revert "Spring cleaning"
This reverts commit 1e4bad8c6b.
2015-06-16 20:26:44 +03:00

52 lines
No EOL
2.5 KiB
Python
Executable file

from pandac.PandaModules import TextNode
from direct.gui.DirectGui import DirectFrame, DirectLabel
from direct.interval.IntervalGlobal import Func, Sequence, Wait
from toontown.toonbase import ToontownGlobals
from toontown.toonbase import TTLocalizer
class ServerTimeGui(DirectFrame):
def __init__(self, parent, pos = (0, 0, 0), hourCallback = None):
DirectFrame.__init__(self, parent=parent, pos=pos)
self.createGuiObjects()
self.hourCallback = hourCallback
self.lastHour = -1
self.lastMinute = -1
def createGuiObjects(self):
textScale = 0.075
timeFont = ToontownGlobals.getMinnieFont()
self.hourLabel = DirectLabel(parent=self, pos=(-0.015, 0, 0), relief=None, text='', text_scale=textScale, text_align=TextNode.ARight, text_font=timeFont)
self.colonLabel = DirectLabel(parent=self, relief=None, text=':', text_scale=textScale, text_align=TextNode.ACenter, text_font=timeFont)
self.minutesLabel = DirectLabel(relief=None, parent=self, pos=(0.015, 0, 0), text='', text_scale=textScale, text_align=TextNode.ALeft, text_font=timeFont)
self.amLabel = DirectLabel(relief=None, parent=self, pos=(0.14, 0, 0), text='', text_scale=textScale, text_align=TextNode.ALeft, text_font=timeFont)
self.ival = Sequence(Func(self.colonLabel.show), Wait(0.75), Func(self.colonLabel.hide), Wait(0.25), Func(self.updateTime))
self.ival.loop()
return
def destroy(self):
self.ival.finish()
self.ival = None
DirectFrame.destroy(self)
return
def updateTime(self):
curServerDate = base.cr.toontownTimeManager.getCurServerDateTime()
if TTLocalizer.HourFormat == '24':
self.hour = '%H'
self.ampm = ''
else:
self.hour = '%I'
self.ampm = '%p'
if self.hourCallback is not None:
if curServerDate.hour != self.lastHour and self.lastHour != -1:
self.lastHour = curServerDate.hour
self.hourCallback(curServerDate.hour)
if not curServerDate.minute == self.lastMinute:
self.hourLabel['text'] = curServerDate.strftime(self.hour)
self.lastHour = curServerDate.hour
if self.hourLabel['text'][0] == '0':
self.hourLabel['text'] = self.hourLabel['text'][1:]
self.minutesLabel['text'] = curServerDate.strftime('%M')
self.amLabel['text'] = curServerDate.strftime(self.ampm)
return