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

timelineContainer.py (2542B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\neocom\timelineContainer.py
      2 from carbonui.primitives.container import Container
      3 from carbonui.primitives.fill import Fill
      4 from carbonui.primitives.sprite import Sprite
      5 import carbonui.const as uiconst
      6 from carbonui.uianimations import animations
      7 from eve.client.script.ui.shared.cloneGrade import ORIGIN_SKILLQUEUETIMELINE
      8 from eve.client.script.ui.shared.cloneGrade.omegaCloneIcon import OmegaCloneIcon
      9 from localization import GetByLabel
     10 from omega.client.clone_grade_svc import get_clone_grade_svc
     11 
     12 class TimelineContainer(Container):
     13     default_align = uiconst.TOALL
     14 
     15     def ApplyAttributes(self, attributes):
     16         Container.ApplyAttributes(self, attributes)
     17         self.offset = None
     18         self.omegaIcon = None
     19         self.segments = []
     20         self.unallocated = None
     21         self.duration = None
     22 
     23     def ConstructOmegaIcon(self):
     24         iconsize = 24
     25         self.omegaIcon = OmegaCloneIcon(parent=self, align=uiconst.CENTERLEFT, pos=(0,
     26          0,
     27          iconsize,
     28          iconsize), opacity=0.75, idx=0, tooltipText=GetByLabel('UI/CharacterSheet/CharacterSheetWindow/QueueAlphaLimitation'), origin=ORIGIN_SKILLQUEUETIMELINE)
     29 
     30     def AddSegment(self, fraction, color):
     31         if self.destroyed:
     32             return
     33         segment = Fill(parent=self, align=uiconst.TOLEFT_PROP, color=color, width=fraction, state=uiconst.UI_DISABLED)
     34         self.segments.append(segment)
     35 
     36     def SetOffset(self, offset):
     37         if self.offset is None:
     38             self.offset = Container(align=uiconst.TOLEFT_PROP, parent=self, idx=0)
     39         self.offset.width = offset
     40 
     41     def SetUnallocated(self, fraction):
     42         if not self.unallocated:
     43             self.unallocated = Sprite(parent=self, align=uiconst.TOLEFT_NOPUSH, texturePath='res:/UI/Texture/classes/CharacterSheet/injectorArrow.png', tileX=True, idx=0)
     44             animations.FadeTo(self.unallocated, startVal=0.1, endVal=0.8, duration=3.0, loops=uiconst.ANIM_REPEAT, curveType=uiconst.ANIM_WAVE)
     45         width, _ = self.GetAbsoluteSize()
     46         self.unallocated.width = width * fraction
     47 
     48     def FlushLine(self):
     49         if self.omegaIcon:
     50             self.omegaIcon.Hide()
     51         for segment in self.segments:
     52             segment.Close()
     53 
     54         self.segments = []
     55 
     56     def SetDuration(self, duration):
     57         if get_clone_grade_svc().is_omega_with_grace_period():
     58             return
     59         self.duration = duration
     60         width, _ = self.GetAbsoluteSize()