mapMarkerContellation.py (5534B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\mapView\markers\mapMarkerContellation.py 2 from carbonui import uiconst 3 from carbonui.primitives.base import ReverseScaleDpi, ScaleDpi 4 from carbonui.primitives.fill import Fill 5 from carbonui.primitives.frame import Frame 6 import eve.client.script.ui.shared.mapView.mapViewConst as mapViewConst 7 from carbonui.util.color import Color 8 from eve.client.script.ui.control.eveLabel import Label 9 from eve.client.script.ui.shared.mapView.mapViewData import mapViewData 10 from eve.client.script.ui.shared.mapView.markers.mapMarkerBase import MarkerBase, MarkerContainerBase 11 import inventorycommon.const as invConst 12 from eve.common.script.util.eveFormat import FmtSystemSecStatus 13 14 class MarkerContainerConstellation(MarkerContainerBase): 15 16 def ApplyAttributes(self, attributes): 17 super(MarkerContainerConstellation, self).ApplyAttributes(attributes) 18 self.uniqueUiName = 'map_marker_constellation_%s' % self.markerObject.markerID 19 20 21 class MarkerLabelConstellation(MarkerBase): 22 distanceFadeAlphaNearFar = (mapViewConst.MAX_MARKER_DISTANCE * 0.07, mapViewConst.MAX_MARKER_DISTANCE * 0.3) 23 24 def __init__(self, *args, **kwds): 25 self.isAbstractMode = kwds.get('isAbstractMode', False) 26 MarkerBase.__init__(self, *args, **kwds) 27 self.typeID = invConst.typeConstellation 28 self.itemID = self.markerID 29 self.label = None 30 self._mapTransitioning = False 31 32 def Load(self): 33 MarkerBase.Load(self) 34 if self.isAbstractMode: 35 self.projectBracket.offsetY = -ScaleDpi(self.markerContainer.height - 20) 36 else: 37 self.projectBracket.offsetY = -ScaleDpi(self.markerContainer.height + 8) 38 self.label = Label(parent=self.markerContainer, align=uiconst.CENTER, opacity=0.95) 39 Frame(bgParent=self.markerContainer, opacity=0.3) 40 Fill(bgParent=self.markerContainer, color=(0, 0, 0, 0.5)) 41 self.UpdateLabelText() 42 43 def UpdateLabelText(self): 44 if not self.label or not self.markerContainer: 45 return 46 self.label.SetText(self.GetLabelText()) 47 width, height = self.label.GetAbsoluteSize() 48 self.markerContainer.pos = (0, 49 0, 50 ReverseScaleDpi(width + 6), 51 ReverseScaleDpi(height)) 52 53 def UpdateActiveAndHilightState(self): 54 if self.hilightState or self.activeState: 55 self.projectBracket.maxDispRange = 1e+32 56 elif self.distanceFadeAlphaNearFar: 57 self.projectBracket.maxDispRange = self.distanceFadeAlphaNearFar[1] 58 self.UpdateLabelText() 59 60 def GetMarkerOpacity(self, bracketCameraDistance, cameraZoomDistance): 61 if self._mapTransitioning: 62 return 0.0 63 if self.isAbstractMode: 64 return self._GetMarkerOpacity_Abstract() 65 return self._GetMarkerOpacity_3D(bracketCameraDistance, cameraZoomDistance) 66 67 def _GetMarkerOpacity_3D(self, bracketCameraDistance, cameraZoomDistance): 68 if self.IsSelected() or self.IsHilighted(): 69 return mapViewConst.OPACITY_MARKER_SELECTED 70 if self.IsActive(): 71 if self.markerHandler.IsRegionSelected(): 72 nearFadeDist, farFadeDist = self._distanceFadeAlphaNearFar 73 return self.GetMarkerBaseOpacity(bracketCameraDistance, None, farFadeDist) 74 nearFadeDist, farFadeDist = self._distanceFadeAlphaNearFar 75 baseOpacity = self.GetMarkerBaseOpacity(bracketCameraDistance, nearFadeDist, farFadeDist) 76 if baseOpacity: 77 nearFactor = self.GetNearFadeFactor(bracketCameraDistance, cameraZoomDistance) 78 return baseOpacity * nearFactor 79 80 def _GetMarkerOpacity_Abstract(self): 81 if not self.IsSelected() and not self.IsHilighted() and not self.IsActive(): 82 return 0.0 83 cameraZoomValue, _, _, _ = self.markerHandler.GetViewportValues() 84 if cameraZoomValue < mapViewConst.MAP2D_ZOOM_TUBE_MARKER: 85 return 0.0 86 if cameraZoomValue > mapViewConst.MAP2D_ZOOM_CONSTELLATION_NAME_MAX: 87 return 0.0 88 if cameraZoomValue > mapViewConst.MAP2D_ZOOM_TUBE_BUBBLE: 89 return 0.6 90 return 0.0 91 92 def ResetAbstractMode(self, isAbstractMode): 93 self.isAbstractMode = isAbstractMode 94 self.Reload() 95 96 def _HideRenderObject(self): 97 self.DestroyRenderObject() 98 99 def GetLabelText(self): 100 constName = cfg.evelocations.Get(self.markerID).name 101 if self.IsSelected(): 102 return constName 103 else: 104 constData = mapViewData.GetKnownConstellation(self.markerID) 105 security = sum([ sm.GetService('map').GetSystemSecurityValue(solarsystemID) for solarsystemID in constData.solarSystemIDs ]) / len(constData.solarSystemIDs) 106 security, color = FmtSystemSecStatus(security, getColor=True) 107 return '%s <color=%s>%s</color>' % (constName, Color.RGBtoHex(color[0], color[1], color[2]), security) 108 109 def GetDragText(self): 110 return cfg.evelocations.Get(self.markerID).name 111 112 def UpdateConstellationPosition(self, constellationPosition): 113 self.position = constellationPosition 114 self.projectBracket.trackPosition = self.position 115 116 def GetMarkerContainerCls(self): 117 return MarkerContainerConstellation 118 119 def SetMapTransitioning(self, isTransitioning): 120 self._mapTransitioning = isTransitioning 121 if isTransitioning: 122 self.DestroyRenderObject()