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

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