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)