using Content.Server.Radio.EntitySystems; using Content.Shared.Inventory; using Content.Shared.Radio; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype; namespace Content.Server.Radio.Components; /// /// This component relays radio messages to the parent entity's chat when equipped. /// [RegisterComponent] [Access(typeof(HeadsetSystem))] public sealed class HeadsetComponent : Component { [DataField("channels", customTypeSerializer: typeof(PrototypeIdHashSetSerializer))] public readonly HashSet Channels = new() { "Common" }; // Maybe make the defaultChannel an actual channel type some day, and use that for parsing messages // [DataField("defaultChannel", customTypeSerializer: typeof(PrototypeIdHashSetSerializer))] // public readonly HashSet defaultChannel = new(); [DataField("defaultChannel", customTypeSerializer: typeof(PrototypeIdSerializer))] public readonly string? defaultChannel; [DataField("enabled")] public bool Enabled = true; public bool IsEquipped = false; [DataField("requiredSlot")] public SlotFlags RequiredSlot = SlotFlags.EARS; }