41 lines
1.3 KiB
C#
41 lines
1.3 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Syntriax.Modules.Movement
|
|
{
|
|
public interface IMovementController
|
|
{
|
|
/// <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>
|
|
/// 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);
|
|
}
|
|
}
|