moduleStateUtil.py (3102B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\fittingScreen\moduleStateUtil.py 2 from eve.client.script.ui.shared.fittingScreen.fittingUtil import GetDefaultAndOverheatEffectForType 3 from eve.client.script.ui.shared.fittingScreen import OFFLINE, ONLINE, ACTIVE, OVERHEATED, OFFLINE_COLOR, ONLINE_COLOR, ACTIVE_COLOR, OVERHEATED_COLOR 4 from inventorycommon.util import IsSubsystemFlag 5 from localization import GetByLabel 6 from shipfitting.fittingStuff import IsRigSlot 7 PASSIVE = 0 8 ACTIVATABLE = 1 9 RIG = 2 10 SUBSYSTEM = 3 11 12 def GetCurrentStateForDogmaItemWithEffects(dogmaItem, typeEffectInfo, flagID): 13 if IsRigSlot(flagID): 14 if typeEffectInfo.defaultEffect.effectID in dogmaItem.activeEffects: 15 return ONLINE 16 else: 17 return OFFLINE 18 elif IsPassive(typeEffectInfo): 19 if dogmaItem.IsOnline(): 20 return ONLINE 21 else: 22 return OFFLINE 23 else: 24 if not dogmaItem.IsOnline(): 25 return OFFLINE 26 if not dogmaItem.IsActive(): 27 return ONLINE 28 if typeEffectInfo.overloadEffect and typeEffectInfo.overloadEffect.effectID in dogmaItem.activeEffects: 29 return OVERHEATED 30 return ACTIVE 31 32 33 def IsPassive(typeEffectInfo): 34 isPassive = not typeEffectInfo.defaultEffect or not typeEffectInfo.isActivatable 35 return isPassive 36 37 38 def GetTextForCurrentStateForDogmaItem(dogmaItem): 39 effectsForType = GetDefaultAndOverheatEffectForType(dogmaItem.typeID) 40 currentState = GetCurrentStateForDogmaItemWithEffects(dogmaItem, effectsForType, dogmaItem.flagID) 41 if IsRigSlot(dogmaItem.flagID): 42 moduleType = RIG 43 elif IsSubsystemFlag(dogmaItem.flagID): 44 moduleType = SUBSYSTEM 45 currentState = ONLINE 46 elif IsPassive(effectsForType): 47 moduleType = PASSIVE 48 else: 49 moduleType = ACTIVATABLE 50 color = COLOR_BY_ACTIVATION_STATE.get(currentState) 51 label = activationStateLabels.get((currentState, moduleType)) 52 return (label, color, currentState) 53 54 55 activationStateLabels = {(OFFLINE, ACTIVATABLE): GetByLabel('UI/Fitting/FittingWindow/ModuleModeOffline'), 56 (OFFLINE, PASSIVE): GetByLabel('UI/Fitting/FittingWindow/ModuleModeOfflinePassive'), 57 (OFFLINE, RIG): GetByLabel('UI/Fitting/FittingWindow/ModuleModeOfflineRig'), 58 (ONLINE, SUBSYSTEM): GetByLabel('UI/Fitting/FittingWindow/ModuleModeOfflineSubsystem'), 59 (ONLINE, ACTIVATABLE): GetByLabel('UI/Fitting/FittingWindow/ModuleModeOnline'), 60 (ONLINE, PASSIVE): GetByLabel('UI/Fitting/FittingWindow/ModuleModeOnlinePassive'), 61 (ONLINE, RIG): GetByLabel('UI/Fitting/FittingWindow/ModuleModeOnlineRig'), 62 (ACTIVE, ACTIVATABLE): GetByLabel('UI/Fitting/FittingWindow/ModuleModeActive'), 63 (ACTIVE, PASSIVE): GetByLabel('UI/Fitting/FittingWindow/ModuleModeOnlinePassive'), 64 (OVERHEATED, ACTIVATABLE): GetByLabel('UI/Fitting/FittingWindow/ModuleModeOverheated')} 65 COLOR_BY_ACTIVATION_STATE = {OFFLINE: OFFLINE_COLOR[:3] + (1.0,), 66 ONLINE: ONLINE_COLOR[:3] + (1.5,), 67 ACTIVE: ACTIVE_COLOR[:3] + (1.0,), 68 OVERHEATED: OVERHEATED_COLOR[:3] + (1.0,)}