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

util.py (3164B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\underConstruction\util.py
      2 import mathext
      3 from inventorycommon.typeHelpers import GetAveragePrice
      4 import evetypes
      5 import eve.common.lib.appConst as appConst
      6 import logging
      7 logger = logging.getLogger(__name__)
      8 DEFAULT_FACTION_BG = 'res:/UI/Texture/classes/underConstruction/backgrounds/bg_faction_default.png'
      9 FACTION_BG_HEIGHT = 1080
     10 FACTION_BG_WIDTH = 1680
     11 bgTextureByFactionID = {appConst.factionAmarrEmpire: 'res:/UI/Texture/classes/underConstruction/backgrounds/bg_faction_500003.png',
     12  appConst.factionCaldariState: 'res:/UI/Texture/classes/underConstruction/backgrounds/bg_faction_500001.png',
     13  appConst.factionGallenteFederation: 'res:/UI/Texture/classes/underConstruction/backgrounds/bg_faction_500004.png',
     14  appConst.factionMinmatarRepublic: 'res:/UI/Texture/classes/underConstruction/backgrounds/bg_faction_500002.png'}
     15 textureInfoByGroupID = {}
     16 textureInfoByTypeID = {appConst.typeShipcasterBeaconAmarr: ('res:/UI/Texture/classes/underConstruction/outputImages/type75928.png', 1680, 1080),
     17  appConst.typeShipcasterBeaconCaldari: ('res:/UI/Texture/classes/underConstruction/outputImages/type75929.png', 1680, 1080),
     18  appConst.typeShipcasterBeaconGallente: ('res:/UI/Texture/classes/underConstruction/outputImages/type75930.png', 1680, 1080),
     19  appConst.typeShipcasterBeaconMinmatar: ('res:/UI/Texture/classes/underConstruction/outputImages/type75931.png', 1680, 1080)}
     20 
     21 def GetBgTextureInfo(typeID):
     22     textureInfo = textureInfoByTypeID.get(typeID, None)
     23     if textureInfo:
     24         return textureInfo
     25     textureInfo = textureInfoByGroupID.get(evetypes.GetGroupID(typeID), None)
     26     return textureInfo
     27 
     28 
     29 def GetFactionBgTexturePath(typeID):
     30     factionID = evetypes.GetFactionID(typeID)
     31     return bgTextureByFactionID.get(factionID, DEFAULT_FACTION_BG)
     32 
     33 
     34 def GetProgressFromQty(qtyByTypeID, qtyRequiredByTypeID):
     35     priceProgress = _CalculatePriceProgress(qtyByTypeID, qtyRequiredByTypeID)
     36     if priceProgress is not None:
     37         return priceProgress
     38     return _CalculateComponentProgress(qtyByTypeID, qtyRequiredByTypeID)
     39 
     40 
     41 def _CalculatePriceProgress(qtyByTypeID, qtyRequiredByTypeID):
     42     valueOfComponents = 0
     43     totalValueOfNeeded = 0
     44     try:
     45         for typeID, reqQty in qtyRequiredByTypeID.iteritems():
     46             typePrice = GetAveragePrice(typeID)
     47             if not typePrice:
     48                 return
     49             totalValueOfNeeded += typePrice * reqQty
     50             currentQty = qtyByTypeID.get(typeID, 0)
     51             valueOfComponents += currentQty * typePrice
     52 
     53         if totalValueOfNeeded:
     54             return float(valueOfComponents) / totalValueOfNeeded
     55     except Exception as e:
     56         logger.exception('Failed _CalculatePriceProgress for wnd')
     57 
     58 
     59 def _CalculateComponentProgress(qtyByTypeID, qtyRequiredByTypeID):
     60     progressValues = []
     61     for typeID, reqQty in qtyRequiredByTypeID.iteritems():
     62         currentQty = qtyByTypeID.get(typeID, 0)
     63         progressValues.append(float(currentQty) / reqQty)
     64 
     65     componentProgress = sum(progressValues) / len(progressValues)
     66     return mathext.clamp(componentProgress, 0.0, 1.0)