diff --git a/Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs b/Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs index b9880eb8b6..6b6ce1e565 100644 --- a/Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs +++ b/Content.Client/Access/UI/AgentIDCardBoundUserInterface.cs @@ -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) diff --git a/Content.Client/Access/UI/AgentIDCardWindow.xaml.cs b/Content.Client/Access/UI/AgentIDCardWindow.xaml.cs index 9813a2946e..1be816f027 100644 --- a/Content.Client/Access/UI/AgentIDCardWindow.xaml.cs +++ b/Content.Client/Access/UI/AgentIDCardWindow.xaml.cs @@ -7,16 +7,18 @@ namespace Content.Client.Access.UI [GenerateTypedNameReferences] public sealed partial class AgentIDCardWindow : DefaultWindow { - public event Action? OnNameEntered; - - public event Action? OnJobEntered; + public event Action? OnNameChanged; + public event Action? 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) diff --git a/Content.Client/Labels/UI/HandLabelerBoundUserInterface.cs b/Content.Client/Labels/UI/HandLabelerBoundUserInterface.cs index 40677e1512..352e90958b 100644 --- a/Content.Client/Labels/UI/HandLabelerBoundUserInterface.cs +++ b/Content.Client/Labels/UI/HandLabelerBoundUserInterface.cs @@ -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(); } /// diff --git a/Content.Client/Labels/UI/HandLabelerWindow.xaml.cs b/Content.Client/Labels/UI/HandLabelerWindow.xaml.cs index b55c4c069a..7706c31f85 100644 --- a/Content.Client/Labels/UI/HandLabelerWindow.xaml.cs +++ b/Content.Client/Labels/UI/HandLabelerWindow.xaml.cs @@ -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? OnLabelEntered; + public event Action? 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) diff --git a/Content.Server/Labels/Label/HandLabelerSystem.cs b/Content.Server/Labels/Label/HandLabelerSystem.cs index 1f50906bec..9273be9778 100644 --- a/Content.Server/Labels/Label/HandLabelerSystem.cs +++ b/Content.Server/Labels/Label/HandLabelerSystem.cs @@ -28,7 +28,6 @@ namespace Content.Server.Labels base.Initialize(); SubscribeLocalEvent(AfterInteractOn); - SubscribeLocalEvent(OnActivate); SubscribeLocalEvent>(OnUtilityVerb); // Bound UI subscriptions SubscribeLocalEvent(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) diff --git a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml index 90b1b8395b..976431dc84 100644 --- a/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml +++ b/Resources/Prototypes/Entities/Objects/Misc/identification_cards.yml @@ -499,6 +499,7 @@ - type: AgentIDCard - type: ActivatableUI key: enum.AgentIDCardUiKey.Key + inHandsOnly: true - type: UserInterface interfaces: - key: enum.AgentIDCardUiKey.Key diff --git a/Resources/Prototypes/Entities/Objects/Tools/hand_labeler.yml b/Resources/Prototypes/Entities/Objects/Tools/hand_labeler.yml index 3b16f6938a..4708970ed0 100644 --- a/Resources/Prototypes/Entities/Objects/Tools/hand_labeler.yml +++ b/Resources/Prototypes/Entities/Objects/Tools/hand_labeler.yml @@ -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