using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Serialization; namespace Content.Shared.Wieldable.Components; /// /// Used for objects that can be wielded in two or more hands, /// [RegisterComponent, NetworkedComponent, Access(typeof(SharedWieldableSystem)), AutoGenerateComponentState] public sealed partial class WieldableComponent : Component { [DataField("wieldSound")] public SoundSpecifier? WieldSound = new SoundPathSpecifier("/Audio/Effects/thudswoosh.ogg"); [DataField("unwieldSound")] public SoundSpecifier? UnwieldSound; /// /// Number of free hands required (excluding the item itself) required /// to wield it /// [DataField("freeHandsRequired")] public int FreeHandsRequired = 1; [AutoNetworkedField, DataField("wielded")] public bool Wielded = false; /// /// Whether using the item inhand while wielding causes the item to unwield. /// Unwielding can conflict with other inhand actions. /// [DataField] public bool UnwieldOnUse = true; /// /// Should use delay trigger after the wield/unwield? /// [DataField] public bool UseDelayOnWield = true; [DataField("wieldedInhandPrefix")] public string? WieldedInhandPrefix = "wielded"; public string? OldInhandPrefix = null; } [Serializable, NetSerializable] public enum WieldableVisuals : byte { Wielded }