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

loader.py (2107B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dynamicitemattributes\loader.py
      2 import dynamicItemAttributesLoader
      3 from fsdBuiltData.common.base import BuiltDataLoader
      4 import evetypes
      5 
      6 class DynamicItemAttributes(BuiltDataLoader):
      7     __resBuiltFile__ = 'res:/staticdata/dynamicItemAttributes.fsdbinary'
      8     __clientAutobuildBuiltFile__ = 'eve/autobuild/staticdata/client/dynamicItemAttributes.fsdbinary'
      9     __serverAutobuildBuiltFile__ = 'eve/autobuild/staticdata/server/dynamicItemAttributes.fsdbinary'
     10     __loader__ = dynamicItemAttributesLoader
     11 
     12 
     13 def GetData():
     14     return DynamicItemAttributes.GetData()
     15 
     16 
     17 def IsMutator(typeID):
     18     return typeID in GetData()
     19 
     20 
     21 def GetMutator(mutatorID):
     22     return GetData()[mutatorID]
     23 
     24 
     25 def GetApplicableTypes(mutatorID):
     26     mutator = GetMutator(mutatorID)
     27     applicableTypes = []
     28     for mapping in mutator.inputOutputMapping:
     29         publishedTypes = filter(evetypes.IsPublished, mapping.applicableTypes)
     30         applicableTypes.extend(publishedTypes)
     31 
     32     return applicableTypes
     33 
     34 
     35 def GetMutatorAttributes(mutatorID):
     36     mutator = GetMutator(mutatorID)
     37     return mutator.attributeIDs
     38 
     39 
     40 def GetResultType(mutatorID, sourceTypeID):
     41     mutator = GetMutator(mutatorID)
     42     for mapping in mutator.inputOutputMapping:
     43         for applicableType in mapping.applicableTypes:
     44             if sourceTypeID == applicableType:
     45                 return mapping.resultingType
     46 
     47     raise ValueError('Source typeID {} is not applicable'.format(sourceTypeID))
     48 
     49 
     50 def GetResultTypes(mutatorID):
     51     mutator = GetMutator(mutatorID)
     52     return [ m.resultingType for m in mutator.inputOutputMapping ]
     53 
     54 
     55 def GetAllMutatorTypes():
     56     return GetData().keys()
     57 
     58 
     59 def GetMutatorTypesByResultTypes(resultTypes):
     60     if not hasattr(resultTypes, '__iter__'):
     61         resultTypes = [resultTypes]
     62     mutatorTypeIDs = []
     63     for mutatorID, mutator in GetData().iteritems():
     64         for mapping in mutator.inputOutputMapping:
     65             if mapping.resultingType in resultTypes:
     66                 mutatorTypeIDs.append(mutatorID)
     67 
     68     return mutatorTypeIDs