using Robust.Shared.Audio; using Robust.Shared.Prototypes; namespace Content.Server.Wires; [RegisterComponent] public sealed partial class WiresComponent : Component { /// /// The name of this entity's internal board. /// [DataField] public LocId BoardName { get; set; } = "wires-board-name-default"; /// /// The layout ID of this entity's wires. /// [DataField(required: true)] public ProtoId LayoutId { get; set; } = default!; /// /// The serial number of this board. Randomly generated upon start, /// does not need to be set. /// [ViewVariables] public string? SerialNumber { get; set; } /// /// The seed that dictates the wires appearance, as well as /// the status ordering on the UI client side. /// [ViewVariables] public int WireSeed { get; set; } /// /// The list of wires currently active on this entity. /// [ViewVariables] public List WiresList { get; set; } = new(); /// /// Queue of wires saved while the wire's DoAfter event occurs, to prevent too much spam. /// [ViewVariables] public List WiresQueue { get; } = new(); /// /// If this should follow the layout saved the first time the layout dictated by the /// layout ID is generated, or if a new wire order should be generated every time. /// [DataField] public bool AlwaysRandomize { get; private set; } /// /// Per wire status, keyed by an object. /// [ViewVariables] public Dictionary Statuses { get; } = new(); /// /// The state data for the set of wires inside of this entity. /// This is so that wire objects can be flyweighted between /// entities without any issues. /// [ViewVariables] public Dictionary StateData { get; } = new(); [DataField] public SoundSpecifier PulseSound = new SoundPathSpecifier("/Audio/Effects/multitool_pulse.ogg"); }