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

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)