mapMarkerVulnerableSkyhook.py (4039B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\mapView\markers\mapMarkerVulnerableSkyhook.py 2 import blue 3 import eveicon 4 import uthread 5 from carbonui.uianimations import animations 6 from carbonui.uicore import uicore 7 from carbonui.util.various_unsorted import GetWindowAbove 8 from eve.client.script.ui import eveColor 9 from eve.client.script.ui.control.themeColored import SpriteThemeColored 10 from eve.client.script.ui.shared.mapView import mapViewConst 11 from eve.client.script.ui.shared.mapView.markers.mapMarkerBase_Icon import MarkerIconBase 12 from localization import GetByLabel 13 import carbonui.const as uiconst 14 from carbonui.primitives.base import ScaleDpi 15 from math import pi 16 import logging 17 log = logging.getLogger(__name__) 18 19 class MarkerVulnerableSkyhook(MarkerIconBase): 20 distanceFadeAlphaNearFar = (0.0, mapViewConst.MAX_MARKER_DISTANCE) 21 texturePath = eveicon.skyhook 22 23 def __init__(self, animate = True, skyhook_list = None, *args, **kwds): 24 super(MarkerVulnerableSkyhook, self).__init__(*args, **kwds) 25 self.bgCircles = [] 26 self.projectBracket.offsetY = ScaleDpi(30) 27 self.skyhooks = skyhook_list 28 if skyhook_list is None: 29 return 30 details = '' 31 for skyhook in self.skyhooks: 32 if len(details) > 0: 33 details += '<br>' 34 details += cfg.evelocations.Get(skyhook.planet_id).locationName 35 36 self._label_details = details 37 38 def Load(self): 39 super(MarkerVulnerableSkyhook, self).Load() 40 self.backgroundSprite.rotation = pi 41 self.backgroundSprite.pos = ((self.width - 64) / 2, 42 (self.height - 64) / 2 - 12, 43 64, 44 64) 45 self.backgroundSprite.color = eveColor.CHERRY_RED 46 47 def Close(self): 48 uicore.animations.StopAllAnimations(self) 49 super(MarkerVulnerableSkyhook, self).Close() 50 51 def GetMenu(self): 52 pass 53 54 def GetLabelText(self): 55 if self.skyhooks is None: 56 return GetByLabel('UI/OrbitalSkyhook/SkyhookMap/SkyhookVulnerableToTheft') 57 else: 58 return GetByLabel('UI/OrbitalSkyhook/SkyhookMap/VulnerableSkyhooksTooltip', details=self._label_details) 59 60 def ShowDscanHilite(self): 61 pass 62 63 def _CreateRenderObject(self): 64 super(MarkerVulnerableSkyhook, self)._CreateRenderObject() 65 self.CheckConstructCircles() 66 67 def CheckConstructCircles(self): 68 if self.markerContainer and not self.markerContainer.destroyed: 69 self.ConstructCircles() 70 uthread.new(self.AnimateBGCircles) 71 72 def AnimateBGCircles(self): 73 duration = 3.0 74 radius = 300 75 kOffset = 0.6 76 while not self.destroyed: 77 blue.pyos.synchro.SleepWallclock((3 * kOffset + duration) * 1000) 78 if not self.IsThisWindowActive(): 79 continue 80 for i, circle in enumerate(self.bgCircles): 81 timeOffset = i * kOffset 82 animations.MorphScalar(circle, 'width', 0, radius, duration=duration, timeOffset=timeOffset) 83 animations.MorphScalar(circle, 'height', 0, radius, duration=duration, timeOffset=timeOffset) 84 animations.FadeTo(circle, 0.0, 0.02, duration=duration, timeOffset=timeOffset, curveType=uiconst.ANIM_WAVE) 85 86 def IsThisWindowActive(self): 87 if not self.markerContainer: 88 return False 89 wnd = GetWindowAbove(self.markerContainer) 90 return uicore.registry.GetActive() == wnd 91 92 def ConstructCircles(self): 93 for i in xrange(3): 94 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) 95 self.bgCircles.append(circle) 96 97 def GetMarkerOpacity(self, bracketCameraDistance, cameraZoomDistance): 98 return 1.0 99 100 def GetOverlapSortValue(self, reset = False): 101 return None