Описание
### A Tiny Lib for simple creation of Multiblocks
Meant as blocks that that contain multiple blocks of itself, but still act like 1 block (for example a bed, door etc...) **not to be confused with multiblock structures!!**
Mostly meant as a library for developers, but includes a block placement preview feature accessible through the mods config. Downloading a newer version than a mod packages could also help fix some bugs
## Features
### Super simple
creating a multiblock of any size can be done just by overriding a single method. All breaking and placing logic is done for you.
### Jar-in-Jar -able
Because I hate dowloading thousands of dependencies for each mod, the whole lib is intended as a jar-in-jar, meaning it gets included in your mod jar and players won't have to download any extra dependencies
### Multiblock Previews
Allows devs and players to enable placement previews for any block. When a player holds that block in hand, it renders a transparent client-side preview of how that block would be placed (see the picture in gallery). This can be disabled with client config
### Shared Blockstates
Allows registering blockstate properties that automatically sync across the whole multiblock when updated, great for mod compatibility
### Ghost Renderers
Customisable previews of a blocks / blockentities / models that can be easily placed anywhere in the world for a set amount of ticks (client side only)
### Support
If you're a developer and have some issues / suggestions, just dm me on discord (nikdo53) or github and I pinky promise to get back to you as soon as I can (unless you live in the USA and it's like 3AM for me😬)
## Installation instructions
First, get my maven and put into your build.gradle repository block.
```groovy
repositories {
//some other repositories you might have
maven {
name = 'Nikdo53 Maven'
url = 'https://nikdo53.github.io'
}
}
```
Then add the version you want (versions before 4.0.0 not supported) into gradle.properties:
```groovy
tiny_multiblock_lib_version=4.0.0
```
Lastly, add the dependecy to your build.gradle based on your loader / gradle plugin
### Neoforge MDG or NG
```groovy
jarJar(implementation("net.nikdo53:tiny-multiblock-lib-neoforge-${minecraft_version}:${tiny_multiblock_lib_version}"))
```
### Forge FG
1. enable jarjar by adding ```jarJar.enable()``` anywhere before your minecraft block
2. add this line into dependencies:
```groovy
implementation(fg.deobf(jarJar("net.nikdo53:tiny-multiblock-lib-forge-${minecraft_version}:${tiny_multiblock_lib_version}")))
```
(note that ForgeGradle 6 sucks and you should probably switch to [MDG Legacy](https://github.com/NeoForgeMDKs/MDK-Forge-1.20.1-ModDevGradle))
### Forge MDGL
```groovy
jarJar(modImplementation("net.nikdo53:tiny-multiblock-lib-forge-${minecraft_version}:${tiny_multiblock_lib_version}"))
```
### Fabric
```groovy
// pre 26.1
modImplementation(include("net.nikdo53:tiny-multiblock-lib-fabric-${minecraft_version}:${tiny_multiblock_lib_version}"))
// post 26.1
implementation(include("net.nikdo53:tiny-multiblock-lib-fabric-${minecraft_version}:${tiny_multiblock_lib_version}"))
```
### Multiloader common
```groovy
// 1.20.1
modImplementation("net.nikdo53:tiny-multiblock-lib-common-${minecraft_version}:${tiny_multiblock_lib_version}")
// 1.21+
implementation("net.nikdo53:tiny-multiblock-lib-common-${minecraft_version}:${tiny_multiblock_lib_version}")
```