mapMarkerSovHub.py (7585B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\mapView\markers\mapMarkerSovHub.py 2 from __future__ import print_function 3 import eveicon 4 from carbon.common.script.sys.serviceConst import ROLE_PROGRAMMER 5 from carbonui import uiconst 6 from carbonui.text.styles import TextBody, TextDetail 7 from carbonui.control.contextMenu.menuEntryData import MenuEntryData 8 from carbonui.primitives.sprite import Sprite 9 from eve.client.script.ui import eveColor 10 from eve.client.script.ui.shared.mapView.markers.mapMarkerBase_Icon import MarkerIconBase 11 from eve.client.script.ui.shared.sov.sovHub.sovHubWnd import OpenSovHubWnd 12 from carbonui.primitives.base import ScaleDpi 13 import eve.client.script.ui.shared.mapView.mapViewConst as mapViewConst 14 import blue 15 from eveformat.client import solar_system_with_security 16 from evemap.workforceUtil import GetTexturePathAndColorFromMode 17 from localization import GetByLabel 18 from menu import MenuLabel 19 from sovereignty.client.sovHub.hubUtil import GetTexturePathForWorkforceMode 20 from sovereignty.workforce.workforceConst import LABELPATH_BY_MODE 21 22 class MarkerSovHub(MarkerIconBase): 23 texturePath = eveicon.workforce 24 distanceFadeAlphaNearFar = (0.0, mapViewConst.MAX_MARKER_DISTANCE) 25 isConnected = True 26 distanceSortEnabled = False 27 28 def __init__(self, *args, **kwds): 29 MarkerIconBase.__init__(self, *args, **kwds) 30 self.markerID = self.markerID 31 self.hubStateConfig = kwds['hubStateConfig'] 32 self.SetVariables() 33 self.projectBracket.offsetY = ScaleDpi(14) 34 35 def SetVariables(self): 36 self.hubID = self.hubStateConfig.hubID 37 self.solarSystemID = self.hubStateConfig.solarSystemID 38 self.sovHubOwnerID = self.hubStateConfig.corporationID 39 self.isConnected = self.hubStateConfig.IsConnected() 40 41 def Load(self): 42 if self.isLoaded: 43 return 44 self.texturePath, bgColor = GetTexturePathAndColorFromMode(self.hubStateConfig) 45 if not self.IsOwnedByMyCorp(): 46 bgColor = eveColor.SILVER_GREY 47 self.backgroundColor = bgColor 48 MarkerIconBase.Load(self) 49 self.backgroundSprite.top = 30 50 self.backgroundSprite.height = -64 51 self.markerContainer.tooltipPanelClassInfo = None 52 self.markerContainer.LoadTooltipPanel = self.LoadTooltipPanel 53 self.markerContainer.pointerDirection = uiconst.POINT_BOTTOM_2 54 55 def _UpdateSprites(self): 56 self.texturePath, bgColor = GetTexturePathAndColorFromMode(self.hubStateConfig) 57 if not self.IsOwnedByMyCorp(): 58 bgColor = eveColor.SILVER_GREY 59 self.backgroundColor = bgColor 60 self.backgroundSprite.SetRGBA(*self.backgroundColor) 61 self.iconSprite.SetTexturePath(self.texturePath) 62 63 def IsOwnedByMyCorp(self): 64 isOwnedByMyCorp = self.sovHubOwnerID == session.corpid 65 return isOwnedByMyCorp 66 67 def GetBackgroundSpriteIdleOpacity(self): 68 modifier = 0.5 if not self.IsOwnedByMyCorp() else 1.0 69 if self.isConnected: 70 return modifier * 2.0 71 return modifier * 1.0 72 73 def GetIconSpriteIdleOpacity(self): 74 modifier = 0.5 if not self.IsOwnedByMyCorp() else 1.0 75 if self.isConnected: 76 return modifier * 1.0 77 return modifier * 0.5 78 79 def GetMenu(self): 80 if self.sovHubOwnerID != session.corpid: 81 return [] 82 m = [MenuEntryData(MenuLabel('UI/Menusvc/OpenSovHubConfigWindow'), func=lambda *args: OpenSovHubWnd(self.hubID, self.solarSystemID), texturePath=eveicon.settings)] 83 m += self.GetStateAndConfigProgrammerMenu() 84 return m 85 86 def GetStateAndConfigProgrammerMenu(self): 87 if not session.role & ROLE_PROGRAMMER: 88 return [] 89 from carbonui.control.contextMenu.menuEntryData import MenuEntryData 90 m = [None] 91 m += [(str(self.hubID), blue.pyos.SetClipboardData, (str(self.hubID),))] 92 try: 93 sovHubSvc = sm.GetService('sovHubSvc') 94 workforceState = sovHubSvc.GetWorkforceState(self.hubID) 95 m.append(MenuEntryData('State : ')) 96 workforceStateMode = workforceState.get_mode() 97 m.append(MenuEntryData(' %s' % GetByLabel(LABELPATH_BY_MODE.get(workforceStateMode)))) 98 exportState = workforceState.export_state 99 if workforceState.import_state: 100 for ssID, qty in workforceState.import_state.amount_by_source_system_id.iteritems(): 101 m.append(MenuEntryData(' %s: %s ' % (ssID, qty), func=lambda sID = ssID: blue.pyos.SetClipboardData(str(sID)))) 102 103 elif exportState: 104 destID = exportState.destination_system_id 105 m.append(MenuEntryData(' %s: %s ' % (destID, exportState.amount), func=lambda dID = destID: blue.pyos.SetClipboardData(str(dID)))) 106 workforceConfig = sovHubSvc.GetWorkforceConfiguration(self.hubID) 107 m.append(MenuEntryData('Config : ')) 108 workforceConfigMode = workforceConfig.get_mode() 109 m.append(MenuEntryData(' %s' % GetByLabel(LABELPATH_BY_MODE.get(workforceConfigMode)))) 110 if workforceConfig.import_configuration: 111 for ssID in workforceConfig.import_configuration.source_system_ids: 112 m.append(MenuEntryData(' %s' % ssID, func=lambda sID = ssID: blue.pyos.SetClipboardData(str(sID)))) 113 114 elif workforceConfig.export_configuration: 115 destID = workforceConfig.export_configuration.destination_system_id 116 m.append(MenuEntryData(' %s: %s ' % (destID, workforceConfig.export_configuration.amount), func=lambda dID = destID: blue.pyos.SetClipboardData(str(dID)))) 117 except Exception as e: 118 print('e = ', e) 119 120 return m 121 122 def GetDisplayText(self): 123 return '' 124 125 def SetMarkerKwds(self, kwds): 126 self.hubStateConfig = kwds['hubStateConfig'] 127 self.SetVariables() 128 if not self.isLoaded: 129 return 130 self._UpdateSprites() 131 132 def LoadTooltipPanel(self, tooltipPanel, *args): 133 tooltipPanel.LoadStandardSpacing() 134 tooltipPanel.columns = 1 135 solarSystemName = solar_system_with_security(self.hubStateConfig.solarSystemID) 136 tooltipPanel.AddTextBodyLabel(text=solarSystemName) 137 mode = self.hubStateConfig.GetConfigMode() 138 texturePath = GetTexturePathForWorkforceMode(mode) 139 labelPath = LABELPATH_BY_MODE.get(mode, 'UI/Sovereignty/SovHub/UnknownWorkforceMode') 140 modeText = GetByLabel(labelPath) 141 text = GetByLabel('UI/Sovereignty/WorforceConfigurationMode', configureMode=modeText) 142 modeLabel = TextBody(text=text, align=uiconst.CENTERLEFT, left=24) 143 cell = tooltipPanel.AddCell(modeLabel) 144 Sprite(parent=cell, align=uiconst.CENTERLEFT, pos=(8, 0, 16, 16), texturePath=texturePath, color=eveColor.SILVER_GREY) 145 if self.sovHubOwnerID != session.corpid: 146 text = GetByLabel('UI/Sovereignty/SovHubOwnedByDifferentCorp', corpName=cfg.eveowners.Get(self.sovHubOwnerID).name) 147 tooltipPanel.AddTextDetailsLabel(text=text, colSpan=2, maxWidth=240) 148 importExportText = self.hubStateConfig.GetImportExportInfoForTooltip() 149 for path, opacity, text in importExportText: 150 modeLabel = TextDetail(text=text, align=uiconst.CENTERLEFT, left=24) 151 cell = tooltipPanel.AddCell(modeLabel) 152 Sprite(parent=cell, align=uiconst.CENTERLEFT, pos=(8, 0, 16, 16), texturePath=path, color=eveColor.SILVER_GREY) 153 cell.opacity = opacity