Improve HandLabeler and AgentID UI (#16902)
This commit is contained in:
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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>
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -499,6 +499,7 @@
|
||||
- type: AgentIDCard
|
||||
- type: ActivatableUI
|
||||
key: enum.AgentIDCardUiKey.Key
|
||||
inHandsOnly: true
|
||||
- type: UserInterface
|
||||
interfaces:
|
||||
- key: enum.AgentIDCardUiKey.Key
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user