Class GGInventoryActionStrategy extends Resource

Responsible for user input handling delegated from the [GGInventoryController].

Handles mouse, focus, and GUI [InputEvent]s for inventory slots which are delegated to this class by the [GGInventoryController]. This separation of concerns allows the [GGInventorySlotItemUI] to focus exclusively on displaying items, while an action strategy handles all the player input.

Note: This class only defines the methods, effectively acting as an interface. Please see the [GGInventoryActionStrategyDefault] which implements the default action strategy.

# Methods

## Called by the [param controller] for each [InputEvent] the slot described by [param event_args] receives. The inventory [param slot] and [param item] are provided for convenience. [br][br]If the [param event] is handled, use [method Viewport.set_input_as_handled] to mark it as such.
func on_slot_gui_input(controller: GGInventoryControllerevent_args: GGInventoryEventArgs) -> void
## Called when an inventory slot described by [param event_args] is focused.
func on_focus_entered(controller: GGInventoryControllerevent_args: GGInventoryEventArgs) -> void
## Called when an inventory slot described by [param event_args] loses focus.
func on_focus_exited(controller: GGInventoryControllerevent_args: GGInventoryEventArgs) -> void
## Called when the mouse hovers over the inventory slot described by [param event_args].
func on_mouse_entered(controller: GGInventoryControllerevent_args: GGInventoryEventArgs) -> void
## Called when the mouse no longer hovers over the inventory slot described by [param event_args].
func on_mouse_exited(controller: GGInventoryControllerevent_args: GGInventoryEventArgs) -> void