Context menu UI backend refactor & better UX (#13318)

closes https://github.com/space-wizards/space-station-14/issues/9209
This commit is contained in:
Kara
2023-01-07 21:24:52 -06:00
committed by GitHub
parent 17be16f1b1
commit 45da85fec6
14 changed files with 218 additions and 187 deletions

View File

@@ -17,6 +17,7 @@ using Robust.Shared.Map;
using Robust.Shared.Utility;
using System.Diagnostics.CodeAnalysis;
using System.Linq;
using Robust.Client.UserInterface;
namespace Content.Client.Verbs
{
@@ -36,9 +37,6 @@ namespace Content.Client.Verbs
/// </summary>
public const float EntityMenuLookupSize = 0.25f;
public EntityMenuPresenter EntityMenu = default!;
public VerbMenuPresenter VerbMenu = default!;
[Dependency] private readonly IEyeManager _eyeManager = default!;
/// <summary>
@@ -46,41 +44,13 @@ namespace Content.Client.Verbs
/// </summary>
public MenuVisibility Visibility;
public Action<VerbsResponseEvent>? OnVerbsResponse;
public override void Initialize()
{
base.Initialize();
UpdatesOutsidePrediction = true;
SubscribeNetworkEvent<RoundRestartCleanupEvent>(Reset);
SubscribeNetworkEvent<VerbsResponseEvent>(HandleVerbResponse);
EntityMenu = new(this);
VerbMenu = new(_combatMode, this);
}
public void Reset(RoundRestartCleanupEvent ev)
{
CloseAllMenus();
}
public override void Shutdown()
{
base.Shutdown();
EntityMenu?.Dispose();
VerbMenu?.Dispose();
}
public override void FrameUpdate(float frameTime)
{
base.FrameUpdate(frameTime);
EntityMenu?.Update();
}
public void CloseAllMenus()
{
EntityMenu.Close();
VerbMenu.Close();
}
/// <summary>
@@ -259,10 +229,7 @@ namespace Content.Client.Verbs
private void HandleVerbResponse(VerbsResponseEvent msg)
{
if (!VerbMenu.RootMenu.Visible || VerbMenu.CurrentTarget != msg.Entity)
return;
VerbMenu.AddServerVerbs(msg.Verbs);
OnVerbsResponse?.Invoke(msg);
}
}