Improve HandLabeler and AgentID UI (#16902)

This commit is contained in:
Vordenburg
2023-06-20 00:52:03 -04:00
committed by GitHub
parent f7e44b9b40
commit 34e03a07f2
7 changed files with 18 additions and 24 deletions

View File

@@ -25,8 +25,8 @@ namespace Content.Client.Access.UI
_window.OpenCentered();
_window.OnClose += Close;
_window.OnNameEntered += OnNameChanged;
_window.OnJobEntered += OnJobChanged;
_window.OnNameChanged += OnNameChanged;
_window.OnJobChanged += OnJobChanged;
}
private void OnNameChanged(string newName)

View File

@@ -7,16 +7,18 @@ namespace Content.Client.Access.UI
[GenerateTypedNameReferences]
public sealed partial class AgentIDCardWindow : DefaultWindow
{
public event Action<string>? OnNameEntered;
public event Action<string>? OnJobEntered;
public event Action<string>? OnNameChanged;
public event Action<string>? OnJobChanged;
public AgentIDCardWindow()
{
RobustXamlLoader.Load(this);
NameLineEdit.OnTextEntered += e => OnNameEntered?.Invoke(e.Text);
JobLineEdit.OnTextEntered += e => OnJobEntered?.Invoke(e.Text);
NameLineEdit.OnTextEntered += e => OnNameChanged?.Invoke(e.Text);
NameLineEdit.OnFocusExit += e => OnNameChanged?.Invoke(e.Text);
JobLineEdit.OnTextEntered += e => OnJobChanged?.Invoke(e.Text);
JobLineEdit.OnFocusExit += e => OnJobChanged?.Invoke(e.Text);
}
public void SetCurrentName(string name)

View File

@@ -26,14 +26,12 @@ namespace Content.Client.Labels.UI
_window.OpenCentered();
_window.OnClose += Close;
_window.OnLabelEntered += OnLabelChanged;
_window.OnLabelChanged += OnLabelChanged;
}
private void OnLabelChanged(string newLabel)
{
SendMessage(new HandLabelerLabelChangedMessage(newLabel));
Close();
}
/// <summary>

View File

@@ -1,7 +1,5 @@
using System;
using Robust.Client.UserInterface.CustomControls;
using Robust.Client.AutoGenerated;
using Robust.Client.UserInterface.Controls;
using Robust.Client.UserInterface.XAML;
namespace Content.Client.Labels.UI
@@ -9,13 +7,14 @@ namespace Content.Client.Labels.UI
[GenerateTypedNameReferences]
public sealed partial class HandLabelerWindow : DefaultWindow
{
public event Action<string>? OnLabelEntered;
public event Action<string>? OnLabelChanged;
public HandLabelerWindow()
{
RobustXamlLoader.Load(this);
LabelLineEdit.OnTextEntered += e => OnLabelEntered?.Invoke(e.Text);
LabelLineEdit.OnTextEntered += e => OnLabelChanged?.Invoke(e.Text);
LabelLineEdit.OnFocusExit += e => OnLabelChanged?.Invoke(e.Text);
}
public void SetCurrentLabel(string label)

View File

@@ -28,7 +28,6 @@ namespace Content.Server.Labels
base.Initialize();
SubscribeLocalEvent<HandLabelerComponent, AfterInteractEvent>(AfterInteractOn);
SubscribeLocalEvent<HandLabelerComponent, ActivateInWorldEvent>(OnActivate);
SubscribeLocalEvent<HandLabelerComponent, GetVerbsEvent<UtilityVerb>>(OnUtilityVerb);
// Bound UI subscriptions
SubscribeLocalEvent<HandLabelerComponent, HandLabelerLabelChangedMessage>(OnHandLabelerLabelChanged);
@@ -54,6 +53,7 @@ namespace Content.Server.Labels
args.Verbs.Add(verb);
}
private void AfterInteractOn(EntityUid uid, HandLabelerComponent handLabeler, AfterInteractEvent args)
{
if (args.Target is not {Valid: true} target || !handLabeler.Whitelist.IsValid(target) || !args.CanReach)
@@ -88,15 +88,6 @@ namespace Content.Server.Labels
result = Loc.GetString("hand-labeler-successfully-applied");
}
private void OnActivate(EntityUid uid, HandLabelerComponent handLabeler, ActivateInWorldEvent args)
{
if (!EntityManager.TryGetComponent(args.User, out ActorComponent? actor))
return;
handLabeler.Owner.GetUIOrNull(HandLabelerUiKey.Key)?.Open(actor.PlayerSession);
args.Handled = true;
}
private void OnHandLabelerLabelChanged(EntityUid uid, HandLabelerComponent handLabeler, HandLabelerLabelChangedMessage args)
{
if (args.Session.AttachedEntity is not {Valid: true} player)

View File

@@ -499,6 +499,7 @@
- type: AgentIDCard
- type: ActivatableUI
key: enum.AgentIDCardUiKey.Key
inHandsOnly: true
- type: UserInterface
interfaces:
- key: enum.AgentIDCardUiKey.Key

View File

@@ -11,6 +11,9 @@
sprite: Objects/Tools/hand_labeler.rsi
- type: UseDelay
delay: 2.0
- type: ActivatableUI
key: enum.HandLabelerUiKey.Key
inHandsOnly: true
- type: UserInterface
interfaces:
- key: enum.HandLabelerUiKey.Key