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); } }