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