Good Intercoms (#17950)

* crystal anomaly

* Good intercoms

* fixes

* fix construction fail

* Revert "crystal anomaly"

This reverts commit 0d9e3f62ff82c79e72f882b9c7f4ca1b9c6e6dd8.

* migration
This commit is contained in:
Nemanja
2023-07-11 19:58:18 -04:00
committed by GitHub
parent f89e85c1e9
commit 6dbfbc52c0
21 changed files with 407 additions and 98 deletions

View File

@@ -17,9 +17,6 @@ public sealed class RadioMicrophoneComponent : Component
[DataField("broadcastChannel", customTypeSerializer: typeof(PrototypeIdSerializer<RadioChannelPrototype>))]
public string BroadcastChannel = SharedChatSystem.CommonChannel;
[ViewVariables, DataField("supportedChannels", customTypeSerializer: typeof(PrototypeIdListSerializer<RadioChannelPrototype>))]
public List<string>? SupportedChannels;
[ViewVariables(VVAccess.ReadWrite)]
[DataField("listenRange")]
public int ListenRange = 4;
@@ -30,6 +27,13 @@ public sealed class RadioMicrophoneComponent : Component
[DataField("powerRequired")]
public bool PowerRequired = false;
/// <summary>
/// Whether or not interacting with this entity
/// toggles it on or off.
/// </summary>
[DataField("toggleOnInteract")]
public bool ToggleOnInteract = true;
/// <summary>
/// Whether or not the speaker must have an
/// unobstructed path to the radio to speak

View File

@@ -12,6 +12,13 @@ namespace Content.Server.Radio.Components;
[Access(typeof(RadioDeviceSystem))]
public sealed class RadioSpeakerComponent : Component
{
/// <summary>
/// Whether or not interacting with this entity
/// toggles it on or off.
/// </summary>
[DataField("toggleOnInteract")]
public bool ToggleOnInteract = true;
[DataField("channels", customTypeSerializer: typeof(PrototypeIdHashSetSerializer<RadioChannelPrototype>))]
public HashSet<string> Channels = new () { SharedChatSystem.CommonChannel };