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)