using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype.Set; namespace Content.Shared.DeviceLinking; [RegisterComponent] [NetworkedComponent] // for interactions. Actual state isn't currently synced. [Access(typeof(SharedDeviceLinkSystem))] public sealed partial class DeviceLinkSourceComponent : Component { /// /// The ports the device link source sends signals from /// [DataField("ports", customTypeSerializer: typeof(PrototypeIdHashSetSerializer))] public HashSet? Ports; /// /// A list of sink uids that got linked for each port /// [ViewVariables] public Dictionary> Outputs = new(); /// /// The list of source to sink ports for each linked sink entity for easier managing of links /// [DataField("linkedPorts")] public Dictionary> LinkedPorts = new(); /// /// Limits the range devices can be linked across. /// [DataField("range")] [ViewVariables(VVAccess.ReadWrite)] public float Range = 30f; }