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

fleetRespawnPoints.py (2470B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\fleet\fleetRespawnPoints.py
      2 from carbonui import TextColor, uiconst
      3 from carbonui.primitives.container import Container
      4 from eve.client.script.ui.control.entries.generic import Generic
      5 from eve.client.script.ui.control.entries.util import GetFromClass
      6 from eve.client.script.ui.control.eveLabel import Label
      7 from eve.client.script.ui.control.eveScroll import Scroll
      8 from inventorycommon.const import typeCombatRespawnBooster
      9 from localization import GetByLabel
     10 
     11 class RespawnPanel(Container):
     12     __notifyevents__ = ['OnSessionChanged', 'OnFleetRespawnPointsUpdate_Local']
     13     default_clipChildren = True
     14 
     15     def LoadPanel(self):
     16         if not self.sr.Get('inited', 0):
     17             self.PostStartup()
     18             setattr(self.sr, 'inited', 1)
     19         self.UpdateList()
     20 
     21     def PostStartup(self):
     22         sm.RegisterNotify(self)
     23         self.respawnLabel = Label(name='respawnLabel', parent=self, align=uiconst.TOTOP, padding=(0, 0, 0, 8), state=uiconst.UI_NORMAL, color=TextColor.SECONDARY)
     24         self.respawnScroll = Scroll(name='respawnScroll', parent=self, align=uiconst.TOALL)
     25 
     26     def OnSessionChanged(self, isremote, sess, change):
     27         if 'solarsystemid2' in change:
     28             self.UpdateList()
     29 
     30     def _OnClose(self, *args):
     31         sm.UnregisterNotify(self)
     32         Container._OnClose(self)
     33 
     34     def UpdateList(self):
     35         self.respawnLabel.text = GetByLabel('UI/Fleet/Respawn/Summary', requiresBoosterTypeID=typeCombatRespawnBooster)
     36         scrollList = []
     37         for respawnPoint in sm.GetService('fleet').GetRespawnPoints():
     38             character = cfg.eveowners.Get(respawnPoint.extraClientState.characterID).name
     39             solarsystem = cfg.evelocations.Get(respawnPoint.solarsystemID).name
     40             jumps = sm.GetService('clientPathfinderService').GetAutopilotJumpCount(session.solarsystemid2, respawnPoint.solarsystemID)
     41             entry = GetFromClass(Generic, {'label': '%s<t>%s<t>%s' % (character, solarsystem, jumps)})
     42             scrollList.append(entry)
     43 
     44         scrollHeaders = [GetByLabel('UI/Common/Character'), GetByLabel('UI/Common/LocationTypes/SolarSystem'), GetByLabel('UI/Common/Jumps')]
     45         self.respawnScroll.Load(contentList=scrollList, headers=scrollHeaders, noContentHint=GetByLabel('UI/Fleet/Respawn/NoRespawnPointsAvailable'))
     46 
     47     def OnFleetRespawnPointsUpdate_Local(self):
     48         self.UpdateList()