using System; using Framework.Services; namespace Framework.State { /// Manages the game object currently being controlled by the player [ ServiceScope(Scope.Scene), DefaultBinding(typeof(ControlManager)) ] public interface IControlManager { /// Called when the player switches control to another controllable /// > /// First argument is the player index, second argument is the controllable /// that player has assumed control of. /// event Action ControlSwitched; /// Lets a player assume control of the specified controllable /// Index of the player that will assume control /// Controllable the player will be controlling void AssumeControl(int playerIndex, IControllable controllable); /// Gets the controllable currently active for the specified player /// /// Index of the player whose active controllable will be returned /// /// The controllable currently active for the specified player IControllable GetControllable(int playerIndex); } } // namespace Framework.State