baseContentProviderCosmicAnomalies.py (1618B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\agencyNew\contentProviders\baseContentProviderCosmicAnomalies.py 2 import uthread2 3 import uthread 4 from eve.client.script.ui.shared.agencyNew.contentProviders.baseContentProviderDungeons import BaseContentProviderDungeons 5 6 class BaseContentProviderCosmicAnomalies(BaseContentProviderDungeons): 7 __notifyevents__ = [] 8 DUNGEON_TRACKER_ID = None 9 10 def __init__(self): 11 self._tracker = sm.GetService('dungeonTracking').get_tracker(self.DUNGEON_TRACKER_ID) 12 super(BaseContentProviderCosmicAnomalies, self).__init__() 13 self._tracker.on_sites_updated.connect(self._OnSitesUpdated) 14 self._tracker.on_sites_invalidated.connect(self._OnSitesInvalidated) 15 16 @uthread2.debounce(0.5) 17 def Reset(self): 18 self.InvalidateDungeonInstances() 19 self.InvalidateContentPieces() 20 21 def _GetAllDungeonInstances(self): 22 return {solar_system_id:dungeons for solar_system_id, dungeons in self._tracker.get_sites().iteritems() if dungeons} 23 24 def _OnSitesUpdated(self): 25 self.Reset() 26 27 def _OnSitesInvalidated(self): 28 self.Reset() 29 30 31 class BaseContentProviderCosmicAnomaliesWithUnknown(BaseContentProviderCosmicAnomalies): 32 33 def _GetAllDungeonInstances(self): 34 unknown_sites, known_sites = uthread.parallel([(self._tracker.get_unknown_sites, ()), (self._tracker.get_sites, ())]) 35 result = unknown_sites 36 result.update(known_sites) 37 return {solar_system_id:dungeons for solar_system_id, dungeons in result.iteritems() if dungeons}