StorageFacilityContainer.py (3453B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\planet\pinContainers\StorageFacilityContainer.py 2 import carbonui.const as uiconst 3 import blue 4 import localization 5 from carbonui.primitives.container import Container 6 from eve.client.script.ui.control.gauge import Gauge 7 from eve.client.script.ui.shared.planet.pinContainers.storageIcon import StorageIcon 8 from .BasePinContainer import BasePinContainer, CaptionAndSubtext 9 from eve.client.script.ui.shared.planet import planetCommon 10 11 class StorageFacilityContainer(BasePinContainer): 12 default_name = 'StorageFacilityContainer' 13 INFO_CONT_HEIGHT = 80 14 panelIDs = [planetCommon.PANEL_STORAGE] + BasePinContainer.panelIDs 15 16 def _GetInfoCont(self): 17 self.storageGauge = Gauge(parent=self.infoContLeft, value=0.0, color=planetCommon.PLANET_COLOR_STORAGE, label=localization.GetByLabel('UI/PI/Common/Storage'), align=uiconst.TOTOP, padding=(0, 0, 10, 4)) 18 self.cooldownTimer = CaptionAndSubtext(parent=self.infoContLeft, caption=localization.GetByLabel('UI/PI/Common/NextTransferAvailable'), align=uiconst.TOTOP) 19 self.itemsTxt = CaptionAndSubtext(parent=self.infoContRight, caption=localization.GetByLabel('UI/PI/Common/StoredItems'), state=uiconst.UI_DISABLED, align=uiconst.TOTOP) 20 self.iconCont = Container(parent=self.infoContRight, height=60, align=uiconst.TOTOP, state=uiconst.UI_PICKCHILDREN) 21 self._DrawStoredCommoditiesIcons() 22 23 def _DrawStoredCommoditiesIcons(self): 24 self.iconCont.Flush() 25 i = 0 26 maxNumIcons = 8 27 if self.pin.contents: 28 for typeID, amount in self.pin.contents.iteritems(): 29 iconLeft, iconTop = self._GetIconPos(i) 30 icon = StorageIcon(parent=self.iconCont, pos=(iconLeft, 31 iconTop, 32 28, 33 28), hint=localization.GetByLabel('UI/PI/Common/ItemAmount', itemName=planetCommon.GetProductNameAndTier(typeID), amount=int(amount)), typeID=typeID, amount=amount, size=32, ignoreSize=True) 34 i += 1 35 if i >= maxNumIcons: 36 break 37 38 self.itemsTxt.SetSubtext('') 39 else: 40 self.itemsTxt.SetSubtext(localization.GetByLabel('UI/PI/Common/NothingStored')) 41 42 def _UpdateInfoCont(self): 43 self.storageGauge.SetValue(float(self.pin.capacityUsed) / self.pin.GetCapacity()) 44 text = localization.GetByLabel('UI/PI/Common/StorageUsed', capacityUsed=self.pin.capacityUsed, capacityMax=self.pin.GetCapacity()) 45 if not self.pin.GetCapacityRemaining(): 46 text = '<color=red>%s</color>' % text 47 self.storageGauge.SetSubText(text) 48 if self.pin.lastRunTime is None or self.pin.lastRunTime <= blue.os.GetWallclockTime(): 49 self.cooldownTimer.SetSubtext(localization.GetByLabel('UI/Common/Now')) 50 else: 51 self.cooldownTimer.SetSubtext(localization.GetByLabel('UI/PI/Common/TimeHourMinSec', time=self.pin.lastRunTime - blue.os.GetWallclockTime())) 52 53 def _GetIconPos(self, iconNum): 54 iconsInRow = 4 55 iconSpace = 30 56 left = iconSpace * (iconNum % iconsInRow) 57 top = iconSpace * (iconNum / iconsInRow) 58 return (left, top) 59 60 def OnRefreshPins(self, pinIDs): 61 if not self or self.destroyed: 62 return 63 BasePinContainer.OnRefreshPins(self, pinIDs) 64 self._DrawStoredCommoditiesIcons()