blinkingSpriteOnSharedCurve.py (2222B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\bracketsAndTargets\blinkingSpriteOnSharedCurve.py 2 import trinity 3 from carbonui.primitives.sprite import Sprite 4 from carbonui.uicore import uicore 5 6 class BlinkingSpriteOnSharedCurve(Sprite): 7 8 def ApplyAttributes(self, attributes): 9 Sprite.ApplyAttributes(self, attributes) 10 self.blinkBinding = None 11 curveSetName = attributes.curveSetName 12 self.curveSetName = curveSetName 13 fromCurveValue = attributes.get('fromCurveValue', 0.3) 14 toCurveValue = attributes.get('toCurveValue', 0.6) 15 duration = attributes.get('duration', 0.5) 16 self.SetupSharedBlinkingCurve(curveSetName, fromCurveValue, toCurveValue, duration) 17 18 def SetupSharedBlinkingCurve(self, cuverSetName, fromCurveValue, toCurveValue, duration, *args): 19 curveSet = getattr(uicore, cuverSetName, None) 20 if curveSet: 21 curve = curveSet.curves[0] 22 else: 23 curveSet = trinity.TriCurveSet() 24 setattr(uicore, cuverSetName, curveSet) 25 setattr(curveSet, 'name', cuverSetName) 26 trinity.device.curveSets.append(curveSet) 27 curveSet.Play() 28 curve = trinity.Tr2CurveScalar() 29 curve.name = 'blinking_curve' 30 curve.AddKey(0, fromCurveValue, trinity.Tr2CurveInterpolation.LINEAR) 31 curve.AddKey(duration / 2.0, toCurveValue, trinity.Tr2CurveInterpolation.LINEAR) 32 curve.AddKey(duration, fromCurveValue, trinity.Tr2CurveInterpolation.LINEAR) 33 curve.extrapolationAfter = trinity.Tr2CurveExtrapolation.CYCLE 34 curveSet.curves.append(curve) 35 if getattr(self, 'blinkBinding', None) is not None: 36 curveSet.bindings.remove(self.blinkBinding) 37 self.blinkBinding = trinity.CreatePythonBinding(curveSet, curve, 'currentValue', self, 'opacity') 38 39 def Close(self): 40 if getattr(self, 'blinkBinding', None) is not None: 41 curveSet = getattr(uicore, self.curveSetName, None) 42 if curveSet: 43 curveSet.bindings.remove(self.blinkBinding) 44 self.blinkBinding = None 45 Sprite.Close(self)