1use crate::structure_set::{
2 ExclusionZoneData, FrequencyMethodData, PlacementData, SpreadTypeData, StructureEntryData,
3 StructureSetData,
4};
5use steel_utils::Identifier;
6#[doc = r" Returns all vanilla structure sets parsed from the datapack."]
7pub fn vanilla_structure_sets() -> Vec<StructureSetData> {
8 vec![
9 StructureSetData {
10 key: Identifier::new("minecraft", "ancient_cities"),
11 structures: vec![StructureEntryData {
12 structure: Identifier::new("minecraft", "ancient_city"),
13 weight: 1i32,
14 }],
15 placement: PlacementData::RandomSpread {
16 spacing: 24i32,
17 separation: 8i32,
18 spread_type: SpreadTypeData::Linear,
19 salt: 20083232i32,
20 frequency: 1f32,
21 frequency_reduction_method: FrequencyMethodData::Default,
22 exclusion_zone: None,
23 locate_offset: [0i32, 0i32, 0i32],
24 },
25 },
26 StructureSetData {
27 key: Identifier::new("minecraft", "buried_treasures"),
28 structures: vec![StructureEntryData {
29 structure: Identifier::new("minecraft", "buried_treasure"),
30 weight: 1i32,
31 }],
32 placement: PlacementData::RandomSpread {
33 spacing: 1i32,
34 separation: 0i32,
35 spread_type: SpreadTypeData::Linear,
36 salt: 0i32,
37 frequency: 0.01f32,
38 frequency_reduction_method: FrequencyMethodData::LegacyType2,
39 exclusion_zone: None,
40 locate_offset: [9i32, 0i32, 9i32],
41 },
42 },
43 StructureSetData {
44 key: Identifier::new("minecraft", "desert_pyramids"),
45 structures: vec![StructureEntryData {
46 structure: Identifier::new("minecraft", "desert_pyramid"),
47 weight: 1i32,
48 }],
49 placement: PlacementData::RandomSpread {
50 spacing: 32i32,
51 separation: 8i32,
52 spread_type: SpreadTypeData::Linear,
53 salt: 14357617i32,
54 frequency: 1f32,
55 frequency_reduction_method: FrequencyMethodData::Default,
56 exclusion_zone: None,
57 locate_offset: [0i32, 0i32, 0i32],
58 },
59 },
60 StructureSetData {
61 key: Identifier::new("minecraft", "end_cities"),
62 structures: vec![StructureEntryData {
63 structure: Identifier::new("minecraft", "end_city"),
64 weight: 1i32,
65 }],
66 placement: PlacementData::RandomSpread {
67 spacing: 20i32,
68 separation: 11i32,
69 spread_type: SpreadTypeData::Triangular,
70 salt: 10387313i32,
71 frequency: 1f32,
72 frequency_reduction_method: FrequencyMethodData::Default,
73 exclusion_zone: None,
74 locate_offset: [0i32, 0i32, 0i32],
75 },
76 },
77 StructureSetData {
78 key: Identifier::new("minecraft", "igloos"),
79 structures: vec![StructureEntryData {
80 structure: Identifier::new("minecraft", "igloo"),
81 weight: 1i32,
82 }],
83 placement: PlacementData::RandomSpread {
84 spacing: 32i32,
85 separation: 8i32,
86 spread_type: SpreadTypeData::Linear,
87 salt: 14357618i32,
88 frequency: 1f32,
89 frequency_reduction_method: FrequencyMethodData::Default,
90 exclusion_zone: None,
91 locate_offset: [0i32, 0i32, 0i32],
92 },
93 },
94 StructureSetData {
95 key: Identifier::new("minecraft", "jungle_temples"),
96 structures: vec![StructureEntryData {
97 structure: Identifier::new("minecraft", "jungle_pyramid"),
98 weight: 1i32,
99 }],
100 placement: PlacementData::RandomSpread {
101 spacing: 32i32,
102 separation: 8i32,
103 spread_type: SpreadTypeData::Linear,
104 salt: 14357619i32,
105 frequency: 1f32,
106 frequency_reduction_method: FrequencyMethodData::Default,
107 exclusion_zone: None,
108 locate_offset: [0i32, 0i32, 0i32],
109 },
110 },
111 StructureSetData {
112 key: Identifier::new("minecraft", "mineshafts"),
113 structures: vec![
114 StructureEntryData {
115 structure: Identifier::new("minecraft", "mineshaft"),
116 weight: 1i32,
117 },
118 StructureEntryData {
119 structure: Identifier::new("minecraft", "mineshaft_mesa"),
120 weight: 1i32,
121 },
122 ],
123 placement: PlacementData::RandomSpread {
124 spacing: 1i32,
125 separation: 0i32,
126 spread_type: SpreadTypeData::Linear,
127 salt: 0i32,
128 frequency: 0.004f32,
129 frequency_reduction_method: FrequencyMethodData::LegacyType3,
130 exclusion_zone: None,
131 locate_offset: [0i32, 0i32, 0i32],
132 },
133 },
134 StructureSetData {
135 key: Identifier::new("minecraft", "nether_complexes"),
136 structures: vec![
137 StructureEntryData {
138 structure: Identifier::new("minecraft", "fortress"),
139 weight: 2i32,
140 },
141 StructureEntryData {
142 structure: Identifier::new("minecraft", "bastion_remnant"),
143 weight: 3i32,
144 },
145 ],
146 placement: PlacementData::RandomSpread {
147 spacing: 27i32,
148 separation: 4i32,
149 spread_type: SpreadTypeData::Linear,
150 salt: 30084232i32,
151 frequency: 1f32,
152 frequency_reduction_method: FrequencyMethodData::Default,
153 exclusion_zone: None,
154 locate_offset: [0i32, 0i32, 0i32],
155 },
156 },
157 StructureSetData {
158 key: Identifier::new("minecraft", "nether_fossils"),
159 structures: vec![StructureEntryData {
160 structure: Identifier::new("minecraft", "nether_fossil"),
161 weight: 1i32,
162 }],
163 placement: PlacementData::RandomSpread {
164 spacing: 2i32,
165 separation: 1i32,
166 spread_type: SpreadTypeData::Linear,
167 salt: 14357921i32,
168 frequency: 1f32,
169 frequency_reduction_method: FrequencyMethodData::Default,
170 exclusion_zone: None,
171 locate_offset: [0i32, 0i32, 0i32],
172 },
173 },
174 StructureSetData {
175 key: Identifier::new("minecraft", "ocean_monuments"),
176 structures: vec![StructureEntryData {
177 structure: Identifier::new("minecraft", "monument"),
178 weight: 1i32,
179 }],
180 placement: PlacementData::RandomSpread {
181 spacing: 32i32,
182 separation: 5i32,
183 spread_type: SpreadTypeData::Triangular,
184 salt: 10387313i32,
185 frequency: 1f32,
186 frequency_reduction_method: FrequencyMethodData::Default,
187 exclusion_zone: None,
188 locate_offset: [0i32, 0i32, 0i32],
189 },
190 },
191 StructureSetData {
192 key: Identifier::new("minecraft", "ocean_ruins"),
193 structures: vec![
194 StructureEntryData {
195 structure: Identifier::new("minecraft", "ocean_ruin_cold"),
196 weight: 1i32,
197 },
198 StructureEntryData {
199 structure: Identifier::new("minecraft", "ocean_ruin_warm"),
200 weight: 1i32,
201 },
202 ],
203 placement: PlacementData::RandomSpread {
204 spacing: 20i32,
205 separation: 8i32,
206 spread_type: SpreadTypeData::Linear,
207 salt: 14357621i32,
208 frequency: 1f32,
209 frequency_reduction_method: FrequencyMethodData::Default,
210 exclusion_zone: None,
211 locate_offset: [0i32, 0i32, 0i32],
212 },
213 },
214 StructureSetData {
215 key: Identifier::new("minecraft", "pillager_outposts"),
216 structures: vec![StructureEntryData {
217 structure: Identifier::new("minecraft", "pillager_outpost"),
218 weight: 1i32,
219 }],
220 placement: PlacementData::RandomSpread {
221 spacing: 32i32,
222 separation: 8i32,
223 spread_type: SpreadTypeData::Linear,
224 salt: 165745296i32,
225 frequency: 0.2f32,
226 frequency_reduction_method: FrequencyMethodData::LegacyType1,
227 exclusion_zone: Some(ExclusionZoneData {
228 other_set: Identifier::new("minecraft", "villages"),
229 chunk_count: 10i32,
230 }),
231 locate_offset: [0i32, 0i32, 0i32],
232 },
233 },
234 StructureSetData {
235 key: Identifier::new("minecraft", "ruined_portals"),
236 structures: vec![
237 StructureEntryData {
238 structure: Identifier::new("minecraft", "ruined_portal"),
239 weight: 1i32,
240 },
241 StructureEntryData {
242 structure: Identifier::new("minecraft", "ruined_portal_desert"),
243 weight: 1i32,
244 },
245 StructureEntryData {
246 structure: Identifier::new("minecraft", "ruined_portal_jungle"),
247 weight: 1i32,
248 },
249 StructureEntryData {
250 structure: Identifier::new("minecraft", "ruined_portal_swamp"),
251 weight: 1i32,
252 },
253 StructureEntryData {
254 structure: Identifier::new("minecraft", "ruined_portal_mountain"),
255 weight: 1i32,
256 },
257 StructureEntryData {
258 structure: Identifier::new("minecraft", "ruined_portal_ocean"),
259 weight: 1i32,
260 },
261 StructureEntryData {
262 structure: Identifier::new("minecraft", "ruined_portal_nether"),
263 weight: 1i32,
264 },
265 ],
266 placement: PlacementData::RandomSpread {
267 spacing: 40i32,
268 separation: 15i32,
269 spread_type: SpreadTypeData::Linear,
270 salt: 34222645i32,
271 frequency: 1f32,
272 frequency_reduction_method: FrequencyMethodData::Default,
273 exclusion_zone: None,
274 locate_offset: [0i32, 0i32, 0i32],
275 },
276 },
277 StructureSetData {
278 key: Identifier::new("minecraft", "shipwrecks"),
279 structures: vec![
280 StructureEntryData {
281 structure: Identifier::new("minecraft", "shipwreck"),
282 weight: 1i32,
283 },
284 StructureEntryData {
285 structure: Identifier::new("minecraft", "shipwreck_beached"),
286 weight: 1i32,
287 },
288 ],
289 placement: PlacementData::RandomSpread {
290 spacing: 24i32,
291 separation: 4i32,
292 spread_type: SpreadTypeData::Linear,
293 salt: 165745295i32,
294 frequency: 1f32,
295 frequency_reduction_method: FrequencyMethodData::Default,
296 exclusion_zone: None,
297 locate_offset: [0i32, 0i32, 0i32],
298 },
299 },
300 StructureSetData {
301 key: Identifier::new("minecraft", "strongholds"),
302 structures: vec![StructureEntryData {
303 structure: Identifier::new("minecraft", "stronghold"),
304 weight: 1i32,
305 }],
306 placement: PlacementData::ConcentricRings {
307 distance: 32i32,
308 spread: 3i32,
309 count: 128i32,
310 preferred_biomes: vec![
311 Identifier::new("minecraft", "badlands"),
312 Identifier::new("minecraft", "bamboo_jungle"),
313 Identifier::new("minecraft", "birch_forest"),
314 Identifier::new("minecraft", "cherry_grove"),
315 Identifier::new("minecraft", "dark_forest"),
316 Identifier::new("minecraft", "desert"),
317 Identifier::new("minecraft", "dripstone_caves"),
318 Identifier::new("minecraft", "eroded_badlands"),
319 Identifier::new("minecraft", "flower_forest"),
320 Identifier::new("minecraft", "forest"),
321 Identifier::new("minecraft", "frozen_peaks"),
322 Identifier::new("minecraft", "grove"),
323 Identifier::new("minecraft", "ice_spikes"),
324 Identifier::new("minecraft", "jagged_peaks"),
325 Identifier::new("minecraft", "jungle"),
326 Identifier::new("minecraft", "lush_caves"),
327 Identifier::new("minecraft", "meadow"),
328 Identifier::new("minecraft", "mushroom_fields"),
329 Identifier::new("minecraft", "old_growth_birch_forest"),
330 Identifier::new("minecraft", "old_growth_pine_taiga"),
331 Identifier::new("minecraft", "old_growth_spruce_taiga"),
332 Identifier::new("minecraft", "pale_garden"),
333 Identifier::new("minecraft", "plains"),
334 Identifier::new("minecraft", "savanna"),
335 Identifier::new("minecraft", "savanna_plateau"),
336 Identifier::new("minecraft", "snowy_plains"),
337 Identifier::new("minecraft", "snowy_slopes"),
338 Identifier::new("minecraft", "snowy_taiga"),
339 Identifier::new("minecraft", "sparse_jungle"),
340 Identifier::new("minecraft", "stony_peaks"),
341 Identifier::new("minecraft", "sunflower_plains"),
342 Identifier::new("minecraft", "taiga"),
343 Identifier::new("minecraft", "windswept_forest"),
344 Identifier::new("minecraft", "windswept_gravelly_hills"),
345 Identifier::new("minecraft", "windswept_hills"),
346 Identifier::new("minecraft", "windswept_savanna"),
347 Identifier::new("minecraft", "wooded_badlands"),
348 ],
349 salt: 0i32,
350 frequency: 1f32,
351 frequency_reduction_method: FrequencyMethodData::Default,
352 locate_offset: [0i32, 0i32, 0i32],
353 },
354 },
355 StructureSetData {
356 key: Identifier::new("minecraft", "swamp_huts"),
357 structures: vec![StructureEntryData {
358 structure: Identifier::new("minecraft", "swamp_hut"),
359 weight: 1i32,
360 }],
361 placement: PlacementData::RandomSpread {
362 spacing: 32i32,
363 separation: 8i32,
364 spread_type: SpreadTypeData::Linear,
365 salt: 14357620i32,
366 frequency: 1f32,
367 frequency_reduction_method: FrequencyMethodData::Default,
368 exclusion_zone: None,
369 locate_offset: [0i32, 0i32, 0i32],
370 },
371 },
372 StructureSetData {
373 key: Identifier::new("minecraft", "trail_ruins"),
374 structures: vec![StructureEntryData {
375 structure: Identifier::new("minecraft", "trail_ruins"),
376 weight: 1i32,
377 }],
378 placement: PlacementData::RandomSpread {
379 spacing: 34i32,
380 separation: 8i32,
381 spread_type: SpreadTypeData::Linear,
382 salt: 83469867i32,
383 frequency: 1f32,
384 frequency_reduction_method: FrequencyMethodData::Default,
385 exclusion_zone: None,
386 locate_offset: [0i32, 0i32, 0i32],
387 },
388 },
389 StructureSetData {
390 key: Identifier::new("minecraft", "trial_chambers"),
391 structures: vec![StructureEntryData {
392 structure: Identifier::new("minecraft", "trial_chambers"),
393 weight: 1i32,
394 }],
395 placement: PlacementData::RandomSpread {
396 spacing: 34i32,
397 separation: 12i32,
398 spread_type: SpreadTypeData::Linear,
399 salt: 94251327i32,
400 frequency: 1f32,
401 frequency_reduction_method: FrequencyMethodData::Default,
402 exclusion_zone: None,
403 locate_offset: [0i32, 0i32, 0i32],
404 },
405 },
406 StructureSetData {
407 key: Identifier::new("minecraft", "villages"),
408 structures: vec![
409 StructureEntryData {
410 structure: Identifier::new("minecraft", "village_plains"),
411 weight: 1i32,
412 },
413 StructureEntryData {
414 structure: Identifier::new("minecraft", "village_desert"),
415 weight: 1i32,
416 },
417 StructureEntryData {
418 structure: Identifier::new("minecraft", "village_savanna"),
419 weight: 1i32,
420 },
421 StructureEntryData {
422 structure: Identifier::new("minecraft", "village_snowy"),
423 weight: 1i32,
424 },
425 StructureEntryData {
426 structure: Identifier::new("minecraft", "village_taiga"),
427 weight: 1i32,
428 },
429 ],
430 placement: PlacementData::RandomSpread {
431 spacing: 34i32,
432 separation: 8i32,
433 spread_type: SpreadTypeData::Linear,
434 salt: 10387312i32,
435 frequency: 1f32,
436 frequency_reduction_method: FrequencyMethodData::Default,
437 exclusion_zone: None,
438 locate_offset: [0i32, 0i32, 0i32],
439 },
440 },
441 StructureSetData {
442 key: Identifier::new("minecraft", "woodland_mansions"),
443 structures: vec![StructureEntryData {
444 structure: Identifier::new("minecraft", "mansion"),
445 weight: 1i32,
446 }],
447 placement: PlacementData::RandomSpread {
448 spacing: 80i32,
449 separation: 20i32,
450 spread_type: SpreadTypeData::Triangular,
451 salt: 10387319i32,
452 frequency: 1f32,
453 frequency_reduction_method: FrequencyMethodData::Default,
454 exclusion_zone: None,
455 locate_offset: [0i32, 0i32, 0i32],
456 },
457 },
458 ]
459}