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); } }