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()