using System.Collections.Generic;
using Content.Shared.Body.Mechanism;
using Content.Shared.Body.Part;
using Robust.Shared.GameObjects;
namespace Content.Shared.Body.Surgery
{
///
/// Interface representing an entity capable of performing surgery,
/// such as a circular saw.
///
public interface ISurgeon
{
public delegate void MechanismRequestCallback(
SharedMechanismComponent target,
IBodyPartContainer container,
ISurgeon surgeon,
IEntity performer);
///
/// How long it takes to perform a single surgery step in seconds.
///
public float BaseOperationTime { get; set; }
///
/// When performing a surgery, the
/// may sometimes require selecting from a set of
/// s to operate on.
/// This function is called in that scenario, and it is expected that you call
/// the callback with one from the provided list.
///
public void RequestMechanism(IEnumerable options, MechanismRequestCallback callback);
}
}