sessionTimeIndicator.py (3239B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\infoPanels\sessionTimeIndicator.py 2 import math 3 import carbonui.const as uiconst 4 import blue 5 import localization 6 from carbon.common.script.util.format import FmtTimeInterval 7 from carbonui.primitives.container import Container 8 from carbonui.primitives.sprite import Sprite 9 from carbonui.primitives.transform import Transform 10 11 class SessionTimeIndicator(Container): 12 13 def ApplyAttributes(self, attributes): 14 Container.ApplyAttributes(self, attributes) 15 size = 24 16 self.ramps = Container(parent=self, name='ramps', pos=(0, 17 0, 18 size, 19 size), align=uiconst.TOPLEFT, state=uiconst.UI_DISABLED) 20 leftRampCont = Container(parent=self.ramps, name='leftRampCont', pos=(0, 21 0, 22 size / 2, 23 size), align=uiconst.TOPLEFT, state=uiconst.UI_DISABLED, clipChildren=True) 24 self.leftRamp = Transform(parent=leftRampCont, name='leftRamp', pos=(0, 25 0, 26 size, 27 size), align=uiconst.TOPLEFT, state=uiconst.UI_DISABLED) 28 Sprite(parent=self.leftRamp, name='rampSprite', pos=(0, 29 0, 30 size / 2, 31 size), state=uiconst.UI_DISABLED, texturePath='res:/UI/Texture/classes/TiDiIndicator/left.png', color=(0, 0, 0, 0.5)) 32 rightRampCont = Container(parent=self.ramps, name='rightRampCont', pos=(0, 33 0, 34 size / 2, 35 size), align=uiconst.TOPRIGHT, state=uiconst.UI_DISABLED, clipChildren=True) 36 self.rightRamp = Transform(parent=rightRampCont, name='rightRamp', pos=(-size / 2, 37 0, 38 size, 39 size), align=uiconst.TOPLEFT, state=uiconst.UI_DISABLED) 40 Sprite(parent=self.rightRamp, name='rampSprite', pos=(size / 2, 41 0, 42 size / 2, 43 size), state=uiconst.UI_DISABLED, texturePath='res:/UI/Texture/classes/TiDiIndicator/right.png', color=(0, 0, 0, 0.5)) 44 self.coloredPie = Sprite(parent=self, name='tidiColoredPie', pos=(0, 45 0, 46 size, 47 size), texturePath='res:/UI/Texture/classes/TiDiIndicator/circle.png', state=uiconst.UI_DISABLED, color=(1, 1, 1, 0.5)) 48 49 def AnimSessionChange(self): 50 if session.nextSessionChange is not None: 51 duration = session.nextSessionChange - blue.os.GetSimTime() 52 while blue.os.GetSimTime() < session.nextSessionChange: 53 timeDiff = session.nextSessionChange - blue.os.GetSimTime() 54 progress = timeDiff / float(duration) 55 self.SetProgress(1.0 - progress) 56 timeLeft = FmtTimeInterval(timeDiff, breakAt='sec') 57 self.hint = localization.GetByLabel('UI/Neocom/SessionChangeHint', timeLeft=timeLeft) 58 self.state = uiconst.UI_NORMAL 59 blue.pyos.synchro.Yield() 60 61 self.SetProgress(1.0) 62 self.state = uiconst.UI_HIDDEN 63 64 def SetProgress(self, progress): 65 progress = max(0.0, min(1.0, progress)) 66 leftRamp = min(1.0, max(0.0, progress * 2)) 67 rightRamp = min(1.0, max(0.0, progress * 2 - 1.0)) 68 self.leftRamp.SetRotation(math.pi + math.pi * leftRamp) 69 self.rightRamp.SetRotation(math.pi + math.pi * rightRamp)