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

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()