Class GGInteractable2D extends Area2D

Provides capabilities that a [GGInteractor2D] can interact with.

# Signals

## Emitted when an [param interactor] interacts with this interactable.
signal interaction_started(interactor: GGInteractor2D)
## Emitted when the interaction with the [param interactor] is over.
signal interaction_ended(interactor: GGInteractor2D)
## Emitted when an [param interactor] is within range of this interactable.
signal range_entered(interactor: GGInteractor2D)
## Emitted when an [param interactor] leaves the range of this interactable.
signal range_exited(interactor: GGInteractor2D)

# Members

var action_name: String = "use"
## The interaction strategy determines how exactly the [code]interactor[/code] and [code]interactable[/code] interact with one another.
var interactable_strategy: GGInteractable2DStrategy

# Methods

## Typically called by the [param interactor] to initiate an interaction. The [member interactable_strategy] can use [code]await[/code] for stateful interactions.
func interact(interactor: GGInteractor2D) -> void
func end_interaction(interactor: GGInteractor2D) -> void
func enter_range(interactor: GGInteractor2D) -> void
func exit_range(interactor: GGInteractor2D) -> void