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

indication_message_standard.py (3287B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\shipHud\action_indication\indication_message_standard.py
      2 import carbonui
      3 import carbonui.text.styles
      4 from carbonui import Align, TextColor, TextAlign, uiconst
      5 from carbonui.primitives.container import Container
      6 from carbonui.primitives.containerAutoSize import ContainerAutoSize
      7 from carbonui.primitives.fill import Fill
      8 from carbonui.primitives.layoutGrid import LayoutGrid
      9 from carbonui.primitives.sprite import Sprite
     10 from carbonui.uianimations import animations
     11 from carbonui.uiconst import OutputMode
     12 from eve.client.script.ui.inflight.shipHud.action_indication.indication_message_base import IndicationMessageBase
     13 
     14 class IndicationMessageStandard(IndicationMessageBase):
     15     default_alignMode = Align.TOTOP
     16 
     17     def construct_layout(self):
     18         self.construct_caption()
     19         self.construct_text()
     20         self.construct_progress_bar()
     21 
     22     def construct_text(self):
     23         self.text_label = carbonui.text.styles.TextBody(parent=self, name='indication_text', text='', align=Align.TOTOP, color=TextColor.NORMAL, textAlign=TextAlign.CENTER)
     24 
     25     def construct_caption(self):
     26         caption_cont = ContainerAutoSize(name='captionCont', parent=self, align=Align.TOTOP)
     27         self.layout_grid = LayoutGrid(parent=caption_cont, align=Align.CENTERTOP, columns=2, cellSpacing=4)
     28         self.icon = Sprite(parent=self.layout_grid, pos=(0, 0, 32, 32), align=Align.CENTERLEFT, display=False, outputMode=OutputMode.COLOR_AND_GLOW, glowBrightness=0.0)
     29         self.caption = carbonui.text.styles.TextHeadline(name='indication_caption', parent=self.layout_grid, color=TextColor.HIGHLIGHT, align=Align.CENTERLEFT, outputMode=OutputMode.COLOR_AND_GLOW, glowBrightness=0.0)
     30 
     31     def construct_progress_bar(self):
     32         self.progress_bar = Container(name='captionProgressbar', parent=self, width=200, height=3, top=-10, align=Align.CENTERTOP, display=False)
     33         Fill(parent=self.progress_bar, opacity=0.2)
     34         self.captionProgressbar_fill = Fill(parent=self.progress_bar, align=Align.TOLEFT_PROP, width=0, opacity=0.5)
     35 
     36     def _apply_indication_data(self, indication_data):
     37         self.caption.text = indication_data.caption
     38         self.text_label.text = indication_data.text
     39         texture_path = indication_data.icon
     40         self.icon.texturePath = texture_path
     41         self.icon.display = bool(texture_path)
     42         self.layout_grid.UpdateGridLayout()
     43         self.layout_grid.UpdateAlignmentAsRoot()
     44 
     45     def set_progress_bar_value(self, value):
     46         if not value:
     47             self.progress_bar.display = False
     48             self.captionProgressbar_fill.width = 0.0
     49             self.captionProgressbar_fill.StopAnimations()
     50             return
     51         self.progress_bar.display = True
     52         width = min(1.0, max(0, value))
     53         animations.MorphScalar(self.captionProgressbar_fill, 'width', startVal=self.captionProgressbar_fill.width, endVal=width, duration=0.25, curveType=uiconst.ANIM_LINEAR)
     54 
     55     @property
     56     def caption_glow_brightness(self):
     57         return self.caption.glowBrightness
     58 
     59     @caption_glow_brightness.setter
     60     def caption_glow_brightness(self, value):
     61         self.caption.glowBrightness = value
     62         self.icon.glowBrightness = value