// // Licensed under the MIT License. See LICENSE file in the project root for full license information. // namespace MUnique.OpenMU.GameLogic; using MUnique.OpenMU.Pathfinding; /// /// Interface for objects which support walking. /// public interface ISupportWalk : ILocateable { /// /// Gets a value indicating whether this instance can walk on safezone. /// /// /// true if this instance can walk on safezone; otherwise, false. /// bool CanWalkOnSafezone { get; } /// /// Gets a value indicating whether this instance is walking. /// bool IsWalking { get; } /// /// Gets the delay between each step. Lower delay means faster walking. /// TimeSpan StepDelay { get; } /// /// Gets the walk target coordinate. /// Point WalkTarget { get; } /// /// Gets the steps which are about to happen next by writing them into the given span. /// /// The steps. /// The number of written steps. ValueTask GetStepsAsync(Memory steps); /// /// Gets the directions of the steps which are about to happen next by writing them into the given span. /// /// The directions. /// The number of written directions. ValueTask GetDirectionsAsync(Memory directions); /// /// Stops the walking. /// ValueTask StopWalkingAsync(); }