uiFormatters.py (2769B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dbuff\client\uiFormatters.py 2 from dbuff.storage import GetDbuffCollection, GetDisplayNameID 3 from dogma.attributes.format import FormatValue, FormatUnit 4 from dogma.const import dbuffAttributeValueMappings, unitModifierRelativePercent, dgmAssPostPercent, dbuffAttributeMultiplierMappings 5 import evetypes 6 from eve.client.script.ui.control.entries.header import Header 7 from eve.client.script.ui.control.entries.label_text import LabelTextSides 8 from eve.client.script.ui.control.entries.util import GetFromClass 9 from inventorycommon.const import categoryCharge 10 import localization 11 12 def GetDisplayNameAndValue(dbuffID, dbuffValue): 13 dbuffCollection = GetDbuffCollection(dbuffID) 14 displayNameID = GetDisplayNameID(dbuffID) 15 if displayNameID: 16 displayName = localization.GetByMessageID(displayNameID) 17 else: 18 displayName = None 19 if dbuffCollection.operation == dgmAssPostPercent: 20 unitID = unitModifierRelativePercent 21 else: 22 unitID = None 23 if dbuffCollection.showOutputValueInUI == 'ShowInverted': 24 dbuffValue = -dbuffValue 25 if dbuffCollection.showOutputValueInUI == 'Hide': 26 displayValue = None 27 else: 28 displayValue = localization.GetByLabel('UI/InfoWindow/ValueAndUnit', value=FormatValue(dbuffValue, unitID), unit=FormatUnit(unitID)) 29 return (displayName, displayValue) 30 31 32 def GetDbuffInfoEntriesForItem(itemID, typeID): 33 dbuffValues = GetMappedDbuffsForItem(typeID, itemID) 34 if not dbuffValues: 35 return [] 36 dbuffAttributeEntries = [GetFromClass(Header, {'label': localization.GetByLabel('UI/Fitting/FittingWindow/BuffOutputs')})] 37 for dbuffID, dbuffValue in dbuffValues: 38 displayName, displayValue = GetDisplayNameAndValue(dbuffID, dbuffValue) 39 if displayName is None: 40 continue 41 entry = GetFromClass(LabelTextSides, {'label': displayName, 42 'text': displayValue, 43 'iconID': 0}) 44 dbuffAttributeEntries.append(entry) 45 46 return dbuffAttributeEntries 47 48 49 def GetMappedDbuffsForItem(typeID, itemID = None): 50 GAV = sm.GetService('info').GetGAVFunc(itemID, typeID) 51 dbuffIDValues = [] 52 for dbuffIDAttribute, dbuffValueAttribute in _GetAttributeMappings(typeID).iteritems(): 53 dbuffID = GAV(dbuffIDAttribute) 54 if not dbuffID: 55 continue 56 dbuffValue = GAV(dbuffValueAttribute) 57 dbuffIDValues.append((dbuffID, dbuffValue)) 58 59 return dbuffIDValues 60 61 62 def _GetAttributeMappings(typeID): 63 if evetypes.GetCategoryID(typeID) == categoryCharge: 64 attributeMappings = dbuffAttributeMultiplierMappings 65 else: 66 attributeMappings = dbuffAttributeValueMappings 67 return attributeMappings