Fix toggle verbs (#32138)
First commit Co-authored-by: metalgearsloth <31366439+metalgearsloth@users.noreply.github.com>
This commit is contained in:
@@ -32,6 +32,18 @@ public sealed partial class ItemToggleComponent : Component
|
||||
[DataField]
|
||||
public bool OnUse = true;
|
||||
|
||||
/// <summary>
|
||||
/// The localized text to display in the verb to activate.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public string VerbToggleOn = "item-toggle-activate";
|
||||
|
||||
/// <summary>
|
||||
/// The localized text to display in the verb to de-activate.
|
||||
/// </summary>
|
||||
[DataField]
|
||||
public string VerbToggleOff = "item-toggle-deactivate";
|
||||
|
||||
/// <summary>
|
||||
/// Whether the item's toggle can be predicted by the client.
|
||||
/// </summary>
|
||||
|
||||
@@ -1,18 +0,0 @@
|
||||
using Content.Shared.Item.ItemToggle;
|
||||
using Robust.Shared.GameStates;
|
||||
|
||||
namespace Content.Shared.Item.ItemToggle.Components;
|
||||
|
||||
/// <summary>
|
||||
/// Adds a verb for toggling something, requires <see cref="ItemToggleComponent"/>.
|
||||
/// </summary>
|
||||
[RegisterComponent, NetworkedComponent, Access(typeof(ToggleVerbSystem))]
|
||||
public sealed partial class ToggleVerbComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// Text the verb will have.
|
||||
/// Gets passed "entity" as the entity's identity string.
|
||||
/// </summary>
|
||||
[DataField(required: true)]
|
||||
public LocId Text = string.Empty;
|
||||
}
|
||||
@@ -78,7 +78,7 @@ public sealed class ItemToggleSystem : EntitySystem
|
||||
|
||||
args.Verbs.Add(new ActivationVerb()
|
||||
{
|
||||
Text = !ent.Comp.Activated ? Loc.GetString("item-toggle-activate") : Loc.GetString("item-toggle-deactivate"),
|
||||
Text = !ent.Comp.Activated ? Loc.GetString(ent.Comp.VerbToggleOn) : Loc.GetString(ent.Comp.VerbToggleOff),
|
||||
Act = () =>
|
||||
{
|
||||
Toggle((ent.Owner, ent.Comp), user, predicted: ent.Comp.Predictable);
|
||||
|
||||
@@ -1,34 +0,0 @@
|
||||
using Content.Shared.IdentityManagement;
|
||||
using Content.Shared.Item.ItemToggle.Components;
|
||||
using Content.Shared.Verbs;
|
||||
|
||||
namespace Content.Shared.Item.ItemToggle;
|
||||
|
||||
/// <summary>
|
||||
/// Adds a verb for toggling something with <see cref="ToggleVerbComponent"/>.
|
||||
/// </summary>
|
||||
public sealed class ToggleVerbSystem : EntitySystem
|
||||
{
|
||||
[Dependency] private readonly ItemToggleSystem _toggle = default!;
|
||||
|
||||
public override void Initialize()
|
||||
{
|
||||
base.Initialize();
|
||||
|
||||
SubscribeLocalEvent<ToggleVerbComponent, GetVerbsEvent<ActivationVerb>>(OnGetVerbs);
|
||||
}
|
||||
|
||||
private void OnGetVerbs(Entity<ToggleVerbComponent> ent, ref GetVerbsEvent<ActivationVerb> args)
|
||||
{
|
||||
if (!args.CanAccess || !args.CanInteract)
|
||||
return;
|
||||
|
||||
var name = Identity.Entity(ent, EntityManager);
|
||||
var user = args.User;
|
||||
args.Verbs.Add(new ActivationVerb()
|
||||
{
|
||||
Text = Loc.GetString(ent.Comp.Text, ("entity", name)),
|
||||
Act = () => _toggle.Toggle(ent.Owner, user)
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
|
||||
# Toggle Magboots Verb
|
||||
toggle-magboots-verb-get-data-text = Toggle Magboots
|
||||
@@ -1,3 +1,4 @@
|
||||
fire-extinguisher-component-after-interact-refilled-message = {$owner} is now refilled
|
||||
fire-extinguisher-component-safety-on-message = Its safety is on!
|
||||
fire-extinguisher-component-verb-text = Toggle safety
|
||||
fire-extinguisher-component-verb-remove = Remove safety
|
||||
fire-extinguisher-component-verb-engage = Engage safety
|
||||
|
||||
@@ -15,8 +15,6 @@
|
||||
- type: ToggleClothing
|
||||
action: ActionToggleMagboots
|
||||
mustEquip: false
|
||||
- type: ToggleVerb
|
||||
text: toggle-magboots-verb-get-data-text
|
||||
- type: ComponentToggler
|
||||
components:
|
||||
- type: NoSlip
|
||||
|
||||
@@ -47,8 +47,8 @@
|
||||
params:
|
||||
variation: 0.125
|
||||
volume: -4
|
||||
- type: ToggleVerb
|
||||
text: fire-extinguisher-component-verb-text
|
||||
verbToggleOn: fire-extinguisher-component-verb-remove
|
||||
verbToggleOff: fire-extinguisher-component-verb-engage
|
||||
- type: SpraySafety
|
||||
- type: MeleeWeapon
|
||||
wideAnimationRotation: 180
|
||||
|
||||
Reference in New Issue
Block a user