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

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}