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)