Skip to main content

steel_core/chunk/
chunk_status_tasks.rs

1#![expect(
2    missing_docs,
3    reason = "task functions are named after their vanilla counterparts"
4)]
5
6use std::sync::Arc;
7
8use crate::chunk::{
9    chunk_generation_task::StaticCache2D, chunk_holder::ChunkHolder, chunk_pyramid::ChunkStep,
10};
11use crate::worldgen::{context::WorldGenContext, stages};
12
13pub struct ChunkStatusTasks;
14
15/// All these functions are blocking.
16impl ChunkStatusTasks {
17    pub fn empty(
18        context: Arc<WorldGenContext>,
19        step: &ChunkStep,
20        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
21        holder: Arc<ChunkHolder>,
22    ) {
23        stages::empty::generate(context, step, cache, holder);
24    }
25
26    pub fn generate_structure_starts(
27        context: Arc<WorldGenContext>,
28        step: &ChunkStep,
29        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
30        holder: Arc<ChunkHolder>,
31    ) {
32        stages::structures::generate_starts(context, step, cache, holder);
33    }
34
35    pub fn generate_structure_references(
36        context: Arc<WorldGenContext>,
37        step: &ChunkStep,
38        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
39        holder: Arc<ChunkHolder>,
40    ) {
41        stages::structures::generate_references(context, step, cache, holder);
42    }
43
44    pub fn load_structure_starts(
45        context: Arc<WorldGenContext>,
46        step: &ChunkStep,
47        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
48        holder: Arc<ChunkHolder>,
49    ) {
50        stages::structures::load_starts(context, step, cache, holder);
51    }
52
53    pub fn generate_biomes(
54        context: Arc<WorldGenContext>,
55        step: &ChunkStep,
56        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
57        holder: Arc<ChunkHolder>,
58    ) {
59        stages::biomes::generate(context, step, cache, holder);
60    }
61
62    pub fn generate_noise(
63        context: Arc<WorldGenContext>,
64        step: &ChunkStep,
65        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
66        holder: Arc<ChunkHolder>,
67    ) {
68        stages::noise::generate(context, step, cache, holder);
69    }
70
71    pub fn generate_surface(
72        context: Arc<WorldGenContext>,
73        step: &ChunkStep,
74        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
75        holder: Arc<ChunkHolder>,
76    ) {
77        stages::surface::generate(context, step, cache, holder);
78    }
79
80    pub fn generate_carvers(
81        context: Arc<WorldGenContext>,
82        step: &ChunkStep,
83        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
84        holder: Arc<ChunkHolder>,
85    ) {
86        stages::carvers::generate(context, step, cache, holder);
87    }
88
89    pub fn generate_features(
90        context: Arc<WorldGenContext>,
91        step: &ChunkStep,
92        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
93        holder: Arc<ChunkHolder>,
94    ) {
95        stages::features::generate(context, step, cache, holder);
96    }
97
98    pub fn initialize_light(
99        context: Arc<WorldGenContext>,
100        step: &ChunkStep,
101        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
102        holder: Arc<ChunkHolder>,
103    ) {
104        stages::light::initialize(context, step, cache, holder);
105    }
106
107    pub fn light(
108        context: Arc<WorldGenContext>,
109        step: &ChunkStep,
110        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
111        holder: Arc<ChunkHolder>,
112    ) {
113        stages::light::generate(context, step, cache, holder);
114    }
115
116    pub fn load_light(
117        context: Arc<WorldGenContext>,
118        step: &ChunkStep,
119        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
120        holder: Arc<ChunkHolder>,
121    ) {
122        stages::light::load(context, step, cache, holder);
123    }
124
125    pub fn generate_spawn(
126        context: Arc<WorldGenContext>,
127        step: &ChunkStep,
128        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
129        holder: Arc<ChunkHolder>,
130    ) {
131        stages::spawn::generate(context, step, cache, holder);
132    }
133
134    pub fn full(
135        context: Arc<WorldGenContext>,
136        step: &ChunkStep,
137        cache: &Arc<StaticCache2D<Arc<ChunkHolder>>>,
138        holder: Arc<ChunkHolder>,
139    ) {
140        stages::full::generate(context, step, cache, holder);
141    }
142}