Interaction Flow

There are 2 primary built in ways to interact with something: right clicking in the Inventory or left clicking on the Hotbar. You can add more interactions, and make your own systems interactable by leveraging the IUseableDataEntity interface.
General flow of interactions


If you're using the Hotbar, only one interaction type is supported: The Use interaction. This will directly use the 'thing' docked. Things other than Items can be docked on the Hotbar so it will Use the item by going through the IUseableDataEntity interface. By default, the UseableItem implements this but you could extend it, for example, to work with an Ability system that can be docked on the same Hotbar as long as they implement the IUseableDataEntity interface.


If you're using the Inventory, many interactions are available but 3 interactions are available by default: Use, Drop, and Split. The default interactions are always available and evaluated to be valid since this applies to virtually all things that could be in the Inventory.

World Entity

A third way which is not yet built in is to create your own Interactions that use the same design approach as the existing systems. This should be fairly straightforward as long as you trigger the interaction, validate the actions and reach into the IUseableDataEntity interface to use them.