Package: com.codex.composer.api.v1.datagen
Canonical Name: com.codex.composer.api.v1.datagen.ComposerModelProvider
Client assets generation provider offering the ability to dynamically generate blockstate definitions, block and item models, and in later versions assets/items/ entries. Vanilla already does this, and maybe so does FabricAPI, but here you can have them all in one place. It also attempts to let you use generated item models with multiple layers, though this functionality is spotty and mostly only works on older versions.
Inheritors have to implement:
void generateBlocks(BlockStateModelGenerator generator);void generateItems(ItemModelGenerator generator);
Apart from the functionality offered by the two generators, ComposerModelProvider also provides this method:
/* Generates a block item model for block items that do not need a custom model and can just copy the block's model.On newer versions, it does also auto-create the assets/items/ entry for the item model. */void blockItemModelFor(Item item, Block from);
Example Implementation:
From Composer
public class ModModelProvider extends ComposerModelProvider {public ModModelProvider(...) {...}@Overridepublic void generateBlocks(BlockStateModelGenerator generator) {} // Unused, plushie model is hand-made@Overridepublic void generateItems(ItemModelGenerator generator) {blockItemModelFor(ModItems.PLUSHIE, ModBlocks.PLUSH); // Item model properties are defined in the block model.}}
From Elixiry, for now unreleased mod made for Warfare SMP
public class ElixiryModelProvider extends ComposerModelProvider {public ElixiryModelProvider(FabricDataOutput output) {... }public void generateItems(ItemModelGenerator generator) {generator.register(ModItems.LEXICON_ARCANUM_GUI, Models.GENERATED);generator.register(ModItems.DRENCHED_PAPER, Models.GENERATED);}public void generateBlocks(BlockStateModelGenerator generator) {generator.registerNorthDefaultHorizontalRotation(ModBlocks.ARCANE_LECTERN);}}