Files
tbd-station-14/Content.Server/Atmos/Components/BreathToolComponent.cs
2022-05-13 17:59:03 +10:00

43 lines
1.2 KiB
C#

using Content.Server.Body.Components;
using Content.Shared.Inventory;
namespace Content.Server.Atmos.Components
{
/// <summary>
/// Used in internals as breath tool.
/// </summary>
[RegisterComponent]
[ComponentProtoName("BreathMask")]
public sealed class BreathToolComponent : Component
{
[Dependency] private readonly IEntityManager _entities = default!;
/// <summary>
/// Tool is functional only in allowed slots
/// </summary>
[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<InternalsComponent?>(old, out var internalsComponent))
{
internalsComponent.DisconnectBreathTool();
}
IsFunctional = false;
}
}
}