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

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