using System; using System.Collections.Generic; using Robust.Shared.GameObjects; using Robust.Shared.Serialization.Manager.Attributes; using Robust.Shared.ViewVariables; using Content.Server.MachineLinking.System; namespace Content.Server.MachineLinking.Components { [DataDefinition] public struct PortIdentifier { [DataField("uid")] public EntityUid Uid; [DataField("port")] public string Port; public PortIdentifier(EntityUid uid, string port) { Uid = uid; Port = port; } } [RegisterComponent] public sealed class SignalTransmitterComponent : Component { /// /// How far the device can transmit a signal wirelessly. /// Devices farther than this range can still transmit if they are /// on the same powernet. /// [DataField("transmissionRange")] public float TransmissionRange = 30f; [DataField("outputs")] private Dictionary> _outputs = new(); [ViewVariables] public IReadOnlyDictionary> Outputs => _outputs; public void AddPort(string name) { _outputs.Add(name, new()); } } }