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

componentInfo.py (2928B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\cosmetics\ship\controls\componentInfo.py
      2 from carbonui import Align, TextColor, uiconst
      3 from carbonui.text.styles import TextHeadline, TextBody
      4 from carbonui.primitives.container import Container
      5 from carbonui.primitives.containerAutoSize import ContainerAutoSize
      6 from carbonui.primitives.fill import Fill
      7 from eve.client.script.ui import eveThemeColor
      8 from eve.client.script.ui.cosmetics.ship.controls.numRunsIndicator import NumRunsIndicator
      9 from eve.client.script.ui.cosmetics.ship.controls.rarityIndicator import RarityIndicator
     10 from localization import GetByLabel
     11 NAME_SIDE_PADDING = 16
     12 
     13 class ComponentInfo(ContainerAutoSize):
     14 
     15     def __init__(self, component_data, license_type, runs_remaining, *args, **kwargs):
     16         super(ComponentInfo, self).__init__(*args, **kwargs)
     17         self.component_data = component_data
     18         self.license_type = license_type
     19         self.runs_remaining = runs_remaining
     20         self.construct_layout()
     21         self.update()
     22 
     23     def construct_layout(self):
     24         self.name_and_icon_cont = Container(name='name_and_icon_cont', parent=self, align=Align.TOTOP, height=56)
     25         self.construct_rarity_icon()
     26         self.construct_label()
     27         self.construct_runs()
     28 
     29     def construct_rarity_icon(self):
     30         icon_container = Container(name='icon_container', parent=self.name_and_icon_cont, align=Align.TOLEFT, pos=(0, 0, 56, 56), bgColor=(1, 1, 1, 0.1))
     31         RarityIndicator(name='rarity_indicator', parent=icon_container, align=Align.CENTER, rarity=self.component_data.rarity)
     32 
     33     def construct_label(self):
     34         name_container = Container(name='name_container', parent=self.name_and_icon_cont, align=Align.TOTOP, height=56)
     35         label_container = Container(name='label_container', parent=name_container)
     36         self.label = TextHeadline(name='name_label', parent=label_container, align=Align.CENTERLEFT, state=uiconst.UI_NORMAL, text=self.component_data.name, autoFadeSides=10, maxLines=1, padding=(NAME_SIDE_PADDING,
     37          0,
     38          NAME_SIDE_PADDING,
     39          0))
     40         self.label_background_fill = Fill(parent=name_container, align=Align.TOLEFT, color=eveThemeColor.THEME_TINT, opacity=0.5)
     41 
     42     def construct_runs(self):
     43         runs_container = Container(name='runs_container', parent=self, align=Align.TOTOP, height=52)
     44         NumRunsIndicator(parent=runs_container, licence_type=self.license_type, num_runs=self.runs_remaining, align=Align.CENTERLEFT, pos=(0, 0, 32, 32))
     45         TextBody(name='runs_label', parent=runs_container, align=Align.CENTERLEFT, left=40, text=GetByLabel('UI/Personalization/ShipSkins/SKINR/Sequencing/SequencingRuns'), color=TextColor.SECONDARY)
     46 
     47     def update(self):
     48         text_width, text_height = TextHeadline.MeasureTextSize(self.label.text)
     49         self.label_background_fill.width = text_width + NAME_SIDE_PADDING * 2