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

mapMarkerMyLocation.py (2769B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\mapView\markers\mapMarkerMyLocation.py
      2 import blue
      3 import uthread
      4 from carbonui.uianimations import animations
      5 from carbonui.uicore import uicore
      6 from carbonui.util.various_unsorted import GetWindowAbove
      7 from eve.client.script.ui.control.themeColored import SpriteThemeColored
      8 from eve.client.script.ui.shared.mapView.markers.mapMarkerBase_Icon import MarkerIconBase
      9 from localization import GetByLabel
     10 import carbonui.const as uiconst
     11 
     12 class MarkerMyLocation(MarkerIconBase):
     13     solarSystemID = None
     14     distanceFadeAlphaNearFar = None
     15     texturePath = 'res:/UI/Texture/classes/MapView/focusIcon.png'
     16 
     17     def __init__(self, animate = True, *args, **kwds):
     18         super(MarkerMyLocation, self).__init__(*args, **kwds)
     19         self.bgCircles = []
     20 
     21     def GetMenu(self):
     22         pass
     23 
     24     def GetLabelText(self):
     25         return GetByLabel('UI/Map/StarMap/lblYouAreHere')
     26 
     27     def ShowDscanHilite(self):
     28         pass
     29 
     30     def _CreateRenderObject(self):
     31         MarkerIconBase._CreateRenderObject(self)
     32         self.CheckConstructCircles()
     33 
     34     def CheckConstructCircles(self):
     35         if self.markerContainer and not self.markerContainer.destroyed:
     36             self.ConstructCircles()
     37             uthread.new(self.AnimateBGCircles)
     38 
     39     def AnimateBGCircles(self):
     40         duration = 3.0
     41         radius = 300
     42         kOffset = 0.6
     43         while not self.destroyed:
     44             blue.pyos.synchro.SleepWallclock((3 * kOffset + duration) * 1000)
     45             if not self.IsThisWindowActive():
     46                 continue
     47             for i, circle in enumerate(self.bgCircles):
     48                 timeOffset = i * kOffset
     49                 animations.MorphScalar(circle, 'width', 0, radius, duration=duration, timeOffset=timeOffset)
     50                 animations.MorphScalar(circle, 'height', 0, radius, duration=duration, timeOffset=timeOffset)
     51                 animations.FadeTo(circle, 0.0, 0.02, duration=duration, timeOffset=timeOffset, curveType=uiconst.ANIM_WAVE)
     52 
     53     def IsThisWindowActive(self):
     54         if not self.markerContainer:
     55             return False
     56         wnd = GetWindowAbove(self.markerContainer)
     57         return uicore.registry.GetActive() == wnd
     58 
     59     def ConstructCircles(self):
     60         for i in xrange(3):
     61             circle = SpriteThemeColored(name='circle', parent=self.markerContainer, align=uiconst.CENTER, state=uiconst.UI_DISABLED, texturePath='res:/UI/Texture/classes/hexMap/circleFilled256.png', colorType=uiconst.COLORTYPE_UIHILIGHTGLOW)
     62             self.bgCircles.append(circle)
     63 
     64     def GetMarkerOpacity(self, bracketCameraDistance, cameraZoomDistance):
     65         return 1.0
     66 
     67     def GetOverlapSortValue(self, reset = False):
     68         return None