using Robust.Shared.GameStates;
namespace Content.Shared.Wires;
///
/// Allows hacking protections to a be added to an entity.
/// These safeguards are determined via a construction graph,
/// so the entity requires for this to function
///
[NetworkedComponent, RegisterComponent]
[Access(typeof(SharedWiresSystem))]
[AutoGenerateComponentState]
public sealed partial class WiresPanelSecurityComponent : Component
{
///
/// A verbal description of the wire panel's current security level
///
[DataField("examine")]
[AutoNetworkedField]
public string? Examine = default!;
///
/// Determines whether the wiring is accessible to hackers or not
///
[DataField("wiresAccessible")]
[AutoNetworkedField]
public bool WiresAccessible = true;
///
/// Name of the construction graph node that the entity will start on
///
[DataField("securityLevel")]
[AutoNetworkedField]
public string SecurityLevel = string.Empty;
}
///
/// This event gets raised when security settings on a wires panel change
///
public sealed class WiresPanelSecurityEvent : EntityEventArgs
{
public readonly string? Examine;
public readonly bool WiresAccessible;
public WiresPanelSecurityEvent(string? examine, bool wiresAccessible)
{
Examine = examine;
WiresAccessible = wiresAccessible;
}
}