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

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)