#nullable enable using Robust.Shared.GameObjects; using Robust.Shared.Map; using Robust.Shared.Maths; namespace Content.Shared.GameObjects.Components.Movement { // Does nothing except ensure uniqueness between mover components. // There can only be one. public interface IMoverComponent : IComponent { /// /// Movement speed (m/s) that the entity walks. /// float CurrentWalkSpeed { get; } /// /// Movement speed (m/s) that the entity sprints. /// float CurrentSprintSpeed { get; } /// /// Is the entity Sprinting (running)? /// bool Sprinting { get; } /// /// Calculated linear velocity direction of the entity. /// (Vector2 walking, Vector2 sprinting) VelocityDir { get; } /// /// Toggles one of the four cardinal directions. Each of the four directions are /// composed into a single direction vector, . Enabling /// opposite directions will cancel each other out, resulting in no direction. /// /// Direction to toggle. /// /// If the direction is active. void SetVelocityDirection(Direction direction, ushort subTick, bool enabled); void SetSprinting(ushort subTick, bool walking); } }