This repository has been archived on 2023-11-26. You can view files and clone it, but cannot push or open issues or pull requests.
EnergonRelics/src/main/java/com/thebrokenrail/energonrelics/block/structure/StructureGeneratorFeature.java

45 lines
2.0 KiB
Java
Raw Normal View History

2020-07-22 01:23:33 +00:00
package com.thebrokenrail.energonrelics.block.structure;
2020-07-21 02:39:30 +00:00
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;
2020-07-22 01:23:33 +00:00
class StructureGeneratorFeature extends StructureFeature<DefaultFeatureConfig> {
private final StructureGeneratorBlock block;
StructureGeneratorFeature(StructureGeneratorBlock block) {
super(DefaultFeatureConfig.CODEC);
this.block = block;
2020-07-21 02:39:30 +00:00
}
@Override
public StructureStartFactory<DefaultFeatureConfig> getStructureStartFactory() {
2020-07-22 01:23:33 +00:00
return (structureFeature, i, j, blockBox, k, l) -> new Start(block, structureFeature, i, j, blockBox, k, l);
2020-07-21 02:39:30 +00:00
}
2020-07-22 01:23:33 +00:00
private static class Start extends StructureStart<DefaultFeatureConfig> {
private final StructureGeneratorBlock block;
private Start(StructureGeneratorBlock block, StructureFeature<DefaultFeatureConfig> structureFeature, int i, int j, BlockBox blockBox, int k, long l) {
2020-07-21 02:39:30 +00:00
super(structureFeature, i, j, blockBox, k, l);
2020-07-22 01:23:33 +00:00
this.block = block;
2020-07-21 02:39:30 +00:00
}
@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);
2020-07-22 01:23:33 +00:00
children.add(new StructureGeneratorPiece(block, blockRotation, blockPos));
2020-07-21 02:39:30 +00:00
setBoundingBoxFromChildren();
}
}
}