Drone.py (3269B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\environment\spaceObject\Drone.py 2 import blue 3 import trinity 4 import eve.client.script.environment.spaceObject.ship as ship 5 import evegraphics.settings as gfxsettings 6 import eveSpaceObject 7 import eve.client.script.environment.model.turretSet as turretSet 8 9 class Drone(ship.Ship): 10 11 def __init__(self): 12 ship.Ship.__init__(self) 13 self._usingDroneModel = True 14 15 def GetDNA(self): 16 dna = super(Drone, self).GetDNA() 17 if dna and ':class?' not in dna: 18 dna += ':class?ship' 19 return dna 20 21 def LoadModel(self, fileName = None, loadedModel = None): 22 droneModel = None 23 if not self.IsDroneModelEnabled(): 24 droneModel = trinity.EveShip2() 25 loc = trinity.EveLocator2() 26 loc.name = 'locator_turret_1a' 27 droneModel.locators.append(loc) 28 self._usingDroneModel = False 29 ship.Ship.LoadModel(self, fileName, droneModel) 30 31 def Assemble(self): 32 if not self.IsDroneModelEnabled(): 33 return 34 self.FitBoosters(alwaysOn=True, enableTrails=False) 35 self.SetupAmbientAudio() 36 if hasattr(self.model, 'ChainAnimationEx'): 37 self.model.ChainAnimationEx('NormalLoop', 0, 0, 1.0) 38 39 def FitHardpoints(self, blocking = False): 40 if self.fitted: 41 return 42 if self.model is None: 43 self.logger.warning('FitHardpoints - No model') 44 return 45 self.fitted = True 46 if not gfxsettings.Get(gfxsettings.UI_TURRETS_ENABLED): 47 return 48 groupID = self.typeData.get('groupID', None) 49 raceName = self.typeData.get('sofRaceName', None) 50 typeID = self.typeData.get('typeID', None) 51 droneGroup = eveSpaceObject.droneGroupFromTypeGroup.get(groupID, None) 52 if droneGroup is None: 53 self.logger.error('FitHardpoints - no gfx drone group for groupID %s', str(groupID)) 54 return 55 turretGfxIDs = eveSpaceObject.droneTurretGfxID.get(droneGroup, None) 56 if turretGfxIDs is None: 57 self.logger.error('FitHardpoints - no turret gfxID info for drone group %s', str(droneGroup)) 58 return 59 turretGraphicID = turretGfxIDs[1] 60 if typeID in eveSpaceObject.droneTypeGroup: 61 turretGraphicID = eveSpaceObject.droneTypeGroup.get(typeID, None) 62 elif turretGfxIDs[0] is not None: 63 if raceName is not None: 64 turretGraphicID = turretGfxIDs[0].get(raceName, turretGfxIDs[1]) 65 if turretGraphicID is not None: 66 ts = turretSet.TurretSet.AddTurretToModel(self.model, turretGraphicID) 67 if ts is not None and self.modules is not None: 68 self.modules[self.id] = ts 69 70 def Explode(self): 71 if not self.IsDroneModelEnabled(): 72 return False 73 return super(Drone, self).Explode() 74 75 def IsDroneModelEnabled(self): 76 groupID = self.typeData.get('groupID', None) 77 droneGroup = eveSpaceObject.droneGroupFromTypeGroup.get(groupID, None) 78 if droneGroup == eveSpaceObject.gfxDroneGroupNpc: 79 return True 80 return gfxsettings.Get(gfxsettings.UI_DRONE_MODELS_ENABLED)