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

@ -99,7 +99,7 @@ namespace Server.Mobiles
return max;
}
private void CloseClaimList(Mobile from)
private static void CloseClaimList(Mobile from)
{
from.CloseGump<ClaimListGump>();
}
@ -427,14 +427,14 @@ namespace Server.Mobiles
private readonly List<BaseCreature> m_List;
private readonly AnimalTrainer m_Trainer;
public override bool Singleton => true;
public ClaimListGump(AnimalTrainer trainer, Mobile from, List<BaseCreature> list) : base(50, 50)
{
m_Trainer = trainer;
m_From = from;
m_List = list;
from.CloseGump<ClaimListGump>();
AddPage(0);
AddBackground(0, 0, 325, 50 + list.Count * 20, 9250);

View file

@ -155,16 +155,17 @@ namespace Server.Mobiles
private readonly Mobile m_From;
private readonly HairstylistBuyInfo[] m_SellList;
private readonly Mobile m_Vendor;
public override bool Singleton => true;
public HairstylistBuyGump(Mobile from, Mobile vendor, HairstylistBuyInfo[] sellList) : base(50, 50)
{
m_From = from;
m_Vendor = vendor;
m_SellList = sellList;
from.CloseGump<HairstylistBuyGump>();
from.CloseGump<ChangeHairHueGump>();
from.CloseGump<ChangeHairstyleGump>();
var gumps = from.GetGumps();
gumps.Close<ChangeHairHueGump>();
gumps.Close<ChangeHairstyleGump>();
var isFemale = from.Female || from.Body.IsFemale;
@ -327,6 +328,8 @@ namespace Server.Mobiles
private readonly int m_Price;
private readonly Mobile m_Vendor;
public override bool Singleton => true;
public ChangeHairHueGump(
Mobile from, Mobile vendor, int price, bool hair, bool facialHair,
ChangeHairHueEntry[] entries
@ -339,10 +342,6 @@ namespace Server.Mobiles
m_FacialHair = facialHair;
m_Entries = entries;
from.CloseGump<HairstylistBuyGump>();
from.CloseGump<ChangeHairHueGump>();
from.CloseGump<ChangeHairstyleGump>();
AddPage(0);
AddBackground(100, 10, 350, 370, 2600);
@ -496,6 +495,8 @@ namespace Server.Mobiles
private readonly int m_Price;
private readonly Mobile m_Vendor;
public override bool Singleton => true;
public ChangeHairstyleGump(
Mobile from, Mobile vendor, int price, bool facialHair, ChangeHairstyleEntry[] entries
) : base(50, 50)
@ -506,9 +507,10 @@ namespace Server.Mobiles
m_FacialHair = facialHair;
m_Entries = entries;
from.CloseGump<HairstylistBuyGump>();
from.CloseGump<ChangeHairHueGump>();
from.CloseGump<ChangeHairstyleGump>();
var gumps = from.GetGumps();
gumps.Close<HairstylistBuyGump>();
gumps.Close<ChangeHairHueGump>();
var tableWidth = m_FacialHair ? 2 : 3;
var tableHeight = (entries.Length + tableWidth - (m_FacialHair ? 1 : 2)) / tableWidth;

View file

@ -1,6 +1,7 @@
using ModernUO.Serialization;
using Server.Collections;
using Server.ContextMenus;
using Server.Gumps;
using Server.Items;
namespace Server.Mobiles