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

solarsystemInterferenceSvc.py (2200B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\solarsystemInterferenceSvc.py
      2 from carbon.common.script.sys.service import Service
      3 from gametime import GetWallclockTime
      4 from solarsysteminterference import CalculateStateAtTime
      5 from solarsysteminterference.const import INTERFERENCE_BAND_NONE
      6 
      7 class SolarsystemInterferenceSvc(Service):
      8     __displayname__ = 'Solarsystem Interference Client'
      9     __guid__ = 'svc.solarsystemInterferenceSvc'
     10     __startupdependencies__ = []
     11     __notifyevents__ = ['OnSessionChanged', 'OnSolarsystemInterferenceChanged']
     12     _localInterferenceState = None
     13 
     14     def OnSessionChanged(self, isremote, session, change):
     15         if 'solarsystemid2' in change:
     16             self._localInterferenceState = None
     17 
     18     def OnSolarsystemInterferenceChanged(self, solarsystemID, newInterferenceState):
     19         if solarsystemID != session.solarsystemid2:
     20             return
     21         self._localInterferenceState = newInterferenceState
     22         sm.ScatterEvent('OnSolarsystemInterferenceChanged_Local')
     23 
     24     def GetLocalInterferenceStateNow(self):
     25         interferenceState = self._GetLocalInterferenceState()
     26         if interferenceState is not None:
     27             return CalculateStateAtTime(interferenceState, GetWallclockTime())
     28 
     29     def _GetLocalInterferenceState(self):
     30         if self._localInterferenceState is None:
     31             self._localInterferenceState = sm.RemoteSvc('solarsystemInterferenceMgr').GetLocalInterferenceState()
     32         return self._localInterferenceState
     33 
     34     def GetAllInterferenceBands(self):
     35         return sm.RemoteSvc('solarsystemInterferenceMgr').GetAllInterferenceBands()
     36 
     37     def GetSolarSystemInterferenceBand(self, solarsystemID):
     38         if session.solarsystemid2 == solarsystemID:
     39             localInterferenceState = self.GetLocalInterferenceStateNow()
     40             if localInterferenceState is not None:
     41                 return localInterferenceState.interferenceBand
     42         else:
     43             interferenceBands = self.GetAllInterferenceBands()
     44             if solarsystemID in interferenceBands:
     45                 return interferenceBands[solarsystemID]
     46         return INTERFERENCE_BAND_NONE