Improve HandLabeler and AgentID UI (#16902)
This commit is contained in:
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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>
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user