ammoloadingUtils.py (1744B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\dogma\ammoloadingUtils.py 2 from caching.memoize import Memoize 3 from evetypes import GetGroupID, GetVolume 4 from dogma import const as dogmaConst 5 6 @Memoize 7 def GetRequiredSpace(chargeTypeID, quantity): 8 return GetVolume(chargeTypeID) * quantity 9 10 11 @Memoize 12 def GetChargeGroupsForLauncher(moduleTypeID, dogmaStaticMgr): 13 ret = set() 14 for chargeGroupAttribute in dogmaStaticMgr.GetChargeGroupAttributes(): 15 chargeGroup = dogmaStaticMgr.GetTypeAttribute2(moduleTypeID, chargeGroupAttribute) 16 if chargeGroup > 0: 17 ret.add(int(chargeGroup)) 18 19 return ret 20 21 22 @Memoize 23 def CanModuleBeLoadedWithCharges(moduleTypeID, dogmaStaticMgr): 24 return bool(GetChargeGroupsForLauncher(moduleTypeID, dogmaStaticMgr)) 25 26 27 @Memoize 28 def GetModuleCapacityForAmmoType(moduleTypeID, ammoTypeID, dogmaStaticMgr): 29 moduleCapacity = dogmaStaticMgr.GetTypeAttribute2(moduleTypeID, dogmaConst.attributeCapacity) 30 chargeSize = dogmaStaticMgr.GetTypeAttribute2(ammoTypeID, dogmaConst.attributeVolume) 31 return int(moduleCapacity / chargeSize + 1e-07) 32 33 34 @Memoize 35 def IsChargeCompatibleWithLauncher(ammoTypeID, moduleTypeID, dogmaStaticMgr): 36 if GetGroupID(ammoTypeID) in GetChargeGroupsForLauncher(moduleTypeID, dogmaStaticMgr): 37 requiredChargeSize = dogmaStaticMgr.GetTypeAttribute2(moduleTypeID, dogmaConst.attributeChargeSize) 38 if requiredChargeSize and requiredChargeSize == dogmaStaticMgr.GetTypeAttribute2(ammoTypeID, dogmaConst.attributeChargeSize): 39 return True 40 if not requiredChargeSize and GetModuleCapacityForAmmoType(moduleTypeID, ammoTypeID, dogmaStaticMgr) > 0: 41 return True 42 return False