Skip to main content

steel_registry/generated/
vanilla_configured_carvers.rs

1use 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}