Java Integration
You can find the latest version from our maven.
repositories{
maven {
name "firstdarkdev"
url "https://maven.firstdarkdev.xyz/snapshots"
}
}
dependencies {
implementation fg.deobf("com.lowdragmc.ldlib:ldlib-forge-{minecraft_version}:{latest_version}") { transitive = false }
implementation fg.deobf("com.lowdragmc.multiblocked2:Multiblocked2:{minecraft_version}-{latest_version}") { transitive = false }
}
Multiblocked2 Registry Event
Multiblocked2 provides a Forge event (MBDRegistryEvent
) for registries.
public class MBDEvents {
@SubscribeEvent
public void onRegisterMachine(MBDRegistryEvent.Machine event) {
System.out.println("Registering machine");
}
@SubscribeEvent
public void onRegisterRecipeType(MBDRegistryEvent.MBDRecipeType event) {
System.out.println("Registering recipe type");
}
// other events....
}
public void modInit() {
IEventBus eventBus = FMLJavaModLoadingContext.get().getModEventBus();
eventBus.register(new MBDEvents());
}
Register machines via Java Code
Instead of place projecs files under the .minecraft/assets/ldlib/mbd2/machine_type
directly, there are two ways to register machines via code.
1. Create and register machines via raw code
@SubscribeEvent
public void onRegisterMachine(MBDRegistryEvent.Machine event) {
var renderer = new IModelRenderer(MBD2.id("block/pedestal"));
event.register(MBDMachineDefinition.builder()
.id(MBD2.id("test_machine"))
.rootState(MachineState.builder()
.name("base")
.renderer(renderer)
.shape(Shapes.block())
.lightLevel(0)
.build())
.blockProperties(ConfigBlockProperties.builder().build())
.itemProperties(ConfigItemProperties.builder().build())
.build());
}
2. Register machine project files from your mod resource assets
For example, you have such projects in your resource assets like this.