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

structureServices.py (2039B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\structure\structureServices.py
      2 import structures
      3 from carbon.common.script.sys.service import Service
      4 from eve.client.script.ui.station import stationServiceConst
      5 
      6 class StructureServices(Service):
      7     __guid__ = 'svc.structureServices'
      8     __notifyevents__ = ['OnSessionChanged', 'OnStructureServiceChanged']
      9 
     10     def Run(self, *args):
     11         self.onlineServices = None
     12         self.structureID = None
     13 
     14     def OnSessionChanged(self, isRemote, session, change):
     15         if 'structureid' in change and session.structureid:
     16             self._FetchOnlineServices()
     17 
     18     def GetPossibleStructureServices(self):
     19         return structures.SERVICES_ACCESS_SETTINGS.keys()
     20 
     21     def CharacterGetServices(self, structureID):
     22         if structureID == session.structureid:
     23             if self.onlineServices is None or self.structureID != session.structureid:
     24                 self._FetchOnlineServices()
     25             return self.onlineServices
     26         return sm.RemoteSvc('structureSettings').CharacterGetServices(structureID)
     27 
     28     def IsServiceAvailableForCharacter(self, serviceID):
     29         if serviceID in structures.ONLINE_SERVICES_UNRESTRICTED_ACCESS:
     30             return True
     31         if serviceID == stationServiceConst.serviceIDAlwaysPresent:
     32             return True
     33         if serviceID in self.CharacterGetServices(session.structureid):
     34             return True
     35         if serviceID == structures.SERVICE_INDUSTRY:
     36             return bool(structures.INDUSTRY_SERVICES & set(self.onlineServices.keys()))
     37 
     38     def OnStructureServiceChanged(self, structureID):
     39         if structureID == session.structureid:
     40             self._FetchOnlineServices()
     41         sm.ScatterEvent('OnStructureServiceUpdated')
     42 
     43     def _FetchOnlineServices(self):
     44         if session.structureid is not None:
     45             self.onlineServices = sm.RemoteSvc('structureSettings').CharacterGetServices(session.structureid)
     46         self.structureID = session.structureid