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

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