Hello guys! I have just started Minecraft modding recently and am trying to make another dimension. I got that to work with a custom biome but I want to make a custom mountain type that is very tall but thin. I decided to try to do this with Surface Builder but I do not now how to use Surface Builders. I tried to use the default mountain class as a test but I don't think it is working. Could you please give me some pointers on how to move forward. Thanks in advance!
public class ExtremeWaterfallsSurfaceBuilder extends SurfaceBuilder<SurfaceBuilderConfig> {
public ExtremeWaterfallsSurfaceBuilder(Function<Dynamic<?>, ? extends SurfaceBuilderConfig> function) {
super(function);
}
@Override
public void buildSurface(Random random, IChunk chunkIn, Biome biomeIn, int x, int z, int startHeight, double noise,
BlockState defaultBlock, BlockState defaultFluid, int seaLevel, long seed, SurfaceBuilderConfig config) {
Random rd = new Random();
int i = rd.nextInt(3);
if (i == 0) {
SurfaceBuilder.DEFAULT.buildSurface(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock,
defaultFluid, seaLevel, seed,
new SurfaceBuilderConfig(Blocks.GRASS_BLOCK.getDefaultState(),
Blocks.DIRT.getDefaultState(), Blocks.STONE.getDefaultState()));
//My attempt at a mountain surface builder
SurfaceBuilder.MOUNTAIN.buildSurface(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock,
defaultFluid, seaLevel, seed,
new SurfaceBuilderConfig(Blocks.GRASS.getDefaultState(),
Blocks.DIRT.getDefaultState(), Blocks.STONE.getDefaultState()));
} else {
SurfaceBuilder.DEFAULT.buildSurface(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock,
defaultFluid, seaLevel, seed,
new SurfaceBuilderConfig(
i == 1 ? Blocks.GRASS_BLOCK.getDefaultState()
: Blocks.DIRT.getDefaultState(),
Blocks.STONE.getDefaultState(), Blocks.WATER.getDefaultState()));
SurfaceBuilder.MOUNTAIN.buildSurface(random, chunkIn, biomeIn, x, z, startHeight, noise, defaultBlock, defaultFluid, seaLevel, seed, new SurfaceBuilderConfig(Blocks.GRASS.getDefaultState(), Blocks.DIRT.getDefaultState(), Blocks.STONE.getDefaultState()));
}
}
}