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.OpenCentered();
_window.OnClose += Close; _window.OnClose += Close;
_window.OnNameEntered += OnNameChanged; _window.OnNameChanged += OnNameChanged;
_window.OnJobEntered += OnJobChanged; _window.OnJobChanged += OnJobChanged;
} }
private void OnNameChanged(string newName) private void OnNameChanged(string newName)

View File

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

View File

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

View File

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

View File

@@ -28,7 +28,6 @@ namespace Content.Server.Labels
base.Initialize(); base.Initialize();
SubscribeLocalEvent<HandLabelerComponent, AfterInteractEvent>(AfterInteractOn); SubscribeLocalEvent<HandLabelerComponent, AfterInteractEvent>(AfterInteractOn);
SubscribeLocalEvent<HandLabelerComponent, ActivateInWorldEvent>(OnActivate);
SubscribeLocalEvent<HandLabelerComponent, GetVerbsEvent<UtilityVerb>>(OnUtilityVerb); SubscribeLocalEvent<HandLabelerComponent, GetVerbsEvent<UtilityVerb>>(OnUtilityVerb);
// Bound UI subscriptions // Bound UI subscriptions
SubscribeLocalEvent<HandLabelerComponent, HandLabelerLabelChangedMessage>(OnHandLabelerLabelChanged); SubscribeLocalEvent<HandLabelerComponent, HandLabelerLabelChangedMessage>(OnHandLabelerLabelChanged);
@@ -54,6 +53,7 @@ namespace Content.Server.Labels
args.Verbs.Add(verb); args.Verbs.Add(verb);
} }
private void AfterInteractOn(EntityUid uid, HandLabelerComponent handLabeler, AfterInteractEvent args) private void AfterInteractOn(EntityUid uid, HandLabelerComponent handLabeler, AfterInteractEvent args)
{ {
if (args.Target is not {Valid: true} target || !handLabeler.Whitelist.IsValid(target) || !args.CanReach) 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"); 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) private void OnHandLabelerLabelChanged(EntityUid uid, HandLabelerComponent handLabeler, HandLabelerLabelChangedMessage args)
{ {
if (args.Session.AttachedEntity is not {Valid: true} player) if (args.Session.AttachedEntity is not {Valid: true} player)

View File

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

View File

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