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

securityOfficeSvc.py (1480B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\station\securityOfficeSvc.py
      2 import crimewatch.const
      3 from carbon.common.script.sys.service import Service
      4 from collections import defaultdict
      5 from eve.common.lib.appConst import stationOwnersWithSecurityService
      6 from eveuniverse.security import is_low_sec_solar_system
      7 from inventorycommon.const import containerHangar, flagHangar
      8 
      9 class SecurityOfficeService(Service):
     10     __guid__ = 'svc.securityOfficeSvc'
     11     __dependencies__ = ['ui', 'invCache']
     12     __startupdependencies__ = []
     13     __notifyevents__ = []
     14 
     15     def CanAccessServiceInStation(self, stationID):
     16         stationInfo = self.ui.GetStationStaticInfo(stationID)
     17         if stationInfo is not None:
     18             if self.ui.GetStationOwner(stationID) in stationOwnersWithSecurityService:
     19                 if self.CanAccessServiceInSolarSystem(stationInfo.solarSystemID):
     20                     return True
     21         return False
     22 
     23     def GetTagsInHangar(self):
     24         invContainer = self.invCache.GetInventory(containerHangar)
     25         items = invContainer.List(flagHangar)
     26         tagCountByTypeID = defaultdict(int)
     27         for item in items:
     28             if item.typeID in crimewatch.const.securityLevelsPerTagType:
     29                 tagCountByTypeID[item.typeID] += item.stacksize
     30 
     31         return tagCountByTypeID
     32 
     33     def CanAccessServiceInSolarSystem(self, solarSystemID):
     34         return is_low_sec_solar_system(solarSystemID)