structureController.py (2893B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\dockedUI\controllers\structureController.py 2 import utillib 3 from eve.client.script.ui.shared.dockedUI.controllers.baseController import BaseStationController 4 from eve.client.script.ui.shared.inventory.invConst import ContainerType 5 from eve.common.script.sys.idCheckers import IsNPC 6 7 class StructureController(BaseStationController): 8 9 def __init__(self, itemID): 10 BaseStationController.__init__(self) 11 self.itemID = self.structureID = itemID 12 self._structureItem = None 13 14 @property 15 def structureItem(self): 16 if self._structureItem is None: 17 inv = sm.GetService('invCache').GetInventoryFromId(self.structureID) 18 self._structureItem = inv.GetItem() 19 return self._structureItem 20 21 def ChangeDockedMode(self, viewState): 22 if viewState.HasActiveTransition(): 23 return 24 if sm.GetService('viewState').IsPrimaryViewActive('structure'): 25 sm.GetService('cmd').CmdEnterHangar() 26 else: 27 sm.GetService('cmd').CmdEnterStructure() 28 29 def GetServicesInStructure(self): 30 candidateServices = sm.GetService('structureServices').GetPossibleStructureServices() 31 return self._GetServiceInfoAvailable(candidateServices) 32 33 def GetCurrentStateForService(self, serviceID): 34 try: 35 hasAccessTo = sm.GetService('structureServices').IsServiceAvailableForCharacter(serviceID) 36 except KeyError: 37 return utillib.KeyVal(isEnabled=True) 38 39 return utillib.KeyVal(isEnabled=hasAccessTo) 40 41 def GetGuests(self): 42 return sm.GetService('structureGuests').GetGuests() 43 44 def GetOwnerID(self): 45 return self.structureItem.ownerID 46 47 def _GetShipInventoryType(self): 48 return ContainerType.STRUCTURE_SHIP_HANGAR 49 50 def _GetItemInventoryType(self): 51 return ContainerType.STRUCTURE_ITEM_HANGAR 52 53 def GetItemID(self): 54 return self.structureID 55 56 def HasDockModes(self): 57 return True 58 59 def GetDockedModeTextPath(self, viewName = None): 60 if sm.GetService('viewState').IsPrimaryViewActive('hangar'): 61 return 'UI/Commands/EnterStructure' 62 else: 63 return 'UI/Commands/EnterHangar' 64 65 def MayTakeControl(self, structureID): 66 return sm.GetService('structureControl').MayTakeControl(structureID) 67 68 def IsHqAllowed(self): 69 return False 70 71 def IsControlable(self): 72 return True 73 74 def TakeControl(self): 75 sm.GetService('structureControl').TakeControl(self.GetItemID()) 76 77 def GetStructurePilot(self, structureID): 78 return sm.GetService('structureControl').GetStructurePilot(structureID) 79 80 def IsNpcControlled(self): 81 return IsNPC(self.GetOwnerID()) 82 83 def GetTypeID(self): 84 return self.structureItem.typeID