using UnityEngine;
namespace MedievalShopkeeper
{
///
/// Interface for all interactable objects in the shop, such as shelves,
/// stock deliveries, customers, thief NPCs, and counters.
///
public interface IInteractable
{
///
/// Display text or prompt shown to the player (e.g. "Restock Shelf", "Talk to Customer").
///
string InteractionPrompt { get; }
///
/// The transform/position the player needs to reach to interact.
///
Transform InteractionTransform { get; }
///
/// Maximum distance from the object within which the player can interact.
///
float InteractionDistance { get; }
///
/// Whether the player is currently allowed to interact with this object.
///
bool CanInteract(PlayerController player);
///
/// Performs the interaction when the player reaches the target or right-clicks within range.
///
void Interact(PlayerController player);
///
/// Called when the pointer hovers over this interactable.
///
void OnHoverEnter(PlayerController player);
///
/// Called when the pointer ceases hovering over this interactable.
///
void OnHoverExit(PlayerController player);
}
}