Sulphuric terrain, lakes, particles
This commit is contained in:
parent
e051bf3578
commit
b375d76956
19 changed files with 384 additions and 14 deletions
|
@ -0,0 +1,41 @@
|
|||
package ru.betterend.world.surface;
|
||||
|
||||
import java.util.Random;
|
||||
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.world.biome.Biome;
|
||||
import net.minecraft.world.chunk.Chunk;
|
||||
import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilder.TernarySurfaceConfig;
|
||||
import ru.betterend.noise.OpenSimplexNoise;
|
||||
import ru.betterend.util.MHelper;
|
||||
|
||||
public class SulphuricSurfaceBuilder extends SurfaceBuilder<TernarySurfaceConfig> {
|
||||
private static final OpenSimplexNoise NOISE = new OpenSimplexNoise(5123);
|
||||
|
||||
public SulphuricSurfaceBuilder() {
|
||||
super(TernarySurfaceConfig.CODEC);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void generate(Random random, Chunk chunk, Biome biome, int x, int z, int height, double noise, BlockState defaultBlock, BlockState defaultFluid, int seaLevel, long seed, TernarySurfaceConfig surfaceBlocks) {
|
||||
double value = NOISE.eval(x * 0.03, z * 0.03) + NOISE.eval(x * 0.1, z * 0.1) * 0.3 + MHelper.randRange(-0.1, 0.1, MHelper.RANDOM);
|
||||
if (value < -0.6) {
|
||||
SurfaceBuilder.DEFAULT.generate(random, chunk, biome, x, z, height, noise, defaultBlock, defaultFluid, seaLevel, seed, SurfaceBuilders.DEFAULT_END_CONFIG);
|
||||
}
|
||||
else if (value < -0.3) {
|
||||
SurfaceBuilder.DEFAULT.generate(random, chunk, biome, x, z, height, noise, defaultBlock, defaultFluid, seaLevel, seed, SurfaceBuilders.FLAVOLITE_CONFIG);
|
||||
}
|
||||
else if (value < 0.5) {
|
||||
SurfaceBuilder.DEFAULT.generate(random, chunk, biome, x, z, height, noise, defaultBlock, defaultFluid, seaLevel, seed, SurfaceBuilders.SULFURIC_ROCK_CONFIG);
|
||||
}
|
||||
else {
|
||||
SurfaceBuilder.DEFAULT.generate(random, chunk, biome, x, z, height, noise, defaultBlock, defaultFluid, seaLevel, seed, SurfaceBuilders.BRIMSTONE_CONFIG);
|
||||
}
|
||||
}
|
||||
|
||||
public static SulphuricSurfaceBuilder register(String name) {
|
||||
return Registry.register(Registry.SURFACE_BUILDER, name, new SulphuricSurfaceBuilder());
|
||||
}
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
package ru.betterend.world.surface;
|
||||
|
||||
import net.minecraft.block.Block;
|
||||
import net.minecraft.block.BlockState;
|
||||
import net.minecraft.block.Blocks;
|
||||
import net.minecraft.util.registry.Registry;
|
||||
import net.minecraft.world.gen.surfacebuilder.SurfaceBuilder;
|
||||
import net.minecraft.world.gen.surfacebuilder.TernarySurfaceConfig;
|
||||
import ru.betterend.registry.EndBlocks;
|
||||
|
||||
public class SurfaceBuilders {
|
||||
public static final TernarySurfaceConfig DEFAULT_END_CONFIG = makeSimpleConfig(Blocks.END_STONE);
|
||||
public static final TernarySurfaceConfig FLAVOLITE_CONFIG = makeSimpleConfig(EndBlocks.FLAVOLITE.stone);
|
||||
public static final TernarySurfaceConfig BRIMSTONE_CONFIG = makeSimpleConfig(EndBlocks.BRIMSTONE);
|
||||
public static final TernarySurfaceConfig SULFURIC_ROCK_CONFIG = makeSimpleConfig(EndBlocks.SULFURIC_ROCK.stone);
|
||||
|
||||
public static final SurfaceBuilder<TernarySurfaceConfig> SULPHURIC_SURFACE = register("sulphuric_surface", new SulphuricSurfaceBuilder());
|
||||
|
||||
private static SurfaceBuilder<TernarySurfaceConfig> register(String name, SurfaceBuilder<TernarySurfaceConfig> builder) {
|
||||
return Registry.register(Registry.SURFACE_BUILDER, name, builder);
|
||||
}
|
||||
|
||||
private static TernarySurfaceConfig makeSimpleConfig(Block block) {
|
||||
BlockState state = block.getDefaultState();
|
||||
return new TernarySurfaceConfig(state, state, state);
|
||||
}
|
||||
|
||||
public static void register() {}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue