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])