using System.Collections.Generic; using Content.Shared.GameObjects.Components.Body.Mechanism; using Content.Shared.GameObjects.Components.Body.Part; using Robust.Shared.Interfaces.GameObjects; namespace Content.Shared.GameObjects.Components.Body.Surgery { /// /// 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 { public delegate void MechanismRequestCallback( IMechanism 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 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(IEnumerable options, MechanismRequestCallback callback); } }