feat(chat): port retail client command families

Expand the typed client-command boundary across travel, character queries, local UI and layout controls, AFK and consent, emotes, friends, squelch and filters, and fill-components. Preserve retail packet layouts and queue ownership, import the confirmation dialog, and keep authoritative social state in Core.

Co-Authored-By: Codex <codex@openai.com>
This commit is contained in:
Erik 2026-07-13 14:50:15 +02:00
parent 5a45a7ac7f
commit 9ea579bdd0
47 changed files with 6659 additions and 99 deletions

View file

@ -0,0 +1,32 @@
using System.Numerics;
namespace AcDream.App.UI;
/// <summary>
/// Full-device modal root for retail dialog element classes. The authored child with id
/// <c>0x3D</c> supplies the visible popup art; this root only owns modality and input capture.
/// </summary>
public sealed class UiDialogRoot : UiPanel
{
public Action? Cancel { get; set; }
public UiDialogRoot()
{
BackgroundColor = Vector4.Zero;
BorderColor = Vector4.Zero;
ClickThrough = false;
}
public override bool OnEvent(in UiEvent e)
{
if (e.Type == UiEventType.KeyDown
&& e.Data0 == (int)Silk.NET.Input.Key.Escape)
{
Cancel?.Invoke();
}
// A dialog root is full-screen and modal. Unhandled clicks/keys must not
// fall through into movement, combat, or the default chat input.
return true;
}
}