using Content.Shared.ActionBlocker;
using Content.Shared.Movement.Components;
namespace Content.Shared.Movement.Events;
///
/// Raised whenever needs to be updated.
/// Cancel this event to prevent a mover from moving.
///
///
/// This is not an attempt event and the result is cached.
/// If you subscribe to this you must also call
/// both when you want to prevent a mob from moving, and when you want to allow them to move again!
///
public sealed class UpdateCanMoveEvent : CancellableEntityEventArgs
{
public UpdateCanMoveEvent(EntityUid uid)
{
Uid = uid;
}
public EntityUid Uid { get; }
}
///
/// Event raised on an entity when their value of is updated.
///
[ByRefEvent]
public readonly record struct CanMoveUpdatedEvent(bool CanMove);
///
/// Raised on a source entity when its effective movement entity changes.
///
[ByRefEvent]
public readonly record struct EffectiveMoverChangedEvent(EntityUid OldMover, EntityUid NewMover);