using Content.Server.Atmos; using Content.Server.Disposal.Tube.Components; using Robust.Shared.Containers; namespace Content.Server.Disposal.Unit.Components { [RegisterComponent] public sealed class DisposalHolderComponent : Component, IGasMixtureHolder { public Container Container = null!; /// /// The total amount of time that it will take for this entity to /// be pushed to the next tube /// [ViewVariables] public float StartingTime { get; set; } /// /// Time left until the entity is pushed to the next tube /// [ViewVariables] public float TimeLeft { get; set; } [ViewVariables] public EntityUid? PreviousTube { get; set; } [ViewVariables] public Direction PreviousDirection { get; set; } = Direction.Invalid; [ViewVariables] public Direction PreviousDirectionFrom => (PreviousDirection == Direction.Invalid) ? Direction.Invalid : PreviousDirection.GetOpposite(); [ViewVariables] public EntityUid? CurrentTube { get; set; } // CurrentDirection is not null when CurrentTube isn't null. [ViewVariables] public Direction CurrentDirection { get; set; } = Direction.Invalid; /// Mistake prevention [ViewVariables] public bool IsExitingDisposals { get; set; } = false; /// /// A list of tags attached to the content, used for sorting /// [ViewVariables] public HashSet Tags { get; set; } = new(); [DataField("air")] public GasMixture Air { get; set; } = new(70); } }