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

@ -84,13 +84,13 @@ public partial class HairRestylingDeed : Item
private readonly HairRestylingDeed m_Deed;
private readonly Mobile m_From;
public override bool Singleton => true;
public InternalGump(Mobile from, HairRestylingDeed deed) : base(50, 50)
{
m_From = from;
m_Deed = deed;
from.CloseGump<InternalGump>();
AddBackground(100, 10, 400, 385, 0xA28);
AddHtmlLocalized(100, 25, 400, 35, 1013008);

View file

@ -103,7 +103,6 @@ public partial class HolidayTreeDeed : Item
public override void OnDoubleClick(Mobile from)
{
from.CloseGump<HolidayTreeChoiceGump>();
from.SendGump(new HolidayTreeChoiceGump(from, this));
}
}
@ -113,6 +112,8 @@ public class HolidayTreeChoiceGump : Gump
private readonly HolidayTreeDeed m_Deed;
private readonly Mobile m_From;
public override bool Singleton => true;
public HolidayTreeChoiceGump(Mobile from, HolidayTreeDeed deed) : base(200, 200)
{
m_From = from;

View file

@ -17,7 +17,6 @@ public partial class NameChangeDeed : Item
{
if (RootParent == from)
{
from.CloseGump<NameChangeDeedGump>();
from.SendGump(new NameChangeDeedGump(this));
}
else
@ -31,6 +30,8 @@ public class NameChangeDeedGump : Gump
{
private readonly Item m_Sender;
public override bool Singleton => true;
public NameChangeDeedGump(Item sender) : base(50, 50)
{
m_Sender = sender;

View file

@ -195,8 +195,7 @@ public partial class VendorRentalContract : Item
{
if (from.InRange(this, 5))
{
from.CloseGump<VendorRentalContractGump>();
from.SendGump(new VendorRentalContractGump(this, from));
from.SendGump(new VendorRentalContractGump(this, from), true);
}
else
{
@ -232,8 +231,7 @@ public partial class VendorRentalContract : Item
{
if (target is VendorRentalContract contract && contract.IsUsableBy(from, true, true, true, true))
{
from.CloseGump<VendorRentalContractGump>();
from.SendGump(new VendorRentalContractGump(contract, from));
from.SendGump(new VendorRentalContractGump(contract, from), true);
}
}
}