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

mapMarkerCelestial.py (4111B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\mapView\markers\mapMarkerCelestial.py
      2 from carbon.common.script.util.format import FmtDist
      3 from eve.client.script.parklife import states
      4 import eve.client.script.ui.shared.mapView.mapViewConst as mapViewConst
      5 from eve.client.script.ui.shared.mapView.mapViewConst import VIEWMODE_MARKERS_OVERLAP_SORT_ORDER
      6 from eve.client.script.ui.shared.mapView.markers.mapMarkerBase_Icon import MarkerIconBase
      7 from eve.client.script.ui.shared.mapView.markers.mapMarkerSpaceObjectRadialMenu import MapMarkerSpaceObjectRadialMenu
      8 from eve.client.script.ui.util.uix import EditStationName, GetBallparkRecord
      9 import evetypes
     10 from eveservices.menu import GetMenuService
     11 
     12 class MarkerSpaceObject(MarkerIconBase):
     13     distanceFadeAlphaNearFar = (0.0, mapViewConst.MAX_MARKER_DISTANCE * 0.1)
     14     backgroundTexturePath = None
     15     __notifyevents__ = ['OnStateChange']
     16 
     17     def __init__(self, *args, **kwds):
     18         sm.RegisterNotify(self)
     19         celestialData = kwds['celestialData']
     20         bracketIconPath = sm.GetService('bracket').GetBracketIcon(celestialData.typeID)
     21         if bracketIconPath:
     22             kwds['texturePath'] = bracketIconPath
     23         MarkerIconBase.__init__(self, *args, **kwds)
     24         self.projectBracket.offsetY = 0
     25         self.celestialData = celestialData
     26         self.typeID = self.celestialData.typeID
     27         self.itemID = self.celestialData.itemID
     28 
     29     def Close(self, *args):
     30         MarkerIconBase.Close(self, *args)
     31         sm.UnregisterNotify(self)
     32 
     33     def OnStateChange(self, itemID, flag, state, *args):
     34         if flag == states.mouseOver and itemID == self.itemID:
     35             self.SetHilightState(state)
     36 
     37     def GetMenu(self):
     38         return GetMenuService().CelestialMenu(self.celestialData.itemID, typeID=self.celestialData.typeID)
     39 
     40     def GetOverlapSortValue(self, reset = False):
     41         if self.overlapSortValue and not reset:
     42             return self.overlapSortValue
     43         displayText = (self.GetDisplayText() or '').lower()
     44         groupID = self.celestialData.groupID
     45         if groupID in VIEWMODE_MARKERS_OVERLAP_SORT_ORDER:
     46             idx = VIEWMODE_MARKERS_OVERLAP_SORT_ORDER.index(groupID)
     47             if self.isDscanHiliteShown:
     48                 idx -= len(VIEWMODE_MARKERS_OVERLAP_SORT_ORDER)
     49             self.overlapSortValue = (self.markerID[0], idx, displayText)
     50         else:
     51             self.overlapSortValue = (self.markerID[0], len(VIEWMODE_MARKERS_OVERLAP_SORT_ORDER) + self.celestialData.groupID, displayText)
     52         return self.overlapSortValue
     53 
     54     def GetDisplayText(self):
     55         displayName = ''
     56         locationName = cfg.evelocations.Get(self.celestialData.itemID).name
     57         if locationName:
     58             displayName = locationName
     59             if evetypes.GetGroupID(self.typeID) == const.groupStation:
     60                 displayName = EditStationName(displayName, usename=1)
     61         elif self.celestialData.typeID:
     62             displayName = evetypes.GetName(self.celestialData.typeID)
     63         return displayName
     64 
     65     def GetLabelText(self):
     66         displayName = self.GetDisplayText()
     67         distance = self.GetDistance()
     68         if distance is not None:
     69             displayName += ' ' + FmtDist(distance)
     70         return displayName
     71 
     72     def OnClick(self, *args):
     73         doDScan = self.CheckDirectionalScanItem()
     74         if not doDScan:
     75             sm.GetService('stateSvc').SetState(self.itemID, states.selected, 1)
     76             MarkerIconBase.OnClick(self, *args)
     77 
     78     def OnMouseDown(self, *args):
     79         if not GetBallparkRecord(self.itemID):
     80             return
     81         sm.GetService('radialmenu').TryExpandActionMenu(self.itemID, self.markerContainer, radialMenuClass=MapMarkerSpaceObjectRadialMenu, markerObject=self)
     82 
     83     def OnMouseEnter(self, *args):
     84         sm.GetService('stateSvc').SetState(self.itemID, states.mouseOver, 1)
     85         MarkerIconBase.OnMouseEnter(self, *args)
     86 
     87     def OnMouseExit(self, *args):
     88         sm.GetService('stateSvc').SetState(self.itemID, states.mouseOver, 0)
     89         MarkerIconBase.OnMouseExit(self, *args)