feat: Moves gumps out of the core (#1916)

> [!Important]
> **Developer Note**
> This code change will **completely move gumps out of the core**


### Summary

- Adds `GetGumps()` convenience which exposes methods to Find/Close/Send multiple gumps. This helper is a performance improvement by eliminating the Dictionary<Player, List> lookup for gumps.
This commit is contained in:
Kamron Batman 2024-08-09 19:07:32 -07:00 • committed by GitHub
parent 40d99f6d1c
commit 8282b00ca2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
246 changed files with 1722 additions and 1383 deletions

View file

@ -118,9 +118,7 @@ namespace Server.Engines.Help
{
if (PageQueue.List.IndexOf(m_List[info.ButtonID - 1]) >= 0)
{
var g = new PageEntryGump(state.Mobile, m_List[info.ButtonID - 1]);
g.SendTo(state);
state.SendGump(new PageEntryGump(state.Mobile, m_List[info.ButtonID - 1]));
}
else
{
@ -224,13 +222,13 @@ namespace Server.Engines.Help
private readonly Mobile m_From;
private readonly PredefinedResponse m_Response;
public override bool Singleton => true;
public PredefGump(Mobile from, PredefinedResponse response) : base(30, 30)
{
m_From = from;
m_Response = response;
from.CloseGump<PredefGump>();
var canEdit = from.AccessLevel >= AccessLevel.GameMaster;
AddPage(0);
@ -593,9 +591,7 @@ namespace Server.Engines.Help
public void Resend(NetState state)
{
var g = new PageEntryGump(m_Mobile, m_Entry);
g.SendTo(state);
state.SendGump(new PageEntryGump(m_Mobile, m_Entry));
}
public override void OnResponse(NetState state, in RelayInfo info)
@ -613,9 +609,7 @@ namespace Server.Engines.Help
{
if (m_Entry.Handler != state.Mobile)
{
var g = new PageQueueGump();
g.SendTo(state);
state.SendGump(new PageQueueGump());
}
break;
@ -722,10 +716,7 @@ namespace Server.Engines.Help
PageQueue.Remove(m_Entry);
state.Mobile.SendMessage("You delete the page.");
var g = new PageQueueGump();
g.SendTo(state);
state.SendGump(new PageQueueGump());
}
else
{
@ -764,10 +755,7 @@ namespace Server.Engines.Help
m_Entry.Handler = null;
state.Mobile.SendMessage("You mark the page as handled, and remove it from the queue.");
var g = new PageQueueGump();
g.SendTo(state);
state.SendGump(new PageQueueGump());
}
else
{