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

skillPlanProgressGauge.py (3569B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\skillPlan\milestone\skillPlanProgressGauge.py
      2 import math
      3 from carbonui import uiconst
      4 from carbonui.primitives.sprite import Sprite
      5 from carbonui.uianimations import animations
      6 from eve.client.script.ui import eveColor
      7 from eve.client.script.ui.skillPlan.milestone.milestoneConst import START_ANGLE, GAUGE_ANGLE
      8 from eve.client.script.ui.skillPlan.milestone.milestoneProgressGauge import MilestoneProgressGauge
      9 from eve.client.script.ui.skillPlan.milestone.milestoneUtil import GetMissingSkillsColor
     10 
     11 class SkillPlanProgressGauge(MilestoneProgressGauge):
     12     startAngle = START_ANGLE
     13     angle = GAUGE_ANGLE
     14     gaugeTexturePath = 'res:/UI/Texture/classes/SkillPlan/milestones/gaugeBG.png'
     15 
     16     def ApplyAttributes(self, attributes):
     17         super(SkillPlanProgressGauge, self).ApplyAttributes(attributes)
     18         self.UpdateSpritePositions()
     19 
     20     def UpdateSpriteColors(self, animate = True):
     21         if not self.controller:
     22             return
     23         trainedRatio = self.controller.GetProgressRatio()
     24         inTrainingRatio = self.controller.GetInTrainingRatio()
     25         startColor = self._GetStartSpriteColor(trainedRatio)
     26         endColor = self._GetEndSpriteColor(inTrainingRatio, trainedRatio)
     27         if animate:
     28             duration = 1.0
     29             animations.SpColorMorphTo(self.startSprite, self.startSprite.GetRGB(), startColor, duration=duration)
     30             animations.SpColorMorphTo(self.endSprite, self.endSprite.GetRGB(), endColor, duration=duration)
     31         else:
     32             self.startSprite.SetRGBA(*startColor)
     33             self.endSprite.SetRGBA(*endColor)
     34 
     35     def _GetStartSpriteColor(self, trainedRatio):
     36         if trainedRatio > 0.0:
     37             color = eveColor.WHITE
     38         else:
     39             color = GetMissingSkillsColor(self.highlightNotInTraining)
     40         return color
     41 
     42     def _GetEndSpriteColor(self, inTrainingRatio, trainedRatio):
     43         if trainedRatio >= 1.0:
     44             color = eveColor.WHITE
     45         elif trainedRatio + inTrainingRatio >= 1.0:
     46             color = eveColor.CRYO_BLUE
     47         else:
     48             color = GetMissingSkillsColor(self.highlightNotInTraining)
     49         return color
     50 
     51     def UpdateProgress(self, animate = True):
     52         super(SkillPlanProgressGauge, self).UpdateProgress(animate)
     53         self.UpdateSpriteColors(animate)
     54 
     55     def UpdateSpritePositions(self):
     56         radius = self.radius * 0.94
     57         left = radius * math.cos(math.pi - self.startAngle)
     58         top = radius * math.sin(math.pi - self.startAngle)
     59         self.startSprite.left = -left
     60         self.startSprite.top = top
     61         self.endSprite.left = left
     62         self.endSprite.top = top
     63 
     64     def SetRadius(self, radius):
     65         super(SkillPlanProgressGauge, self).SetRadius(radius)
     66         self.UpdateSpritePositions()
     67 
     68     def _ApplyNewRadius(self):
     69         super(SkillPlanProgressGauge, self)._ApplyNewRadius()
     70         self.UpdateSpritePositions()
     71 
     72     def ConstructLayout(self):
     73         self.startSprite = Sprite(name='startSprite', parent=self, align=uiconst.CENTER, state=uiconst.UI_DISABLED, pos=(0, 0, 30, 30), texturePath='res:/UI/Texture/classes/SkillPlan/milestones/gaugeStartEnd.png')
     74         self.endSprite = Sprite(name='endSprite', parent=self, align=uiconst.CENTER, state=uiconst.UI_DISABLED, pos=(0, 0, 30, 30), texturePath='res:/UI/Texture/classes/SkillPlan/milestones/gaugeStartEnd.png')
     75         super(SkillPlanProgressGauge, self).ConstructLayout()
     76 
     77     def GetLineWidth(self, radius):
     78         return 0.22 * radius