NovaBryan/EVE_Dump
Log | Files | 📦 下载最新源码 (.zip) | Refs | README

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)