Interface for player-controllable entities. Declares methods to check control availability, and lifecycle hooks called when control starts, ends, and during control.
public interface IPlayerControllable
{
/// <summary>
/// Whether this controllable can currently be controlled by a seated player.
/// </summary>
public bool CanControl( Player player ) => true;
public void OnStartControl() { }
public void OnEndControl() { }
public void OnControl();
}