using Content.Shared.DeviceLinking; using Content.Shared.DeviceNetwork.Systems; using Robust.Shared.Audio; using Robust.Shared.GameStates; using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom; namespace Content.Shared.DeviceNetwork.Components; [RegisterComponent, NetworkedComponent, AutoGenerateComponentState] [Access(typeof(SharedNetworkConfiguratorSystem))] public sealed partial class NetworkConfiguratorComponent : Component { // AAAAA ALL OF THESE FAA /// /// Determines whether the configurator is in linking mode or list mode /// [DataField, AutoNetworkedField] [ViewVariables(VVAccess.ReadWrite)] public bool LinkModeActive = true; /// /// The entity containing a this configurator is currently interacting with /// [DataField, AutoNetworkedField] public EntityUid? ActiveDeviceList { get; set; } /// /// The entity containing a or this configurator is currently interacting with.
/// If this is set the configurator is in linking mode. ///
// TODO handle device deletion public EntityUid? ActiveDeviceLink; /// /// The target device this configurator is currently linking with the /// // TODO handle device deletion public EntityUid? DeviceLinkTarget; /// /// The list of devices stored in the configurator /// [DataField] public Dictionary Devices = new(); [DataField] [ViewVariables(VVAccess.ReadWrite)] public TimeSpan UseDelay = TimeSpan.FromSeconds(0.5); [DataField(customTypeSerializer: typeof(TimeOffsetSerializer))] [ViewVariables(VVAccess.ReadWrite)] public TimeSpan LastUseAttempt; [DataField] public SoundSpecifier SoundNoAccess = new SoundPathSpecifier("/Audio/Machines/custom_deny.ogg"); [DataField] public SoundSpecifier SoundSwitchMode = new SoundPathSpecifier("/Audio/Machines/quickbeep.ogg"); }