using Content.Server.Body.Components; using Content.Shared.Inventory; namespace Content.Server.Atmos.Components { /// /// Used in internals as breath tool. /// [RegisterComponent] [ComponentProtoName("BreathMask")] public sealed class BreathToolComponent : Component { [Dependency] private readonly IEntityManager _entities = default!; /// /// Tool is functional only in allowed slots /// [DataField("allowedSlots")] public SlotFlags AllowedSlots = SlotFlags.MASK; public bool IsFunctional; public EntityUid ConnectedInternalsEntity; protected override void Shutdown() { base.Shutdown(); DisconnectInternals(); } public void DisconnectInternals() { var old = ConnectedInternalsEntity; ConnectedInternalsEntity = default; if (old != default && _entities.TryGetComponent(old, out var internalsComponent)) { internalsComponent.DisconnectBreathTool(); } IsFunctional = false; } } }