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()