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

navigationPanel.py (4980B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\fittingScreen\fittingPanels\navigationPanel.py
      2 import dogma.data as dogma_data
      3 from carbon.common.script.util.format import FmtDist
      4 from carbonui.primitives.sprite import Sprite
      5 from dogma import const as dogmaConst
      6 from eve.client.script.ui.control.eveLabel import EveLabelMedium
      7 from eve.client.script.ui.shared.fittingScreen.fittingPanels.attributePanel import AttributePanel
      8 from eve.client.script.ui.shared.fittingScreen.fittingUtil import GetColoredText
      9 from eve.client.script.ui.station.fitting.fittingTooltipUtils import SetFittingTooltipInfo
     10 from eve.common.lib import appConst
     11 from localization import GetByLabel
     12 import carbonui.const as uiconst
     13 textureByAttributeID = {dogmaConst.attributeMass: 'res:/UI/Texture/classes/Fitting/StatsIcons/mass.png',
     14  dogmaConst.attributeAgility: 'res:/UI/Texture/classes/Fitting/StatsIcons/inertiaModifier.png',
     15  dogmaConst.attributeBaseWarpSpeed: 'res:/UI/Texture/classes/Fitting/StatsIcons/warpSpeed.png'}
     16 
     17 class NavigationPanel(AttributePanel):
     18     default_iconSize = 20
     19     attributesToShow = ((dogmaConst.attributeMass, dogmaConst.attributeAgility), (dogmaConst.attributeBaseWarpSpeed,))
     20     alignTimeInfo = ('alignTime', 'res:/UI/Texture/classes/Fitting/StatsIcons/alignTime.png', 'AlignTime')
     21 
     22     def LoadPanel(self, initialLoad = False):
     23         AttributePanel.LoadPanel(self, initialLoad)
     24         parentGrid = self.GetValueParentGrid()
     25         for eachLine in self.attributesToShow:
     26             for eachAttributeID in eachLine:
     27                 attribute = dogma_data.get_attribute(eachAttributeID)
     28                 texturePath = textureByAttributeID.get(eachAttributeID)
     29                 icon, label, cont = self.AddAttributeCont(attribute, parentGrid, texturePath=texturePath)
     30 
     31         self.AddAlignTimeUI(parentGrid)
     32         AttributePanel.FinalizePanelLoading(self, initialLoad)
     33 
     34     def AddAlignTimeUI(self, parentGrid):
     35         alignID, texturePath, tooltipName = self.alignTimeInfo
     36         c = self.GetValueCont(self.iconSize)
     37         parentGrid.AddCell(cellObject=c)
     38         icon = Sprite(texturePath=texturePath, parent=c, align=uiconst.CENTERLEFT, pos=(0,
     39          0,
     40          self.iconSize,
     41          self.iconSize), state=uiconst.UI_DISABLED)
     42         SetFittingTooltipInfo(targetObject=c, tooltipName=tooltipName)
     43         label = EveLabelMedium(text='', parent=c, state=uiconst.UI_DISABLED, align=uiconst.CENTERLEFT)
     44         self.statsLabelsByIdentifier[alignID] = label
     45         self.statsIconsByIdentifier[alignID] = icon
     46         self.statsContsByIdentifier[alignID] = c
     47 
     48     def UpdateNavigationPanel(self):
     49         self.SetMassText()
     50         self.SetMaxVelocityText()
     51         self.SetAgilityText()
     52         self.SetAlignTimeText()
     53         self.SetWarpSpeedText()
     54 
     55     def SetMassText(self):
     56         massInfo = self.controller.GetMass()
     57         if massInfo.value > 10000.0:
     58             value = massInfo.value / 1000.0
     59             massText = GetByLabel('UI/Fitting/FittingWindow/MassTonnes', mass=value)
     60         else:
     61             massText = GetByLabel('UI/Fitting/FittingWindow/MassKg', mass=massInfo.value)
     62         coloredText = GetColoredText(isBetter=massInfo.isBetterThanBefore, text=massText)
     63         self.SetLabel(dogmaConst.attributeMass, coloredText)
     64 
     65     def SetMaxVelocityText(self):
     66         maxVelocityInfo = self.controller.GetMaxVelocity()
     67         text = GetByLabel('UI/Fitting/FittingWindow/ColoredMaxVelocity', maxVelocity=maxVelocityInfo.value)
     68         coloredText = GetColoredText(isBetter=maxVelocityInfo.isBetterThanBefore, text=text)
     69         self.SetStatusText(coloredText)
     70 
     71     def SetAgilityText(self):
     72         agilityInfo = self.controller.GetAgility()
     73         text = GetByLabel('UI/Fitting/FittingWindow/InertiaModifier', value=agilityInfo.value)
     74         coloredText = GetColoredText(isBetter=agilityInfo.isBetterThanBefore, text=text)
     75         self.SetLabel(dogmaConst.attributeAgility, coloredText)
     76 
     77     def SetAlignTimeText(self):
     78         alignTime = self.controller.GetAlignTime()
     79         text = GetByLabel('UI/Fitting/FittingWindow/AlignTime', value=alignTime.value)
     80         coloredText = GetColoredText(isBetter=alignTime.isBetterThanBefore, text=text)
     81         self.SetLabel(self.alignTimeInfo[0], coloredText)
     82 
     83     def SetWarpSpeedText(self):
     84         baseWarpSpeedInfo = self.controller.GetBaseWarpSpeed()
     85         warpSpeedMultiplierInfo = self.controller.GetWarpSpeedMultiplier()
     86         warpSpeedMultiplierValue = warpSpeedMultiplierInfo.value
     87         warpSpeedMultiplierValue += self.controller.GetCorruptionWarpSpeedIncrease()
     88         distValue = baseWarpSpeedInfo.value * warpSpeedMultiplierValue * appConst.AU
     89         text = GetByLabel('UI/Fitting/FittingWindow/WarpSpeed', distText=FmtDist(distValue, 2))
     90         coloredText = GetColoredText(isBetter=warpSpeedMultiplierInfo.isBetterThanBefore, text=text)
     91         self.SetLabel(dogmaConst.attributeBaseWarpSpeed, coloredText)