This is an API meant to be used by other mods and is not a standalone mod, its the thirdAPI I've ever made which actually also uses the other two API's are dependencies, its intented to provide a base setup for making any mob in the game Tamable, Collarable, Ageable & Breedable.
By doing nothing more than making a mob implement a few interfaces the mob will support player taming with food, sitting and standing modes (without animation), feeding to heal a tamed pet, aging, forced aging, breeding, following / teleport behaviour, defend behaviour, colored collar that can be dyed (collar does not render).. basically anything a tamed wolf or cat does.
Any mob specific behaviour such as sitting animation / mode or rendering of a collar is left up to the mods using this API to implements, additionally there is methods that can be overriden to change the settings of the automatically setup goals that are added to mobs based on their interfaces.
Any API I make is mainly meant for usage in something else I'm working on or in general for my mods, however they are available for public use if a user desires
All infomation required to use this API can be found here;
- Tamable Interface used to make any mob tamable with basic tame behaviour
- Collarable Interface used to add built-in collar data to any mob (needs a renderer)
- Breedable Interface used to allow mobs to breed (implementing this also implements Ageable)
- Ageable Interface used to add aging behaviour to any mob with a smaller baby visual model
- HasBabyModel Interface used to prevent the model being half scale as a baby (for when babies use custom models)
Additonal Notes: if you do not override the Tamable.isTamableFood(ItemStack) method then it will either default to any items tagged under the namespace of `tamable:{mob class name}_food` or to the result of Animal.isFood(ItemStack) if the mob is an instance of Animal and also some mobs override interaction behaviour in a way that prevents the taming, breeding & collar interactions from triggering, you will need to call them manually with a mixin to fix that.

