debugwindow.py (3726B)
1 #Embedded file name: C:\BuildAgent\work\20d73f1b24eed06e\eve\release\V24.01\packages\agentinteraction\debugwindow.py 2 from npcs.divisions import get_division_name 3 from carbonui.control.combo import Combo 4 import uthread2 5 from carbonui.button.group import ButtonGroup 6 from carbonui.util.sortUtil import SortListOfTuples 7 from eve.client.script.ui.shared.userentry import AgentEntry 8 from eve.client.script.ui.control.entries.util import GetFromClass 9 from eve.client.script.ui.control.eveScroll import Scroll 10 from carbonui.control.window import Window 11 import eve.common.lib.appConst as appConst 12 import carbonui.const as uiconst 13 import blue 14 15 class CareerAgentDebugWnd(Window): 16 default_caption = 'Career Agents Debug' 17 default_width = 350 18 default_height = 350 19 default_minSize = (340, 220) 20 default_windowID = 'careerAgentDebugWnd' 21 22 def ApplyAttributes(self, attributes): 23 super(CareerAgentDebugWnd, self).ApplyAttributes(attributes) 24 btnGroup = ButtonGroup(parent=self.content, align=uiconst.TOBOTTOM) 25 self.AddCombo() 26 self.agentScroll = Scroll(parent=self.content, padBottom=20) 27 btnGroup.AddButton(label='Open All Agents in view', func=self.OpenAll) 28 btnGroup.AddButton(label='Close All Agent wnds', func=self.CloseAllAgentWnds) 29 self.LoadAgents() 30 31 def AddCombo(self): 32 options = [] 33 for careerID in appConst.agentDivisionsCareer: 34 options.append((get_division_name(careerID), careerID)) 35 36 options.sort(key=lambda x: x[0]) 37 factionOptions = [] 38 for factionID in appConst.factionsEmpires: 39 factionOptions.append((cfg.eveowners.Get(factionID).name, factionID)) 40 41 factionOptions.sort(key=lambda x: x[0]) 42 options.extend(factionOptions) 43 options.insert(0, ('All', None)) 44 comboPrefsKey = ('char', 'ui', 'careerAgentDebugFilter') 45 self.filterCombo = Combo(parent=self.content, align=uiconst.TOTOP, options=options, padBottom=20, callback=self.OnComboChanged, prefskey=comboPrefsKey, select=settings.char.ui.Get(comboPrefsKey[2], None), maxVisibleEntries=10) 46 47 def LoadAgents(self): 48 allCareerAgents = self.GetAllCareerAgents() 49 toPrime = set() 50 for agent in allCareerAgents: 51 toPrime.add(agent.agentID) 52 53 cfg.eveowners.Prime(toPrime) 54 filterValue = self.filterCombo.GetValue() 55 scrollList = [] 56 for agent in allCareerAgents: 57 if filterValue and filterValue not in (agent.divisionID, agent.factionID): 58 continue 59 agentName = cfg.eveowners.Get(agent.agentID).name 60 entry = GetFromClass(AgentEntry, {'charID': agent.agentID}) 61 scrollList.append((agentName, entry)) 62 63 scrollList = SortListOfTuples(scrollList) 64 self.agentScroll.LoadContent(contentList=scrollList) 65 66 def GetAllCareerAgents(self): 67 allCareerAgents = sm.GetService('agents').GetAgentsByType(appConst.agentTypeCareerAgent) 68 return allCareerAgents 69 70 def OpenAll(self, *args): 71 uthread2.StartTasklet(self._OpenAll_thread) 72 73 def _OpenAll_thread(self): 74 allCareerAgents = self.GetAllCareerAgents() 75 for node in self.agentScroll.GetNodes(): 76 sm.GetService('agents').OpenDialogueWindow(node.charID) 77 blue.pyos.BeNice() 78 79 def CloseAllAgentWnds(self, *args): 80 agentSvc = sm.GetService('agents') 81 for agentID in agentSvc.agentDialogWindows.keys(): 82 window = agentSvc.agentDialogWindows.pop(agentID, None) 83 if window or not window.destroyed: 84 window.Close() 85 86 def OnComboChanged(self, *args): 87 self.filterCombo.UpdateSettings() 88 self.LoadAgents()