npccharacters.py (2141B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\characterdata\npccharacters.py 2 from logging import getLogger 3 import localization 4 from eve.common.lib.appConst import auraAgentIDs 5 from eveprefs import boot 6 from fsdBuiltData.common.base import BuiltDataLoader 7 try: 8 import npcCharactersLoader 9 except ImportError: 10 npcCharactersLoader = None 11 12 logger = getLogger(__name__) 13 OWNER_AURA_IDENTIFIER = 'UI/Agents/AuraAgentName' 14 15 class NpcCharactersLoader(BuiltDataLoader): 16 __resBuiltFile__ = 'res:/staticData/npcCharacters.fsdbinary' 17 __serverAutobuildBuiltFile__ = 'eve/autobuild/staticData/server/npcCharacters.fsdbinary' 18 __clientAutobuildBuiltFile__ = 'eve/autobuild/staticData/client/npcCharacters.fsdbinary' 19 __loader__ = npcCharactersLoader 20 21 22 def _get_characters(): 23 return NpcCharactersLoader.GetData() 24 25 26 def iter_npc_characters(): 27 for character_id, character in _get_characters().iteritems(): 28 yield (character_id, character) 29 30 31 def get_npc_character(character_id, default = None): 32 try: 33 return _get_characters()[int(character_id)] 34 except (KeyError, ValueError): 35 logger.error('Failed to load NPC Character with id: %s, returning %s.', character_id, default) 36 return default 37 38 39 def get_npc_character_corporation(character_id, default = None): 40 character = get_npc_character(character_id) 41 return getattr(character, 'corporationID', default) 42 43 44 def get_npc_character_name(character_id, character = None, language_id = None, important = False): 45 if character_id in auraAgentIDs: 46 if important: 47 return localization.GetImportantByLabel(OWNER_AURA_IDENTIFIER) 48 return localization.GetByLabel(OWNER_AURA_IDENTIFIER) 49 if not character: 50 character = get_npc_character(character_id) 51 return _get_message(getattr(character, 'nameID', None), language_id, important) 52 53 54 def _get_message(message_id, language_id = None, important = False): 55 if important and boot.role == 'client': 56 return localization.GetImportantByMessageID(message_id) 57 return localization.GetByMessageID(message_id, language_id)