package nova.microblock.test; import nova.core.block.Block; import nova.core.block.BlockFactory; import nova.core.component.misc.Collider; import nova.core.loader.Loadable; import nova.core.loader.Mod; import nova.core.util.shape.Cuboid; import nova.microblock.NovaMicroblock; import nova.microblock.micro.Microblock; import nova.microblock.multi.Multiblock; import org.apache.commons.math3.geometry.euclidean.threed.Vector3D; import java.util.Optional; /** * @author Calclavia */ @Mod(id = "testMicroblock", name = "Test Microblock", version = "1.0", novaVersion = "0.0.1", dependencies = { "microblock" }) public class TestMicroblockMod implements Loadable { public static final String containerID = "blockContainer"; public static final String singleMicroblockID = "singleMicroblock"; public static final String singleMultiblockID = "singleMultiblock"; public static final String multiMicroblockID = "multiMicroblock"; public static BlockFactory singleMicroblock; public static BlockFactory singleMultiblock; public static BlockFactory multiMicroblock1; @Override public void preInit() { NovaMicroblock.instance.logger.info("Preinit on TestMicroblockMod"); singleMicroblock = NovaMicroblock.instance.blocks.register( singleMicroblockID, () -> { Block block = new Block(); block.components.add(new Microblock(block)).setOnPlace(blockPlaceEvent -> Optional.of(new Vector3D(0, 0, 0))); return block; } ); singleMultiblock = NovaMicroblock.instance.blocks.register( singleMultiblockID, () -> { Block block = new Block(); block.components.add(new Multiblock(block)); block.components.add(new Collider(block)).setBoundingBox(new Cuboid(Vector3D.ZERO, new Vector3D(1, 2, 1))); return block; } ); multiMicroblock1 = NovaMicroblock.instance.blocks.register( multiMicroblockID, () -> { Block block = new Block(); block.components.add(new Multiblock(block)); block.components.add(new Microblock(block)).setOnPlace(blockPlaceEvent -> Optional.of(Vector3D.ZERO)); block.components.add(new Collider(block)).setBoundingBox(new Cuboid(Vector3D.ZERO, new Vector3D(1, 1.5, 1))); return block; } ); NovaMicroblock.instance.logger.info("Registered blocks"); } }