← Назад к ресурсам

Structurized Reborn

Simple library that helps with the addition of custom village structures

Modrinth library worldgen

Описание

# Structurized Reborn ### THIS IS A REWORK OF DRAYLAR'S *STRUCTURIZED*. See the original here: https://github.com/omega-mc/structurized/tree/1.18 *Structurized Reborn* is a simple library that helps with the addition of custom village structures. [![Bisect Hosting Banner](https://www.bisecthosting.com/partners/custom-banners/85a7141b-76c9-4f0c-bd04-21f4b0d56c4a.webp "Bisect Hosting Banner")](https://bisecthosting.com/fzzyhmstrs) ### Jigsaw Modification Structurized provides a registry that allows you to add custom structures to `StructurePool`s in jigsaws such as villages. Say we wanted to add `village/plains/houses/plains_small_house_1` to the desert house pool. Simply register the new structure to the desired pool and give it a weight and some optional modifiers. Call these `register` methods in the same place you would call any other server-focused registry event (registering items or blocks, for example) ```kotlin FabricStructurePoolRegistry.register( Identifier("minecraft:village/desert/houses"), //the target pool Identifier("minecraft:village/plains/houses/plains_small_house_1"), //the new structure nbt to add 2, //the weight of the structure in the pool StructureProcessorLists.MOSSIFY_10_PERCENT) //optional processor to add mossiness ``` If you don't have any special considerations, you can use `registerSimple` to make your life a bit easier: ```kotlin FabricStructurePoolRegistry.registerSimple( Identifier("minecraft:village/desert/houses"), //the target pool Identifier("minecraft:village/plains/houses/plains_small_house_1"), //the new structure nbt to add 2) //the weight of the structure in the pool ``` ### Flexible Registration The register method is quite flexible, with several optional parameters to use as needed. In many cases you will be OK using the `registerSimple` method, but the main `register` method can be useful for doing something like adding the random mossy cobblestone that many village structures have. Parameters: `poolId`: required, the target pool of structures to modify `structureId`: required, the new structure nbt location identifier `weight`: required, the probability of a structure being chosen for generation. A weight of 1 to 3 is about 1 structure per village `processor`: optional, defines custom generation tweaks to apply, like random mossy cobblestone `projection`: optional, defines the way the structure interacts with the ground (rigid in space or conform to the landscape) `type`: optional, defines the type of `structurePoolElement` you want. This isn't needed the majority of the time ### Callback Registration If you want to do something more advanced with a structure pool, you can also directly register to the callback and add whatever event code you'd like. Registering to the callback looks like so: ```kotlin StructurePoolAddCallback.EVENT.register(structurePool -> { if(structurePool.getUnderlying().getId().toString().equals("minecraft:village/plains/houses")) { structurePool.addStructurePoolElement(new SinglePoolElement("village/desert/houses/desert_small_house_1"), 50); } }); ``` ### Adding Dependency You can add this as a dependency to your project using modrinth's built in maven repository. The {VERSION} will be the version number of the version you are trying to work with. For example, the first version of this library was uploaded under version number **1.18.2-01**. In a build.gradle: ```java repositories { maven { name = "Modrinth" url = "https://api.modrinth.com/maven" content { includeGroup "maven.modrinth" } } } dependencies { modImplementation "maven.modrinth:Wd844r7Q:{VERSION}" include("maven.modrinth:Wd844r7Q:{VERSION}") } ``` In a build.gradle.kts ```kotlin repositories { maven { name = "Modrinth" url = uri("https://api.modrinth.com/maven") content { includeGroup("maven.modrinth") } } } dependencies { modImplementation("maven.modrinth:Wd844r7Q:{VERSION}") include("maven.modrinth:Wd844r7Q:{VERSION}") } ```