Movement/IMovement.cs

36 lines
1.1 KiB
C#

using System;
namespace Syntriax.Modules.Movement
{
public interface IMovement
{
float BaseSpeed { get; set; }
/// <summary>
/// The value will be multiplied with the <see cref="BaseSpeed"/> value
/// </summary>
float MovementMultiplier { get; set; }
/// <summary>
/// If the <see cref="IMovement"/> can be taken over by the <see cref="IMovementController"/>s as the <see cref="IMovementController.ActiveMovement"/>
/// </summary>
bool CanTakeOver { get; }
/// <summary>
/// Called everytime the <see cref="CanTakeOver"/> field is changed
/// </summary>
/// <value>The new value of <see cref="CanTakeOver"/></value>
Action<bool> OnTakeOverStateChanged { get; set; }
/// <summary>
/// Updates the movement data on the <see cref="IMovement"/>
/// </summary>
void Move(float x = 0f, float y = 0f, float z = 0f);
/// <summary>
/// Applies the movement that was passed on with the <see cref="Move"/> method
/// </summary>
void ApplyMovement();
}
}