Action stuff (#31305)

* Action stuff

- Cleanup some event stuff
- Avoid dirtying entity unnecessarily
- Add ActionGrant as an easy way to apply / remove actions via compregistry.

* Fix merge
This commit is contained in:
metalgearsloth
2024-08-25 22:43:31 +10:00
committed by GitHub
parent f96dddd9fb
commit 2e029a7d5b
10 changed files with 168 additions and 40 deletions

View File

@@ -0,0 +1,27 @@
using Robust.Shared.Prototypes;
namespace Content.Shared.Actions.Events;
/// <summary>
/// Adds / removes the component upon action.
/// </summary>
[Virtual]
public partial class ActionComponentChangeEvent : InstantActionEvent
{
[DataField(required: true)]
public ComponentRegistry Components = new();
}
/// <summary>
/// Similar to <see cref="ActionComponentChangeEvent"/> except raises an event to attempt to relay it.
/// </summary>
public sealed partial class RelayedActionComponentChangeEvent : ActionComponentChangeEvent
{
}
[ByRefEvent]
public record struct AttemptRelayActionComponentChangeEvent
{
public EntityUid? Target;
}