using Content.Shared.Interaction; using Robust.Shared.Prototypes; namespace Content.Server.Actions; /// /// This component enables an entity to perform actions when used to interact with the world, without actually /// granting that action to the entity that is using the item. /// /// /// If the entity is used in hand (), it will perform a random available instant /// action. If the entity is used to interact with another entity (), it will /// attempt to perform a random entity target action. Finally, if the entity is used to click somewhere in the world /// and no other interaction takes place (), then it will try to perform a random /// available entity or world target action. This component does not bypass standard interaction checks. /// /// This component mainly exists as a lazy way to add utility entities that can do things like cast "spells". /// [RegisterComponent] public sealed partial class ActionOnInteractComponent : Component { [DataField(required: true)] public List? Actions; [DataField] public List? ActionEntities; [DataField] public bool RequiresCharge; }