Blast door/shutter, timer and or gate device linking fixes (#16347)
This commit is contained in:
@@ -0,0 +1,15 @@
|
||||
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
|
||||
|
||||
namespace Content.Server.DeviceLinking.Components
|
||||
{
|
||||
[RegisterComponent]
|
||||
public sealed class ActiveSignalTimerComponent : Component
|
||||
{
|
||||
/// <summary>
|
||||
/// The time the timer triggers.
|
||||
/// </summary>
|
||||
[DataField("triggerTime", customTypeSerializer: typeof(TimeOffsetSerializer))]
|
||||
public TimeSpan TriggerTime;
|
||||
}
|
||||
}
|
||||
34
Content.Server/DeviceLinking/Components/OrGateComponent.cs
Normal file
34
Content.Server/DeviceLinking/Components/OrGateComponent.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using Content.Server.MachineLinking.Events;
|
||||
|
||||
namespace Content.Server.DeviceLinking.Components;
|
||||
|
||||
[RegisterComponent]
|
||||
public sealed class OrGateComponent : Component
|
||||
{
|
||||
// Initial state
|
||||
[ViewVariables]
|
||||
public SignalState StateA1 = SignalState.Low;
|
||||
|
||||
[ViewVariables]
|
||||
public SignalState StateB1 = SignalState.Low;
|
||||
|
||||
[ViewVariables]
|
||||
public SignalState LastO1 = SignalState.Low;
|
||||
|
||||
[ViewVariables]
|
||||
public SignalState StateA2 = SignalState.Low;
|
||||
|
||||
[ViewVariables]
|
||||
public SignalState StateB2 = SignalState.Low;
|
||||
|
||||
[ViewVariables]
|
||||
public SignalState LastO2 = SignalState.Low;
|
||||
}
|
||||
|
||||
public enum SignalState
|
||||
{
|
||||
Momentary, // Instantaneous pulse high, compatibility behavior
|
||||
Low,
|
||||
High
|
||||
}
|
||||
|
||||
@@ -0,0 +1,42 @@
|
||||
using Content.Shared.MachineLinking;
|
||||
using Robust.Shared.Audio;
|
||||
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
|
||||
|
||||
namespace Content.Server.DeviceLinking.Components;
|
||||
|
||||
[RegisterComponent]
|
||||
public sealed class SignalTimerComponent : Component
|
||||
{
|
||||
[DataField("delay"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public double Delay = 5;
|
||||
|
||||
/// <summary>
|
||||
/// This shows the Label: text box in the UI.
|
||||
/// </summary>
|
||||
[DataField("canEditLabel"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public bool CanEditLabel = true;
|
||||
|
||||
/// <summary>
|
||||
/// The label, used for TextScreen visuals currently.
|
||||
/// </summary>
|
||||
[DataField("label"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public string Label = "";
|
||||
|
||||
/// <summary>
|
||||
/// The port that gets signaled when the timer triggers.
|
||||
/// </summary>
|
||||
[DataField("triggerPort", customTypeSerializer: typeof(PrototypeIdSerializer<TransmitterPortPrototype>)), ViewVariables(VVAccess.ReadWrite)]
|
||||
public string TriggerPort = "Timer";
|
||||
|
||||
/// <summary>
|
||||
/// The port that gets signaled when the timer starts.
|
||||
/// </summary>
|
||||
[DataField("startPort", customTypeSerializer: typeof(PrototypeIdSerializer<TransmitterPortPrototype>)), ViewVariables(VVAccess.ReadWrite)]
|
||||
public string StartPort = "Start";
|
||||
|
||||
/// <summary>
|
||||
/// If not null, this timer will play this sound when done.
|
||||
/// </summary>
|
||||
[DataField("doneSound"), ViewVariables(VVAccess.ReadWrite)]
|
||||
public SoundSpecifier? DoneSound;
|
||||
}
|
||||
Reference in New Issue
Block a user