fittingSnapshot.py (3219B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\fittingScreen\fittingSnapshot.py 2 import inventorycommon.const as invConst 3 from eve.client.script.ui.shared.fittingScreen import ONLINE, ACTIVE, OVERHEATED 4 allModuleSlots = invConst.subsystemSlotFlags + invConst.loSlotFlags + invConst.medSlotFlags + invConst.hiSlotFlags + invConst.serviceSlotFlags 5 6 class FittingSnapshot(object): 7 8 def __init__(self, shipTypeID, fitData, chargeInfoToLoad, oringalItemIDByFlagAndTypeID, registeredDroneTypes, shipStanceID, currentStatusByFlagID, shipName): 9 self.shipTypeID = shipTypeID 10 self.fitData = fitData 11 self.chargeInfoToLoad = chargeInfoToLoad 12 self.oringalItemIDByFlagAndTypeID = oringalItemIDByFlagAndTypeID 13 self.registeredDroneTypes = registeredDroneTypes 14 self.shipStanceID = shipStanceID 15 self.currentStatusByFlagID = currentStatusByFlagID 16 self.shipName = shipName 17 18 def __repr__(self): 19 text = '----------------\r\nshipTypeID=%s\r\nfitData=%s\r\nchargeInfo=%s\r\noriginalItems=%s\r\nactiveDrones=%s\r\nstanceID=%s\r\ncurrentStatusByFlagID=%s' % (self.shipTypeID, 20 self.fitData, 21 self.chargeInfoToLoad, 22 self.oringalItemIDByFlagAndTypeID, 23 self.registeredDroneTypes, 24 self.shipStanceID, 25 self.currentStatusByFlagID) 26 return text 27 28 def GetOnlineModules(self): 29 onlineModules = [ k for k, v in self.currentStatusByFlagID.iteritems() if v == ONLINE ] 30 return [ x for x in allModuleSlots if x in onlineModules ] 31 32 def GetActiveModules(self): 33 activeModules = [ k for k, v in self.currentStatusByFlagID.iteritems() if v == ACTIVE ] 34 return [ x for x in allModuleSlots if x in activeModules ] 35 36 def GetOverheatedModules(self): 37 overheatedModules = [ k for k, v in self.currentStatusByFlagID.iteritems() if v == OVERHEATED ] 38 return [ x for x in allModuleSlots if x in overheatedModules ] 39 40 def GetOfflineRigs(self): 41 onlineModules = [ k for k, v in self.currentStatusByFlagID.iteritems() if v == ONLINE ] 42 return [ x for x in invConst.rigSlotFlags if x not in onlineModules ] 43 44 def GetOnlineRigs(self): 45 onlineModules = [ k for k, v in self.currentStatusByFlagID.iteritems() if v == ONLINE ] 46 return [ x for x in invConst.rigSlotFlags if x in onlineModules ] 47 48 def __eq__(self, other): 49 if not isinstance(other, FittingSnapshot): 50 return False 51 if self.shipTypeID != other.shipTypeID: 52 return False 53 if sorted(self.fitData) != sorted(other.fitData): 54 return False 55 if self.chargeInfoToLoad != other.chargeInfoToLoad: 56 return False 57 if self.oringalItemIDByFlagAndTypeID != other.oringalItemIDByFlagAndTypeID: 58 return False 59 if self.registeredDroneTypes != other.registeredDroneTypes: 60 return False 61 if self.shipStanceID != other.shipStanceID: 62 return False 63 if self.currentStatusByFlagID != other.currentStatusByFlagID: 64 return False 65 return True 66 67 def __ne__(self, other): 68 return not self == other