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

systemWideEffectsContainer.py (2309B)


      1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\eve\client\script\ui\inflight\shipHud\systemWideEffectsContainer.py
      2 from carbonui import const as uiconst
      3 from carbonui.primitives.containerAutoSize import ContainerAutoSize
      4 from eve.client.script.ui.inflight.shipHud.systemWideEffectButton import SystemWideEffectSlotParent
      5 from eve.client.script.ui.shared.pointerTool.pointerToolConst import UNIQUE_NAME_SYSTEM_EFFECTS
      6 from uihider import UiHiderMixin
      7 
      8 class SystemWideEffectsContainer(UiHiderMixin, ContainerAutoSize):
      9     __guid__ = 'uicls.SystemWideEffectsContainer'
     10     default_height = 5
     11     default_name = 'SystemWideEffectsContainer'
     12     default_state = uiconst.UI_PICKCHILDREN
     13     uniqueUiName = UNIQUE_NAME_SYSTEM_EFFECTS
     14     __notifyevents__ = ['OnSystemWideEffectAdd', 'OnSystemWideEffectRemove', 'OnSystemWideEffectInfoUpdated']
     15 
     16     def ApplyAttributes(self, attributes):
     17         ContainerAutoSize.ApplyAttributes(self, attributes)
     18         UiHiderMixin.ApplyAttributes(self, attributes)
     19         self.btnParByItemID = {}
     20         self.Initialize(self.GetSystemWideEffectsInfo())
     21         sm.RegisterNotify(self)
     22 
     23     def Close(self):
     24         sm.UnregisterNotify(self)
     25         ContainerAutoSize.Close(self)
     26 
     27     def CreateButton(self, sourceItemID, sourceTypeID):
     28         if sourceItemID not in self.btnParByItemID:
     29             self.btnParByItemID[sourceItemID] = SystemWideEffectSlotParent(parent=self, sourceTypeID=sourceTypeID)
     30 
     31     def RemoveButton(self, sourceItemID):
     32         if sourceItemID in self.btnParByItemID:
     33             btn = self.btnParByItemID.pop(sourceItemID)
     34             btn.Close()
     35 
     36     def OnSystemWideEffectAdd(self, sourceItemID, sourceTypeID):
     37         self.CreateButton(sourceItemID, sourceTypeID)
     38 
     39     def OnSystemWideEffectRemove(self, sourceItemID):
     40         self.RemoveButton(sourceItemID)
     41 
     42     def OnSystemWideEffectInfoUpdated(self, systemWideEffectInfo):
     43         self.Initialize(systemWideEffectInfo)
     44 
     45     def GetSystemWideEffectsInfo(self):
     46         return sm.GetService('systemWideEffectSvc').GetSystemWideEffectInfo()
     47 
     48     def Initialize(self, systemWideEffectInfo):
     49         self.Flush()
     50         self.btnParByItemID = {}
     51         for itemKey, effects in systemWideEffectInfo.iteritems():
     52             self.CreateButton(itemKey[0], itemKey[1])