diff --git a/Content.Server/DeviceLinking/Components/SignalTimerComponent.cs b/Content.Server/DeviceLinking/Components/SignalTimerComponent.cs index b3535cde1f..3feb69c879 100644 --- a/Content.Server/DeviceLinking/Components/SignalTimerComponent.cs +++ b/Content.Server/DeviceLinking/Components/SignalTimerComponent.cs @@ -1,53 +1,58 @@ using Content.Shared.DeviceLinking; using Robust.Shared.Audio; using Robust.Shared.Prototypes; -using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.DeviceLinking.Components; [RegisterComponent] public sealed partial class SignalTimerComponent : Component { - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public double Delay = 5; /// /// This shows the Label: text box in the UI. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public bool CanEditLabel = true; /// /// The label, used for TextScreen visuals currently. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public string Label = string.Empty; /// /// Default max width of a label (how many letters can this render?) /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public int MaxLength = 5; /// /// The port that gets signaled when the timer triggers. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public ProtoId TriggerPort = "Timer"; /// /// The port that gets signaled when the timer starts. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public ProtoId StartPort = "Start"; - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public ProtoId Trigger = "Trigger"; /// /// If not null, this timer will play this sound when done. /// - [DataField, ViewVariables(VVAccess.ReadWrite)] + [DataField] public SoundSpecifier? DoneSound; -} + /// + /// The maximum duration in seconds + /// When a larger number is in the input box, the display will start counting down from this one instead + /// + [DataField] + public Double MaxDuration = 3599; // 59m 59s +} diff --git a/Content.Server/DeviceLinking/Systems/SignalTimerSystem.cs b/Content.Server/DeviceLinking/Systems/SignalTimerSystem.cs index 14e0c75d96..b4ae1eb57a 100644 --- a/Content.Server/DeviceLinking/Systems/SignalTimerSystem.cs +++ b/Content.Server/DeviceLinking/Systems/SignalTimerSystem.cs @@ -152,7 +152,7 @@ public sealed class SignalTimerSystem : EntitySystem if (!IsMessageValid(uid, args)) return; - component.Delay = args.Delay.TotalSeconds; + component.Delay = Math.Min(args.Delay.TotalSeconds, component.MaxDuration); _appearanceSystem.SetData(uid, TextScreenVisuals.TargetTime, component.Delay); }