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

mapMarkerGroup.py (4247B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\shared\mapView\markers\mapMarkerGroup.py
      2 import localization
      3 from carbonui.text.styles import TextHeadline, TextHeader, TextBody
      4 from carbonui.primitives.container import Container
      5 from carbonui.primitives.sprite import Sprite
      6 from eve.client.script.ui import eveThemeColor
      7 from eve.client.script.ui.shared.mapView import mapViewConst
      8 from eve.client.script.ui.shared.mapView.mapViewConst import MARKERID_GROUP
      9 from eve.client.script.ui.shared.mapView.markers.mapMarkerBase import MarkerBase
     10 import carbonui.const as uiconst
     11 from eve.common.script.sys import idCheckers
     12 SIZE_CONSTELLATION = 32
     13 SIZE_REGION = 64
     14 
     15 class MarkerGroup(MarkerBase):
     16     circle_texture_path = 'res:/UI/Texture/Classes/MapView/Markers/clusterStroke.png'
     17     bg_texture_path = 'res:/UI/Texture/Classes/MapView/Markers/clusterFill.png'
     18     distanceFadeAlphaNearFar = (mapViewConst.MAX_MARKER_DISTANCE * 0.015, mapViewConst.MAX_MARKER_DISTANCE * 2)
     19 
     20     def __init__(self, *args, **kwds):
     21         self.displayStateOverride = True
     22         self.group_label = None
     23         self.group_id = kwds.get('groupID', None)
     24         self.members = kwds.get('members', [])
     25         self.isAbstractMode = kwds.get('isAbstractMode', False)
     26         self.hintFormat = kwds.get('hintFormat', 'UI/Map/Markers/ClusterHint')
     27         super(MarkerGroup, self).__init__(*args, **kwds)
     28 
     29     def ResetAbstractMode(self, isAbstractMode):
     30         self.isAbstractMode = isAbstractMode
     31 
     32     def Load(self):
     33         size = self.GetSize()
     34         self.group_cont = Container(name='group_cont', parent=self.markerContainer, state=uiconst.UI_NORMAL, pos=(0,
     35          0,
     36          size,
     37          size), align=uiconst.CENTER)
     38         self.group_cont.OnClick = self.OnClick
     39         self.group_label = TextHeader(name='pin_label', parent=self.group_cont, state=uiconst.UI_DISABLED, align=uiconst.CENTER, text=self.GetValue())
     40         self.group_cont.GetHint = self.GetHint
     41         self.circle_sprite = Sprite(name='circle_sprite', parent=self.group_cont, state=uiconst.UI_DISABLED, align=uiconst.TOALL, texturePath=self.GetStroke(), color=eveThemeColor.THEME_FOCUS)
     42         self.bg_sprite = Sprite(name='bg_sprite', parent=self.group_cont, state=uiconst.UI_DISABLED, align=uiconst.TOALL, texturePath=self.GetFill(), color=eveThemeColor.THEME_FOCUSDARK)
     43         self.markerContainer.pos = (0,
     44          0,
     45          size,
     46          size)
     47 
     48     def GetSize(self):
     49         if idCheckers.IsRegion(self.markerID[1]):
     50             return SIZE_REGION
     51         return SIZE_CONSTELLATION
     52 
     53     def GetStroke(self):
     54         if idCheckers.IsRegion(self.markerID[1]):
     55             return 'res:/UI/Texture/Classes/MapView/Markers/clusterStroke_64.png'
     56         return 'res:/UI/Texture/Classes/MapView/Markers/clusterStroke.png'
     57 
     58     def GetFill(self):
     59         if idCheckers.IsRegion(self.markerID[1]):
     60             return 'res:/UI/Texture/Classes/MapView/Markers/clusterFill_64.png'
     61         return 'res:/UI/Texture/Classes/MapView/Markers/clusterFill.png'
     62 
     63     def GetLabelClass(self):
     64         if idCheckers.IsRegion(self.markerID[1]):
     65             return TextHeadline
     66         return TextHeader
     67 
     68     def GetValue(self):
     69         return sum([ m.GetGroupingValue() for m in self.members ])
     70 
     71     def GetLabelText(self):
     72         return str(len(self.members))
     73 
     74     def GetGroupID(self):
     75         return self.group_id
     76 
     77     def GetHint(self):
     78         return localization.GetByLabel(self.hintFormat, num=self.GetValue())
     79 
     80     def RemoveMember(self, member):
     81         if member in self.members:
     82             self.members.remove(member)
     83             if self.group_label:
     84                 self.group_label.text = self.GetValue()
     85 
     86     def ShouldZoom(self):
     87         return True
     88 
     89     def GetMarkerOpacity(self, bracketCameraDistance, cameraZoomDistance):
     90         if self.isAbstractMode:
     91             return 1.0
     92         return super(MarkerGroup, self).GetMarkerOpacity(bracketCameraDistance, cameraZoomDistance)
     93 
     94     def UpdateActiveAndHilightState(self):
     95         if self.isAbstractMode:
     96             self.projectBracket.maxDispRange = 1e+32
     97         elif self.distanceFadeAlphaNearFar:
     98             self.projectBracket.maxDispRange = self.distanceFadeAlphaNearFar[1]