rangeCircle.py (3457B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\radialMenu\rangeCircle.py 2 import math 3 from carbonui.primitives.transform import Transform 4 import carbonui.const as uiconst 5 from carbonui.primitives.sprite import Sprite 6 from eve.client.script.ui.control.themeColored import SpriteThemeColored 7 import trinity 8 from carbonui.uicore import uicore 9 10 class RangeCircle(Transform): 11 default_align = uiconst.CENTER 12 default_state = uiconst.UI_DISABLED 13 default_name = 'rangeCircle' 14 15 def ApplyAttributes(self, attributes): 16 Transform.ApplyAttributes(self, attributes) 17 self.display = False 18 rangeSize = attributes.rangeSize 19 self.rangeMeterLeftSide = SpriteThemeColored(parent=self, name='rangeMeterLeftSide', pos=(0, 20 0, 21 rangeSize, 22 rangeSize), state=uiconst.UI_PICKCHILDREN, texturePath='res:/UI/Texture/classes/RadialMenu/rangeMaskL.png', textureSecondaryPath='res:/UI/Texture/classes/RadialMenu/gaugeFill.png', colorType=uiconst.COLORTYPE_UIHILIGHTGLOW, opacity=0.5, align=uiconst.CENTER, blendMode=1, spriteEffect=trinity.TR2_SFX_MODULATE) 23 self.rangeMeterLeftSide.display = True 24 self.rangeMeterRightSide = SpriteThemeColored(parent=self, name='rangeMeterRightSide', pos=(0, 25 0, 26 rangeSize, 27 rangeSize), state=uiconst.UI_PICKCHILDREN, texturePath='res:/UI/Texture/classes/RadialMenu/rangeMaskR.png', textureSecondaryPath='res:/UI/Texture/classes/RadialMenu/gaugeFill.png', colorType=uiconst.COLORTYPE_UIHILIGHTGLOW, opacity=0.5, align=uiconst.CENTER, blendMode=1, spriteEffect=trinity.TR2_SFX_MODULATE) 28 self.rangeMeterRightSide.display = True 29 self.rangeMeterFull = Sprite(parent=self, name='rangeMeterFull', pos=(0, 30 0, 31 rangeSize, 32 rangeSize), state=uiconst.UI_PICKCHILDREN, texturePath='res:/UI/Texture/classes/RadialMenu/rangeShadow.png', align=uiconst.CENTER, color=(1.0, 1.0, 1.0, 0.4)) 33 34 def SetRangeCircle(self, degree, percOfAllRange): 35 if percOfAllRange is None: 36 self.rangeMeterRightSide.display = False 37 self.rangeMeterLeftSide.display = False 38 self.display = False 39 return 40 sm.GetService('audio').SetGlobalRTPC('radial_value', percOfAllRange) 41 self.rangeMeterRightSide.display = True 42 self.display = True 43 self.rotation = math.radians(-degree) 44 halfCircle = 180 45 changingDegree = halfCircle * (1 - percOfAllRange / 0.5) 46 if changingDegree < 0: 47 changingDegree += 360 48 if percOfAllRange > 0.5: 49 self.rangeMeterLeftSide.display = True 50 self.rangeMeterRightSide.rotationSecondary = 0 51 self.rangeMeterLeftSide.rotationSecondary = math.radians(changingDegree) 52 else: 53 self.rangeMeterLeftSide.display = False 54 self.rangeMeterRightSide.rotationSecondary = math.radians(changingDegree) 55 self.rangeMeterLeftSide.rotationSecondary = 0 56 57 def AnimateFromCenter(self, curveSet, animationDuration, opacityRatio, grow, sleep = False): 58 if grow: 59 startOpacity = opacityRatio 60 endOpacity = 1.0 61 else: 62 startOpacity = self.opacity 63 endOpacity = opacityRatio 64 uicore.animations.MorphScalar(self, 'opacity', startVal=startOpacity, endVal=endOpacity, duration=animationDuration, sleep=sleep, curveSet=curveSet)