102 lines
3.9 KiB
Java
102 lines
3.9 KiB
Java
package net.minecraft.data.worldgen;
|
|
|
|
import net.minecraft.core.HolderGetter;
|
|
import net.minecraft.core.registries.Registries;
|
|
import net.minecraft.resources.ResourceKey;
|
|
import net.minecraft.resources.ResourceLocation;
|
|
import net.minecraft.tags.BlockTags;
|
|
import net.minecraft.util.valueproviders.ConstantFloat;
|
|
import net.minecraft.util.valueproviders.TrapezoidFloat;
|
|
import net.minecraft.util.valueproviders.UniformFloat;
|
|
import net.minecraft.world.level.block.Block;
|
|
import net.minecraft.world.level.block.Blocks;
|
|
import net.minecraft.world.level.levelgen.VerticalAnchor;
|
|
import net.minecraft.world.level.levelgen.carver.CanyonCarverConfiguration;
|
|
import net.minecraft.world.level.levelgen.carver.CarverDebugSettings;
|
|
import net.minecraft.world.level.levelgen.carver.CaveCarverConfiguration;
|
|
import net.minecraft.world.level.levelgen.carver.ConfiguredWorldCarver;
|
|
import net.minecraft.world.level.levelgen.carver.WorldCarver;
|
|
import net.minecraft.world.level.levelgen.heightproviders.UniformHeight;
|
|
|
|
public class Carvers {
|
|
public static final ResourceKey<ConfiguredWorldCarver<?>> CAVE = createKey("cave");
|
|
public static final ResourceKey<ConfiguredWorldCarver<?>> CAVE_EXTRA_UNDERGROUND = createKey("cave_extra_underground");
|
|
public static final ResourceKey<ConfiguredWorldCarver<?>> CANYON = createKey("canyon");
|
|
public static final ResourceKey<ConfiguredWorldCarver<?>> NETHER_CAVE = createKey("nether_cave");
|
|
|
|
private static ResourceKey<ConfiguredWorldCarver<?>> createKey(String name) {
|
|
return ResourceKey.create(Registries.CONFIGURED_CARVER, ResourceLocation.withDefaultNamespace(name));
|
|
}
|
|
|
|
public static void bootstrap(BootstrapContext<ConfiguredWorldCarver<?>> context) {
|
|
HolderGetter<Block> holderGetter = context.lookup(Registries.BLOCK);
|
|
context.register(
|
|
CAVE,
|
|
WorldCarver.CAVE
|
|
.configured(
|
|
new CaveCarverConfiguration(
|
|
0.15F,
|
|
UniformHeight.of(VerticalAnchor.aboveBottom(8), VerticalAnchor.absolute(180)),
|
|
UniformFloat.of(0.1F, 0.9F),
|
|
VerticalAnchor.aboveBottom(8),
|
|
CarverDebugSettings.of(false, Blocks.CRIMSON_BUTTON.defaultBlockState()),
|
|
holderGetter.getOrThrow(BlockTags.OVERWORLD_CARVER_REPLACEABLES),
|
|
UniformFloat.of(0.7F, 1.4F),
|
|
UniformFloat.of(0.8F, 1.3F),
|
|
UniformFloat.of(-1.0F, -0.4F)
|
|
)
|
|
)
|
|
);
|
|
context.register(
|
|
CAVE_EXTRA_UNDERGROUND,
|
|
WorldCarver.CAVE
|
|
.configured(
|
|
new CaveCarverConfiguration(
|
|
0.07F,
|
|
UniformHeight.of(VerticalAnchor.aboveBottom(8), VerticalAnchor.absolute(47)),
|
|
UniformFloat.of(0.1F, 0.9F),
|
|
VerticalAnchor.aboveBottom(8),
|
|
CarverDebugSettings.of(false, Blocks.OAK_BUTTON.defaultBlockState()),
|
|
holderGetter.getOrThrow(BlockTags.OVERWORLD_CARVER_REPLACEABLES),
|
|
UniformFloat.of(0.7F, 1.4F),
|
|
UniformFloat.of(0.8F, 1.3F),
|
|
UniformFloat.of(-1.0F, -0.4F)
|
|
)
|
|
)
|
|
);
|
|
context.register(
|
|
CANYON,
|
|
WorldCarver.CANYON
|
|
.configured(
|
|
new CanyonCarverConfiguration(
|
|
0.01F,
|
|
UniformHeight.of(VerticalAnchor.absolute(10), VerticalAnchor.absolute(67)),
|
|
ConstantFloat.of(3.0F),
|
|
VerticalAnchor.aboveBottom(8),
|
|
CarverDebugSettings.of(false, Blocks.WARPED_BUTTON.defaultBlockState()),
|
|
holderGetter.getOrThrow(BlockTags.OVERWORLD_CARVER_REPLACEABLES),
|
|
UniformFloat.of(-0.125F, 0.125F),
|
|
new CanyonCarverConfiguration.CanyonShapeConfiguration(
|
|
UniformFloat.of(0.75F, 1.0F), TrapezoidFloat.of(0.0F, 6.0F, 2.0F), 3, UniformFloat.of(0.75F, 1.0F), 1.0F, 0.0F
|
|
)
|
|
)
|
|
)
|
|
);
|
|
context.register(
|
|
NETHER_CAVE,
|
|
WorldCarver.NETHER_CAVE
|
|
.configured(
|
|
new CaveCarverConfiguration(
|
|
0.2F,
|
|
UniformHeight.of(VerticalAnchor.absolute(0), VerticalAnchor.belowTop(1)),
|
|
ConstantFloat.of(0.5F),
|
|
VerticalAnchor.aboveBottom(10),
|
|
holderGetter.getOrThrow(BlockTags.NETHER_CARVER_REPLACEABLES),
|
|
ConstantFloat.of(1.0F),
|
|
ConstantFloat.of(1.0F),
|
|
ConstantFloat.of(-0.7F)
|
|
)
|
|
)
|
|
);
|
|
}
|
|
}
|