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

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)