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()