added an interface that can be used to mark tile entities as components. a class transformer is used to then inject any component related functionality into the marked tile entities, and the tile entities just have to mark methods with the Callback annotation.