using Robust.Shared.GameStates; using Robust.Shared.Serialization; namespace Content.Shared.Actions; [NetworkedComponent] [RegisterComponent] [Access(typeof(SharedActionsSystem))] public sealed partial class ActionsComponent : Component { /// /// List of actions currently granted to this entity. /// On the client, this may contain a mixture of client-side and networked entities. /// [DataField] public HashSet Actions = new(); } [Serializable, NetSerializable] public sealed class ActionsComponentState : ComponentState { public readonly HashSet Actions; public ActionsComponentState(HashSet actions) { Actions = actions; } } public readonly record struct ActionMetaData(bool ClientExclusive); /// /// Determines how the action icon appears in the hotbar for item actions. /// public enum ItemActionIconStyle : byte { /// /// The default - The item icon will be big with a small action icon in the corner /// BigItem, /// /// The action icon will be big with a small item icon in the corner /// BigAction, /// /// BigAction but no item icon will be shown in the corner. /// NoItem }