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

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)