using Content.Server.DeviceLinking.Systems; using Content.Shared.DeviceLinking; using Robust.Shared.Prototypes; namespace Content.Server.DeviceLinking.Components; /// /// An edge detector that pulses high or low output ports when the input port gets a rising or falling edge respectively. /// [RegisterComponent, Access(typeof(EdgeDetectorSystem))] public sealed partial class EdgeDetectorComponent : Component { /// /// Name of the input port. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public ProtoId InputPort = "Input"; /// /// Name of the rising edge output port. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public ProtoId OutputHighPort = "OutputHigh"; /// /// Name of the falling edge output port. /// [DataField, ViewVariables(VVAccess.ReadWrite)] public ProtoId OutputLowPort = "OutputLow"; // Initial state [DataField] public SignalState State = SignalState.Low; }