using Ashwild.Player; namespace Ashwild.Interaction { /// /// Implemented by anything the player can interact with via the interaction /// raycast (pickups, doors, chests, levers, NPCs...). PlayerInteractor only /// knows about this contract, never the concrete types. /// public interface IInteractable { /// /// Short label describing the action, shown under the crosshair while the /// player is aiming at this target (e.g. "Pick up Wood", "Open"). /// string InteractionPrompt { get; } /// /// Performs the interaction. Called once when the player presses interact /// while aiming at this target. /// void Interact(); } }