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}