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 project files from your mod resource assets
For example, you have such projects in your resource assets like this.
Register Machine Project
event.registerFromResource(mod class, project type, project resource)
Available project types are below:
- single machine project:
single_machine - multiblock machine project:
multiblock - create kinematic machien project:
create_machine
@SubscribeEvent
public void onRegisterMachine(MBDRegistryEvent.Machine event) {
event.registerFromResource(this.getClass(), "single_machine", "mbd2/machine/machine_project_file.sm");
}
Register Recipe Type Project
event.registerFromResource(mod class, project resource)