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()