53 lines
1.8 KiB
C#
53 lines
1.8 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using Syntriax.Modules.State;
|
|
|
|
namespace Syntriax.Modules.Movement
|
|
{
|
|
public interface IMovementController
|
|
{
|
|
/// <summary>
|
|
/// <see cref="IStateEnable"/> to control the state of the <see cref="IMovementController"/> is on or off
|
|
/// </summary>
|
|
IStateEnable StateEnable { get; }
|
|
|
|
/// <summary>
|
|
/// Currently active <see cref="IMovement"/>
|
|
/// </summary>
|
|
IMovement ActiveMovement { get; }
|
|
|
|
/// <summary>
|
|
/// List of all <see cref="IMovement"/>s controlled by this controller, can be updated by calling <see cref="RecacheMovements"/> method
|
|
/// </summary>
|
|
List<IMovement> Movements { get; }
|
|
|
|
/// <summary>
|
|
/// Called when a <see cref="IMovement"/> is deactivated when another <see cref="IMovement"/> takes over it's place
|
|
/// </summary>
|
|
/// <value>Deactived <see cref="IMovement"/></value>
|
|
Action<IMovement> OnMovementDeactivated { get; set; }
|
|
|
|
/// <summary>
|
|
/// Called when a new <see cref="IMovement"/> takes over by the controller
|
|
/// </summary>
|
|
/// <value>Actived <see cref="IMovement"/></value>
|
|
Action<IMovement> OnMovementActivated { get; set; }
|
|
|
|
/// <summary>
|
|
/// Called when <see cref="Move"/> is called
|
|
/// </summary>
|
|
/// <value>The x, y, z values of <see cref="Move"/></value>
|
|
Action<float, float, float> OnMoveCalled { get; set; }
|
|
|
|
/// <summary>
|
|
/// Updates the <see cref="Movements"/> list
|
|
/// </summary>
|
|
void RecacheMovements();
|
|
|
|
/// <summary>
|
|
/// Apply the movement data that <see cref="IMovement"/>s will use
|
|
/// </summary>
|
|
void Move(float x = 0, float y = 0, float z = 0);
|
|
}
|
|
}
|