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

@ -102,17 +102,19 @@ namespace Server.Gumps
public static void EnsureClosed(Mobile m)
{
m.CloseGump<DeclareFealtyGump>();
m.CloseGump<GrantGuildTitleGump>();
m.CloseGump<GuildAdminCandidatesGump>();
m.CloseGump<GuildCandidatesGump>();
m.CloseGump<GuildChangeTypeGump>();
m.CloseGump<GuildCharterGump>();
m.CloseGump<GuildDismissGump>();
m.CloseGump<GuildGump>();
m.CloseGump<GuildmasterGump>();
m.CloseGump<GuildRosterGump>();
m.CloseGump<GuildWarGump>();
var gumps = m.GetGumps();
gumps.Close<DeclareFealtyGump>();
gumps.Close<GrantGuildTitleGump>();
gumps.Close<GuildAdminCandidatesGump>();
gumps.Close<GuildCandidatesGump>();
gumps.Close<GuildChangeTypeGump>();
gumps.Close<GuildCharterGump>();
gumps.Close<GuildDismissGump>();
gumps.Close<GuildGump>();
gumps.Close<GuildmasterGump>();
gumps.Close<GuildRosterGump>();
gumps.Close<GuildWarGump>();
}
public static bool BadLeader(Mobile m, Guild g)

View file

@ -7,12 +7,12 @@ namespace Server.Guilds
{
public abstract class BaseGuildGump : Gump
{
public override bool Singleton => true;
public BaseGuildGump(PlayerMobile pm, Guild g, int x = 10, int y = 10) : base(x, y)
{
guild = g;
player = pm;
pm.CloseGump<BaseGuildGump>();
}
protected Guild guild { get; }

View file

@ -6,9 +6,10 @@ namespace Server.Guilds
{
public class CreateGuildGump : Gump
{
public override bool Singleton => true;
public CreateGuildGump(PlayerMobile pm, string guildName = "Guild Name", string guildAbbrev = "") : base(10, 10)
{
pm.CloseGump<CreateGuildGump>();
pm.CloseGump<BaseGuildGump>();
AddPage(0);

View file

@ -158,8 +158,7 @@ namespace Server.Guilds
// Guild Faction
if (Guild.OrderChaos && IsLeader(pm, guild))
{
pm.CloseGump<GuildChangeTypeGump>();
pm.SendGump(new GuildChangeTypeGump(pm, guild));
pm.SendGump(new GuildChangeTypeGump(pm, guild), true);
}
break;