using Content.Shared.Tools;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom.Prototype;
using Robust.Shared.Utility;
namespace Content.Server.MachineLinking.Components
{
[RegisterComponent]
public sealed class SignalLinkerComponent : Component
{
[ViewVariables]
public EntityUid? SavedTransmitter;
[ViewVariables]
public EntityUid? SavedReceiver;
///
/// Optional tool quality required for linker to work.
/// If linker entity doesn't have this quality it will ignore any interaction.
///
[DataField("requiredQuality", customTypeSerializer: typeof(PrototypeIdSerializer))]
[ViewVariables(VVAccess.ReadWrite)]
public string? RequiredQuality;
// Utility functions below to deal with linking entities with both Transmit and Receive components.
public bool LinkTX()
{
return SavedTransmitter == null;
}
public bool LinkRX()
{
return SavedTransmitter != null && SavedReceiver == null;
}
}
}