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

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)