using Robust.Shared.Audio; using Robust.Shared.Prototypes; using Robust.Shared.GameStates; using Robust.Shared.Serialization; namespace Content.Shared.DeviceLinking.Components; /// /// Simple switch that will fire ports when toggled on or off. A button is jsut a switch that signals on the /// same port regardless of its state. /// [RegisterComponent, NetworkedComponent] public sealed partial class SignalSwitchComponent : Component { /// /// The port that gets signaled when the switch turns on. /// [DataField] public ProtoId OnPort = "On"; /// /// The port that gets signaled when the switch turns off. /// [DataField] public ProtoId OffPort = "Off"; /// /// The port that gets signaled with the switch's current status. /// This is only used if OnPort is different from OffPort, not in the case of a toggle switch. /// [DataField] public ProtoId StatusPort = "Status"; [DataField] public bool State; [DataField] public SoundSpecifier ClickSound = new SoundPathSpecifier("/Audio/Machines/lightswitch.ogg"); } /// /// Enum for the appearance system. /// [Serializable, NetSerializable] public enum SwitchVisuals { Visuals, }