File size: 5,034 Bytes
d46f4a3
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
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 p_256085_) {
        return ResourceKey.create(Registries.CONFIGURED_CARVER, ResourceLocation.withDefaultNamespace(p_256085_));
    }

    public static void bootstrap(BootstrapContext<ConfiguredWorldCarver<?>> p_334235_) {
        HolderGetter<Block> holdergetter = p_334235_.lookup(Registries.BLOCK);
        p_334235_.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)
                    )
                )
        );
        p_334235_.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)
                    )
                )
        );
        p_334235_.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
                        )
                    )
                )
        );
        p_334235_.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)
                    )
                )
        );
    }
}