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