Why does Item call the AddToInventory function? Or did I misunderstand?
Different Items can do this differently? ![]()
If not (most likely not) - then it is worth doing in the character (inventory component).
Hard references don’t always need to be (and can’t always be) avoided.
In this case, you probably don’t even need to come up with anything, since a reference is not needed in principle.
Basically, your item should only provide information about itself via the interface (it’s better if it’s just an ItemID, and detailed information about the items is stored separately, for example in the Data Table).
And the rest of the work - what and when to do with this information - is already known to the inventory component.