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

achievement_info.py (3005B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\achievement_system\client\ui\chip\achievement_info.py
      2 import threadutils
      3 from carbonui import uiconst
      4 from carbonui.primitives.containerAutoSize import ContainerAutoSize
      5 
      6 class AchievementInfoChips(ContainerAutoSize):
      7     default_height = 18
      8     default_display = False
      9 
     10     def __init__(self, character_id, display_title = True, display_score = True, *args, **kwargs):
     11         super(AchievementInfoChips, self).__init__(*args, **kwargs)
     12         self._character_id = character_id
     13         self.display_title = display_title
     14         self.display_score = display_score
     15         self.title_chip = None
     16         self.score_chip = None
     17         self.update()
     18         self.connect_signals()
     19 
     20     def Close(self):
     21         try:
     22             self.disconnect_signals()
     23         finally:
     24             super(AchievementInfoChips, self).Close()
     25 
     26     def connect_signals(self):
     27         pass
     28 
     29     def disconnect_signals(self):
     30         pass
     31 
     32     @property
     33     def character_id(self):
     34         return self._character_id
     35 
     36     @character_id.setter
     37     def character_id(self, character_id):
     38         self._character_id = character_id
     39         self.update()
     40 
     41     @threadutils.highlander_threaded
     42     def update(self, animate = True):
     43         self.clear()
     44         if not self.character_id:
     45             return
     46         self.update_character_title(animate)
     47         self.update_achievement_score(animate)
     48 
     49     def clear(self):
     50         self.Flush()
     51         self.display = False
     52         self.title_chip = None
     53         self.score_chip = None
     54 
     55     def update_character_title(self, animate):
     56         if not self.display_title:
     57             return
     58         self.display = True
     59         from achievement_system.client.ui.chip.character_title import CharacterTitleChip
     60         self.title_chip = CharacterTitleChip(name='character_title_chip', parent=self, align=uiconst.TOLEFT, character_id=self._character_id, animate=animate, padRight=8)
     61         self.title_chip.on_update.connect(self.on_title_update)
     62 
     63     def update_achievement_score(self, animate):
     64         if not self.display_score:
     65             return
     66         self.display = True
     67         from achievement_system.client.ui.chip.achievement_score import AchievementScoreChip
     68         self.score_chip = AchievementScoreChip(name='achievement_score_chip', parent=self, align=uiconst.TOLEFT, character_id=self._character_id, animate=animate)
     69         self.score_chip.on_update.connect(self.on_score_update)
     70 
     71     def on_title_update(self):
     72         self.update_display()
     73 
     74     def on_score_update(self):
     75         self.update_display()
     76 
     77     def update_display(self):
     78         has_title = self.title_chip and self.title_chip.display
     79         has_score = self.score_chip and self.score_chip.display
     80         if not self.display_title:
     81             self.display = has_score
     82             return
     83         if not self.display_score:
     84             self.display = has_title
     85             return
     86         self.display = has_title or has_score