Skip to main content

steel_registry/generated/
vanilla_structures.rs

1use crate::structure::{
2    DimensionPadding, HeightProviderData, JigsawConfig, LiquidSettingsData,
3    MineshaftTypeData, OceanRuinBiomeTempData, PoolAlias, RuinedPortalPlacementData,
4    RuinedPortalSetupData, StartHeight, StructureConfigData, StructureData,
5    StructureGenerationStep, StructureRef, StructureRegistry, StructureSpawnBoundingBox,
6    StructureSpawnOverrideData, StructureSpawnerData, TerrainAdjustment,
7    VerticalAnchorData,
8};
9use steel_utils::Identifier;
10use std::sync::{LazyLock, OnceLock};
11static STRUCTURE_ABANDONED_CAMP_BAMBOO_JUNGLE: LazyLock<StructureData> = LazyLock::new(||
12StructureData {
13    key: Identifier::new("minecraft", "abandoned_camp_bamboo_jungle"),
14    id: OnceLock::new(),
15    structure_type: Identifier::new("minecraft", "jigsaw"),
16    allowed_biomes: vec![Identifier::new("minecraft", "bamboo_jungle")],
17    spawn_overrides: vec![],
18    step: StructureGenerationStep::SurfaceStructures,
19    terrain_adjustment: TerrainAdjustment::BeardThin,
20    config: StructureConfigData::Jigsaw(JigsawConfig {
21        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/bamboo_jungle"),
22        max_depth: 2i32,
23        use_expansion_hack: true,
24        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
25        start_height: StartHeight::Constant(0i32),
26        max_distance_from_center: 80i32,
27        start_jigsaw_name: None,
28        dimension_padding: DimensionPadding {
29            bottom: 0i32,
30            top: 0i32,
31        },
32        pool_aliases: vec![],
33        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
34    }),
35});
36static STRUCTURE_ABANDONED_CAMP_BIRCH_FOREST: LazyLock<StructureData> = LazyLock::new(|| StructureData {
37    key: Identifier::new("minecraft", "abandoned_camp_birch_forest"),
38    id: OnceLock::new(),
39    structure_type: Identifier::new("minecraft", "jigsaw"),
40    allowed_biomes: vec![Identifier::new("minecraft", "birch_forest")],
41    spawn_overrides: vec![],
42    step: StructureGenerationStep::SurfaceStructures,
43    terrain_adjustment: TerrainAdjustment::BeardThin,
44    config: StructureConfigData::Jigsaw(JigsawConfig {
45        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/birch_forest"),
46        max_depth: 2i32,
47        use_expansion_hack: true,
48        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
49        start_height: StartHeight::Constant(0i32),
50        max_distance_from_center: 80i32,
51        start_jigsaw_name: None,
52        dimension_padding: DimensionPadding {
53            bottom: 0i32,
54            top: 0i32,
55        },
56        pool_aliases: vec![],
57        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
58    }),
59});
60static STRUCTURE_ABANDONED_CAMP_CHERRY_GROVE: LazyLock<StructureData> = LazyLock::new(|| StructureData {
61    key: Identifier::new("minecraft", "abandoned_camp_cherry_grove"),
62    id: OnceLock::new(),
63    structure_type: Identifier::new("minecraft", "jigsaw"),
64    allowed_biomes: vec![Identifier::new("minecraft", "cherry_grove")],
65    spawn_overrides: vec![],
66    step: StructureGenerationStep::SurfaceStructures,
67    terrain_adjustment: TerrainAdjustment::BeardThin,
68    config: StructureConfigData::Jigsaw(JigsawConfig {
69        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/cherry_grove"),
70        max_depth: 2i32,
71        use_expansion_hack: true,
72        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
73        start_height: StartHeight::Constant(0i32),
74        max_distance_from_center: 80i32,
75        start_jigsaw_name: None,
76        dimension_padding: DimensionPadding {
77            bottom: 0i32,
78            top: 0i32,
79        },
80        pool_aliases: vec![],
81        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
82    }),
83});
84static STRUCTURE_ABANDONED_CAMP_DAPPLED_FOREST: LazyLock<StructureData> = LazyLock::new(||
85StructureData {
86    key: Identifier::new("minecraft", "abandoned_camp_dappled_forest"),
87    id: OnceLock::new(),
88    structure_type: Identifier::new("minecraft", "jigsaw"),
89    allowed_biomes: vec![Identifier::new("minecraft", "dappled_forest")],
90    spawn_overrides: vec![],
91    step: StructureGenerationStep::SurfaceStructures,
92    terrain_adjustment: TerrainAdjustment::BeardThin,
93    config: StructureConfigData::Jigsaw(JigsawConfig {
94        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/dappled_forest"),
95        max_depth: 2i32,
96        use_expansion_hack: true,
97        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
98        start_height: StartHeight::Constant(0i32),
99        max_distance_from_center: 80i32,
100        start_jigsaw_name: None,
101        dimension_padding: DimensionPadding {
102            bottom: 0i32,
103            top: 0i32,
104        },
105        pool_aliases: vec![],
106        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
107    }),
108});
109static STRUCTURE_ABANDONED_CAMP_FLOWER_FOREST: LazyLock<StructureData> = LazyLock::new(||
110StructureData {
111    key: Identifier::new("minecraft", "abandoned_camp_flower_forest"),
112    id: OnceLock::new(),
113    structure_type: Identifier::new("minecraft", "jigsaw"),
114    allowed_biomes: vec![Identifier::new("minecraft", "flower_forest")],
115    spawn_overrides: vec![],
116    step: StructureGenerationStep::SurfaceStructures,
117    terrain_adjustment: TerrainAdjustment::BeardThin,
118    config: StructureConfigData::Jigsaw(JigsawConfig {
119        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/flower_forest"),
120        max_depth: 2i32,
121        use_expansion_hack: true,
122        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
123        start_height: StartHeight::Constant(0i32),
124        max_distance_from_center: 80i32,
125        start_jigsaw_name: None,
126        dimension_padding: DimensionPadding {
127            bottom: 0i32,
128            top: 0i32,
129        },
130        pool_aliases: vec![],
131        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
132    }),
133});
134static STRUCTURE_ABANDONED_CAMP_FOREST: LazyLock<StructureData> = LazyLock::new(|| StructureData {
135    key: Identifier::new("minecraft", "abandoned_camp_forest"),
136    id: OnceLock::new(),
137    structure_type: Identifier::new("minecraft", "jigsaw"),
138    allowed_biomes: vec![Identifier::new("minecraft", "forest")],
139    spawn_overrides: vec![],
140    step: StructureGenerationStep::SurfaceStructures,
141    terrain_adjustment: TerrainAdjustment::BeardThin,
142    config: StructureConfigData::Jigsaw(JigsawConfig {
143        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/forest"),
144        max_depth: 2i32,
145        use_expansion_hack: true,
146        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
147        start_height: StartHeight::Constant(0i32),
148        max_distance_from_center: 80i32,
149        start_jigsaw_name: None,
150        dimension_padding: DimensionPadding {
151            bottom: 0i32,
152            top: 0i32,
153        },
154        pool_aliases: vec![],
155        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
156    }),
157});
158static STRUCTURE_ABANDONED_CAMP_MEADOW: LazyLock<StructureData> = LazyLock::new(|| StructureData {
159    key: Identifier::new("minecraft", "abandoned_camp_meadow"),
160    id: OnceLock::new(),
161    structure_type: Identifier::new("minecraft", "jigsaw"),
162    allowed_biomes: vec![Identifier::new("minecraft", "meadow")],
163    spawn_overrides: vec![],
164    step: StructureGenerationStep::SurfaceStructures,
165    terrain_adjustment: TerrainAdjustment::BeardThin,
166    config: StructureConfigData::Jigsaw(JigsawConfig {
167        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/meadow"),
168        max_depth: 2i32,
169        use_expansion_hack: true,
170        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
171        start_height: StartHeight::Constant(0i32),
172        max_distance_from_center: 80i32,
173        start_jigsaw_name: None,
174        dimension_padding: DimensionPadding {
175            bottom: 0i32,
176            top: 0i32,
177        },
178        pool_aliases: vec![],
179        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
180    }),
181});
182static STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_BIRCH_FOREST: LazyLock<StructureData> = LazyLock::new(||
183StructureData {
184    key: Identifier::new("minecraft", "abandoned_camp_old_growth_birch_forest"),
185    id: OnceLock::new(),
186    structure_type: Identifier::new("minecraft", "jigsaw"),
187    allowed_biomes: vec![Identifier::new("minecraft", "old_growth_birch_forest")],
188    spawn_overrides: vec![],
189    step: StructureGenerationStep::SurfaceStructures,
190    terrain_adjustment: TerrainAdjustment::BeardThin,
191    config: StructureConfigData::Jigsaw(JigsawConfig {
192        start_pool: Identifier::new(
193            "minecraft",
194            "abandoned_camp/tent/old_growth_birch_forest",
195        ),
196        max_depth: 2i32,
197        use_expansion_hack: true,
198        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
199        start_height: StartHeight::Constant(0i32),
200        max_distance_from_center: 80i32,
201        start_jigsaw_name: None,
202        dimension_padding: DimensionPadding {
203            bottom: 0i32,
204            top: 0i32,
205        },
206        pool_aliases: vec![],
207        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
208    }),
209});
210static STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_PINE_TAIGA: LazyLock<StructureData> = LazyLock::new(||
211StructureData {
212    key: Identifier::new("minecraft", "abandoned_camp_old_growth_pine_taiga"),
213    id: OnceLock::new(),
214    structure_type: Identifier::new("minecraft", "jigsaw"),
215    allowed_biomes: vec![Identifier::new("minecraft", "old_growth_pine_taiga")],
216    spawn_overrides: vec![],
217    step: StructureGenerationStep::SurfaceStructures,
218    terrain_adjustment: TerrainAdjustment::BeardThin,
219    config: StructureConfigData::Jigsaw(JigsawConfig {
220        start_pool: Identifier::new(
221            "minecraft",
222            "abandoned_camp/tent/old_growth_pine_taiga",
223        ),
224        max_depth: 2i32,
225        use_expansion_hack: true,
226        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
227        start_height: StartHeight::Constant(0i32),
228        max_distance_from_center: 80i32,
229        start_jigsaw_name: None,
230        dimension_padding: DimensionPadding {
231            bottom: 0i32,
232            top: 0i32,
233        },
234        pool_aliases: vec![],
235        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
236    }),
237});
238static STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_SPRUCE_TAIGA: LazyLock<StructureData> = LazyLock::new(||
239StructureData {
240    key: Identifier::new("minecraft", "abandoned_camp_old_growth_spruce_taiga"),
241    id: OnceLock::new(),
242    structure_type: Identifier::new("minecraft", "jigsaw"),
243    allowed_biomes: vec![Identifier::new("minecraft", "old_growth_spruce_taiga")],
244    spawn_overrides: vec![],
245    step: StructureGenerationStep::SurfaceStructures,
246    terrain_adjustment: TerrainAdjustment::BeardThin,
247    config: StructureConfigData::Jigsaw(JigsawConfig {
248        start_pool: Identifier::new(
249            "minecraft",
250            "abandoned_camp/tent/old_growth_spruce_taiga",
251        ),
252        max_depth: 2i32,
253        use_expansion_hack: true,
254        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
255        start_height: StartHeight::Constant(0i32),
256        max_distance_from_center: 80i32,
257        start_jigsaw_name: None,
258        dimension_padding: DimensionPadding {
259            bottom: 0i32,
260            top: 0i32,
261        },
262        pool_aliases: vec![],
263        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
264    }),
265});
266static STRUCTURE_ABANDONED_CAMP_PALE_GARDEN: LazyLock<StructureData> = LazyLock::new(|| StructureData {
267    key: Identifier::new("minecraft", "abandoned_camp_pale_garden"),
268    id: OnceLock::new(),
269    structure_type: Identifier::new("minecraft", "jigsaw"),
270    allowed_biomes: vec![Identifier::new("minecraft", "pale_garden")],
271    spawn_overrides: vec![],
272    step: StructureGenerationStep::SurfaceStructures,
273    terrain_adjustment: TerrainAdjustment::BeardThin,
274    config: StructureConfigData::Jigsaw(JigsawConfig {
275        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/pale_garden"),
276        max_depth: 2i32,
277        use_expansion_hack: true,
278        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
279        start_height: StartHeight::Constant(0i32),
280        max_distance_from_center: 80i32,
281        start_jigsaw_name: None,
282        dimension_padding: DimensionPadding {
283            bottom: 0i32,
284            top: 0i32,
285        },
286        pool_aliases: vec![],
287        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
288    }),
289});
290static STRUCTURE_ABANDONED_CAMP_SAVANNA: LazyLock<StructureData> = LazyLock::new(|| StructureData {
291    key: Identifier::new("minecraft", "abandoned_camp_savanna"),
292    id: OnceLock::new(),
293    structure_type: Identifier::new("minecraft", "jigsaw"),
294    allowed_biomes: vec![Identifier::new("minecraft", "savanna")],
295    spawn_overrides: vec![],
296    step: StructureGenerationStep::SurfaceStructures,
297    terrain_adjustment: TerrainAdjustment::BeardThin,
298    config: StructureConfigData::Jigsaw(JigsawConfig {
299        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/savanna"),
300        max_depth: 2i32,
301        use_expansion_hack: true,
302        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
303        start_height: StartHeight::Constant(0i32),
304        max_distance_from_center: 80i32,
305        start_jigsaw_name: None,
306        dimension_padding: DimensionPadding {
307            bottom: 0i32,
308            top: 0i32,
309        },
310        pool_aliases: vec![],
311        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
312    }),
313});
314static STRUCTURE_ABANDONED_CAMP_SNOWY_TAIGA: LazyLock<StructureData> = LazyLock::new(|| StructureData {
315    key: Identifier::new("minecraft", "abandoned_camp_snowy_taiga"),
316    id: OnceLock::new(),
317    structure_type: Identifier::new("minecraft", "jigsaw"),
318    allowed_biomes: vec![Identifier::new("minecraft", "snowy_taiga")],
319    spawn_overrides: vec![],
320    step: StructureGenerationStep::SurfaceStructures,
321    terrain_adjustment: TerrainAdjustment::BeardThin,
322    config: StructureConfigData::Jigsaw(JigsawConfig {
323        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/snowy_taiga"),
324        max_depth: 2i32,
325        use_expansion_hack: true,
326        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
327        start_height: StartHeight::Constant(0i32),
328        max_distance_from_center: 80i32,
329        start_jigsaw_name: None,
330        dimension_padding: DimensionPadding {
331            bottom: 0i32,
332            top: 0i32,
333        },
334        pool_aliases: vec![],
335        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
336    }),
337});
338static STRUCTURE_ABANDONED_CAMP_SPARSE_JUNGLE: LazyLock<StructureData> = LazyLock::new(||
339StructureData {
340    key: Identifier::new("minecraft", "abandoned_camp_sparse_jungle"),
341    id: OnceLock::new(),
342    structure_type: Identifier::new("minecraft", "jigsaw"),
343    allowed_biomes: vec![Identifier::new("minecraft", "sparse_jungle")],
344    spawn_overrides: vec![],
345    step: StructureGenerationStep::SurfaceStructures,
346    terrain_adjustment: TerrainAdjustment::BeardThin,
347    config: StructureConfigData::Jigsaw(JigsawConfig {
348        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/sparse_jungle"),
349        max_depth: 2i32,
350        use_expansion_hack: true,
351        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
352        start_height: StartHeight::Constant(0i32),
353        max_distance_from_center: 80i32,
354        start_jigsaw_name: None,
355        dimension_padding: DimensionPadding {
356            bottom: 0i32,
357            top: 0i32,
358        },
359        pool_aliases: vec![],
360        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
361    }),
362});
363static STRUCTURE_ABANDONED_CAMP_SWAMP: LazyLock<StructureData> = LazyLock::new(|| StructureData {
364    key: Identifier::new("minecraft", "abandoned_camp_swamp"),
365    id: OnceLock::new(),
366    structure_type: Identifier::new("minecraft", "jigsaw"),
367    allowed_biomes: vec![Identifier::new("minecraft", "swamp")],
368    spawn_overrides: vec![],
369    step: StructureGenerationStep::SurfaceStructures,
370    terrain_adjustment: TerrainAdjustment::BeardThin,
371    config: StructureConfigData::Jigsaw(JigsawConfig {
372        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/swamp"),
373        max_depth: 2i32,
374        use_expansion_hack: true,
375        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
376        start_height: StartHeight::Constant(0i32),
377        max_distance_from_center: 80i32,
378        start_jigsaw_name: None,
379        dimension_padding: DimensionPadding {
380            bottom: 0i32,
381            top: 0i32,
382        },
383        pool_aliases: vec![],
384        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
385    }),
386});
387static STRUCTURE_ABANDONED_CAMP_TAIGA: LazyLock<StructureData> = LazyLock::new(|| StructureData {
388    key: Identifier::new("minecraft", "abandoned_camp_taiga"),
389    id: OnceLock::new(),
390    structure_type: Identifier::new("minecraft", "jigsaw"),
391    allowed_biomes: vec![Identifier::new("minecraft", "taiga")],
392    spawn_overrides: vec![],
393    step: StructureGenerationStep::SurfaceStructures,
394    terrain_adjustment: TerrainAdjustment::BeardThin,
395    config: StructureConfigData::Jigsaw(JigsawConfig {
396        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/taiga"),
397        max_depth: 2i32,
398        use_expansion_hack: true,
399        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
400        start_height: StartHeight::Constant(0i32),
401        max_distance_from_center: 80i32,
402        start_jigsaw_name: None,
403        dimension_padding: DimensionPadding {
404            bottom: 0i32,
405            top: 0i32,
406        },
407        pool_aliases: vec![],
408        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
409    }),
410});
411static STRUCTURE_ABANDONED_CAMP_WINDSWEPT_FOREST: LazyLock<StructureData> = LazyLock::new(||
412StructureData {
413    key: Identifier::new("minecraft", "abandoned_camp_windswept_forest"),
414    id: OnceLock::new(),
415    structure_type: Identifier::new("minecraft", "jigsaw"),
416    allowed_biomes: vec![Identifier::new("minecraft", "windswept_forest")],
417    spawn_overrides: vec![],
418    step: StructureGenerationStep::SurfaceStructures,
419    terrain_adjustment: TerrainAdjustment::BeardThin,
420    config: StructureConfigData::Jigsaw(JigsawConfig {
421        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/windswept_forest"),
422        max_depth: 2i32,
423        use_expansion_hack: true,
424        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
425        start_height: StartHeight::Constant(0i32),
426        max_distance_from_center: 80i32,
427        start_jigsaw_name: None,
428        dimension_padding: DimensionPadding {
429            bottom: 0i32,
430            top: 0i32,
431        },
432        pool_aliases: vec![],
433        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
434    }),
435});
436static STRUCTURE_ABANDONED_CAMP_WOODED_BADLANDS: LazyLock<StructureData> = LazyLock::new(||
437StructureData {
438    key: Identifier::new("minecraft", "abandoned_camp_wooded_badlands"),
439    id: OnceLock::new(),
440    structure_type: Identifier::new("minecraft", "jigsaw"),
441    allowed_biomes: vec![Identifier::new("minecraft", "wooded_badlands")],
442    spawn_overrides: vec![],
443    step: StructureGenerationStep::SurfaceStructures,
444    terrain_adjustment: TerrainAdjustment::BeardThin,
445    config: StructureConfigData::Jigsaw(JigsawConfig {
446        start_pool: Identifier::new("minecraft", "abandoned_camp/tent/wooded_badlands"),
447        max_depth: 2i32,
448        use_expansion_hack: true,
449        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
450        start_height: StartHeight::Constant(0i32),
451        max_distance_from_center: 80i32,
452        start_jigsaw_name: None,
453        dimension_padding: DimensionPadding {
454            bottom: 0i32,
455            top: 0i32,
456        },
457        pool_aliases: vec![],
458        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
459    }),
460});
461static STRUCTURE_ANCIENT_CITY: LazyLock<StructureData> = LazyLock::new(|| StructureData {
462    key: Identifier::new("minecraft", "ancient_city"),
463    id: OnceLock::new(),
464    structure_type: Identifier::new("minecraft", "jigsaw"),
465    allowed_biomes: vec![Identifier::new("minecraft", "deep_dark")],
466    spawn_overrides: vec![
467        StructureSpawnOverrideData { category : "water_creature".to_string(),
468        bounding_box : StructureSpawnBoundingBox::Full, spawns : vec![], },
469        StructureSpawnOverrideData { category : "misc".to_string(), bounding_box :
470        StructureSpawnBoundingBox::Full, spawns : vec![], }, StructureSpawnOverrideData {
471        category : "axolotls".to_string(), bounding_box :
472        StructureSpawnBoundingBox::Full, spawns : vec![], }, StructureSpawnOverrideData {
473        category : "creature".to_string(), bounding_box :
474        StructureSpawnBoundingBox::Full, spawns : vec![], }, StructureSpawnOverrideData {
475        category : "monster".to_string(), bounding_box : StructureSpawnBoundingBox::Full,
476        spawns : vec![], }, StructureSpawnOverrideData { category : "ambient"
477        .to_string(), bounding_box : StructureSpawnBoundingBox::Full, spawns : vec![], },
478        StructureSpawnOverrideData { category : "water_ambient".to_string(), bounding_box
479        : StructureSpawnBoundingBox::Full, spawns : vec![], }, StructureSpawnOverrideData
480        { category : "underground_water_creature".to_string(), bounding_box :
481        StructureSpawnBoundingBox::Full, spawns : vec![], }
482    ],
483    step: StructureGenerationStep::UndergroundDecoration,
484    terrain_adjustment: TerrainAdjustment::BeardBox,
485    config: StructureConfigData::Jigsaw(JigsawConfig {
486        start_pool: Identifier::new("minecraft", "ancient_city/city_center"),
487        max_depth: 7i32,
488        use_expansion_hack: false,
489        project_start_to_heightmap: None,
490        start_height: StartHeight::Constant(-27i32),
491        max_distance_from_center: 116i32,
492        start_jigsaw_name: Some(Identifier::new("minecraft", "city_anchor")),
493        dimension_padding: DimensionPadding {
494            bottom: 0i32,
495            top: 0i32,
496        },
497        pool_aliases: vec![],
498        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
499    }),
500});
501static STRUCTURE_BASTION_REMNANT: LazyLock<StructureData> = LazyLock::new(|| StructureData {
502    key: Identifier::new("minecraft", "bastion_remnant"),
503    id: OnceLock::new(),
504    structure_type: Identifier::new("minecraft", "jigsaw"),
505    allowed_biomes: vec![
506        Identifier::new("minecraft", "crimson_forest"), Identifier::new("minecraft",
507        "nether_wastes"), Identifier::new("minecraft", "soul_sand_valley"),
508        Identifier::new("minecraft", "warped_forest")
509    ],
510    spawn_overrides: vec![],
511    step: StructureGenerationStep::SurfaceStructures,
512    terrain_adjustment: TerrainAdjustment::None,
513    config: StructureConfigData::Jigsaw(JigsawConfig {
514        start_pool: Identifier::new("minecraft", "bastion/starts"),
515        max_depth: 6i32,
516        use_expansion_hack: false,
517        project_start_to_heightmap: None,
518        start_height: StartHeight::Constant(33i32),
519        max_distance_from_center: 80i32,
520        start_jigsaw_name: None,
521        dimension_padding: DimensionPadding {
522            bottom: 0i32,
523            top: 0i32,
524        },
525        pool_aliases: vec![],
526        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
527    }),
528});
529static STRUCTURE_BURIED_TREASURE: LazyLock<StructureData> = LazyLock::new(|| StructureData {
530    key: Identifier::new("minecraft", "buried_treasure"),
531    id: OnceLock::new(),
532    structure_type: Identifier::new("minecraft", "buried_treasure"),
533    allowed_biomes: vec![
534        Identifier::new("minecraft", "beach"), Identifier::new("minecraft",
535        "snowy_beach")
536    ],
537    spawn_overrides: vec![],
538    step: StructureGenerationStep::UndergroundStructures,
539    terrain_adjustment: TerrainAdjustment::None,
540    config: StructureConfigData::Empty,
541});
542static STRUCTURE_DESERT_PYRAMID: LazyLock<StructureData> = LazyLock::new(|| StructureData {
543    key: Identifier::new("minecraft", "desert_pyramid"),
544    id: OnceLock::new(),
545    structure_type: Identifier::new("minecraft", "desert_pyramid"),
546    allowed_biomes: vec![Identifier::new("minecraft", "desert")],
547    spawn_overrides: vec![],
548    step: StructureGenerationStep::SurfaceStructures,
549    terrain_adjustment: TerrainAdjustment::None,
550    config: StructureConfigData::Empty,
551});
552static STRUCTURE_END_CITY: LazyLock<StructureData> = LazyLock::new(|| StructureData {
553    key: Identifier::new("minecraft", "end_city"),
554    id: OnceLock::new(),
555    structure_type: Identifier::new("minecraft", "end_city"),
556    allowed_biomes: vec![
557        Identifier::new("minecraft", "end_highlands"), Identifier::new("minecraft",
558        "end_midlands")
559    ],
560    spawn_overrides: vec![],
561    step: StructureGenerationStep::SurfaceStructures,
562    terrain_adjustment: TerrainAdjustment::None,
563    config: StructureConfigData::Empty,
564});
565static STRUCTURE_FORTRESS: LazyLock<StructureData> = LazyLock::new(|| StructureData {
566    key: Identifier::new("minecraft", "fortress"),
567    id: OnceLock::new(),
568    structure_type: Identifier::new("minecraft", "fortress"),
569    allowed_biomes: vec![
570        Identifier::new("minecraft", "basalt_deltas"), Identifier::new("minecraft",
571        "crimson_forest"), Identifier::new("minecraft", "nether_wastes"),
572        Identifier::new("minecraft", "soul_sand_valley"), Identifier::new("minecraft",
573        "warped_forest")
574    ],
575    spawn_overrides: vec![
576        StructureSpawnOverrideData { category : "monster".to_string(), bounding_box :
577        StructureSpawnBoundingBox::Piece, spawns : vec![StructureSpawnerData {
578        entity_type : Identifier::new("minecraft", "blaze"), weight : 10i32, min_count :
579        2i32, max_count : 3i32, }, StructureSpawnerData { entity_type :
580        Identifier::new("minecraft", "zombified_piglin"), weight : 5i32, min_count :
581        4i32, max_count : 4i32, }, StructureSpawnerData { entity_type :
582        Identifier::new("minecraft", "wither_skeleton"), weight : 8i32, min_count : 5i32,
583        max_count : 5i32, }, StructureSpawnerData { entity_type :
584        Identifier::new("minecraft", "skeleton"), weight : 2i32, min_count : 5i32,
585        max_count : 5i32, }, StructureSpawnerData { entity_type :
586        Identifier::new("minecraft", "magma_cube"), weight : 3i32, min_count : 4i32,
587        max_count : 4i32, }], }
588    ],
589    step: StructureGenerationStep::UndergroundDecoration,
590    terrain_adjustment: TerrainAdjustment::None,
591    config: StructureConfigData::Empty,
592});
593static STRUCTURE_IGLOO: LazyLock<StructureData> = LazyLock::new(|| StructureData {
594    key: Identifier::new("minecraft", "igloo"),
595    id: OnceLock::new(),
596    structure_type: Identifier::new("minecraft", "igloo"),
597    allowed_biomes: vec![
598        Identifier::new("minecraft", "snowy_plains"), Identifier::new("minecraft",
599        "snowy_slopes"), Identifier::new("minecraft", "snowy_taiga")
600    ],
601    spawn_overrides: vec![],
602    step: StructureGenerationStep::SurfaceStructures,
603    terrain_adjustment: TerrainAdjustment::None,
604    config: StructureConfigData::Empty,
605});
606static STRUCTURE_JUNGLE_PYRAMID: LazyLock<StructureData> = LazyLock::new(|| StructureData {
607    key: Identifier::new("minecraft", "jungle_pyramid"),
608    id: OnceLock::new(),
609    structure_type: Identifier::new("minecraft", "jungle_temple"),
610    allowed_biomes: vec![
611        Identifier::new("minecraft", "bamboo_jungle"), Identifier::new("minecraft",
612        "jungle")
613    ],
614    spawn_overrides: vec![],
615    step: StructureGenerationStep::SurfaceStructures,
616    terrain_adjustment: TerrainAdjustment::None,
617    config: StructureConfigData::Empty,
618});
619static STRUCTURE_MANSION: LazyLock<StructureData> = LazyLock::new(|| StructureData {
620    key: Identifier::new("minecraft", "mansion"),
621    id: OnceLock::new(),
622    structure_type: Identifier::new("minecraft", "woodland_mansion"),
623    allowed_biomes: vec![
624        Identifier::new("minecraft", "dark_forest"), Identifier::new("minecraft",
625        "pale_garden")
626    ],
627    spawn_overrides: vec![],
628    step: StructureGenerationStep::SurfaceStructures,
629    terrain_adjustment: TerrainAdjustment::None,
630    config: StructureConfigData::Empty,
631});
632static STRUCTURE_MINESHAFT: LazyLock<StructureData> = LazyLock::new(|| StructureData {
633    key: Identifier::new("minecraft", "mineshaft"),
634    id: OnceLock::new(),
635    structure_type: Identifier::new("minecraft", "mineshaft"),
636    allowed_biomes: vec![
637        Identifier::new("minecraft", "bamboo_jungle"), Identifier::new("minecraft",
638        "beach"), Identifier::new("minecraft", "birch_forest"),
639        Identifier::new("minecraft", "cherry_grove"), Identifier::new("minecraft",
640        "cold_ocean"), Identifier::new("minecraft", "dappled_forest"),
641        Identifier::new("minecraft", "dark_forest"), Identifier::new("minecraft",
642        "deep_cold_ocean"), Identifier::new("minecraft", "deep_frozen_ocean"),
643        Identifier::new("minecraft", "deep_lukewarm_ocean"), Identifier::new("minecraft",
644        "deep_ocean"), Identifier::new("minecraft", "desert"),
645        Identifier::new("minecraft", "dripstone_caves"), Identifier::new("minecraft",
646        "flower_forest"), Identifier::new("minecraft", "forest"),
647        Identifier::new("minecraft", "frozen_ocean"), Identifier::new("minecraft",
648        "frozen_peaks"), Identifier::new("minecraft", "frozen_river"),
649        Identifier::new("minecraft", "grove"), Identifier::new("minecraft",
650        "ice_spikes"), Identifier::new("minecraft", "jagged_peaks"),
651        Identifier::new("minecraft", "jungle"), Identifier::new("minecraft",
652        "lukewarm_ocean"), Identifier::new("minecraft", "lush_caves"),
653        Identifier::new("minecraft", "mangrove_swamp"), Identifier::new("minecraft",
654        "meadow"), Identifier::new("minecraft", "mushroom_fields"),
655        Identifier::new("minecraft", "ocean"), Identifier::new("minecraft",
656        "old_growth_birch_forest"), Identifier::new("minecraft",
657        "old_growth_pine_taiga"), Identifier::new("minecraft",
658        "old_growth_spruce_taiga"), Identifier::new("minecraft", "pale_garden"),
659        Identifier::new("minecraft", "plains"), Identifier::new("minecraft", "river"),
660        Identifier::new("minecraft", "savanna"), Identifier::new("minecraft",
661        "savanna_plateau"), Identifier::new("minecraft", "snowy_beach"),
662        Identifier::new("minecraft", "snowy_plains"), Identifier::new("minecraft",
663        "snowy_slopes"), Identifier::new("minecraft", "snowy_taiga"),
664        Identifier::new("minecraft", "sparse_jungle"), Identifier::new("minecraft",
665        "stony_peaks"), Identifier::new("minecraft", "stony_shore"),
666        Identifier::new("minecraft", "sulfur_caves"), Identifier::new("minecraft",
667        "sunflower_plains"), Identifier::new("minecraft", "swamp"),
668        Identifier::new("minecraft", "taiga"), Identifier::new("minecraft",
669        "warm_ocean"), Identifier::new("minecraft", "windswept_forest"),
670        Identifier::new("minecraft", "windswept_gravelly_hills"),
671        Identifier::new("minecraft", "windswept_hills"), Identifier::new("minecraft",
672        "windswept_savanna")
673    ],
674    spawn_overrides: vec![],
675    step: StructureGenerationStep::UndergroundStructures,
676    terrain_adjustment: TerrainAdjustment::None,
677    config: StructureConfigData::Mineshaft {
678        mineshaft_type: MineshaftTypeData::Normal,
679    },
680});
681static STRUCTURE_MINESHAFT_MESA: LazyLock<StructureData> = LazyLock::new(|| StructureData {
682    key: Identifier::new("minecraft", "mineshaft_mesa"),
683    id: OnceLock::new(),
684    structure_type: Identifier::new("minecraft", "mineshaft"),
685    allowed_biomes: vec![
686        Identifier::new("minecraft", "badlands"), Identifier::new("minecraft",
687        "eroded_badlands"), Identifier::new("minecraft", "wooded_badlands")
688    ],
689    spawn_overrides: vec![],
690    step: StructureGenerationStep::UndergroundStructures,
691    terrain_adjustment: TerrainAdjustment::None,
692    config: StructureConfigData::Mineshaft {
693        mineshaft_type: MineshaftTypeData::Mesa,
694    },
695});
696static STRUCTURE_MONUMENT: LazyLock<StructureData> = LazyLock::new(|| StructureData {
697    key: Identifier::new("minecraft", "monument"),
698    id: OnceLock::new(),
699    structure_type: Identifier::new("minecraft", "ocean_monument"),
700    allowed_biomes: vec![
701        Identifier::new("minecraft", "deep_cold_ocean"), Identifier::new("minecraft",
702        "deep_frozen_ocean"), Identifier::new("minecraft", "deep_lukewarm_ocean"),
703        Identifier::new("minecraft", "deep_ocean")
704    ],
705    spawn_overrides: vec![
706        StructureSpawnOverrideData { category : "monster".to_string(), bounding_box :
707        StructureSpawnBoundingBox::Full, spawns : vec![StructureSpawnerData { entity_type
708        : Identifier::new("minecraft", "guardian"), weight : 1i32, min_count : 2i32,
709        max_count : 4i32, }], }, StructureSpawnOverrideData { category : "axolotls"
710        .to_string(), bounding_box : StructureSpawnBoundingBox::Full, spawns : vec![], },
711        StructureSpawnOverrideData { category : "underground_water_creature".to_string(),
712        bounding_box : StructureSpawnBoundingBox::Full, spawns : vec![], }
713    ],
714    step: StructureGenerationStep::SurfaceStructures,
715    terrain_adjustment: TerrainAdjustment::None,
716    config: StructureConfigData::Empty,
717});
718static STRUCTURE_NETHER_FOSSIL: LazyLock<StructureData> = LazyLock::new(|| StructureData {
719    key: Identifier::new("minecraft", "nether_fossil"),
720    id: OnceLock::new(),
721    structure_type: Identifier::new("minecraft", "nether_fossil"),
722    allowed_biomes: vec![Identifier::new("minecraft", "soul_sand_valley")],
723    spawn_overrides: vec![],
724    step: StructureGenerationStep::UndergroundDecoration,
725    terrain_adjustment: TerrainAdjustment::BeardThin,
726    config: StructureConfigData::NetherFossil {
727        height: HeightProviderData::Uniform {
728            min_inclusive: VerticalAnchorData::Absolute(32i32),
729            max_inclusive: VerticalAnchorData::BelowTop(2i32),
730        },
731    },
732});
733static STRUCTURE_OCEAN_RUIN_COLD: LazyLock<StructureData> = LazyLock::new(|| StructureData {
734    key: Identifier::new("minecraft", "ocean_ruin_cold"),
735    id: OnceLock::new(),
736    structure_type: Identifier::new("minecraft", "ocean_ruin"),
737    allowed_biomes: vec![
738        Identifier::new("minecraft", "cold_ocean"), Identifier::new("minecraft",
739        "deep_cold_ocean"), Identifier::new("minecraft", "deep_frozen_ocean"),
740        Identifier::new("minecraft", "deep_ocean"), Identifier::new("minecraft",
741        "frozen_ocean"), Identifier::new("minecraft", "ocean")
742    ],
743    spawn_overrides: vec![],
744    step: StructureGenerationStep::SurfaceStructures,
745    terrain_adjustment: TerrainAdjustment::None,
746    config: StructureConfigData::OceanRuin {
747        biome_temp: OceanRuinBiomeTempData::Cold,
748        large_probability: 0.3f32,
749        cluster_probability: 0.9f32,
750    },
751});
752static STRUCTURE_OCEAN_RUIN_WARM: LazyLock<StructureData> = LazyLock::new(|| StructureData {
753    key: Identifier::new("minecraft", "ocean_ruin_warm"),
754    id: OnceLock::new(),
755    structure_type: Identifier::new("minecraft", "ocean_ruin"),
756    allowed_biomes: vec![
757        Identifier::new("minecraft", "deep_lukewarm_ocean"), Identifier::new("minecraft",
758        "lukewarm_ocean"), Identifier::new("minecraft", "warm_ocean")
759    ],
760    spawn_overrides: vec![],
761    step: StructureGenerationStep::SurfaceStructures,
762    terrain_adjustment: TerrainAdjustment::None,
763    config: StructureConfigData::OceanRuin {
764        biome_temp: OceanRuinBiomeTempData::Warm,
765        large_probability: 0.3f32,
766        cluster_probability: 0.9f32,
767    },
768});
769static STRUCTURE_PILLAGER_OUTPOST: LazyLock<StructureData> = LazyLock::new(|| StructureData {
770    key: Identifier::new("minecraft", "pillager_outpost"),
771    id: OnceLock::new(),
772    structure_type: Identifier::new("minecraft", "jigsaw"),
773    allowed_biomes: vec![
774        Identifier::new("minecraft", "cherry_grove"), Identifier::new("minecraft",
775        "desert"), Identifier::new("minecraft", "frozen_peaks"),
776        Identifier::new("minecraft", "grove"), Identifier::new("minecraft",
777        "jagged_peaks"), Identifier::new("minecraft", "meadow"),
778        Identifier::new("minecraft", "plains"), Identifier::new("minecraft", "savanna"),
779        Identifier::new("minecraft", "snowy_plains"), Identifier::new("minecraft",
780        "snowy_slopes"), Identifier::new("minecraft", "stony_peaks"),
781        Identifier::new("minecraft", "taiga")
782    ],
783    spawn_overrides: vec![
784        StructureSpawnOverrideData { category : "monster".to_string(), bounding_box :
785        StructureSpawnBoundingBox::Full, spawns : vec![StructureSpawnerData { entity_type
786        : Identifier::new("minecraft", "pillager"), weight : 1i32, min_count : 1i32,
787        max_count : 1i32, }], }
788    ],
789    step: StructureGenerationStep::SurfaceStructures,
790    terrain_adjustment: TerrainAdjustment::BeardThin,
791    config: StructureConfigData::Jigsaw(JigsawConfig {
792        start_pool: Identifier::new("minecraft", "pillager_outpost/base_plates"),
793        max_depth: 7i32,
794        use_expansion_hack: true,
795        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
796        start_height: StartHeight::Constant(0i32),
797        max_distance_from_center: 80i32,
798        start_jigsaw_name: None,
799        dimension_padding: DimensionPadding {
800            bottom: 0i32,
801            top: 0i32,
802        },
803        pool_aliases: vec![],
804        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
805    }),
806});
807static STRUCTURE_RUINED_PORTAL: LazyLock<StructureData> = LazyLock::new(|| StructureData {
808    key: Identifier::new("minecraft", "ruined_portal"),
809    id: OnceLock::new(),
810    structure_type: Identifier::new("minecraft", "ruined_portal"),
811    allowed_biomes: vec![
812        Identifier::new("minecraft", "beach"), Identifier::new("minecraft",
813        "birch_forest"), Identifier::new("minecraft", "dappled_forest"),
814        Identifier::new("minecraft", "dark_forest"), Identifier::new("minecraft",
815        "dripstone_caves"), Identifier::new("minecraft", "flower_forest"),
816        Identifier::new("minecraft", "forest"), Identifier::new("minecraft",
817        "frozen_river"), Identifier::new("minecraft", "grove"),
818        Identifier::new("minecraft", "ice_spikes"), Identifier::new("minecraft",
819        "lush_caves"), Identifier::new("minecraft", "mushroom_fields"),
820        Identifier::new("minecraft", "old_growth_birch_forest"),
821        Identifier::new("minecraft", "old_growth_pine_taiga"),
822        Identifier::new("minecraft", "old_growth_spruce_taiga"),
823        Identifier::new("minecraft", "pale_garden"), Identifier::new("minecraft",
824        "plains"), Identifier::new("minecraft", "river"), Identifier::new("minecraft",
825        "savanna"), Identifier::new("minecraft", "snowy_beach"),
826        Identifier::new("minecraft", "snowy_plains"), Identifier::new("minecraft",
827        "snowy_taiga"), Identifier::new("minecraft", "sulfur_caves"),
828        Identifier::new("minecraft", "sunflower_plains"), Identifier::new("minecraft",
829        "taiga")
830    ],
831    spawn_overrides: vec![],
832    step: StructureGenerationStep::SurfaceStructures,
833    terrain_adjustment: TerrainAdjustment::None,
834    config: StructureConfigData::RuinedPortal {
835        setups: vec![
836            RuinedPortalSetupData { placement : RuinedPortalPlacementData::Underground,
837            weight : 0.5f32, air_pocket_probability : 1f32, can_be_cold : true, mossiness
838            : 0.2f32, overgrown : false, replace_with_blackstone : false, vines : false,
839            }, RuinedPortalSetupData { placement :
840            RuinedPortalPlacementData::OnLandSurface, weight : 0.5f32,
841            air_pocket_probability : 0f32, can_be_cold : true, mossiness : 0.2f32,
842            overgrown : false, replace_with_blackstone : false, vines : false, }
843        ],
844    },
845});
846static STRUCTURE_RUINED_PORTAL_DESERT: LazyLock<StructureData> = LazyLock::new(|| StructureData {
847    key: Identifier::new("minecraft", "ruined_portal_desert"),
848    id: OnceLock::new(),
849    structure_type: Identifier::new("minecraft", "ruined_portal"),
850    allowed_biomes: vec![Identifier::new("minecraft", "desert")],
851    spawn_overrides: vec![],
852    step: StructureGenerationStep::SurfaceStructures,
853    terrain_adjustment: TerrainAdjustment::None,
854    config: StructureConfigData::RuinedPortal {
855        setups: vec![
856            RuinedPortalSetupData { placement : RuinedPortalPlacementData::PartlyBuried,
857            weight : 1f32, air_pocket_probability : 0f32, can_be_cold : false, mossiness
858            : 0f32, overgrown : false, replace_with_blackstone : false, vines : false, }
859        ],
860    },
861});
862static STRUCTURE_RUINED_PORTAL_JUNGLE: LazyLock<StructureData> = LazyLock::new(|| StructureData {
863    key: Identifier::new("minecraft", "ruined_portal_jungle"),
864    id: OnceLock::new(),
865    structure_type: Identifier::new("minecraft", "ruined_portal"),
866    allowed_biomes: vec![
867        Identifier::new("minecraft", "bamboo_jungle"), Identifier::new("minecraft",
868        "jungle"), Identifier::new("minecraft", "sparse_jungle")
869    ],
870    spawn_overrides: vec![],
871    step: StructureGenerationStep::SurfaceStructures,
872    terrain_adjustment: TerrainAdjustment::None,
873    config: StructureConfigData::RuinedPortal {
874        setups: vec![
875            RuinedPortalSetupData { placement : RuinedPortalPlacementData::OnLandSurface,
876            weight : 1f32, air_pocket_probability : 0f32, can_be_cold : false, mossiness
877            : 0.8f32, overgrown : true, replace_with_blackstone : false, vines : true, }
878        ],
879    },
880});
881static STRUCTURE_RUINED_PORTAL_MOUNTAIN: LazyLock<StructureData> = LazyLock::new(|| StructureData {
882    key: Identifier::new("minecraft", "ruined_portal_mountain"),
883    id: OnceLock::new(),
884    structure_type: Identifier::new("minecraft", "ruined_portal"),
885    allowed_biomes: vec![
886        Identifier::new("minecraft", "badlands"), Identifier::new("minecraft",
887        "cherry_grove"), Identifier::new("minecraft", "eroded_badlands"),
888        Identifier::new("minecraft", "frozen_peaks"), Identifier::new("minecraft",
889        "jagged_peaks"), Identifier::new("minecraft", "meadow"),
890        Identifier::new("minecraft", "savanna_plateau"), Identifier::new("minecraft",
891        "snowy_slopes"), Identifier::new("minecraft", "stony_peaks"),
892        Identifier::new("minecraft", "stony_shore"), Identifier::new("minecraft",
893        "windswept_forest"), Identifier::new("minecraft", "windswept_gravelly_hills"),
894        Identifier::new("minecraft", "windswept_hills"), Identifier::new("minecraft",
895        "windswept_savanna"), Identifier::new("minecraft", "wooded_badlands")
896    ],
897    spawn_overrides: vec![],
898    step: StructureGenerationStep::SurfaceStructures,
899    terrain_adjustment: TerrainAdjustment::None,
900    config: StructureConfigData::RuinedPortal {
901        setups: vec![
902            RuinedPortalSetupData { placement : RuinedPortalPlacementData::InMountain,
903            weight : 0.5f32, air_pocket_probability : 1f32, can_be_cold : true, mossiness
904            : 0.2f32, overgrown : false, replace_with_blackstone : false, vines : false,
905            }, RuinedPortalSetupData { placement :
906            RuinedPortalPlacementData::OnLandSurface, weight : 0.5f32,
907            air_pocket_probability : 0f32, can_be_cold : true, mossiness : 0.2f32,
908            overgrown : false, replace_with_blackstone : false, vines : false, }
909        ],
910    },
911});
912static STRUCTURE_RUINED_PORTAL_NETHER: LazyLock<StructureData> = LazyLock::new(|| StructureData {
913    key: Identifier::new("minecraft", "ruined_portal_nether"),
914    id: OnceLock::new(),
915    structure_type: Identifier::new("minecraft", "ruined_portal"),
916    allowed_biomes: vec![
917        Identifier::new("minecraft", "basalt_deltas"), Identifier::new("minecraft",
918        "crimson_forest"), Identifier::new("minecraft", "nether_wastes"),
919        Identifier::new("minecraft", "soul_sand_valley"), Identifier::new("minecraft",
920        "warped_forest")
921    ],
922    spawn_overrides: vec![],
923    step: StructureGenerationStep::SurfaceStructures,
924    terrain_adjustment: TerrainAdjustment::None,
925    config: StructureConfigData::RuinedPortal {
926        setups: vec![
927            RuinedPortalSetupData { placement : RuinedPortalPlacementData::InNether,
928            weight : 1f32, air_pocket_probability : 0f32, can_be_cold : false, mossiness
929            : 0f32, overgrown : false, replace_with_blackstone : true, vines : false, }
930        ],
931    },
932});
933static STRUCTURE_RUINED_PORTAL_OCEAN: LazyLock<StructureData> = LazyLock::new(|| StructureData {
934    key: Identifier::new("minecraft", "ruined_portal_ocean"),
935    id: OnceLock::new(),
936    structure_type: Identifier::new("minecraft", "ruined_portal"),
937    allowed_biomes: vec![
938        Identifier::new("minecraft", "cold_ocean"), Identifier::new("minecraft",
939        "deep_cold_ocean"), Identifier::new("minecraft", "deep_frozen_ocean"),
940        Identifier::new("minecraft", "deep_lukewarm_ocean"), Identifier::new("minecraft",
941        "deep_ocean"), Identifier::new("minecraft", "frozen_ocean"),
942        Identifier::new("minecraft", "lukewarm_ocean"), Identifier::new("minecraft",
943        "ocean"), Identifier::new("minecraft", "warm_ocean")
944    ],
945    spawn_overrides: vec![],
946    step: StructureGenerationStep::SurfaceStructures,
947    terrain_adjustment: TerrainAdjustment::None,
948    config: StructureConfigData::RuinedPortal {
949        setups: vec![
950            RuinedPortalSetupData { placement : RuinedPortalPlacementData::OnOceanFloor,
951            weight : 1f32, air_pocket_probability : 0f32, can_be_cold : true, mossiness :
952            0.8f32, overgrown : false, replace_with_blackstone : false, vines : false, }
953        ],
954    },
955});
956static STRUCTURE_RUINED_PORTAL_SWAMP: LazyLock<StructureData> = LazyLock::new(|| StructureData {
957    key: Identifier::new("minecraft", "ruined_portal_swamp"),
958    id: OnceLock::new(),
959    structure_type: Identifier::new("minecraft", "ruined_portal"),
960    allowed_biomes: vec![
961        Identifier::new("minecraft", "mangrove_swamp"), Identifier::new("minecraft",
962        "swamp")
963    ],
964    spawn_overrides: vec![],
965    step: StructureGenerationStep::SurfaceStructures,
966    terrain_adjustment: TerrainAdjustment::None,
967    config: StructureConfigData::RuinedPortal {
968        setups: vec![
969            RuinedPortalSetupData { placement : RuinedPortalPlacementData::OnOceanFloor,
970            weight : 1f32, air_pocket_probability : 0f32, can_be_cold : false, mossiness
971            : 0.5f32, overgrown : false, replace_with_blackstone : false, vines : true, }
972        ],
973    },
974});
975static STRUCTURE_SHIPWRECK: LazyLock<StructureData> = LazyLock::new(|| StructureData {
976    key: Identifier::new("minecraft", "shipwreck"),
977    id: OnceLock::new(),
978    structure_type: Identifier::new("minecraft", "shipwreck"),
979    allowed_biomes: vec![
980        Identifier::new("minecraft", "cold_ocean"), Identifier::new("minecraft",
981        "deep_cold_ocean"), Identifier::new("minecraft", "deep_frozen_ocean"),
982        Identifier::new("minecraft", "deep_lukewarm_ocean"), Identifier::new("minecraft",
983        "deep_ocean"), Identifier::new("minecraft", "frozen_ocean"),
984        Identifier::new("minecraft", "lukewarm_ocean"), Identifier::new("minecraft",
985        "ocean"), Identifier::new("minecraft", "warm_ocean")
986    ],
987    spawn_overrides: vec![],
988    step: StructureGenerationStep::SurfaceStructures,
989    terrain_adjustment: TerrainAdjustment::None,
990    config: StructureConfigData::Shipwreck {
991        is_beached: false,
992    },
993});
994static STRUCTURE_SHIPWRECK_BEACHED: LazyLock<StructureData> = LazyLock::new(|| StructureData {
995    key: Identifier::new("minecraft", "shipwreck_beached"),
996    id: OnceLock::new(),
997    structure_type: Identifier::new("minecraft", "shipwreck"),
998    allowed_biomes: vec![
999        Identifier::new("minecraft", "beach"), Identifier::new("minecraft",
1000        "snowy_beach")
1001    ],
1002    spawn_overrides: vec![],
1003    step: StructureGenerationStep::SurfaceStructures,
1004    terrain_adjustment: TerrainAdjustment::None,
1005    config: StructureConfigData::Shipwreck {
1006        is_beached: true,
1007    },
1008});
1009static STRUCTURE_STRONGHOLD: LazyLock<StructureData> = LazyLock::new(|| StructureData {
1010    key: Identifier::new("minecraft", "stronghold"),
1011    id: OnceLock::new(),
1012    structure_type: Identifier::new("minecraft", "stronghold"),
1013    allowed_biomes: vec![
1014        Identifier::new("minecraft", "badlands"), Identifier::new("minecraft",
1015        "bamboo_jungle"), Identifier::new("minecraft", "beach"),
1016        Identifier::new("minecraft", "birch_forest"), Identifier::new("minecraft",
1017        "cherry_grove"), Identifier::new("minecraft", "cold_ocean"),
1018        Identifier::new("minecraft", "dappled_forest"), Identifier::new("minecraft",
1019        "dark_forest"), Identifier::new("minecraft", "deep_cold_ocean"),
1020        Identifier::new("minecraft", "deep_dark"), Identifier::new("minecraft",
1021        "deep_frozen_ocean"), Identifier::new("minecraft", "deep_lukewarm_ocean"),
1022        Identifier::new("minecraft", "deep_ocean"), Identifier::new("minecraft",
1023        "desert"), Identifier::new("minecraft", "dripstone_caves"),
1024        Identifier::new("minecraft", "eroded_badlands"), Identifier::new("minecraft",
1025        "flower_forest"), Identifier::new("minecraft", "forest"),
1026        Identifier::new("minecraft", "frozen_ocean"), Identifier::new("minecraft",
1027        "frozen_peaks"), Identifier::new("minecraft", "frozen_river"),
1028        Identifier::new("minecraft", "grove"), Identifier::new("minecraft",
1029        "ice_spikes"), Identifier::new("minecraft", "jagged_peaks"),
1030        Identifier::new("minecraft", "jungle"), Identifier::new("minecraft",
1031        "lukewarm_ocean"), Identifier::new("minecraft", "lush_caves"),
1032        Identifier::new("minecraft", "mangrove_swamp"), Identifier::new("minecraft",
1033        "meadow"), Identifier::new("minecraft", "mushroom_fields"),
1034        Identifier::new("minecraft", "ocean"), Identifier::new("minecraft",
1035        "old_growth_birch_forest"), Identifier::new("minecraft",
1036        "old_growth_pine_taiga"), Identifier::new("minecraft",
1037        "old_growth_spruce_taiga"), Identifier::new("minecraft", "pale_garden"),
1038        Identifier::new("minecraft", "plains"), Identifier::new("minecraft", "river"),
1039        Identifier::new("minecraft", "savanna"), Identifier::new("minecraft",
1040        "savanna_plateau"), Identifier::new("minecraft", "snowy_beach"),
1041        Identifier::new("minecraft", "snowy_plains"), Identifier::new("minecraft",
1042        "snowy_slopes"), Identifier::new("minecraft", "snowy_taiga"),
1043        Identifier::new("minecraft", "sparse_jungle"), Identifier::new("minecraft",
1044        "stony_peaks"), Identifier::new("minecraft", "stony_shore"),
1045        Identifier::new("minecraft", "sulfur_caves"), Identifier::new("minecraft",
1046        "sunflower_plains"), Identifier::new("minecraft", "swamp"),
1047        Identifier::new("minecraft", "taiga"), Identifier::new("minecraft",
1048        "warm_ocean"), Identifier::new("minecraft", "windswept_forest"),
1049        Identifier::new("minecraft", "windswept_gravelly_hills"),
1050        Identifier::new("minecraft", "windswept_hills"), Identifier::new("minecraft",
1051        "windswept_savanna"), Identifier::new("minecraft", "wooded_badlands")
1052    ],
1053    spawn_overrides: vec![],
1054    step: StructureGenerationStep::SurfaceStructures,
1055    terrain_adjustment: TerrainAdjustment::Bury,
1056    config: StructureConfigData::Empty,
1057});
1058static STRUCTURE_SWAMP_HUT: LazyLock<StructureData> = LazyLock::new(|| StructureData {
1059    key: Identifier::new("minecraft", "swamp_hut"),
1060    id: OnceLock::new(),
1061    structure_type: Identifier::new("minecraft", "swamp_hut"),
1062    allowed_biomes: vec![Identifier::new("minecraft", "swamp")],
1063    spawn_overrides: vec![
1064        StructureSpawnOverrideData { category : "monster".to_string(), bounding_box :
1065        StructureSpawnBoundingBox::Piece, spawns : vec![StructureSpawnerData {
1066        entity_type : Identifier::new("minecraft", "witch"), weight : 1i32, min_count :
1067        1i32, max_count : 1i32, }], }, StructureSpawnOverrideData { category : "creature"
1068        .to_string(), bounding_box : StructureSpawnBoundingBox::Piece, spawns :
1069        vec![StructureSpawnerData { entity_type : Identifier::new("minecraft", "cat"),
1070        weight : 1i32, min_count : 1i32, max_count : 1i32, }], }
1071    ],
1072    step: StructureGenerationStep::SurfaceStructures,
1073    terrain_adjustment: TerrainAdjustment::None,
1074    config: StructureConfigData::Empty,
1075});
1076static STRUCTURE_TRAIL_RUINS: LazyLock<StructureData> = LazyLock::new(|| StructureData {
1077    key: Identifier::new("minecraft", "trail_ruins"),
1078    id: OnceLock::new(),
1079    structure_type: Identifier::new("minecraft", "jigsaw"),
1080    allowed_biomes: vec![
1081        Identifier::new("minecraft", "jungle"), Identifier::new("minecraft",
1082        "old_growth_birch_forest"), Identifier::new("minecraft",
1083        "old_growth_pine_taiga"), Identifier::new("minecraft",
1084        "old_growth_spruce_taiga"), Identifier::new("minecraft", "snowy_taiga"),
1085        Identifier::new("minecraft", "taiga")
1086    ],
1087    spawn_overrides: vec![],
1088    step: StructureGenerationStep::UndergroundStructures,
1089    terrain_adjustment: TerrainAdjustment::Bury,
1090    config: StructureConfigData::Jigsaw(JigsawConfig {
1091        start_pool: Identifier::new("minecraft", "trail_ruins/tower"),
1092        max_depth: 7i32,
1093        use_expansion_hack: false,
1094        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
1095        start_height: StartHeight::Constant(-15i32),
1096        max_distance_from_center: 80i32,
1097        start_jigsaw_name: None,
1098        dimension_padding: DimensionPadding {
1099            bottom: 0i32,
1100            top: 0i32,
1101        },
1102        pool_aliases: vec![],
1103        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
1104    }),
1105});
1106static STRUCTURE_TRIAL_CHAMBERS: LazyLock<StructureData> = LazyLock::new(|| StructureData {
1107    key: Identifier::new("minecraft", "trial_chambers"),
1108    id: OnceLock::new(),
1109    structure_type: Identifier::new("minecraft", "jigsaw"),
1110    allowed_biomes: vec![
1111        Identifier::new("minecraft", "badlands"), Identifier::new("minecraft",
1112        "bamboo_jungle"), Identifier::new("minecraft", "beach"),
1113        Identifier::new("minecraft", "birch_forest"), Identifier::new("minecraft",
1114        "cherry_grove"), Identifier::new("minecraft", "cold_ocean"),
1115        Identifier::new("minecraft", "dappled_forest"), Identifier::new("minecraft",
1116        "dark_forest"), Identifier::new("minecraft", "deep_cold_ocean"),
1117        Identifier::new("minecraft", "deep_frozen_ocean"), Identifier::new("minecraft",
1118        "deep_lukewarm_ocean"), Identifier::new("minecraft", "deep_ocean"),
1119        Identifier::new("minecraft", "desert"), Identifier::new("minecraft",
1120        "dripstone_caves"), Identifier::new("minecraft", "eroded_badlands"),
1121        Identifier::new("minecraft", "flower_forest"), Identifier::new("minecraft",
1122        "forest"), Identifier::new("minecraft", "frozen_ocean"),
1123        Identifier::new("minecraft", "frozen_peaks"), Identifier::new("minecraft",
1124        "frozen_river"), Identifier::new("minecraft", "grove"),
1125        Identifier::new("minecraft", "ice_spikes"), Identifier::new("minecraft",
1126        "jagged_peaks"), Identifier::new("minecraft", "jungle"),
1127        Identifier::new("minecraft", "lukewarm_ocean"), Identifier::new("minecraft",
1128        "lush_caves"), Identifier::new("minecraft", "mangrove_swamp"),
1129        Identifier::new("minecraft", "meadow"), Identifier::new("minecraft",
1130        "mushroom_fields"), Identifier::new("minecraft", "ocean"),
1131        Identifier::new("minecraft", "old_growth_birch_forest"),
1132        Identifier::new("minecraft", "old_growth_pine_taiga"),
1133        Identifier::new("minecraft", "old_growth_spruce_taiga"),
1134        Identifier::new("minecraft", "pale_garden"), Identifier::new("minecraft",
1135        "plains"), Identifier::new("minecraft", "river"), Identifier::new("minecraft",
1136        "savanna"), Identifier::new("minecraft", "savanna_plateau"),
1137        Identifier::new("minecraft", "snowy_beach"), Identifier::new("minecraft",
1138        "snowy_plains"), Identifier::new("minecraft", "snowy_slopes"),
1139        Identifier::new("minecraft", "snowy_taiga"), Identifier::new("minecraft",
1140        "sparse_jungle"), Identifier::new("minecraft", "stony_peaks"),
1141        Identifier::new("minecraft", "stony_shore"), Identifier::new("minecraft",
1142        "sulfur_caves"), Identifier::new("minecraft", "sunflower_plains"),
1143        Identifier::new("minecraft", "swamp"), Identifier::new("minecraft", "taiga"),
1144        Identifier::new("minecraft", "warm_ocean"), Identifier::new("minecraft",
1145        "windswept_forest"), Identifier::new("minecraft", "windswept_gravelly_hills"),
1146        Identifier::new("minecraft", "windswept_hills"), Identifier::new("minecraft",
1147        "windswept_savanna"), Identifier::new("minecraft", "wooded_badlands")
1148    ],
1149    spawn_overrides: vec![
1150        StructureSpawnOverrideData { category : "water_creature".to_string(),
1151        bounding_box : StructureSpawnBoundingBox::Piece, spawns : vec![], },
1152        StructureSpawnOverrideData { category : "misc".to_string(), bounding_box :
1153        StructureSpawnBoundingBox::Piece, spawns : vec![], }, StructureSpawnOverrideData
1154        { category : "axolotls".to_string(), bounding_box :
1155        StructureSpawnBoundingBox::Piece, spawns : vec![], }, StructureSpawnOverrideData
1156        { category : "creature".to_string(), bounding_box :
1157        StructureSpawnBoundingBox::Piece, spawns : vec![], }, StructureSpawnOverrideData
1158        { category : "monster".to_string(), bounding_box :
1159        StructureSpawnBoundingBox::Piece, spawns : vec![], }, StructureSpawnOverrideData
1160        { category : "ambient".to_string(), bounding_box :
1161        StructureSpawnBoundingBox::Piece, spawns : vec![], }, StructureSpawnOverrideData
1162        { category : "water_ambient".to_string(), bounding_box :
1163        StructureSpawnBoundingBox::Piece, spawns : vec![], }, StructureSpawnOverrideData
1164        { category : "underground_water_creature".to_string(), bounding_box :
1165        StructureSpawnBoundingBox::Piece, spawns : vec![], }
1166    ],
1167    step: StructureGenerationStep::UndergroundStructures,
1168    terrain_adjustment: TerrainAdjustment::Encapsulate,
1169    config: StructureConfigData::Jigsaw(JigsawConfig {
1170        start_pool: Identifier::new("minecraft", "trial_chambers/chamber/end"),
1171        max_depth: 20i32,
1172        use_expansion_hack: false,
1173        project_start_to_heightmap: None,
1174        start_height: StartHeight::Uniform {
1175            min: -40i32,
1176            max: -20i32,
1177        },
1178        max_distance_from_center: 116i32,
1179        start_jigsaw_name: None,
1180        dimension_padding: DimensionPadding {
1181            bottom: 10i32,
1182            top: 10i32,
1183        },
1184        pool_aliases: vec![
1185            PoolAlias::RandomGroup { groups : vec![(vec![(Identifier::new("minecraft",
1186            "trial_chambers/spawner/contents/ranged"), Identifier::new("minecraft",
1187            "trial_chambers/spawner/ranged/skeleton")), (Identifier::new("minecraft",
1188            "trial_chambers/spawner/contents/slow_ranged"), Identifier::new("minecraft",
1189            "trial_chambers/spawner/slow_ranged/skeleton"))], 1i32),
1190            (vec![(Identifier::new("minecraft",
1191            "trial_chambers/spawner/contents/ranged"), Identifier::new("minecraft",
1192            "trial_chambers/spawner/ranged/stray")), (Identifier::new("minecraft",
1193            "trial_chambers/spawner/contents/slow_ranged"), Identifier::new("minecraft",
1194            "trial_chambers/spawner/slow_ranged/stray"))], 1i32),
1195            (vec![(Identifier::new("minecraft",
1196            "trial_chambers/spawner/contents/ranged"), Identifier::new("minecraft",
1197            "trial_chambers/spawner/ranged/poison_skeleton")),
1198            (Identifier::new("minecraft", "trial_chambers/spawner/contents/slow_ranged"),
1199            Identifier::new("minecraft",
1200            "trial_chambers/spawner/slow_ranged/poison_skeleton"))], 1i32)] },
1201            PoolAlias::Random { alias : Identifier::new("minecraft",
1202            "trial_chambers/spawner/contents/melee"), targets :
1203            vec![(Identifier::new("minecraft", "trial_chambers/spawner/melee/zombie"),
1204            1i32), (Identifier::new("minecraft", "trial_chambers/spawner/melee/husk"),
1205            1i32), (Identifier::new("minecraft", "trial_chambers/spawner/melee/spider"),
1206            1i32)] }, PoolAlias::Random { alias : Identifier::new("minecraft",
1207            "trial_chambers/spawner/contents/small_melee"), targets :
1208            vec![(Identifier::new("minecraft",
1209            "trial_chambers/spawner/small_melee/slime"), 1i32),
1210            (Identifier::new("minecraft",
1211            "trial_chambers/spawner/small_melee/cave_spider"), 1i32),
1212            (Identifier::new("minecraft",
1213            "trial_chambers/spawner/small_melee/silverfish"), 1i32),
1214            (Identifier::new("minecraft",
1215            "trial_chambers/spawner/small_melee/baby_zombie"), 1i32)] }
1216        ],
1217        liquid_settings: LiquidSettingsData::IgnoreWaterlogging,
1218    }),
1219});
1220static STRUCTURE_VILLAGE_DESERT: LazyLock<StructureData> = LazyLock::new(|| StructureData {
1221    key: Identifier::new("minecraft", "village_desert"),
1222    id: OnceLock::new(),
1223    structure_type: Identifier::new("minecraft", "jigsaw"),
1224    allowed_biomes: vec![Identifier::new("minecraft", "desert")],
1225    spawn_overrides: vec![],
1226    step: StructureGenerationStep::SurfaceStructures,
1227    terrain_adjustment: TerrainAdjustment::BeardThin,
1228    config: StructureConfigData::Jigsaw(JigsawConfig {
1229        start_pool: Identifier::new("minecraft", "village/desert/town_centers"),
1230        max_depth: 6i32,
1231        use_expansion_hack: true,
1232        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
1233        start_height: StartHeight::Constant(0i32),
1234        max_distance_from_center: 80i32,
1235        start_jigsaw_name: None,
1236        dimension_padding: DimensionPadding {
1237            bottom: 0i32,
1238            top: 0i32,
1239        },
1240        pool_aliases: vec![],
1241        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
1242    }),
1243});
1244static STRUCTURE_VILLAGE_PLAINS: LazyLock<StructureData> = LazyLock::new(|| StructureData {
1245    key: Identifier::new("minecraft", "village_plains"),
1246    id: OnceLock::new(),
1247    structure_type: Identifier::new("minecraft", "jigsaw"),
1248    allowed_biomes: vec![
1249        Identifier::new("minecraft", "meadow"), Identifier::new("minecraft", "plains")
1250    ],
1251    spawn_overrides: vec![],
1252    step: StructureGenerationStep::SurfaceStructures,
1253    terrain_adjustment: TerrainAdjustment::BeardThin,
1254    config: StructureConfigData::Jigsaw(JigsawConfig {
1255        start_pool: Identifier::new("minecraft", "village/plains/town_centers"),
1256        max_depth: 6i32,
1257        use_expansion_hack: true,
1258        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
1259        start_height: StartHeight::Constant(0i32),
1260        max_distance_from_center: 80i32,
1261        start_jigsaw_name: None,
1262        dimension_padding: DimensionPadding {
1263            bottom: 0i32,
1264            top: 0i32,
1265        },
1266        pool_aliases: vec![],
1267        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
1268    }),
1269});
1270static STRUCTURE_VILLAGE_SAVANNA: LazyLock<StructureData> = LazyLock::new(|| StructureData {
1271    key: Identifier::new("minecraft", "village_savanna"),
1272    id: OnceLock::new(),
1273    structure_type: Identifier::new("minecraft", "jigsaw"),
1274    allowed_biomes: vec![Identifier::new("minecraft", "savanna")],
1275    spawn_overrides: vec![],
1276    step: StructureGenerationStep::SurfaceStructures,
1277    terrain_adjustment: TerrainAdjustment::BeardThin,
1278    config: StructureConfigData::Jigsaw(JigsawConfig {
1279        start_pool: Identifier::new("minecraft", "village/savanna/town_centers"),
1280        max_depth: 6i32,
1281        use_expansion_hack: true,
1282        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
1283        start_height: StartHeight::Constant(0i32),
1284        max_distance_from_center: 80i32,
1285        start_jigsaw_name: None,
1286        dimension_padding: DimensionPadding {
1287            bottom: 0i32,
1288            top: 0i32,
1289        },
1290        pool_aliases: vec![],
1291        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
1292    }),
1293});
1294static STRUCTURE_VILLAGE_SNOWY: LazyLock<StructureData> = LazyLock::new(|| StructureData {
1295    key: Identifier::new("minecraft", "village_snowy"),
1296    id: OnceLock::new(),
1297    structure_type: Identifier::new("minecraft", "jigsaw"),
1298    allowed_biomes: vec![Identifier::new("minecraft", "snowy_plains")],
1299    spawn_overrides: vec![],
1300    step: StructureGenerationStep::SurfaceStructures,
1301    terrain_adjustment: TerrainAdjustment::BeardThin,
1302    config: StructureConfigData::Jigsaw(JigsawConfig {
1303        start_pool: Identifier::new("minecraft", "village/snowy/town_centers"),
1304        max_depth: 6i32,
1305        use_expansion_hack: true,
1306        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
1307        start_height: StartHeight::Constant(0i32),
1308        max_distance_from_center: 80i32,
1309        start_jigsaw_name: None,
1310        dimension_padding: DimensionPadding {
1311            bottom: 0i32,
1312            top: 0i32,
1313        },
1314        pool_aliases: vec![],
1315        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
1316    }),
1317});
1318static STRUCTURE_VILLAGE_TAIGA: LazyLock<StructureData> = LazyLock::new(|| StructureData {
1319    key: Identifier::new("minecraft", "village_taiga"),
1320    id: OnceLock::new(),
1321    structure_type: Identifier::new("minecraft", "jigsaw"),
1322    allowed_biomes: vec![Identifier::new("minecraft", "taiga")],
1323    spawn_overrides: vec![],
1324    step: StructureGenerationStep::SurfaceStructures,
1325    terrain_adjustment: TerrainAdjustment::BeardThin,
1326    config: StructureConfigData::Jigsaw(JigsawConfig {
1327        start_pool: Identifier::new("minecraft", "village/taiga/town_centers"),
1328        max_depth: 6i32,
1329        use_expansion_hack: true,
1330        project_start_to_heightmap: Some("WORLD_SURFACE_WG".to_string()),
1331        start_height: StartHeight::Constant(0i32),
1332        max_distance_from_center: 80i32,
1333        start_jigsaw_name: None,
1334        dimension_padding: DimensionPadding {
1335            bottom: 0i32,
1336            top: 0i32,
1337        },
1338        pool_aliases: vec![],
1339        liquid_settings: LiquidSettingsData::ApplyWaterlogging,
1340    }),
1341});
1342pub fn register_structures(registry: &mut StructureRegistry) {
1343    registry.register(&*STRUCTURE_ABANDONED_CAMP_BAMBOO_JUNGLE);
1344    registry.register(&*STRUCTURE_ABANDONED_CAMP_BIRCH_FOREST);
1345    registry.register(&*STRUCTURE_ABANDONED_CAMP_CHERRY_GROVE);
1346    registry.register(&*STRUCTURE_ABANDONED_CAMP_DAPPLED_FOREST);
1347    registry.register(&*STRUCTURE_ABANDONED_CAMP_FLOWER_FOREST);
1348    registry.register(&*STRUCTURE_ABANDONED_CAMP_FOREST);
1349    registry.register(&*STRUCTURE_ABANDONED_CAMP_MEADOW);
1350    registry.register(&*STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_BIRCH_FOREST);
1351    registry.register(&*STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_PINE_TAIGA);
1352    registry.register(&*STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_SPRUCE_TAIGA);
1353    registry.register(&*STRUCTURE_ABANDONED_CAMP_PALE_GARDEN);
1354    registry.register(&*STRUCTURE_ABANDONED_CAMP_SAVANNA);
1355    registry.register(&*STRUCTURE_ABANDONED_CAMP_SNOWY_TAIGA);
1356    registry.register(&*STRUCTURE_ABANDONED_CAMP_SPARSE_JUNGLE);
1357    registry.register(&*STRUCTURE_ABANDONED_CAMP_SWAMP);
1358    registry.register(&*STRUCTURE_ABANDONED_CAMP_TAIGA);
1359    registry.register(&*STRUCTURE_ABANDONED_CAMP_WINDSWEPT_FOREST);
1360    registry.register(&*STRUCTURE_ABANDONED_CAMP_WOODED_BADLANDS);
1361    registry.register(&*STRUCTURE_ANCIENT_CITY);
1362    registry.register(&*STRUCTURE_BASTION_REMNANT);
1363    registry.register(&*STRUCTURE_BURIED_TREASURE);
1364    registry.register(&*STRUCTURE_DESERT_PYRAMID);
1365    registry.register(&*STRUCTURE_END_CITY);
1366    registry.register(&*STRUCTURE_FORTRESS);
1367    registry.register(&*STRUCTURE_IGLOO);
1368    registry.register(&*STRUCTURE_JUNGLE_PYRAMID);
1369    registry.register(&*STRUCTURE_MANSION);
1370    registry.register(&*STRUCTURE_MINESHAFT);
1371    registry.register(&*STRUCTURE_MINESHAFT_MESA);
1372    registry.register(&*STRUCTURE_MONUMENT);
1373    registry.register(&*STRUCTURE_NETHER_FOSSIL);
1374    registry.register(&*STRUCTURE_OCEAN_RUIN_COLD);
1375    registry.register(&*STRUCTURE_OCEAN_RUIN_WARM);
1376    registry.register(&*STRUCTURE_PILLAGER_OUTPOST);
1377    registry.register(&*STRUCTURE_RUINED_PORTAL);
1378    registry.register(&*STRUCTURE_RUINED_PORTAL_DESERT);
1379    registry.register(&*STRUCTURE_RUINED_PORTAL_JUNGLE);
1380    registry.register(&*STRUCTURE_RUINED_PORTAL_MOUNTAIN);
1381    registry.register(&*STRUCTURE_RUINED_PORTAL_NETHER);
1382    registry.register(&*STRUCTURE_RUINED_PORTAL_OCEAN);
1383    registry.register(&*STRUCTURE_RUINED_PORTAL_SWAMP);
1384    registry.register(&*STRUCTURE_SHIPWRECK);
1385    registry.register(&*STRUCTURE_SHIPWRECK_BEACHED);
1386    registry.register(&*STRUCTURE_STRONGHOLD);
1387    registry.register(&*STRUCTURE_SWAMP_HUT);
1388    registry.register(&*STRUCTURE_TRAIL_RUINS);
1389    registry.register(&*STRUCTURE_TRIAL_CHAMBERS);
1390    registry.register(&*STRUCTURE_VILLAGE_DESERT);
1391    registry.register(&*STRUCTURE_VILLAGE_PLAINS);
1392    registry.register(&*STRUCTURE_VILLAGE_SAVANNA);
1393    registry.register(&*STRUCTURE_VILLAGE_SNOWY);
1394    registry.register(&*STRUCTURE_VILLAGE_TAIGA);
1395}
1396pub fn vanilla_structures() -> Vec<StructureRef> {
1397    vec![
1398        & * STRUCTURE_ABANDONED_CAMP_BAMBOO_JUNGLE, & *
1399        STRUCTURE_ABANDONED_CAMP_BIRCH_FOREST, & * STRUCTURE_ABANDONED_CAMP_CHERRY_GROVE,
1400        & * STRUCTURE_ABANDONED_CAMP_DAPPLED_FOREST, & *
1401        STRUCTURE_ABANDONED_CAMP_FLOWER_FOREST, & * STRUCTURE_ABANDONED_CAMP_FOREST, & *
1402        STRUCTURE_ABANDONED_CAMP_MEADOW, & *
1403        STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_BIRCH_FOREST, & *
1404        STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_PINE_TAIGA, & *
1405        STRUCTURE_ABANDONED_CAMP_OLD_GROWTH_SPRUCE_TAIGA, & *
1406        STRUCTURE_ABANDONED_CAMP_PALE_GARDEN, & * STRUCTURE_ABANDONED_CAMP_SAVANNA, & *
1407        STRUCTURE_ABANDONED_CAMP_SNOWY_TAIGA, & * STRUCTURE_ABANDONED_CAMP_SPARSE_JUNGLE,
1408        & * STRUCTURE_ABANDONED_CAMP_SWAMP, & * STRUCTURE_ABANDONED_CAMP_TAIGA, & *
1409        STRUCTURE_ABANDONED_CAMP_WINDSWEPT_FOREST, & *
1410        STRUCTURE_ABANDONED_CAMP_WOODED_BADLANDS, & * STRUCTURE_ANCIENT_CITY, & *
1411        STRUCTURE_BASTION_REMNANT, & * STRUCTURE_BURIED_TREASURE, & *
1412        STRUCTURE_DESERT_PYRAMID, & * STRUCTURE_END_CITY, & * STRUCTURE_FORTRESS, & *
1413        STRUCTURE_IGLOO, & * STRUCTURE_JUNGLE_PYRAMID, & * STRUCTURE_MANSION, & *
1414        STRUCTURE_MINESHAFT, & * STRUCTURE_MINESHAFT_MESA, & * STRUCTURE_MONUMENT, & *
1415        STRUCTURE_NETHER_FOSSIL, & * STRUCTURE_OCEAN_RUIN_COLD, & *
1416        STRUCTURE_OCEAN_RUIN_WARM, & * STRUCTURE_PILLAGER_OUTPOST, & *
1417        STRUCTURE_RUINED_PORTAL, & * STRUCTURE_RUINED_PORTAL_DESERT, & *
1418        STRUCTURE_RUINED_PORTAL_JUNGLE, & * STRUCTURE_RUINED_PORTAL_MOUNTAIN, & *
1419        STRUCTURE_RUINED_PORTAL_NETHER, & * STRUCTURE_RUINED_PORTAL_OCEAN, & *
1420        STRUCTURE_RUINED_PORTAL_SWAMP, & * STRUCTURE_SHIPWRECK, & *
1421        STRUCTURE_SHIPWRECK_BEACHED, & * STRUCTURE_STRONGHOLD, & * STRUCTURE_SWAMP_HUT, &
1422        * STRUCTURE_TRAIL_RUINS, & * STRUCTURE_TRIAL_CHAMBERS, & *
1423        STRUCTURE_VILLAGE_DESERT, & * STRUCTURE_VILLAGE_PLAINS, & *
1424        STRUCTURE_VILLAGE_SAVANNA, & * STRUCTURE_VILLAGE_SNOWY, & *
1425        STRUCTURE_VILLAGE_TAIGA
1426    ]
1427}