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

tacticalConst.py (4225B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\parklife\tacticalConst.py
      2 import evetypes
      3 import inventorycommon.const as invconst
      4 filterGroups = {invconst.groupStationServices,
      5  invconst.groupSecondarySun,
      6  invconst.groupTemporaryCloud,
      7  invconst.groupSolarSystem,
      8  invconst.groupRing,
      9  invconst.groupConstellation,
     10  invconst.groupRegion,
     11  invconst.groupCloud,
     12  invconst.groupComet,
     13  invconst.groupCosmicAnomaly,
     14  invconst.groupCosmicSignature,
     15  invconst.groupGlobalWarpDisruptor,
     16  invconst.groupPlanetaryCloud,
     17  invconst.groupCommandPins,
     18  invconst.groupExtractorPins,
     19  invconst.groupPirateSpawners,
     20  invconst.groupPlanetaryLinks,
     21  invconst.groupProcessPins,
     22  invconst.groupSpaceportPins,
     23  invconst.groupStoragePins,
     24  invconst.groupFlashpoint,
     25  invconst.groupSatellite,
     26  invconst.groupOrbitalTarget,
     27  invconst.groupMobileMicroJumpDisruptor,
     28  invconst.groupMobileDecoyUnit,
     29  invconst.groupMobileVault,
     30  invconst.groupObservatoryDeployable,
     31  invconst.groupFighterDrone,
     32  invconst.groupFighterBomber,
     33  invconst.groupTestOrbitals,
     34  invconst.groupStructureAdministrationHub,
     35  invconst.groupStructureAdvertisementCenter,
     36  invconst.groupStructureLaboratory,
     37  invconst.groupStructureObservatoryArray,
     38  11,
     39  invconst.groupExtractionControlUnitPins,
     40  invconst.groupDefenseBunkers,
     41  invconst.groupAncientCompressedIce,
     42  invconst.groupTerranArtifacts,
     43  invconst.groupShippingCrates,
     44  invconst.groupProximityDrone,
     45  invconst.groupRepairDrone,
     46  invconst.groupUnanchoringDrone,
     47  invconst.groupWarpScramblingDrone,
     48  invconst.groupZombieEntities,
     49  invconst.groupForceFieldArray,
     50  invconst.groupLogisticsArray,
     51  invconst.groupMobilePowerCore,
     52  invconst.groupMobileShieldGenerator,
     53  invconst.groupMobileStorage,
     54  invconst.groupStealthEmitterArray,
     55  invconst.groupStructureRepairArray,
     56  invconst.groupTargetPaintingBattery,
     57  invconst.groupMoonChunk,
     58  invconst.groupAbyssalEnvironment,
     59  invconst.groupMassiveEnvironments,
     60  invconst.groupLocators,
     61  invconst.groupNonInteractableObject,
     62  invconst.groupScalableNonInteractableObject,
     63  invconst.groupNonScalableClouds,
     64  invconst.groupUninteractableLocalizedEffectBeacon,
     65  invconst.groupSovereigntyDisruptionStructures,
     66  invconst.groupInvisibleBeacon,
     67  invconst.groupInfestationAnchor,
     68  invconst.groupNonInteractableAsteroid}
     69 validCategories = (invconst.categoryStation,
     70  invconst.categoryShip,
     71  invconst.categoryEntity,
     72  invconst.categoryCelestial,
     73  invconst.categoryAsteroid,
     74  invconst.categoryDrone,
     75  invconst.categoryDeployable,
     76  invconst.categoryStarbase,
     77  invconst.categoryStructure,
     78  invconst.categoryCharge,
     79  invconst.categorySovereigntyStructure,
     80  invconst.categoryOrbital,
     81  invconst.categoryFighter)
     82 bombGroups = (invconst.groupBomb,
     83  invconst.groupBombECM,
     84  invconst.groupBombEnergy,
     85  invconst.groupScannerProbe,
     86  invconst.groupWarpDisruptionProbe,
     87  invconst.groupBurstEffectProbe,
     88  invconst.groupStructureAreaMissile)
     89 
     90 class GroupStorage(object):
     91 
     92     def __init__(self):
     93         self.group_ids = set()
     94         self.groups = []
     95 
     96     def get_group_ids(self):
     97         if not self.group_ids:
     98             self.construct_groups()
     99         return self.group_ids
    100 
    101     def get_groups(self):
    102         if not self.groups:
    103             self.construct_groups()
    104         return self.groups
    105 
    106     def construct_groups(self):
    107         self.groups = []
    108         for group_id in evetypes.IterateGroups():
    109             category_id = evetypes.GetCategoryIDByGroup(group_id)
    110             if category_id == invconst.categoryCharge and group_id not in bombGroups:
    111                 continue
    112             if category_id not in validCategories:
    113                 continue
    114             if group_id in filterGroups:
    115                 continue
    116             group_name = evetypes.GetGroupNameByGroup(group_id)
    117             self.groups.append((group_name.lower(), (group_id, group_name)))
    118 
    119         group_list = [ item[1] for item in sorted(self.groups, key=lambda data: data[0]) ]
    120         self.group_ids = set((each[0] for each in group_list))
    121 
    122 
    123 group_storage = GroupStorage()
    124 
    125 def is_interactable_entity(groupID):
    126     return groupID in group_storage.get_group_ids()
    127 
    128 
    129 def get_group_ids():
    130     return group_storage.get_group_ids()
    131 
    132 
    133 def get_groups():
    134     return group_storage.get_groups()