// SPDX-FileCopyrightText: 2024 deltanedas <39013340+deltanedas@users.noreply.github.com>
// SPDX-FileCopyrightText: 2024 deltanedas <@deltanedas:kde.org>
// SPDX-FileCopyrightText: 2025 Aiden <28298836+Aidenkrz@users.noreply.github.com>
//
// SPDX-License-Identifier: AGPL-3.0-or-later
using Content.Shared._Shitmed.Autodoc.Systems;
using Robust.Shared.GameStates;
using Robust.Shared.Prototypes;
using Robust.Shared.Serialization.TypeSerializers.Implementations.Custom;
namespace Content.Shared._Shitmed.Autodoc.Components;
///
/// Component added while operating on a patient.
/// Only usable serverside, only thing that can be predicted is a surgery being active.
///
[RegisterComponent, NetworkedComponent, Access(typeof(SharedAutodocSystem))]
[AutoGenerateComponentPause]
public sealed partial class ActiveAutodocComponent : Component
{
///
/// The program index that is being used.
/// AutodocComponent.Programs is frozen while an autodoc is active.
///
[DataField]
public int CurrentProgram;
///
/// Index of the current program's step it is trying to do.
///
[DataField]
public int ProgramStep;
///
/// Whether a step is waiting on a doafter to complete.
///
[DataField]
public bool Waiting;
///
/// The current body, part and surgery being done, if any.
///
[DataField]
public (EntityUid, EntityUid, EntProtoId)? CurrentSurgery;
[DataField(customTypeSerializer: typeof(TimeOffsetSerializer))]
[AutoPausedField]
public TimeSpan NextUpdate = TimeSpan.Zero;
}