using Content.Shared.BodySystem; using Robust.Shared.Interfaces.GameObjects; using System; using System.Collections.Generic; namespace Content.Server.BodySystem { /// /// Interface representing an entity capable of performing surgery (performing operations on an class). /// For an example see , which inherits from this class. /// public interface ISurgeon { /// /// How long it takes to perform a single surgery step (in seconds). /// public float BaseOperationTime { get; set; } public delegate void MechanismRequestCallback(Mechanism target, IBodyPartContainer container, ISurgeon surgeon, IEntity performer); /// /// When performing a surgery, the may sometimes require selecting from a set of Mechanisms to operate on. /// This function is called in that scenario, and it is expected that you call the callback with one mechanism from the provided list. /// public void RequestMechanism(List options, MechanismRequestCallback callback); } }