diff --git a/Content.Server/UserInterface/ActivatableUIComponent.cs b/Content.Server/UserInterface/ActivatableUIComponent.cs index 4bbfc0eae4..f55626884b 100644 --- a/Content.Server/UserInterface/ActivatableUIComponent.cs +++ b/Content.Server/UserInterface/ActivatableUIComponent.cs @@ -40,6 +40,9 @@ namespace Content.Server.UserInterface [DataField("key", readOnly: true, required: true)] private string _keyRaw = default!; + [DataField("verbText")] + public string VerbText = "ui-verb-toggle-open"; + /// /// The client channel currently using the object, or null if there's none/not single user. /// NOTE: DO NOT DIRECTLY SET, USE ActivatableUISystem.SetCurrentSingleUser diff --git a/Content.Server/UserInterface/ActivatableUISystem.cs b/Content.Server/UserInterface/ActivatableUISystem.cs index 1e70873840..eb9959aeff 100644 --- a/Content.Server/UserInterface/ActivatableUISystem.cs +++ b/Content.Server/UserInterface/ActivatableUISystem.cs @@ -34,12 +34,15 @@ namespace Content.Server.UserInterface if (!args.CanAccess) return; + if (component.InHandsOnly && args.Using != uid) + return; + if (!args.CanInteract && !HasComp(args.User)) return; ActivationVerb verb = new(); verb.Act = () => InteractUI(args.User, component); - verb.Text = Loc.GetString("ui-verb-toggle-open"); + verb.Text = Loc.GetString(component.VerbText); // TODO VERBS add "open UI" icon? args.Verbs.Add(verb); } diff --git a/Resources/Locale/en-US/ui/verbs.ftl b/Resources/Locale/en-US/ui/verbs.ftl index 03ac42418b..1471261dcb 100644 --- a/Resources/Locale/en-US/ui/verbs.ftl +++ b/Resources/Locale/en-US/ui/verbs.ftl @@ -1,2 +1,3 @@ ### Loc for the various UI-related verbs ui-verb-toggle-open = Toggle UI +verb-instrument-openui = Play Music diff --git a/Resources/Prototypes/Entities/Objects/Fun/instruments.yml b/Resources/Prototypes/Entities/Objects/Fun/instruments.yml index ea0085e687..aea965c66f 100644 --- a/Resources/Prototypes/Entities/Objects/Fun/instruments.yml +++ b/Resources/Prototypes/Entities/Objects/Fun/instruments.yml @@ -10,6 +10,7 @@ - type: ActivatableUI inHandsOnly: true singleUser: true + verbText: verb-instrument-openui key: enum.InstrumentUiKey.Key - type: UserInterface interfaces: diff --git a/Resources/Prototypes/Entities/Structures/Furniture/instruments.yml b/Resources/Prototypes/Entities/Structures/Furniture/instruments.yml index abb5c66151..ac4ce701ea 100644 --- a/Resources/Prototypes/Entities/Structures/Furniture/instruments.yml +++ b/Resources/Prototypes/Entities/Structures/Furniture/instruments.yml @@ -8,6 +8,7 @@ - type: ActivatableUI inHandsOnly: false singleUser: true + verbText: verb-instrument-openui key: enum.InstrumentUiKey.Key - type: InteractionOutline - type: Sprite