using Content.Client._RMC14.Attachable.Systems; using System.Numerics; using Robust.Shared.Utility; namespace Content.Client._RMC14.Attachable.Components; [RegisterComponent, AutoGenerateComponentState] [Access(typeof(AttachableHolderVisualsSystem))] public sealed partial class AttachableVisualsComponent : Component { /// /// Optional, only used if the item's own state should not be used. /// The path to the RSI file that contains all the attached states. /// [DataField, AutoNetworkedField] public ResPath? Rsi; /// /// Optional, only used if the item's own state should not be used. /// This prefix is added to the name of the slot the attachable is installed in. /// The prefix must be in kebab-case and end with a dash, like so: example-prefix- /// The RSI must contain a state for every slot the attachable fits into. /// If the attachment only fits into one slot, it should be named as follows: normal-state_suffix. /// The slot names can be found in AttachableHolderComponent.cs /// [DataField, AutoNetworkedField] public string? Prefix; /// /// Optional, only used if the item's own state should not be used. /// This suffix is added to the name of the slot the attachable is installed in. /// The RSI must contain a state for every slot the attachable fits into. /// If the attachment only fits into one slot, it should be named as follows: normal-state_suffix. /// The slot names can be found in AttachableHolderComponent.cs /// [DataField, AutoNetworkedField] public string? Suffix = "_a"; /// /// If true, will include the holder's slot name to find this attachment's state /// in its RSI. /// In this case, there must be a separate state for each slot the attachment fits into. /// The states should be named as follows: prefix-slot-name-suffix. /// [DataField, AutoNetworkedField] public bool IncludeSlotName; /// /// If this is toggled on and the item has an AttachableToggleableComponent, then the visualisation system will try to show a different sprite when it's active. /// Each active state must have "-on" appended to the end of its name. /// [DataField, AutoNetworkedField] public bool ShowActive; /// /// If this is set to true, the attachment will be redrawn on its holder every time it receives an AppearanceChangeEvent. Useful for things like the UGL. /// [DataField, AutoNetworkedField] public bool RedrawOnAppearanceChange; [DataField, AutoNetworkedField] public int Layer; [DataField, AutoNetworkedField] public Vector2 Offset; }