skillGroupEntry.py (4539B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\skillPlan\skillsCatalogue\skillGroupEntry.py 2 import evetypes 3 from carbon.client.script.environment.AudioUtil import PlaySound 4 from carbonui import uiconst 5 from carbonui.primitives.container import Container 6 from carbonui.primitives.containerAutoSize import ContainerAutoSize 7 from carbonui.primitives.fill import Fill 8 from carbonui.primitives.frame import Frame 9 from carbonui.uianimations import animations 10 from carbonui.util.color import Color 11 from clonegrade import COLOR_OMEGA_ORANGE 12 from eve.client.script.ui import eveColor, eveThemeColor 13 from eve.client.script.ui.control.eveLabel import EveLabelLarge 14 from eve.client.script.ui.control.eveWindowUnderlay import ListEntryUnderlay 15 from eve.client.script.ui.skillPlan.scrollContEntry import ScrollContEntry 16 from eve.client.script.ui.skillPlan.skillsCatalogue.skillsPanelUtil import LoadSkillGroupTooltipPanel 17 from eveui import Sprite 18 from skills.client.skillGroupController import SkillGroupController 19 20 class SkillGroupEntryUnderlay(ListEntryUnderlay): 21 default_texturePath = 'res:/UI/Texture/Shared/DarkStyle/panel1Corner_Solid.png' 22 default_color = eveColor.WHITE 23 default_cornerSize = 12 24 default_opacity = 0.1 25 OPACITY_SELECTED = 1.0 26 27 28 class SkillGroupEntry(ScrollContEntry): 29 30 def ApplyAttributes(self, attributes): 31 super(SkillGroupEntry, self).ApplyAttributes(attributes) 32 self.groupID = attributes.groupID 33 self.controller = SkillGroupController(self.groupID) 34 self.numSkills = 0 35 self.iconCont = Container(parent=self, align=uiconst.TOLEFT, width=36, padding=(2, 0, 2, 0)) 36 self.iconBg = Frame(bgParent=self.iconCont, texturePath='res:/UI/Texture/Shared/DarkStyle/panel1Corner_SolidMirrored.png', cornerSize=12, color=eveThemeColor.THEME_FOCUS, opacity=0.2) 37 Sprite(parent=self.iconCont, align=uiconst.CENTER, texturePath=self.controller.GetIcon(), pos=(0, 0, 32, 32)) 38 mainCont = Container(name='mainCont', parent=self) 39 numFiltercont = ContainerAutoSize(parent=mainCont, align=uiconst.TORIGHT, padding=(6, 0, 8, 0)) 40 self.label = EveLabelLarge(parent=Container(name='labelCont', parent=mainCont), align=uiconst.CENTERLEFT, text=evetypes.GetGroupNameByGroup(self.groupID), left=8, autoFadeSides=True) 41 self.numFilteredLabel = EveLabelLarge(parent=numFiltercont, align=uiconst.CENTER) 42 self.progressBar = Fill(name='progressBar', parent=mainCont, align=uiconst.TOLEFT_PROP, color=eveThemeColor.THEME_ACCENT, opacity=0.2) 43 self.omegaProgressBar = Fill(name='omegaProgressBar', parent=mainCont, align=uiconst.TOLEFT_PROP, color=COLOR_OMEGA_ORANGE, opacity=0.6) 44 self.UpdateProgress() 45 46 def UpdateProgress(self): 47 disabledRatio = self.controller.GetAccumulatedLevelsTrainedAndDisabledRatio() 48 self.omegaProgressBar.width = disabledRatio 49 self.progressBar.width = self.controller.GetAccumulatedLevelsTrainedRatio() - disabledRatio 50 51 def ConstructUnderlay(self): 52 self.underlay = ListEntryUnderlay(bgParent=self, padding=(40, 0, 0, 0)) 53 54 def GetHint(self): 55 return self.controller.GetHint() 56 57 def LoadTooltipPanel(self, tooltipPanel, *args): 58 LoadSkillGroupTooltipPanel(self.controller, tooltipPanel) 59 60 def SetNumSkills(self, numSkills, i): 61 self.numSkills = numSkills 62 animate = numSkills != self.numSkills 63 if self.numSkills: 64 self.numFilteredLabel.text = '%s' % self.numSkills 65 else: 66 self.numFilteredLabel.text = '' 67 if animate: 68 animations.FadeTo(self.numFilteredLabel, 0, 1.0, duration=0.3, timeOffset=i * 0.02) 69 opacity = 1.0 if numSkills else 0.4 70 animations.FadeTo(self, self.opacity, opacity, duration=0.3) 71 72 def SetSelected(self): 73 super(SkillGroupEntry, self).SetSelected() 74 color = Color(*eveThemeColor.THEME_FOCUSDARK).SetOpacity(ListEntryUnderlay.OPACITY_SELECTED).GetRGBA() 75 animations.SpColorMorphTo(self.iconBg, self.iconBg.GetRGBA(), color, duration=uiconst.TIME_SELECT) 76 77 def SetDeselected(self): 78 super(SkillGroupEntry, self).SetDeselected() 79 color = Color(*eveThemeColor.THEME_FOCUSDARK).SetOpacity(ListEntryUnderlay.OPACITY_HOVER).GetRGBA() 80 animations.SpColorMorphTo(self.iconBg, self.iconBg.GetRGBA(), color, duration=uiconst.TIME_DESELECT) 81 82 def OnClick(self): 83 super(SkillGroupEntry, self).OnClick() 84 PlaySound(uiconst.SOUND_ENTRY_SELECT)