generated from Low-Drag-MC/ArchTemplate
-
Notifications
You must be signed in to change notification settings - Fork 9
Java Integration
KilaBash edited this page Nov 2, 2024
·
6 revisions
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 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());
}
Instead of place projecs files under the .minecraft/assets/ldlib/mbd2/machine_type
directly, there are two ways to register machines via 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());
}
For example, you have such projects in your resource assets like this.

@SubscribeEvent
public void onRegisterMachine(MBDRegistryEvent.Machine event) {
event.registerFromResource(this.getClass(), "mbd2/machine/machine_project_file.sm");
}