using Robust.Shared.GameStates; using Robust.Shared.Serialization; namespace Content.Shared.Actions; [NetworkedComponent] [RegisterComponent] [Access(typeof(SharedActionsSystem))] public sealed partial class ActionsComponent : Component { /// /// Handled on the client to track added and removed actions. /// [ViewVariables] public readonly Dictionary OldClientActions = new(); [ViewVariables] public readonly HashSet Actions = new(); public override bool SendOnlyToOwner => true; } [Serializable, NetSerializable] public sealed class ActionsComponentState : ComponentState { public readonly HashSet Actions; public ActionsComponentState(HashSet actions) { Actions = actions; } } public readonly record struct ActionMetaData(bool ClientExclusive, bool AutoRemove); /// /// 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 }