openFunctions.py (11495B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\menuSvcExtras\openFunctions.py 2 import eveicon 3 from carbonui.control.contextMenu.menuEntryData import MenuEntryData 4 from carbonui.uicore import uicore 5 from eve.client.script.environment import invControllers as invCtrl 6 from eve.client.script.ui.shared.AuditLogSecureContainerLogViewer import AuditLogSecureContainerLogViewer 7 from eve.client.script.ui.shared.bountyWindow import BountyWindow 8 from eve.client.script.ui.shared.factionalWarfare.infrastructureHub import FWInfrastructureHub 9 from eve.client.script.ui.shared.inventory.invWindow import Inventory 10 from eve.client.script.ui.shared.sov.reagentBay.reagentBayWnd import OpenReagnetBay 11 from eve.client.script.ui.station.repairshop.base_repairshop import RepairShopWindow 12 from eve.client.script.ui.structure.dropbox.dropboxWnd import DropboxWnd 13 from eve.common.lib import appConst as const 14 from eve.common.script.sys import eveCfg 15 from globalConfig.getFunctions import IsPlayerBountyHidden 16 from inventorycommon.const import INVENTORY_ID_SHIP_CARGO 17 from localization import GetByLabel 18 from menu import MenuLabel, MenuList 19 from player_messaging.client.ui_message import prompt_player_fsd_dialog 20 21 def GetOpenShipHoldMenus(checker): 22 entries = MenuList() 23 itemID = checker.item.itemID 24 if checker.OfferOpenCargoHold(): 25 entries.append(MenuEntryData(MenuLabel('UI/Commands/OpenCargoHold'), lambda : OpenShipHangarCargo([itemID]), texturePath=eveicon.inventory)) 26 if checker.OfferOpenDroneBay(): 27 entries += [[MenuLabel('UI/Commands/OpenDroneBay'), OpenDroneBay, [itemID]]] 28 if checker.OfferOpenFighterBay(): 29 entries += [[MenuLabel('UI/Commands/OpenFighterBay'), OpenFighterBay, [itemID]]] 30 if checker.OfferOpenFrigateEscapeBay(): 31 entries += [[MenuLabel('UI/Commands/OpenFrigateEscapeBay'), OpenFrigateEscapeBay, [itemID]]] 32 if checker.OfferOpenShipMaintenanceBay(): 33 entries += [[MenuLabel('UI/Commands/OpenShipMaintenanceBay'), OpenShipMaintenanceBayShip, (itemID, GetByLabel('UI/Commands/OpenShipMaintenanceBayError'))]] 34 if checker.OfferOpenFleetHangar(): 35 entries += [[MenuLabel('UI/Commands/OpenFleetHangar'), OpenFleetHangar, (itemID,)]] 36 if checker.OfferOpenFuelBay(): 37 entries += [[MenuLabel('UI/Commands/OpenFuelBay'), OpenShipBay, [('ShipFuelBay', itemID)]]] 38 if checker.OfferOpenGeneralMiningHold(): 39 entries += [[MenuLabel('UI/Commands/OpenGeneralMiningHold'), OpenShipBay, [('ShipGeneralMiningHold', itemID)]]] 40 if checker.OfferOpenGasHold(): 41 entries += [[MenuLabel('UI/Commands/OpenGasHold'), OpenShipBay, [('ShipGasHold', itemID)]]] 42 if checker.OfferOpenMineralHold(): 43 entries += [[MenuLabel('UI/Commands/OpenMineralHold'), OpenShipBay, [('ShipMineralHold', itemID)]]] 44 if checker.OfferOpenSalvageHold(): 45 entries += [[MenuLabel('UI/Commands/OpenSalvageHold'), OpenShipBay, [('ShipSalvageHold', itemID)]]] 46 if checker.OfferOpenShipHold(): 47 entries += [[MenuLabel('UI/Commands/OpenShipHold'), OpenShipBay, [('ShipShipHold', itemID)]]] 48 if checker.OfferOpenSmallShipHold(): 49 entries += [[MenuLabel('UI/Commands/OpenSmallShipHold'), OpenShipBay, [('ShipSmallShipHold', itemID)]]] 50 if checker.OfferOpenMediumShipHold(): 51 entries += [[MenuLabel('UI/Commands/OpenMediumShipHold'), OpenShipBay, [('ShipMediumShipHold', itemID)]]] 52 if checker.OfferOpenLargeShipHold(): 53 entries += [[MenuLabel('UI/Commands/OpenLargeShipHold'), OpenShipBay, [('ShipLargeShipHold', itemID)]]] 54 if checker.OfferOpenIndustrialShipHold(): 55 entries += [[MenuLabel('UI/Commands/OpenIndustrialShipHold'), OpenShipBay, [('ShipIndustrialShipHold', itemID)]]] 56 if checker.OfferOpenAmmoHold(): 57 entries += [[MenuLabel('UI/Commands/OpenAmmoHold'), OpenShipBay, [('ShipAmmoHold', itemID)]]] 58 if checker.OfferOpenCommandCenterHold(): 59 entries += [[MenuLabel('UI/Commands/OpenCommandCenterHold'), OpenShipBay, [('ShipCommandCenterHold', itemID)]]] 60 if checker.OfferOpenPlanetaryCommoditiesHold(): 61 entries += [[MenuLabel('UI/PI/Common/OpenPlanetaryCommoditiesHold'), OpenShipBay, [('ShipPlanetaryCommoditiesHold', itemID)]]] 62 if checker.OfferOpenQuafeBay(): 63 entries += [[MenuLabel('UI/Commands/OpenQuafeBay'), OpenShipBay, [('ShipQuafeHold', itemID)]]] 64 if checker.OfferOpenCorpseBay(): 65 entries += [[MenuLabel('UI/Commands/OpenCorpseBay'), OpenShipBay, [('ShipCorpseHold', itemID)]]] 66 if checker.OfferOpenBoosterBay(): 67 entries += [[MenuLabel('UI/Commands/OpenBoosterBay'), OpenShipBay, [('ShipBoosterHold', itemID)]]] 68 if checker.OfferOpenSubsystemBay(): 69 entries += [[MenuLabel('UI/Commands/OpenSubsystemBay'), OpenShipBay, [('ShipSubsystemHold', itemID)]]] 70 if checker.OfferOpenMobileDepotHold(): 71 entries += [[MenuLabel('UI/Commands/OpenMobileDepotHold'), OpenShipBay, [('ShipMobileDepotHold', itemID)]]] 72 if checker.OfferOpenColonyResourcesHold(): 73 entries += [[MenuLabel('UI/Commands/OpenInfrastructureHold'), OpenShipBay, [('ShipColonyResourcesHold', itemID)]]] 74 if checker.OfferOpenExpeditionHold(): 75 entries += [[MenuLabel('UI/Commands/OpenExpeditionHold'), OpenShipBay, [('ShipExpeditionHold', itemID)]]] 76 return entries 77 78 79 def OpenShipBay(invID): 80 Inventory.OpenOrShow(invID=invID, openFromWnd=uicore.registry.GetActive()) 81 82 83 def OpenShipHangarCargo(itemIDs): 84 usePrimary = len(itemIDs) == 1 85 openFromWnd = uicore.registry.GetActive() if usePrimary else None 86 for itemID in itemIDs: 87 invID = (INVENTORY_ID_SHIP_CARGO, itemID) 88 Inventory.OpenOrShow(invID=invID, usePrimary=usePrimary, openFromWnd=openFromWnd) 89 90 91 def OpenDroneBay(itemIDs): 92 usePrimary = len(itemIDs) == 1 93 openFromWnd = uicore.registry.GetActive() if usePrimary else None 94 for itemID in itemIDs: 95 invID = ('ShipDroneBay', itemID) 96 invCtrl.ShipDroneBay(itemID).GetItems() 97 Inventory.OpenOrShow(invID=invID, usePrimary=usePrimary, openFromWnd=openFromWnd) 98 99 100 def OpenFighterBay(itemIDs): 101 usePrimary = len(itemIDs) == 1 102 openFromWnd = uicore.registry.GetActive() if usePrimary else None 103 for itemID in itemIDs: 104 invID = ('ShipFighterBay', itemID) 105 invCtrl.ShipFighterBay(itemID).GetItems() 106 Inventory.OpenOrShow(invID=invID, usePrimary=usePrimary, openFromWnd=openFromWnd) 107 108 109 def OpenFrigateEscapeBay(itemIDs): 110 itemIDs = [itemIDs] 111 usePrimary = len(itemIDs) == 1 112 openFromWnd = uicore.registry.GetActive() if usePrimary else None 113 for itemID in itemIDs: 114 invID = ('ShipFrigateEscapeBay', itemID) 115 invCtrl.ShipFrigateEscapeBay(itemID).GetItems() 116 Inventory.OpenOrShow(invID=invID, usePrimary=usePrimary, openFromWnd=openFromWnd) 117 118 119 def OpenShipMaintenanceBayShip(itemID, name): 120 invID = ('ShipMaintenanceBay', itemID) 121 if itemID != eveCfg.GetActiveShip() and not session.stationid: 122 invCtrl.ShipMaintenanceBay(itemID).GetItems() 123 sm.GetService('inv').AddTemporaryInvLocation(invID) 124 Inventory.OpenOrShow(invID=invID) 125 126 127 def OpenFleetHangar(itemID): 128 invID = ('ShipFleetHangar', itemID) 129 if itemID != eveCfg.GetActiveShip() and not session.stationid: 130 invCtrl.ShipFleetHangar(itemID).GetItems() 131 sm.GetService('inv').AddTemporaryInvLocation(invID) 132 Inventory.OpenOrShow(invID=invID) 133 134 135 def OpenInfrastructureHubPanel(itemID): 136 occupierID = sm.GetService('facwar').GetSystemOccupier(session.solarsystemid) 137 if occupierID == session.warfactionid: 138 bp = sm.GetService('michelle').GetBallpark() 139 distance = bp.GetSurfaceDist(session.shipid, itemID) 140 if distance < const.facwarIHubInteractDist: 141 FWInfrastructureHub.Open(itemID=itemID) 142 else: 143 prompt_player_fsd_dialog('InfrastructureHubCannotOpenDistance') 144 else: 145 prompt_player_fsd_dialog('InfrastructureHubCannotOpenFaction', {'factionName': cfg.eveowners.Get(occupierID).name}) 146 147 148 def OpenSovFuelDepositWindow(itemID, slimItem): 149 ownerID = slimItem and slimItem.ownerID 150 isOwner = ownerID == session.corpid 151 isStationMgr = isOwner and bool(session.corprole & const.corpRoleStationManager) 152 if not isStationMgr and not sm.GetService('sov').IsOnLocalSovHubFuelAccessGroup(): 153 raise UserError('NotOnLocalSovHubFuelAccessGroup') 154 OpenReagnetBay(itemID, session.solarsystemid, isStationMgr) 155 156 157 def OpenSovHubWindow(itemID): 158 from eve.client.script.ui.shared.sov.sovHub.sovHubWnd import OpenSovHubWnd 159 OpenSovHubWnd(itemID, session.solarsystemid) 160 161 162 def OpenMercenaryDenWindow(itemID, typeID): 163 from sovereignty.mercenaryden.client.ui.configuration_window import open_mercenary_den_window 164 open_mercenary_den_window(itemID, typeID) 165 166 167 def OpenCargoContainer(invItems): 168 usePrimary = len(invItems) == 1 169 openFromWnd = uicore.registry.GetActive() if usePrimary else None 170 for item in invItems: 171 if item.ownerID not in (session.charid, session.corpid): 172 prompt_player_fsd_dialog('CantDoThatWithSomeoneElsesStuff') 173 return 174 invID = ('StationContainer', item.itemID) 175 Inventory.OpenOrShow(invID=invID, usePrimary=usePrimary, openFromWnd=openFromWnd) 176 177 178 def OpenBountyOffice(charID): 179 if IsPlayerBountyHidden(sm.GetService('machoNet')): 180 return 181 wnd = BountyWindow.GetIfOpen() 182 if not wnd: 183 wnd = BountyWindow.Open() 184 wnd.ownerID = charID 185 wnd.ShowResult(charID) 186 187 188 def ViewAuditLogForALSC(itemID): 189 AuditLogSecureContainerLogViewer.CloseIfOpen() 190 AuditLogSecureContainerLogViewer.Open(itemID=itemID) 191 192 193 def RepairItems(items): 194 if items is None or len(items) < 1: 195 return 196 wnd = RepairShopWindow.Open() 197 if wnd and not wnd.destroyed: 198 wnd.DisplayRepairQuote(items) 199 200 201 def OpenProfileSettingsForStructure(itemID): 202 corpStructures = sm.GetService('structureDirectory').GetCorporationStructures() 203 structureInfo = corpStructures.get(itemID, None) 204 if not structureInfo: 205 return 206 profileID = structureInfo['profileID'] 207 browserController = sm.GetService('structureControllers').GetStructureBrowserController() 208 from eve.client.script.ui.structure.structureBrowser.structureBrowserWnd import StructureBrowserWnd 209 settingID = 'TabNavigationWindowHeader%s' % StructureBrowserWnd.default_windowID 210 browserController.SetProfileSettingsSelected(settingID) 211 browserController.SelectProfile(profileID) 212 wnd = StructureBrowserWnd.GetIfOpen() 213 if wnd: 214 wnd.ForceProfileSettingsSelected() 215 else: 216 StructureBrowserWnd.Open() 217 218 219 def SimulateFitting(fitting, chargesToLoad = None): 220 from eve.client.script.ui.shared.fittingScreen.fittingWnd import FittingWindow 221 wnd = FittingWindow.GetIfOpen() 222 if wnd: 223 wnd.Maximize() 224 else: 225 uicore.cmd.GetCommandAndExecute('OpenFitting') 226 sm.GetService('ghostFittingSvc').SimulateFitting(fitting, chargesToLoad=chargesToLoad) 227 228 229 def OpenDropbox(structureID, structureTypeID, items = None): 230 wnd = DropboxWnd.GetIfOpen() 231 if wnd and not wnd.destroyed: 232 if wnd.dropBoxController.structureID == structureID and wnd.dropBoxController.forShipID == session.shipid: 233 wnd.Maximize() 234 if items: 235 wnd.dropBoxController.AddManyItems(items) 236 return 237 wnd.Close() 238 DropboxWnd.Open(structureID=structureID, structureTypeID=structureTypeID, itemsToTransfer=items)