__init__.py (7264B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\eveSpaceObject\__init__.py 2 import geo2 3 import trinity 4 import eve.common.lib.appConst as const 5 gfxRaceAmarr = 'amarr' 6 gfxRaceCaldari = 'caldari' 7 gfxRaceGallente = 'gallente' 8 gfxRaceMinmatar = 'minmatar' 9 gfxRaceJove = 'jove' 10 gfxRaceAngel = 'angel' 11 gfxRaceSleeper = 'sleeper' 12 gfxRaceORE = 'ore' 13 gfxRaceConcord = 'concord' 14 gfxRaceRogue = 'rogue' 15 gfxRaceSansha = 'sansha' 16 gfxRaceSOCT = 'soct' 17 gfxRaceTalocan = 'talocan' 18 gfxRaceGeneric = 'generic' 19 gfxRaceSoE = 'soe' 20 gfxRaceMordu = 'mordu' 21 gfxRaceTriglavian = 'triglavian' 22 DEFAULT_SCENE_PATH = 'res:/dx9/scene/iconbackground/generic.red' 23 DEFAULT_PREVIEW_SCENE_PATH = 'res:/dx9/scene/preview/generic.red' 24 25 def GetPreviewScenePathByRaceName(raceName): 26 scenePaths = {gfxRaceAmarr: 'res:/dx9/scene/preview/amarr.red', 27 gfxRaceAngel: 'res:/dx9/scene/preview/angel.red', 28 gfxRaceCaldari: 'res:/dx9/scene/preview/caldari.red', 29 gfxRaceConcord: 'res:/dx9/scene/preview/concord.red', 30 gfxRaceGallente: 'res:/dx9/scene/preview/gallente.red', 31 gfxRaceGeneric: 'res:/dx9/scene/preview/generic.red', 32 gfxRaceJove: 'res:/dx9/scene/preview/jove.red', 33 gfxRaceMinmatar: 'res:/dx9/scene/preview/minmatar.red', 34 gfxRaceMordu: 'res:/dx9/scene/preview/mordu.red', 35 gfxRaceORE: 'res:/dx9/scene/preview/ore.red', 36 gfxRaceRogue: 'res:/dx9/scene/preview/rogue.red', 37 gfxRaceSansha: 'res:/dx9/scene/preview/sansha.red', 38 gfxRaceSleeper: 'res:/dx9/scene/preview/sleeper.red', 39 gfxRaceSOCT: 'res:/dx9/scene/preview/soct.red', 40 gfxRaceSoE: 'res:/dx9/scene/preview/soe.red', 41 gfxRaceTalocan: 'res:/dx9/scene/preview/talocan.red', 42 gfxRaceTriglavian: 'res:/dx9/scene/preview/triglavian.red'} 43 return scenePaths.get(raceName, DEFAULT_PREVIEW_SCENE_PATH) 44 45 46 droneTurretGfxID_fighterbomber = {gfxRaceAmarr: 11515, 47 gfxRaceGallente: 11517, 48 gfxRaceCaldari: 11516, 49 gfxRaceMinmatar: 11518, 50 gfxRaceSansha: 20339} 51 droneTurretGfxID_mining = 11521 52 droneTurretGfxID_ice_mining = 25189 53 droneTurretGfxID_combat = {gfxRaceAmarr: 11504, 54 gfxRaceGallente: 11506, 55 gfxRaceCaldari: 11505, 56 gfxRaceMinmatar: 11508, 57 gfxRaceJove: 21058} 58 droneTurretGfxID_salvager = 20925 59 droneTurretGfxID_generic = 11507 60 gfxDroneGroupFighterBomber = 1 61 gfxDroneGroupCombat = 2 62 gfxDroneGroupUtility = 3 63 gfxDroneGroupMining = 4 64 gfxDroneGroupNpc = 5 65 gfxDroneGroupSalvager = 6 66 droneGroupFromTypeGroup = {const.groupMiningDrone: gfxDroneGroupMining, 67 const.groupSalvageDrone: gfxDroneGroupSalvager, 68 const.groupCombatDrone: gfxDroneGroupCombat, 69 const.groupElectronicWarfareDrone: gfxDroneGroupCombat, 70 const.groupStasisWebifyingDrone: gfxDroneGroupCombat, 71 const.groupUnanchoringDrone: gfxDroneGroupCombat, 72 const.groupRepairDrone: gfxDroneGroupCombat, 73 const.groupWarpScramblingDrone: gfxDroneGroupCombat, 74 const.groupCapDrainDrone: gfxDroneGroupCombat, 75 const.groupLogisticDrone: gfxDroneGroupCombat, 76 const.groupHybridDrone: gfxDroneGroupCombat, 77 const.groupSupportFighter: gfxDroneGroupCombat, 78 const.groupLCODrone: gfxDroneGroupNpc, 79 const.groupRogueDrone: gfxDroneGroupNpc, 80 const.groupAsteroidRogueDroneBattleCruiser: gfxDroneGroupNpc, 81 const.groupAsteroidRogueDroneBattleship: gfxDroneGroupNpc, 82 const.groupAsteroidRogueDroneCruiser: gfxDroneGroupNpc, 83 const.groupAsteroidRogueDroneDestroyer: gfxDroneGroupNpc, 84 const.groupAsteroidRogueDroneFrigate: gfxDroneGroupNpc, 85 const.groupAsteroidRogueDroneHauler: gfxDroneGroupNpc, 86 const.groupAsteroidRogueDroneSwarm: gfxDroneGroupNpc, 87 const.groupAsteroidRogueDroneOfficer: gfxDroneGroupNpc, 88 const.groupDeadspaceRogueDroneBattleCruiser: gfxDroneGroupNpc, 89 const.groupDeadspaceRogueDroneBattleship: gfxDroneGroupNpc, 90 const.groupDeadspaceRogueDroneCruiser: gfxDroneGroupNpc, 91 const.groupDeadspaceRogueDroneDestroyer: gfxDroneGroupNpc, 92 const.groupDeadspaceRogueDroneFrigate: gfxDroneGroupNpc, 93 const.groupDeadspaceRogueDroneSwarm: gfxDroneGroupNpc, 94 const.groupAsteroidRogueDroneCommanderFrigate: gfxDroneGroupNpc, 95 const.groupAsteroidRogueDroneCommanderDestroyer: gfxDroneGroupNpc, 96 const.groupAsteroidRogueDroneCommanderCruiser: gfxDroneGroupNpc, 97 const.groupAsteroidRogueDroneCommanderBattleCruiser: gfxDroneGroupNpc, 98 const.groupMissionFighterDrone: gfxDroneGroupNpc, 99 const.groupMissionDrone: gfxDroneGroupNpc, 100 const.groupAbyssalDroneNpc: gfxDroneGroupNpc, 101 const.groupIrregularDrone: gfxDroneGroupNpc, 102 const.groupFabricatorRogueDroneFrigate: gfxDroneGroupNpc, 103 const.groupFabricatorRogueDroneDestroyer: gfxDroneGroupNpc, 104 const.groupFabricatorRogueDroneCruiser: gfxDroneGroupNpc, 105 const.groupFabricatorRogueDroneBattlecruiser: gfxDroneGroupNpc, 106 const.groupFabricatorRogueDroneBattleship: gfxDroneGroupNpc} 107 droneTypeGroup = {3701: droneTurretGfxID_ice_mining, 108 43694: droneTurretGfxID_mining, 109 43681: droneTurretGfxID_ice_mining, 110 41030: droneTurretGfxID_mining, 111 1202: droneTurretGfxID_mining, 112 3218: droneTurretGfxID_mining, 113 43699: droneTurretGfxID_ice_mining, 114 43700: droneTurretGfxID_ice_mining, 115 10252: droneTurretGfxID_mining, 116 10248: droneTurretGfxID_mining, 117 10246: droneTurretGfxID_mining, 118 10250: droneTurretGfxID_mining} 119 droneTurretGfxID = {gfxDroneGroupFighterBomber: (droneTurretGfxID_fighterbomber, droneTurretGfxID_generic), 120 gfxDroneGroupCombat: (droneTurretGfxID_combat, droneTurretGfxID_generic), 121 gfxDroneGroupUtility: (None, None), 122 gfxDroneGroupMining: (None, droneTurretGfxID_mining), 123 gfxDroneGroupNpc: (droneTurretGfxID_combat, droneTurretGfxID_generic), 124 gfxDroneGroupSalvager: (None, droneTurretGfxID_salvager)} 125 126 def GetDeathExplosionLookDelay(model, radius): 127 radius = getattr(model, 'boundingSphereRadius', radius) 128 if radius < 20.0: 129 radius = 20.0 130 elif radius > 6000.0: 131 radius = 6000.0 132 lerpValue = (radius - 20.0) / 5980.0 133 milliseconds = 4000.0 + lerpValue * 4000.0 134 return milliseconds 135 136 137 def _GetEffectParameter(effect, name): 138 for each in effect.constParameters: 139 if each[0] == name: 140 return each[1] 141 142 for each in effect.parameters: 143 if each.name == name: 144 if type(each.value) != tuple or len(each.value) != 4: 145 raise KeyError() 146 return each.value 147 148 raise KeyError() 149 150 151 def _EnhanceColor(rgb): 152 color = trinity.TriColor(*rgb) 153 h, s, v = color.GetHSV() 154 s = min(s * 1.5, 1) 155 color.SetHSV(h, s, v) 156 return (color.r, color.g, color.b) 157 158 159 def GetAlbedoColor(spaceObject): 160 if not hasattr(spaceObject, 'mesh'): 161 return (0, 0, 0, 0) 162 mesh = spaceObject.mesh 163 if not mesh: 164 return (0, 0, 0, 0) 165 color = (0, 0, 0, 0) 166 count = 0 167 parameterSuffixes = ('DiffuseColor', 'FresnelColor') 168 for area in mesh.opaqueAreas: 169 if not area.effect: 170 continue 171 for param in area.effect.parameters: 172 if param.name.endswith(parameterSuffixes) and type(param.value) == tuple and len(param.value) == 4: 173 color = geo2.Vec4Add(color, param.value) 174 count += 1 175 176 for name, value in area.effect.constParameters: 177 if name.endswith(parameterSuffixes): 178 color = geo2.Vec4Add(color, value) 179 count += 1 180 181 if count == 0: 182 return (0, 0, 0, 0) 183 return _EnhanceColor(geo2.Vec4Scale(color, 1.0 / count))