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

storage.py (1707B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\crates\storage.py
      2 from fsdBuiltData.common.base import BuiltDataLoader
      3 
      4 class CrateDoesNotExistError(RuntimeError):
      5     pass
      6 
      7 
      8 try:
      9     import cratesLoader
     10 except ImportError:
     11     cratesLoader = None
     12 
     13 class CratesBuiltDataLoader(BuiltDataLoader):
     14     __resBuiltFile__ = 'res:/staticData/crates.fsdbinary'
     15     __serverAutobuildBuiltFile__ = 'eve/autobuild/staticData/server/crates.fsdbinary'
     16     __clientAutobuildBuiltFile__ = 'eve/autobuild/staticData/client/crates.fsdbinary'
     17     __loader__ = cratesLoader
     18 
     19 
     20 class CratesStaticData(object):
     21 
     22     def __init__(self):
     23         self.crates_by_type = None
     24 
     25     @staticmethod
     26     def _get_data():
     27         loader = CratesBuiltDataLoader()
     28         data = loader.GetData()
     29         return data
     30 
     31     def get_crate_by_type_id(self, type_id):
     32         crates_by_type = self.get_crates_by_type()
     33         if type_id not in crates_by_type:
     34             raise CrateDoesNotExistError('Trying to load a crate that does not exist for type %s.' % type_id)
     35         return crates_by_type[type_id]
     36 
     37     def get_crates_by_type(self):
     38         if self.crates_by_type is None:
     39             crates_by_type = {}
     40             data = self._get_data()
     41             for crate in data.values():
     42                 crates_by_type[crate.typeID] = crate
     43 
     44             self.crates_by_type = crates_by_type
     45         return self.crates_by_type
     46 
     47     def is_crate(self, type_id):
     48         return type_id in self.get_crates_by_type()
     49 
     50     def get_crate_nameID(self, type_id):
     51         crates_by_type = self.get_crates_by_type()
     52         crate = crates_by_type.get(type_id, None)
     53         if crate:
     54             return crate.nameID