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

storage.py (2142B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dbuff\storage.py
      2 import collections
      3 import fsdlite
      4 import dogma.const
      5 OPERATION_IDS_BY_NAME = {'PreAssignment': dogma.const.dgmAssPreAssignment,
      6  'PreMul': dogma.const.dgmAssPreMul,
      7  'PreDiv': dogma.const.dgmAssPreDiv,
      8  'ModAdd': dogma.const.dgmAssModAdd,
      9  'ModSub': dogma.const.dgmAssModSub,
     10  'PostMul': dogma.const.dgmAssPostMul,
     11  'PostDiv': dogma.const.dgmAssPostDiv,
     12  'PostPercent': dogma.const.dgmAssPostPercent,
     13  'PostAssignment': dogma.const.dgmAssPostAssignment}
     14 ItemModifiersAttributes = collections.namedtuple('itemModifiersAttributes', ['dogmaAttributeID'])
     15 LocationModifiersAttributes = collections.namedtuple('locationModifiersAttributes', ['dogmaAttributeID'])
     16 LocationGroupModifiersAttributes = collections.namedtuple('locationGroupModifiersAttributes', ['dogmaAttributeID', 'groupID'])
     17 LocationRequiredSkillModifiersAttributes = collections.namedtuple('locationRequiredSkillModifiersAttributes', ['dogmaAttributeID', 'skillID'])
     18 
     19 class DbuffCollection(object):
     20     operation = property(lambda self: OPERATION_IDS_BY_NAME[self.operationName])
     21 
     22 
     23 def GetDbuffCollection(dbuffCollectionID):
     24     return DbuffCollectionStorage()[dbuffCollectionID]
     25 
     26 
     27 def GetDisplayNameID(dbuffCollectionID):
     28     dbuffCollection = GetDbuffCollection(dbuffCollectionID)
     29     try:
     30         return dbuffCollection.displayNameID
     31     except AttributeError:
     32         return None
     33 
     34 
     35 def DbuffCollectionStorage():
     36     try:
     37         return DbuffCollectionStorage._storage
     38     except AttributeError:
     39         mapping = [('itemModifiers$', ItemModifiersAttributes),
     40          ('locationModifiers$', LocationModifiersAttributes),
     41          ('locationGroupModifiers$', LocationGroupModifiersAttributes),
     42          ('locationRequiredSkillModifiers$', LocationRequiredSkillModifiersAttributes),
     43          ('$', DbuffCollection)]
     44         DbuffCollectionStorage._storage = fsdlite.EveStorage(data='dbuff/collections', cache='dbuffCollections.static', mapping=mapping, coerce=int)
     45         return DbuffCollectionStorage._storage
     46 
     47 
     48 def CloseStorage():
     49     DbuffCollectionStorage().cache.close()