using UnityEngine;
namespace Input
{
///
/// Interface for characters that can participate in scripted interactions.
/// Provides movement-to-target with arrival/cancellation notifications.
/// Implemented by BasePlayerMovementController to enable all controllers to interact with items.
///
public interface IInteractingCharacter
{
///
/// Moves character to target position and notifies when arrived/cancelled
///
void MoveToAndNotify(Vector3 target);
///
/// Interrupts any in-progress MoveToAndNotify operation
///
void InterruptMoveTo();
///
/// Fired when character arrives at MoveToAndNotify target
///
event System.Action OnArrivedAtTarget;
///
/// Fired when MoveToAndNotify is cancelled/interrupted
///
event System.Action OnMoveToCancelled;
///
/// Character's transform (for position queries)
///
Transform transform { get; }
}
}