upgradeEntryController.py (7412B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\sov\sovHub\upgradeEntryController.py 2 import carbonui 3 import carbonui.text.styles 4 import eveicon 5 from carbon.common.script.util.format import FmtAmt 6 from carbonui import TextColor 7 from eve.client.script.ui import eveColor 8 from inventorycommon.const import typeColonyReagentIce, typeColonyReagentLava 9 from localization import GetByLabel 10 from sovereignty.client.sovHub.hubUtil import GetTypeListTexturePathForType, GetTypeListHintForType 11 12 class UpgradeEntryController(object): 13 14 def __init__(self, installedUpgradeData, priority, hubController, functionalState): 15 self._typeID = installedUpgradeData.typeID 16 self.installedUpgradeData = installedUpgradeData 17 self._priority = priority 18 self._hubController = hubController 19 20 @property 21 def typeID(self): 22 return self._typeID 23 24 @property 25 def isConfiguredOnline(self): 26 return self.installedUpgradeData.isConfiguredOnline 27 28 @property 29 def isConfiguredOffline(self): 30 return self.installedUpgradeData.isConfiguredOffline 31 32 @property 33 def isPowerStateFunctional(self): 34 return self.installedUpgradeData.isPowerStateFunctional 35 36 @property 37 def itemID(self): 38 return self.installedUpgradeData.itemID 39 40 @property 41 def upgradeKey(self): 42 return self.installedUpgradeData.upgradeKey 43 44 @property 45 def priority(self): 46 return self._priority 47 48 @property 49 def staticData(self): 50 return self.installedUpgradeData.staticData 51 52 @property 53 def name(self): 54 return self.installedUpgradeData.name 55 56 @property 57 def typeListTexture(self): 58 return GetTypeListTexturePathForType(self.typeID) 59 60 @property 61 def typeListHint(self): 62 return GetTypeListHintForType(self.typeID) 63 64 @property 65 def priorityText(self): 66 return self.priority + 1 67 68 @property 69 def powerText(self): 70 powerValue = self.powerValue 71 if powerValue is None: 72 return '-' 73 if powerValue > 0: 74 return GetByLabel('UI/Sovereignty/SovHub/Upgrades/ExtraAmount', amount=FmtAmt(self.staticData.power_produced)) 75 return FmtAmt(abs(self.staticData.power)) 76 77 @property 78 def powerValue(self): 79 if self.staticData: 80 if self.staticData.power_produced: 81 return self.staticData.power_produced 82 return -self.staticData.power 83 84 @property 85 def defaultPowerTextColor(self): 86 if self.staticData: 87 if self.staticData.power_produced: 88 return eveColor.SUCCESS_GREEN 89 return TextColor.NORMAL 90 91 @property 92 def workforceText(self): 93 workforceValue = self.workforceValue 94 if workforceValue is None: 95 return '-' 96 if workforceValue > 0: 97 return GetByLabel('UI/Sovereignty/SovHub/Upgrades/ExtraAmount', amount=FmtAmt(workforceValue)) 98 return FmtAmt(abs(workforceValue)) 99 100 @property 101 def workforceValue(self): 102 if self.staticData: 103 if self.staticData.workforce_produced: 104 return self.staticData.workforce_produced 105 return -self.staticData.workforce 106 107 @property 108 def defaultWorkforceTextColor(self): 109 if self.staticData: 110 if self.staticData.workforce_produced: 111 return eveColor.SUCCESS_GREEN 112 return TextColor.NORMAL 113 114 @property 115 def upkeepText(self): 116 if self.staticData: 117 return GetByLabel('UI/Sovereignty/SovHub/Upgrades/ConsumptionPerHour', amount=FmtAmt(self.staticData.consumption_per_hour)) 118 return '-' 119 120 @property 121 def fuelTexturePath(self): 122 if self.staticData: 123 if self.fuelTypeID == typeColonyReagentIce: 124 return eveicon.superionic_ice 125 if self.fuelTypeID == typeColonyReagentLava: 126 return eveicon.magmatic_gas 127 return '' 128 129 @property 130 def fuelTypeID(self): 131 return self.staticData.fuel_type_id 132 133 @property 134 def startupText(self): 135 if self.staticData: 136 return FmtAmt(self.staticData.startup_cost) 137 return '-' 138 139 @property 140 def powerState(self): 141 return self.installedUpgradeData.powerState 142 143 @powerState.setter 144 def powerState(self, value): 145 self.installedUpgradeData.powerState = value 146 147 @property 148 def isLackingPower(self): 149 return self.installedUpgradeData.isLackingPower 150 151 @property 152 def isLackingWorkforce(self): 153 return self.installedUpgradeData.isLackingWorkforce 154 155 @property 156 def isLackingFuel(self): 157 return self.installedUpgradeData.isLackingFuel 158 159 @property 160 def isLackingStartupFuel(self): 161 return self.installedUpgradeData.isLackingStartupFuel 162 163 @property 164 def isLackingSomething(self): 165 return bool(self.installedUpgradeData.lackingResources) 166 167 def GetOnlineStateTextAndHints(self): 168 isConfigOnline = self.isConfiguredOnline 169 upgradeStateText = self.installedUpgradeData.upgradeStateText 170 if not isConfigOnline: 171 return (upgradeStateText, GetByLabel('Tooltips/StructureUI/SovHubOfflineUpgrade')) 172 if self.installedUpgradeData.isPowerStateFunctional: 173 return (upgradeStateText, GetByLabel('Tooltips/StructureUI/SovHubOnlineUpgrade')) 174 hint = '' 175 if self.installedUpgradeData.isInPendingPowerState: 176 if self.installedUpgradeData.isLackingStartupFuel: 177 hint = GetByLabel('Tooltips/StructureUI/SovHubRedFuelState') 178 elif self.installedUpgradeData.isInLowPowerState: 179 if len(self.installedUpgradeData.lackingResources) > 1: 180 hint = GetByLabel('Tooltips/StructureUI/SovHubRedResourceState') 181 elif self.installedUpgradeData.isLackingPower: 182 hint = GetByLabel('Tooltips/StructureUI/SovHubRedPowerState') 183 elif self.installedUpgradeData.isLackingWorkforce: 184 hint = GetByLabel('Tooltips/StructureUI/SovHubRedWorkforceState') 185 text = '<color=%s>%s</color>' % (eveColor.DANGER_RED_HEX, upgradeStateText) 186 return (text, hint) 187 188 def GetEntryTextColor(self): 189 return self._GetElementColor(self.installedUpgradeData.isInRestrictedPowerState) 190 191 def GetPowerColor(self, defaultColor = None): 192 defaultColor = self.defaultPowerTextColor 193 return self._GetElementColor(self.isLackingPower, defaultColor) 194 195 def GetWorkforceColor(self, defaultColor = None): 196 defaultColor = self.defaultWorkforceTextColor 197 return self._GetElementColor(self.isLackingWorkforce, defaultColor) 198 199 def GetReagentColor(self, defaultColor = None): 200 return self._GetElementColor(self.isLackingFuel, defaultColor) 201 202 def GetReagentStartupColor(self, defaultColor = None): 203 return self._GetElementColor(self.isLackingStartupFuel, defaultColor) 204 205 def _GetElementColor(self, isLacking, defaultColor = None): 206 if isLacking: 207 return eveColor.DANGER_RED 208 return defaultColor or carbonui.text.styles.TextBody.default_color 209 210 def DeleteUpgrade(self, *args): 211 self._hubController.DeleteUpgrade(self.typeID, self.upgradeKey, self.itemID) 212 213 def GetRemoveTexturePath(self): 214 if self.upgradeKey: 215 return eveicon.trashcan 216 return eveicon.close