Package: com.codex.composer.api.v1.datagen
Canonical Name: com.codex.composer.api.v1.datagen.ComposerMultiblockProvider
Simple server data generation provider for composer's multiblock system.
Inheritors have to implement:
void generate(DataWriter writer);
Creation of multiblock builders can me done with:
/* Creates a new MultiblockJsonBuilder. Once finished with setting parameters. use .write(DataWriter) to write it to disk. */MultiblockJsonBuilder create(Identifier id);
Example Implementation:
From Starstruck (Code currently private, sorry)
public class ModMultiblockProvider extends ComposerMultiblockProvider {public ModMultiblockProvider(FabricDataOutput output) {...}@Overridepublic void generate(DataWriter writer) {create(ModMultiblocks.KILN).layer() // Creates a new layer builder.rows("BBB", 3) // Second parameter repeats that line n times.end() // -> MultiblockJsonBuilder.layer().row("BBB").row("B B").row("BFB") // Here, the F is the controller at the second column of the second layer, first row, thus (1, 1, 0).end().layer().row("BBB").row("B B").row("BBB").end().layer().row("*B*").row("B B").row("*B*").repeat(2) // Repeats the layer n times, then -> MultiblockJsonBuilder.layer().row("***") // Stars count as any block,.row("* *") // Spaces count as air..row("***").end().controller(new Vec3i(1, 1, 0)) // Position of the controller related to bottom-left, 0-indexed. X is left->right, y is bottom->top and z is front->back.pattern('B').block(FIRE_BRICKS).pattern('F').block(KILN) // can also be .tag(TagKey<Block>) -> MultiblockJsonBuilder.write(writer);}}