using System; using System.Collections.Generic; using Syntriax.Modules.ToggleState; namespace Syntriax.Modules.Movement { public interface IMovementController { /// /// Member to switch on or off /// IToggleState ToggleStateMember { get; } /// /// Currently active /// IMovement ActiveMovement { get; } /// /// List of all s controlled by this controller, can be updated by calling method /// List Movements { get; } /// /// Called when a is deactivated when another takes over it's place /// /// Deactived Action OnMovementDeactivated { get; set; } /// /// Called when a new takes over by the controller /// /// Actived Action OnMovementActivated { get; set; } /// /// Called when is called /// /// The x, y, z values of Action OnMoveCalled { get; set; } /// /// Updates the list /// void RecacheMovements(); /// /// Apply the movement data that s will use /// void Move(float x = 0, float y = 0, float z = 0); } }