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

@ -170,25 +170,7 @@ public partial class Runebook : Item, ISecurable, ICraftable
from.SendLocalizedMessage(502421); // You have removed the rune.
}
public bool IsOpen(Mobile toCheck)
{
var ns = toCheck.NetState;
if (ns == null)
{
return false;
}
foreach (var gump in ns.Gumps)
{
if ((gump as RunebookGump)?.Book == this)
{
return true;
}
}
return false;
}
public bool IsOpen(Mobile toCheck) => toCheck.FindGump<RunebookGump>()?.Book == this;
public override void GetProperties(IPropertyList list)
{
@ -268,9 +250,7 @@ public partial class Runebook : Item, ISecurable, ICraftable
public void SendGumpTo(Mobile from)
{
from.CloseGump<RunebookGump>();
from.SendGump(new RunebookGump(this));
from.SendGump(new RunebookGump(this), true);
Openers.Add(from);
}