sovHubSvc.py (6034B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\services\sovHubSvc.py 2 from carbon.common.script.sys.service import Service 3 from sovereignty.fuel.client.external_messenger import SovFuelExternalMessenger, FakseSovFuelExternalMessenger 4 from sovereignty.upgrades.client.external_data import UpgradesStaticDataSource, InstalledUpgradesLocalDataSource, InstalledUpgradesDataSource 5 from sovereignty.upgrades.client.external_messenger import SovUpgradesExternalMessenger, FakeSovUpgradesExternalMessenger 6 from sovereignty.upgrades.client.notice_listener import ExternalNoticeListener as HubUpgradesExternalNoticeListener 7 from sovereignty.workforce.client.notice_listener import ExternalNoticeListener as HubWorkforceExternalNoticeListener 8 from eve.client.script.environment.spaceObject.sovereigntyHub import UpdateUpgradesOnUpgradesUpdated, UpdateWorkforceTransportState 9 from sovereignty.workforce.client.external_messenger import WorkforceExternalMessenger, FakeWorkforceExternalMessenger 10 11 class SovHubSvc(Service): 12 __guid__ = 'svc.sovHubSvc' 13 __servicename__ = 'Sov Hub' 14 __displayname__ = 'Sov Hub service' 15 __startupdependencies__ = ['publicGatewaySvc'] 16 __notifyevents__ = ['OnSessionChanged'] 17 sovUpgradesExternalMessenger = None 18 upgradesStaticData = None 19 installedUpgradesLocalDataSource = None 20 installedUpgradesDataSource = None 21 hubUpgradesExternalNoticeListener = None 22 hubWorkforceExternalNoticeListener = None 23 24 def __init__(self): 25 super(SovHubSvc, self).__init__() 26 27 def Run(self, memStream = None): 28 super(SovHubSvc, self).Run(memStream=memStream) 29 USE_FAKE_UPGRADE_DATA = False 30 USE_FAKE_FUEL_DATA = False 31 USE_FAKE_WORKFORCE_DATA = False 32 if USE_FAKE_UPGRADE_DATA: 33 self.sovUpgradesExternalMessenger = FakeSovUpgradesExternalMessenger() 34 else: 35 self.sovUpgradesExternalMessenger = SovUpgradesExternalMessenger(self.publicGatewaySvc) 36 if USE_FAKE_FUEL_DATA: 37 self.sovFuelExternalMessenger = FakseSovFuelExternalMessenger() 38 else: 39 self.sovFuelExternalMessenger = SovFuelExternalMessenger(self.publicGatewaySvc) 40 if USE_FAKE_WORKFORCE_DATA: 41 self.workforceExternalMessenger = FakeWorkforceExternalMessenger(self.publicGatewaySvc) 42 else: 43 self.workforceExternalMessenger = WorkforceExternalMessenger(self.publicGatewaySvc) 44 self.upgradesStaticData = UpgradesStaticDataSource(self.sovUpgradesExternalMessenger) 45 self.installedUpgradesLocalDataSource = InstalledUpgradesLocalDataSource(self.sovUpgradesExternalMessenger) 46 self.installedUpgradesDataSource = InstalledUpgradesDataSource(self.sovUpgradesExternalMessenger) 47 self.hubUpgradesExternalNoticeListener = HubUpgradesExternalNoticeListener(self.publicGatewaySvc) 48 self.hubUpgradesExternalNoticeListener.on_hub_upgrades_state_changed_notice.connect(self._OnHubUpgradesStateChangedNotice) 49 self.hubWorkforceExternalNoticeListener = HubWorkforceExternalNoticeListener(self.publicGatewaySvc) 50 self.hubWorkforceExternalNoticeListener.on_hub_workforce_configured_notice.connect(self._OnHubWorkforceConfiguredNotice) 51 self.hubWorkforceExternalNoticeListener.on_hub_workforce_state_changed_notice.connect(self._OnHubWorkforceStateChangedNotice) 52 53 def OnSessionChanged(self, isRemove, sess, change): 54 if 'solarsystemid2' in change: 55 self.installedUpgradesLocalDataSource.flush_all_data() 56 57 def _OnHubUpgradesStateChangedNotice(self, hubID, installedUpgrades, fuelLastUpdated): 58 self.LogInfo('sovHubSvc._OnHubUpgradesStateChangedNotice', hubID, installedUpgrades) 59 self.installedUpgradesLocalDataSource.update_installed_upgrades_if_already_primed(hubID, installedUpgrades, fuelLastUpdated) 60 UpdateUpgradesOnUpgradesUpdated(hubID, installedUpgrades) 61 sm.ScatterEvent('OnHubUpgradesStateChanged', hubID, installedUpgrades) 62 63 def _OnHubWorkforceConfiguredNotice(self, solarSystemID, sovHubID, oldConfig, newConfig): 64 sm.ScatterEvent('OnHubWorkforceConfigureChanged', solarSystemID) 65 66 def _OnHubWorkforceStateChangedNotice(self, solarSystemID, sovHubID, oldState, newState): 67 sm.ScatterEvent('OnHubWorkforceStateChanged', solarSystemID) 68 69 def GetInstalledUpgradesLocal(self, hubID): 70 return self.installedUpgradesLocalDataSource.get_installed_upgrades_in_local(hubID) 71 72 def GetInstalledUpgradesForHub(self, hubID): 73 return self.installedUpgradesDataSource.get_installed_upgrades(hubID) 74 75 def PrimeStaticDataForUpgrades(self): 76 return self.upgradesStaticData.prime_data() 77 78 def GetStaticDataForUpgrade(self, typeID): 79 return self.upgradesStaticData.get_static_data(typeID) 80 81 def GetReagentsByTypeID(self, hubID): 82 return self.sovFuelExternalMessenger.get(hubID) 83 84 def AddFuel(self, itemID, qty, sovHubID): 85 return self.sovFuelExternalMessenger.add_fuel(itemID, qty, sovHubID) 86 87 def SaveUpgradeConfiguration(self, sovHubID, newUpgrades, upgrades_states): 88 return self.sovUpgradesExternalMessenger.update_upgrade_configuration(sovHubID, newUpgrades, upgrades_states) 89 90 def UninstallUpgrade(self, upgradeKey): 91 return self.sovUpgradesExternalMessenger.uninstall_upgrade(upgradeKey[0], upgradeKey[1]) 92 93 def SaveWorkforceConfiguration(self, sovHubID, workforceConfiguration): 94 result = self.workforceExternalMessenger.configure(sovHubID, workforceConfiguration) 95 if result: 96 UpdateWorkforceTransportState(sovHubID, workforceConfiguration) 97 return result 98 99 def GetWorkforceConfiguration(self, sovHubID): 100 return self.workforceExternalMessenger.get_configuration(sovHubID) 101 102 def GetWorkforceState(self, sovHubID): 103 return self.workforceExternalMessenger.get_state(sovHubID) 104 105 def GetNetworkableHubs(self, sovHubID): 106 return self.workforceExternalMessenger.get_networkable_hubs(sovHubID)