40 lines
1.7 KiB
Java
40 lines
1.7 KiB
Java
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<DefaultFeatureConfig> {
|
|
public ResearchComplexFeature(Codec<DefaultFeatureConfig> codec) {
|
|
super(codec);
|
|
}
|
|
|
|
@Override
|
|
public StructureStartFactory<DefaultFeatureConfig> getStructureStartFactory() {
|
|
return Start::new;
|
|
}
|
|
|
|
public static class Start extends StructureStart<DefaultFeatureConfig> {
|
|
public Start(StructureFeature<DefaultFeatureConfig> 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();
|
|
}
|
|
}
|
|
}
|