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);
}
}