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

shipName.py (2920B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\ship\controls\shipName.py
      2 import eveicon
      3 import evetypes
      4 from carbonui import Align, uiconst, TextColor
      5 from carbonui.text.styles import TextHeader
      6 from carbonui.primitives.container import Container
      7 from carbonui.primitives.sprite import Sprite
      8 from carbonui.uiconst import BlendMode
      9 from eveservices.menu import GetMenuService
     10 
     11 class ShipName(Container):
     12     default_width = 158
     13     default_height = 58
     14     default_state = uiconst.UI_NORMAL
     15 
     16     def __init__(self, ship_type_id = None, *args, **kwargs):
     17         super(ShipName, self).__init__(*args, **kwargs)
     18         self._ship_type_id = ship_type_id
     19         self.construct_layout()
     20         self.update()
     21 
     22     def construct_layout(self):
     23         sprite_container = Container(name='sprite_container', parent=self, align=Align.TOTOP, height=27)
     24         self.ship_group_icon = Sprite(name='ship_group_icon', parent=sprite_container, align=Align.CENTERTOP, state=uiconst.UI_DISABLED, pos=(0, 8, 16, 16), blendMode=BlendMode.ADD, color=TextColor.NORMAL)
     25         Sprite(name='highlight', parent=sprite_container, align=Align.CENTERTOP, state=uiconst.UI_DISABLED, texturePath='res:/UI/Texture/classes/Cosmetics/Ship/ship_name_highlight.png', pos=(0, -8, 45, 19), blendMode=BlendMode.ADD)
     26         Sprite(name='background', parent=sprite_container, align=Align.CENTERTOP, state=uiconst.UI_DISABLED, texturePath='res:/UI/Texture/classes/Cosmetics/Ship/ship_name_background.png', pos=(0, 0, 158, 27))
     27         label_container = Container(name='label_container', parent=self, align=Align.TOTOP, height=23, padTop=8)
     28         self.label = TextHeader(name='label', parent=label_container, align=Align.CENTER)
     29 
     30     def update(self):
     31         if self.ship_type_id:
     32             self.label.text = evetypes.GetName(self.ship_type_id)
     33             ship_group_id = evetypes.GetShipGroupID(self.ship_type_id)
     34             if ship_group_id is not None:
     35                 self.ship_group_icon.texturePath = cfg.infoBubbleGroups.get(ship_group_id)['iconSmall']
     36             else:
     37                 self.ship_group_icon.texturePath = sm.GetService('bracket').GetBracketIcon(self.ship_type_id)
     38         else:
     39             self.label.text = None
     40             self.ship_group_icon.texturePath = eveicon.spaceship_command
     41 
     42     @property
     43     def ship_type_id(self):
     44         return self._ship_type_id
     45 
     46     @ship_type_id.setter
     47     def ship_type_id(self, value):
     48         if self._ship_type_id == value:
     49             return
     50         self._ship_type_id = value
     51         self.update()
     52 
     53     def OnClick(self, *args):
     54         if self.ship_type_id:
     55             sm.GetService('info').ShowInfo(self.ship_type_id)
     56 
     57     def GetMenu(self):
     58         if not self.ship_type_id:
     59             return None
     60         return GetMenuService().GetMenuFromItemIDTypeID(itemID=None, typeID=self.ship_type_id, includeMarketDetails=True)