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

structureHangarViewSvc.py (1357B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\structure\structureHangarViewSvc.py
      2 from carbon.common.script.sys.service import Service
      3 
      4 class StructureHangarViewSvc(Service):
      5     __guid__ = 'svc.structureHangarViewSvc'
      6     __notifyevents__ = ['DoSessionChanging', 'OnHangarViewStateUpdated']
      7     _hangarViewState = None
      8 
      9     def DoSessionChanging(self, isRemote, session, change):
     10         if 'structureid' in change:
     11             self._hangarViewState = None
     12 
     13     def GetStructureHangarState(self):
     14         if session.structureid is None:
     15             raise NotDockedInStructureError('GetStructureHangarState cannot be called when session is not docked in a structure')
     16         self._UpdateStructureHangarInfo()
     17         return self._hangarViewState
     18 
     19     def _UpdateStructureHangarInfo(self):
     20         if session.structureid is not None and self._hangarViewState is None:
     21             self._hangarViewState = sm.RemoteSvc('structureHangarViewMgr').GetMyHangarViewState()
     22 
     23     def OnHangarViewStateUpdated(self, structureID, hangarViewState):
     24         if structureID != session.structureid:
     25             return
     26         self._hangarViewState = hangarViewState
     27         sm.ScatterEvent('OnHangarViewStateUpdated_Local', structureID, hangarViewState)
     28 
     29 
     30 class NotDockedInStructureError(RuntimeError):
     31     pass