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; } }