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

fuelConts.py (7205B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\sov\sovHub\fuelConts.py
      2 import math
      3 import appConst
      4 import carbonui
      5 import carbonui.text.styles
      6 import eveicon
      7 import evetypes
      8 from carbonui.primitives.container import Container
      9 from carbonui.primitives.containerAutoSize import ContainerAutoSize
     10 from carbonui.primitives.sprite import Sprite
     11 from eve.client.script.ui import eveColor
     12 from eve.client.script.ui.control.gaugeCircular import GaugeCircular
     13 from eveexceptions import ExceptionEater
     14 from eveservices.menu import GetMenuService
     15 from localization import GetByLabel
     16 from sovereignty.client.quasarCallWrapper import DATA_NOT_AVAILABLE
     17 from sovereignty.client.sovHub.hubUtil import GetIconTexturePathForReagent
     18 
     19 class BaseFuelCont(Container):
     20     default_height = 120
     21     default_width = 120
     22     default_align = carbonui.Align.TOPLEFT
     23     tooltipLabelPath = ''
     24     texturePath = ''
     25     reagentTypeID = None
     26 
     27     def ApplyAttributes(self, attributes):
     28         self.hubController = attributes.hubController
     29         super(BaseFuelCont, self).ApplyAttributes(attributes)
     30         self.ConstructUI()
     31         if hasattr(self.hubController, 'on_online_state_changed'):
     32             self.hubController.on_online_state_changed.connect(self.OnOnlineStateChanged)
     33         if hasattr(self.hubController, 'on_upgrades_changed'):
     34             self.hubController.on_upgrades_changed.connect(self.OnUpgradesChanged)
     35 
     36     def ConstructUI(self):
     37         self.timeLabel = carbonui.text.styles.TextHeadline(parent=self, text='', align=carbonui.Align.CENTER, pickState=carbonui.PickState.ON)
     38         self.timeLabel.hint = GetByLabel(self.tooltipLabelPath)
     39         self.amountLabel = carbonui.text.styles.TextBody(parent=self, text='', align=carbonui.Align.CENTER, top=20, color=carbonui.TextColor.SECONDARY)
     40         self.perHourLabel = carbonui.text.styles.TextBody(parent=self, text='', align=carbonui.Align.CENTER, top=35, color=carbonui.TextColor.SECONDARY)
     41         icon = Sprite(parent=self, align=carbonui.Align.CENTER, pos=(0, -24, 16, 16), texturePath=self.texturePath)
     42         icon.GetMenu = lambda *args: GetMenuService().GetMenuFromItemIDTypeID(None, self.reagentTypeID)
     43         self.gaugeCircular = GaugeCircular(parent=self, showMarker=False, radius=55, lineWidth=3.0, startAngle=math.pi / 2, align=carbonui.Align.CENTER, colorStart=eveColor.CRYO_BLUE, colorEnd=eveColor.CRYO_BLUE, glow=True, glowBrightness=0.3)
     44 
     45     def OnOnlineStateChanged(self, typeID):
     46         self.LoadUI()
     47 
     48     def OnUpgradesChanged(self):
     49         self.LoadUI()
     50 
     51     def LoadUI(self):
     52         numHoursLeftProgress = self.hubController.GetTimeLeftProgressForTypeID(self.reagentTypeID)
     53         numHoursLeftText = self.hubController.GetTimeLeftTextForTypeID(self.reagentTypeID)
     54         if numHoursLeftProgress is None:
     55             self.timeLabel.text = numHoursLeftText
     56             self.gaugeCircular.SetValue(0)
     57         else:
     58             self.timeLabel.text = numHoursLeftText
     59             self.gaugeCircular.SetValue(min(1.0, numHoursLeftProgress))
     60         fuelInfo = self.hubController.GetReagentForTypeID(self.reagentTypeID)
     61         if fuelInfo == DATA_NOT_AVAILABLE:
     62             self.amountLabel.text = GetByLabel('UI/Sovereignty/HubPage/NotAvailable', color=eveColor.GUNMETAL_HEX)
     63         elif fuelInfo:
     64             self.amountLabel.text = fuelInfo.amount_now
     65         else:
     66             self.amountLabel.text = 0
     67         perHour = self.hubController.GetReagentConsumptionForTypeID(self.reagentTypeID)
     68         if perHour == DATA_NOT_AVAILABLE:
     69             self.perHourLabel.text = GetByLabel('UI/Sovereignty/HubPage/NotAvailable', color=eveColor.GUNMETAL_HEX)
     70         else:
     71             self.perHourLabel.text = GetByLabel('UI/Sovereignty/AmountPerHour', value=perHour)
     72 
     73     def Close(self):
     74         with ExceptionEater('Closing BaseFuelCont'):
     75             if hasattr(self.hubController, 'on_online_state_changed'):
     76                 self.hubController.on_online_state_changed.disconnect(self.OnOnlineStateChanged)
     77             if hasattr(self.hubController, 'on_upgrades_changed'):
     78                 self.hubController.on_upgrades_changed.disconnect(self.OnUpgradesChanged)
     79             self.hubController = None
     80         super(BaseFuelCont, self).Close()
     81 
     82 
     83 class FuelMagmaCont(BaseFuelCont):
     84     tooltipLabelPath = 'UI/Sovereignty/SovHub/HubWnd/TimeUntilMagmaRunsOut'
     85     texturePath = eveicon.magmatic_gas
     86     reagentTypeID = appConst.typeColonyReagentLava
     87 
     88 
     89 class FuelIceCont(BaseFuelCont):
     90     tooltipLabelPath = 'UI/Sovereignty/SovHub/HubWnd/TimeUntilIceRunsOut'
     91     texturePath = eveicon.superionic_ice
     92     reagentTypeID = appConst.typeColonyReagentIce
     93 
     94 
     95 class StartupCostCont(ContainerAutoSize):
     96     default_align = carbonui.Align.TOTOP
     97 
     98     def ApplyAttributes(self, attributes):
     99         self.hubController = attributes.hubController
    100         super(StartupCostCont, self).ApplyAttributes(attributes)
    101         self.ConstructUI()
    102         self.hubController.on_online_state_changed.connect(self.OnOnlineStateChanged)
    103         self.hubController.on_upgrades_changed.connect(self.OnUpgradesChanged)
    104 
    105     def ConstructUI(self):
    106         header = carbonui.text.styles.TextDetail(parent=self, text=GetByLabel('UI/Sovereignty/SovHub/HubWnd/StartupCostHeader'), color=carbonui.TextColor.SECONDARY, align=carbonui.Align.TOTOP, pickState=carbonui.PickState.ON)
    107         innerCont = ContainerAutoSize(parent=self, align=carbonui.Align.TOTOP)
    108         cont = ContainerAutoSize(name='lavaCont', parent=innerCont)
    109         self.lavaIcon = Sprite(name='lavaIcon', parent=cont, align=carbonui.Align.CENTERLEFT, pos=(0, 0, 16, 16), texturePath=GetIconTexturePathForReagent(appConst.typeColonyReagentLava), color=eveColor.TUNGSTEN_GREY)
    110         self.lavaIcon.hint = evetypes.GetName(appConst.typeColonyReagentLava)
    111         self.lavaLabel = carbonui.text.styles.TextHeader(parent=cont, text='000', align=carbonui.Align.CENTERLEFT, left=20)
    112         cont = ContainerAutoSize(name='iceCont', parent=innerCont, left=100)
    113         self.iceIcon = Sprite(name='iceIcon', parent=cont, align=carbonui.Align.CENTERLEFT, pos=(0, 0, 16, 16), texturePath=GetIconTexturePathForReagent(appConst.typeColonyReagentIce), color=eveColor.TUNGSTEN_GREY)
    114         self.iceIcon.hint = evetypes.GetName(appConst.typeColonyReagentIce)
    115         self.iceLabel = carbonui.text.styles.TextHeader(parent=cont, text='000', align=carbonui.Align.CENTERLEFT, left=20)
    116 
    117     def OnOnlineStateChanged(self, typeID):
    118         self.LoadUI()
    119 
    120     def OnUpgradesChanged(self):
    121         self.LoadUI()
    122 
    123     def LoadUI(self):
    124         startupLava = self.hubController.GetStartupCostForTypeID(appConst.typeColonyReagentLava)
    125         self.lavaLabel.text = startupLava or '000'
    126         startupIce = self.hubController.GetStartupCostForTypeID(appConst.typeColonyReagentIce)
    127         self.iceLabel.text = startupIce or '000'
    128 
    129     def Close(self):
    130         with ExceptionEater('Closing StartupCostCont'):
    131             self.hubController.on_online_state_changed.disconnect(self.OnOnlineStateChanged)
    132             self.hubController.on_upgrades_changed.disconnect(self.OnUpgradesChanged)
    133             self.hubController = None
    134         super(StartupCostCont, self).Close()