2021-06-09 22:19:39 +02:00
|
|
|
using Content.Server.UserInterface;
|
|
|
|
|
using Content.Shared.Communications;
|
2022-07-29 14:13:12 +12:00
|
|
|
using Robust.Shared.Audio;
|
2020-04-09 00:28:56 +02:00
|
|
|
|
2021-06-09 22:19:39 +02:00
|
|
|
namespace Content.Server.Communications
|
2020-04-09 00:28:56 +02:00
|
|
|
{
|
|
|
|
|
[RegisterComponent]
|
2023-08-22 18:14:33 -07:00
|
|
|
public sealed partial class CommunicationsConsoleComponent : SharedCommunicationsConsoleComponent
|
2020-04-09 00:28:56 +02:00
|
|
|
{
|
2022-07-01 13:40:36 -07:00
|
|
|
public float UIUpdateAccumulator = 0f;
|
|
|
|
|
|
2022-06-03 21:37:35 +10:00
|
|
|
/// <summary>
|
|
|
|
|
/// Remaining cooldown between making announcements.
|
|
|
|
|
/// </summary>
|
2024-01-27 05:51:24 -08:00
|
|
|
[ViewVariables]
|
2024-01-08 06:28:06 -06:00
|
|
|
[DataField]
|
2022-06-03 21:37:35 +10:00
|
|
|
public float AnnouncementCooldownRemaining;
|
|
|
|
|
|
2024-01-27 05:51:24 -08:00
|
|
|
[ViewVariables]
|
|
|
|
|
[DataField]
|
|
|
|
|
public float BroadcastCooldownRemaining;
|
|
|
|
|
|
2022-06-03 21:37:35 +10:00
|
|
|
/// <summary>
|
|
|
|
|
/// Fluent ID for the announcement title
|
|
|
|
|
/// If a Fluent ID isn't found, just uses the raw string
|
|
|
|
|
/// </summary>
|
|
|
|
|
[ViewVariables(VVAccess.ReadWrite)]
|
2023-10-10 20:06:24 -07:00
|
|
|
[DataField(required: true)]
|
|
|
|
|
public LocId Title = "comms-console-announcement-title-station";
|
2022-06-03 21:37:35 +10:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Announcement color
|
|
|
|
|
/// </summary>
|
2024-01-27 05:51:24 -08:00
|
|
|
[ViewVariables]
|
2023-10-10 20:06:24 -07:00
|
|
|
[DataField]
|
|
|
|
|
public Color Color = Color.Gold;
|
2022-06-03 21:37:35 +10:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Time in seconds between announcement delays on a per-console basis
|
|
|
|
|
/// </summary>
|
2024-01-27 05:51:24 -08:00
|
|
|
[ViewVariables]
|
2023-10-10 20:06:24 -07:00
|
|
|
[DataField]
|
|
|
|
|
public int Delay = 90;
|
2022-06-03 21:37:35 +10:00
|
|
|
|
2024-01-08 06:28:06 -06:00
|
|
|
/// <summary>
|
|
|
|
|
/// Time in seconds of announcement cooldown when a new console is created on a per-console basis
|
|
|
|
|
/// </summary>
|
2024-01-27 05:51:24 -08:00
|
|
|
[ViewVariables]
|
2024-01-08 06:28:06 -06:00
|
|
|
[DataField]
|
|
|
|
|
public int InitialDelay = 30;
|
|
|
|
|
|
2022-06-03 21:37:35 +10:00
|
|
|
/// <summary>
|
|
|
|
|
/// Can call or recall the shuttle
|
|
|
|
|
/// </summary>
|
2024-01-27 05:51:24 -08:00
|
|
|
[ViewVariables]
|
2023-10-10 20:06:24 -07:00
|
|
|
[DataField]
|
|
|
|
|
public bool CanShuttle = true;
|
2022-06-03 21:37:35 +10:00
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Announce on all grids (for nukies)
|
|
|
|
|
/// </summary>
|
2023-10-10 20:06:24 -07:00
|
|
|
[DataField]
|
|
|
|
|
public bool Global = false;
|
2022-06-03 21:37:35 +10:00
|
|
|
|
2022-07-15 12:16:41 +03:00
|
|
|
/// <summary>
|
|
|
|
|
/// Announce sound file path
|
|
|
|
|
/// </summary>
|
2023-10-10 20:06:24 -07:00
|
|
|
[DataField]
|
|
|
|
|
public SoundSpecifier Sound = new SoundPathSpecifier("/Audio/Announcements/announce.ogg");
|
2023-08-28 18:55:56 +03:00
|
|
|
|
|
|
|
|
//WD-start
|
|
|
|
|
[DataField("ttsVoiceId")]
|
|
|
|
|
public string TtsVoiceId = "Glados";
|
|
|
|
|
//WD-end
|
2020-04-09 00:28:56 +02:00
|
|
|
}
|
|
|
|
|
}
|