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

@ -17,7 +17,6 @@ public partial class HairDye : Item
{
if (from.InRange(GetWorldLocation(), 1))
{
from.CloseGump<HairDyeGump>();
from.SendGump(new HairDyeGump(this));
}
else
@ -47,6 +46,8 @@ public class HairDyeGump : Gump
private HairDye _hairDye;
public override bool Singleton => true;
public HairDyeGump(HairDye dye) : base(50, 50)
{
_hairDye = dye;

View file

@ -290,10 +290,10 @@ public class PlayerBBGump : Gump
private BaseHouse _house;
private int _page;
public override bool Singleton => true;
public PlayerBBGump(Mobile from, BaseHouse house, BasePlayerBB board, int page) : base(50, 10)
{
from.CloseGump<PlayerBBGump>();
_page = page;
_from = from;
_house = house;

View file

@ -46,7 +46,6 @@ public abstract partial class PromotionalToken : Item
}
else
{
from.CloseGump<PromotionalTokenGump>();
from.SendGump(new PromotionalTokenGump(this));
}
}
@ -71,6 +70,8 @@ public abstract partial class PromotionalToken : Item
{
private readonly PromotionalToken m_Token;
public override bool Singleton => true;
public PromotionalTokenGump(PromotionalToken token) : base(10, 10)
{
m_Token = token;

View file

@ -84,7 +84,6 @@ public partial class PublicMoongate : Item
return false;
}
m.CloseGump<MoongateGump>();
m.SendGump(new MoongateGump(m, this));
if (!m.Hidden || m.AccessLevel == AccessLevel.Player)
@ -323,6 +322,8 @@ public class MoongateGump : Gump
private Mobile _mobile;
private Item _moongate;
public override bool Singleton => true;
public MoongateGump(Mobile mobile, Item moongate) : base(100, 100)
{
_mobile = mobile;

View file

@ -21,7 +21,6 @@ public partial class SpecialBeardDye : Item
{
if (from.InRange(GetWorldLocation(), 1))
{
from.CloseGump<SpecialBeardDyeGump>();
from.SendGump(new SpecialBeardDyeGump(this));
}
else
@ -47,6 +46,8 @@ public class SpecialBeardDyeGump : Gump
private SpecialBeardDye _specialBeardDye;
public override bool Singleton => true;
public SpecialBeardDyeGump(SpecialBeardDye dye) : base(0, 0)
{
_specialBeardDye = dye;

View file

@ -21,7 +21,6 @@ public partial class SpecialHairDye : Item
{
if (from.InRange(GetWorldLocation(), 1))
{
from.CloseGump<SpecialHairDyeGump>();
from.SendGump(new SpecialHairDyeGump(this));
}
else
@ -47,6 +46,8 @@ public class SpecialHairDyeGump : Gump
private SpecialHairDye _specialHairDye;
public override bool Singleton => true;
public SpecialHairDyeGump(SpecialHairDye dye) : base(0, 0)
{
_specialHairDye = dye;

View file

@ -1,4 +1,5 @@
using ModernUO.Serialization;
using Server.Gumps;
using Server.Multis;
namespace Server.Items;