steel_registry/generated/
vanilla_configured_carvers.rs1use crate::carver::{
2 CanyonCarverConfiguration, CanyonShapeConfiguration, CarverConfiguration,
3 CaveCarverConfiguration, ConfiguredCarver, ConfiguredCarverKind,
4 ConfiguredCarverRegistry,
5};
6use steel_utils::Identifier;
7use steel_utils::value_providers::{
8 FloatProvider, HeightProvider, IntProvider, VerticalAnchor, WeightedIntProvider,
9};
10use std::sync::{LazyLock, OnceLock};
11pub static CANYON: LazyLock<ConfiguredCarver> = LazyLock::new(|| ConfiguredCarver {
12 key: Identifier::vanilla_static("canyon"),
13 kind: ConfiguredCarverKind::Canyon(CanyonCarverConfiguration {
14 base: CarverConfiguration {
15 probability: 0.01f32,
16 y: HeightProvider::Uniform {
17 min_inclusive: VerticalAnchor::Absolute(10i32),
18 max_inclusive: VerticalAnchor::Absolute(67i32),
19 },
20 },
21 vertical_rotation: FloatProvider::Uniform {
22 min_inclusive: -0.125f32,
23 max_exclusive: 0.125f32,
24 },
25 shape: CanyonShapeConfiguration {
26 distance_factor: FloatProvider::Uniform {
27 min_inclusive: 0.75f32,
28 max_exclusive: 1f32,
29 },
30 thickness: FloatProvider::Trapezoid {
31 min: 0f32,
32 max: 6f32,
33 plateau: 2f32,
34 },
35 width_smoothness: 3i32,
36 horizontal_radius_factor: FloatProvider::Uniform {
37 min_inclusive: 0.75f32,
38 max_exclusive: 1f32,
39 },
40 vertical_radius_default_factor: 1f32,
41 vertical_radius_center_factor: 0f32,
42 y_scale: FloatProvider::Constant(3f32),
43 },
44 }),
45 id: OnceLock::new(),
46});
47pub static CAVE: LazyLock<ConfiguredCarver> = LazyLock::new(|| ConfiguredCarver {
48 key: Identifier::vanilla_static("cave"),
49 kind: ConfiguredCarverKind::Cave(CaveCarverConfiguration {
50 base: CarverConfiguration {
51 probability: 0.15f32,
52 y: HeightProvider::Uniform {
53 min_inclusive: VerticalAnchor::AboveBottom(8i32),
54 max_inclusive: VerticalAnchor::Absolute(180i32),
55 },
56 },
57 count: IntProvider::VeryBiasedToBottom {
58 min_inclusive: 0i32,
59 max_inclusive: 14i32,
60 },
61 thickness: FloatProvider::Trapezoid {
62 min: 0f32,
63 max: 3f32,
64 plateau: 1f32,
65 },
66 weird_thickness_bias: true,
67 room_vertical_radius_multiplier: FloatProvider::Uniform {
68 min_inclusive: 0.1f32,
69 max_exclusive: 0.9f32,
70 },
71 horizontal_radius_multiplier: FloatProvider::Uniform {
72 min_inclusive: 0.7f32,
73 max_exclusive: 1.4f32,
74 },
75 vertical_radius_multiplier: FloatProvider::Uniform {
76 min_inclusive: 0.8f32,
77 max_exclusive: 1.3f32,
78 },
79 start_vertical_radius_multiplier: FloatProvider::Constant(1f32),
80 floor_level: FloatProvider::Uniform {
81 min_inclusive: -1f32,
82 max_exclusive: -0.4f32,
83 },
84 }),
85 id: OnceLock::new(),
86});
87pub static CAVE_EXTRA_UNDERGROUND: LazyLock<ConfiguredCarver> = LazyLock::new(|| ConfiguredCarver {
88 key: Identifier::vanilla_static("cave_extra_underground"),
89 kind: ConfiguredCarverKind::Cave(CaveCarverConfiguration {
90 base: CarverConfiguration {
91 probability: 0.07f32,
92 y: HeightProvider::Uniform {
93 min_inclusive: VerticalAnchor::AboveBottom(8i32),
94 max_inclusive: VerticalAnchor::Absolute(47i32),
95 },
96 },
97 count: IntProvider::VeryBiasedToBottom {
98 min_inclusive: 0i32,
99 max_inclusive: 14i32,
100 },
101 thickness: FloatProvider::Trapezoid {
102 min: 0f32,
103 max: 3f32,
104 plateau: 1f32,
105 },
106 weird_thickness_bias: true,
107 room_vertical_radius_multiplier: FloatProvider::Uniform {
108 min_inclusive: 0.1f32,
109 max_exclusive: 0.9f32,
110 },
111 horizontal_radius_multiplier: FloatProvider::Uniform {
112 min_inclusive: 0.7f32,
113 max_exclusive: 1.4f32,
114 },
115 vertical_radius_multiplier: FloatProvider::Uniform {
116 min_inclusive: 0.8f32,
117 max_exclusive: 1.3f32,
118 },
119 start_vertical_radius_multiplier: FloatProvider::Constant(1f32),
120 floor_level: FloatProvider::Uniform {
121 min_inclusive: -1f32,
122 max_exclusive: -0.4f32,
123 },
124 }),
125 id: OnceLock::new(),
126});
127pub static NETHER_CAVE: LazyLock<ConfiguredCarver> = LazyLock::new(|| ConfiguredCarver {
128 key: Identifier::vanilla_static("nether_cave"),
129 kind: ConfiguredCarverKind::Cave(CaveCarverConfiguration {
130 base: CarverConfiguration {
131 probability: 0.2f32,
132 y: HeightProvider::Uniform {
133 min_inclusive: VerticalAnchor::Absolute(0i32),
134 max_inclusive: VerticalAnchor::BelowTop(1i32),
135 },
136 },
137 count: IntProvider::VeryBiasedToBottom {
138 min_inclusive: 0i32,
139 max_inclusive: 9i32,
140 },
141 thickness: FloatProvider::Trapezoid {
142 min: 0f32,
143 max: 6f32,
144 plateau: 2f32,
145 },
146 weird_thickness_bias: false,
147 room_vertical_radius_multiplier: FloatProvider::Constant(0.5f32),
148 horizontal_radius_multiplier: FloatProvider::Constant(1f32),
149 vertical_radius_multiplier: FloatProvider::Constant(1f32),
150 start_vertical_radius_multiplier: FloatProvider::Constant(5f32),
151 floor_level: FloatProvider::Constant(-0.7f32),
152 }),
153 id: OnceLock::new(),
154});
155pub fn register_configured_carvers(registry: &mut ConfiguredCarverRegistry) {
156 registry.register(&CANYON);
157 registry.register(&CAVE);
158 registry.register(&CAVE_EXTRA_UNDERGROUND);
159 registry.register(&NETHER_CAVE);
160}