bloodlines.py (1966B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\characterdata\bloodlines.py 2 import random 3 from fsdBuiltData.common.base import BuiltDataLoader 4 try: 5 import bloodlinesLoader 6 except ImportError: 7 bloodlinesLoader = None 8 9 class BloodlinesLoader(BuiltDataLoader): 10 __resBuiltFile__ = 'res:/staticData/bloodlines.fsdbinary' 11 __clientAutobuildBuiltFile__ = 'eve/autobuild/staticData/client/bloodlines.fsdbinary' 12 __serverAutobuildBuiltFile__ = 'eve/autobuild/staticData/server/bloodlines.fsdbinary' 13 __loader__ = bloodlinesLoader 14 15 16 def _get_bloodlines(): 17 return BloodlinesLoader.GetData() 18 19 20 def iter_bloodlines(): 21 for bloodline_id, data in _get_bloodlines().iteritems(): 22 yield (bloodline_id, data) 23 24 25 def get_bloodline(bloodline_id): 26 return _get_bloodlines()[bloodline_id] 27 28 29 def get_race_id(bloodline_id): 30 return get_bloodline(bloodline_id).raceID 31 32 33 def get_bloodline_corporation_id(bloodline_id): 34 return get_bloodline(bloodline_id).corporationID 35 36 37 def bloodline_exists(bloodline_id): 38 return bloodline_id in _get_bloodlines() 39 40 41 def get_bloodline_name(bloodline_id, bloodline = None, language_id = None): 42 if not bloodline: 43 bloodline = get_bloodline(bloodline_id) 44 return _get_message(bloodline.nameID, language_id=language_id) 45 46 47 def get_bloodline_ids_by_race_id(race_id, shuffle = False): 48 bloodlines = [ bloodline_id for bloodline_id, bloodline in iter_bloodlines() if bloodline.raceID == race_id ] 49 if bloodlines and shuffle: 50 random.shuffle(bloodlines) 51 return bloodlines 52 53 54 def get_bloodline_description(bloodline_id, bloodline = None, language_id = None): 55 if not bloodline: 56 bloodline = get_bloodline(bloodline_id) 57 return _get_message(bloodline.descriptionID, language_id=language_id) 58 59 60 def _get_message(message_id, language_id = None): 61 import localization 62 return localization.GetByMessageID(message_id, language_id=language_id)