anchoring.py (2550B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\environment\effects\anchoring.py 2 from eve.client.script.environment.effects.GenericEffect import GenericEffect, STOP_REASON_DEFAULT, STOP_REASON_BALL_REMOVED 3 4 class AnchoringEffect(GenericEffect): 5 6 def __init__(self, trigger, *args): 7 GenericEffect.__init__(self, trigger, *args) 8 if trigger.moduleID is not None and trigger.moduleID != trigger.shipID: 9 self.ballIDs = [trigger.moduleID] 10 else: 11 self.ballIDs = [trigger.shipID] 12 self.fxSequencer = sm.GetService('FxSequencer') 13 self.gfx = None 14 15 def SetState(self, stateName): 16 ballID = self.ballIDs[0] 17 ball = self.fxSequencer.GetBall(ballID) 18 if hasattr(ball, 'SetColor'): 19 ball.SetColor(stateName) 20 21 22 class AnchorDrop(AnchoringEffect): 23 __guid__ = 'effects.AnchorDrop' 24 25 def Start(self, duration): 26 ballID = self.ballIDs[0] 27 ball = self.fxSequencer.GetBall(ballID) 28 if ball is None: 29 return 30 if hasattr(ball, 'BeginStructureAnchoring'): 31 self.fxSequencer.LogInfo('AnchorDrop: calling BeginStructureAnchoring') 32 ball.BeginStructureAnchoring(self.timeFromStart) 33 else: 34 self.SetState('yellow') 35 AnchoringEffect.Start(self, duration) 36 37 def Stop(self, reason = STOP_REASON_DEFAULT): 38 ballID = self.ballIDs[0] 39 ball = self.fxSequencer.GetBall(ballID) 40 if ball is None: 41 return 42 if not hasattr(ball, 'BeginStructureAnchoring') and reason != STOP_REASON_BALL_REMOVED: 43 self.SetState('red') 44 AnchoringEffect.Stop(self) 45 46 47 class AnchorLift(AnchoringEffect): 48 __guid__ = 'effects.AnchorLift' 49 50 def Start(self, duration): 51 ballID = self.ballIDs[0] 52 ball = self.fxSequencer.GetBall(ballID) 53 if ball is None: 54 return 55 if hasattr(ball, 'BeginStructureUnAnchoring'): 56 self.fxSequencer.LogInfo('AnchorDrop: calling BeginStructureUnAnchoring ') 57 ball.BeginStructureUnAnchoring(self.timeFromStart) 58 else: 59 self.SetState('yellow') 60 AnchoringEffect.Start(self, duration) 61 62 def Stop(self, reason = STOP_REASON_DEFAULT): 63 ballID = self.ballIDs[0] 64 ball = self.fxSequencer.GetBall(ballID) 65 if ball is None: 66 return 67 if not hasattr(ball, 'SetCapsuleGraphics'): 68 self.SetState('green') 69 AnchoringEffect.Stop(self)