Aquamarine
A library for creating multiblock structures in Minecraft mods that significantly simplifies their development process. This mod allows creating multiblocks similar to Modern Industrialization - structures consisting of a controller, standard blocks, and special hatch blocks for resource input/output.
Important note: The project is under active development but already fully functional. Originally created as a base library for the author's other mods using multiblock systems, it can also be freely used by other developers.
Documentation is available but doesn't cover all aspects yet and continues to be supplemented.
Main Features
Multiblock Structures
Multiblocks are formed from lists including both regular elements and hatch flags. Regular elements determine which block should be in a specific position. Hatch flags indicate which types of hatches can replace that position. The possibility of specifying empty flags is also provided.
Multiblock structures easily access connected hatches to transfer items, fluids, and energy between the multiblock and hatches.
Multiblock Visualization
Layer-by-Layer Preview

Replaceable Blocks Indication
If a block in the multiblock structure can be replaced by a hatch that the player is holding, a green highlight appears around that block.

Complete Structure Visualization
Preview of the entire multiblock structure as a whole is possible, but this method is not recommended as it may display incorrectly. Layer-by-layer display is much more convenient for construction.
Usage Guide
Adding Dependency
Add version to gradle.properties
aquamarine_version = 0.0.1-1.21.3 # replace with version identifier from download page
Add repository to build.gradle
repositories {
maven { url 'https://jitpack.io' }
}
Add dependency to build.gradle
dependencies {
modApi "com.github.KrazyMiner001:Aquamarine:${project.aquamarine_version}"
}
Practical Application
Create a class extending MultiblockBlockEntity and implementing necessary methods. Create a class extending HatchBlockEntity and implementing necessary methods. Create blocks for both block entities. Form the multiblock structure. (more detailed explanation will be added later)