package com.thebrokenrail.energonrelics.structure.feature; import com.mojang.serialization.Codec; import net.minecraft.structure.StructureManager; import net.minecraft.structure.StructureStart; import net.minecraft.util.BlockRotation; import net.minecraft.util.math.BlockBox; import net.minecraft.util.math.BlockPos; import net.minecraft.util.registry.DynamicRegistryManager; import net.minecraft.world.Heightmap; import net.minecraft.world.biome.Biome; import net.minecraft.world.gen.chunk.ChunkGenerator; import net.minecraft.world.gen.feature.DefaultFeatureConfig; import net.minecraft.world.gen.feature.StructureFeature; public class ResearchComplexFeature extends StructureFeature { public ResearchComplexFeature(Codec codec) { super(codec); } @Override public StructureStartFactory getStructureStartFactory() { return Start::new; } public static class Start extends StructureStart { public Start(StructureFeature structureFeature, int i, int j, BlockBox blockBox, int k, long l) { super(structureFeature, i, j, blockBox, k, l); } @Override public void init(DynamicRegistryManager dynamicRegistryManager, ChunkGenerator chunkGenerator, StructureManager structureManager, int x, int z, Biome biome, DefaultFeatureConfig defaultFeatureConfig) { BlockPos blockPos = new BlockPos(x * 16, chunkGenerator.getHeight(x, z, Heightmap.Type.WORLD_SURFACE) / 2, z * 16); BlockRotation blockRotation = BlockRotation.random(random); ResearchComplexGenerator.addPieces(blockPos, blockRotation, children); setBoundingBoxFromChildren(); } } }