2 -- Aliases for map generators
5 minetest.register_alias("mapgen_stone", "default:stone")
6 minetest.register_alias("mapgen_dirt", "default:dirt")
7 minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass")
8 minetest.register_alias("mapgen_sand", "default:sand")
9 minetest.register_alias("mapgen_water_source", "default:water_source")
10 minetest.register_alias("mapgen_river_water_source", "default:river_water_source")
11 minetest.register_alias("mapgen_lava_source", "default:lava_source")
12 minetest.register_alias("mapgen_gravel", "default:gravel")
13 minetest.register_alias("mapgen_desert_stone", "default:desert_stone")
14 minetest.register_alias("mapgen_desert_sand", "default:desert_sand")
15 minetest.register_alias("mapgen_dirt_with_snow", "default:dirt_with_snow")
16 minetest.register_alias("mapgen_snowblock", "default:snowblock")
17 minetest.register_alias("mapgen_snow", "default:snow")
18 minetest.register_alias("mapgen_ice", "default:ice")
19 minetest.register_alias("mapgen_sandstone", "default:sandstone")
23 minetest.register_alias("mapgen_tree", "default:tree")
24 minetest.register_alias("mapgen_leaves", "default:leaves")
25 minetest.register_alias("mapgen_apple", "default:apple")
26 minetest.register_alias("mapgen_jungletree", "default:jungletree")
27 minetest.register_alias("mapgen_jungleleaves", "default:jungleleaves")
28 minetest.register_alias("mapgen_junglegrass", "default:junglegrass")
29 minetest.register_alias("mapgen_pine_tree", "default:pine_tree")
30 minetest.register_alias("mapgen_pine_needles", "default:pine_needles")
34 minetest.register_alias("mapgen_cobble", "default:cobble")
35 minetest.register_alias("mapgen_stair_cobble", "stairs:stair_cobble")
36 minetest.register_alias("mapgen_mossycobble", "default:mossycobble")
37 minetest.register_alias("mapgen_stair_desert_stone", "stairs:stair_desert_stone")
38 minetest.register_alias("mapgen_sandstonebrick", "default:sandstonebrick")
39 minetest.register_alias("mapgen_stair_sandstone_block", "stairs:stair_sandstone_block")
47 -- These first to avoid other ores in blobs
51 function default.register_mgv6_blob_ores()
54 -- This first to avoid clay in sand blobs
56 minetest.register_ore({
59 wherein = {"default:sand"},
60 clust_scarcity = 16 * 16 * 16,
64 noise_threshold = 0.0,
68 spread = {x = 5, y = 5, z = 5},
77 minetest.register_ore({
80 wherein = {"default:stone", "default:desert_stone"},
81 clust_scarcity = 16 * 16 * 16,
85 noise_threshold = 0.0,
89 spread = {x = 5, y = 5, z = 5},
98 minetest.register_ore({
100 ore = "default:dirt",
101 wherein = {"default:stone"},
102 clust_scarcity = 16 * 16 * 16,
106 noise_threshold = 0.0,
110 spread = {x = 5, y = 5, z = 5},
119 minetest.register_ore({
121 ore = "default:gravel",
122 wherein = {"default:stone"},
123 clust_scarcity = 16 * 16 * 16,
127 noise_threshold = 0.0,
131 spread = {x = 5, y = 5, z = 5},
140 -- All mapgens except mgv6
142 function default.register_blob_ores()
146 minetest.register_ore({
148 ore = "default:clay",
149 wherein = {"default:sand"},
150 clust_scarcity = 16 * 16 * 16,
154 noise_threshold = 0.0,
158 spread = {x = 5, y = 5, z = 5},
167 minetest.register_ore({
169 ore = "default:silver_sand",
170 wherein = {"default:stone"},
171 clust_scarcity = 16 * 16 * 16,
175 noise_threshold = 0.0,
179 spread = {x = 5, y = 5, z = 5},
184 biomes = {"icesheet_ocean", "tundra", "tundra_beach", "tundra_ocean",
185 "taiga", "taiga_ocean", "snowy_grassland", "snowy_grassland_ocean",
186 "grassland", "grassland_dunes", "grassland_ocean", "coniferous_forest",
187 "coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest",
188 "deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert",
189 "cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean",
190 "rainforest", "rainforest_swamp", "rainforest_ocean", "underground",
191 "floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"}
196 minetest.register_ore({
198 ore = "default:dirt",
199 wherein = {"default:stone"},
200 clust_scarcity = 16 * 16 * 16,
204 noise_threshold = 0.0,
208 spread = {x = 5, y = 5, z = 5},
213 biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest",
214 "deciduous_forest", "deciduous_forest_shore", "savanna", "savanna_shore",
215 "rainforest", "rainforest_swamp", "floatland_grassland",
216 "floatland_coniferous_forest"}
221 minetest.register_ore({
223 ore = "default:gravel",
224 wherein = {"default:stone"},
225 clust_scarcity = 16 * 16 * 16,
229 noise_threshold = 0.0,
233 spread = {x = 5, y = 5, z = 5},
238 biomes = {"icesheet_ocean", "tundra", "tundra_beach", "tundra_ocean",
239 "taiga", "taiga_ocean", "snowy_grassland", "snowy_grassland_ocean",
240 "grassland", "grassland_dunes", "grassland_ocean", "coniferous_forest",
241 "coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest",
242 "deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert",
243 "cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean",
244 "rainforest", "rainforest_swamp", "rainforest_ocean", "underground",
245 "floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"}
253 function default.register_ores()
257 minetest.register_ore({
258 ore_type = "scatter",
259 ore = "default:stone_with_coal",
260 wherein = "default:stone",
261 clust_scarcity = 8 * 8 * 8,
268 minetest.register_ore({
269 ore_type = "scatter",
270 ore = "default:stone_with_coal",
271 wherein = "default:stone",
272 clust_scarcity = 8 * 8 * 8,
279 minetest.register_ore({
280 ore_type = "scatter",
281 ore = "default:stone_with_coal",
282 wherein = "default:stone",
283 clust_scarcity = 24 * 24 * 24,
292 minetest.register_ore({
293 ore_type = "scatter",
294 ore = "default:stone_with_iron",
295 wherein = "default:stone",
296 clust_scarcity = 9 * 9 * 9,
303 minetest.register_ore({
304 ore_type = "scatter",
305 ore = "default:stone_with_iron",
306 wherein = "default:stone",
307 clust_scarcity = 7 * 7 * 7,
314 minetest.register_ore({
315 ore_type = "scatter",
316 ore = "default:stone_with_iron",
317 wherein = "default:stone",
318 clust_scarcity = 24 * 24 * 24,
327 minetest.register_ore({
328 ore_type = "scatter",
329 ore = "default:stone_with_copper",
330 wherein = "default:stone",
331 clust_scarcity = 9 * 9 * 9,
338 minetest.register_ore({
339 ore_type = "scatter",
340 ore = "default:stone_with_copper",
341 wherein = "default:stone",
342 clust_scarcity = 12 * 12 * 12,
349 minetest.register_ore({
350 ore_type = "scatter",
351 ore = "default:stone_with_copper",
352 wherein = "default:stone",
353 clust_scarcity = 9 * 9 * 9,
362 minetest.register_ore({
363 ore_type = "scatter",
364 ore = "default:stone_with_tin",
365 wherein = "default:stone",
366 clust_scarcity = 10 * 10 * 10,
373 minetest.register_ore({
374 ore_type = "scatter",
375 ore = "default:stone_with_tin",
376 wherein = "default:stone",
377 clust_scarcity = 13 * 13 * 13,
384 minetest.register_ore({
385 ore_type = "scatter",
386 ore = "default:stone_with_tin",
387 wherein = "default:stone",
388 clust_scarcity = 10 * 10 * 10,
397 minetest.register_ore({
398 ore_type = "scatter",
399 ore = "default:stone_with_gold",
400 wherein = "default:stone",
401 clust_scarcity = 13 * 13 * 13,
408 minetest.register_ore({
409 ore_type = "scatter",
410 ore = "default:stone_with_gold",
411 wherein = "default:stone",
412 clust_scarcity = 15 * 15 * 15,
419 minetest.register_ore({
420 ore_type = "scatter",
421 ore = "default:stone_with_gold",
422 wherein = "default:stone",
423 clust_scarcity = 13 * 13 * 13,
432 minetest.register_ore({
433 ore_type = "scatter",
434 ore = "default:stone_with_mese",
435 wherein = "default:stone",
436 clust_scarcity = 14 * 14 * 14,
443 minetest.register_ore({
444 ore_type = "scatter",
445 ore = "default:stone_with_mese",
446 wherein = "default:stone",
447 clust_scarcity = 18 * 18 * 18,
454 minetest.register_ore({
455 ore_type = "scatter",
456 ore = "default:stone_with_mese",
457 wherein = "default:stone",
458 clust_scarcity = 14 * 14 * 14,
467 minetest.register_ore({
468 ore_type = "scatter",
469 ore = "default:stone_with_diamond",
470 wherein = "default:stone",
471 clust_scarcity = 15 * 15 * 15,
478 minetest.register_ore({
479 ore_type = "scatter",
480 ore = "default:stone_with_diamond",
481 wherein = "default:stone",
482 clust_scarcity = 17 * 17 * 17,
489 minetest.register_ore({
490 ore_type = "scatter",
491 ore = "default:stone_with_diamond",
492 wherein = "default:stone",
493 clust_scarcity = 15 * 15 * 15,
502 minetest.register_ore({
503 ore_type = "scatter",
504 ore = "default:mese",
505 wherein = "default:stone",
506 clust_scarcity = 36 * 36 * 36,
513 minetest.register_ore({
514 ore_type = "scatter",
515 ore = "default:mese",
516 wherein = "default:stone",
517 clust_scarcity = 36 * 36 * 36,
530 -- All mapgens except mgv6
532 function default.register_biomes(upper_limit)
536 minetest.register_biome({
538 node_dust = "default:snowblock",
539 node_top = "default:snowblock",
541 node_filler = "default:snowblock",
543 node_stone = "default:ice",
544 node_water_top = "default:ice",
545 depth_water_top = 10,
547 node_river_water = "default:ice",
548 node_riverbed = "default:gravel",
556 minetest.register_biome({
557 name = "icesheet_ocean",
558 node_dust = "default:snowblock",
559 node_top = "default:sand",
561 node_filler = "default:sand",
564 node_water_top = "default:ice",
565 depth_water_top = 10,
567 --node_river_water = "",
576 minetest.register_biome({
578 node_dust = "default:snowblock",
584 --node_water_top = "",
585 --depth_water_top = ,
587 --node_river_water = "",
588 node_riverbed = "default:gravel",
596 minetest.register_biome({
597 name = "tundra_beach",
599 node_top = "default:gravel",
601 node_filler = "default:gravel",
604 --node_water_top = "",
605 --depth_water_top = ,
607 --node_river_water = "",
608 node_riverbed = "default:gravel",
616 minetest.register_biome({
617 name = "tundra_ocean",
619 node_top = "default:sand",
621 node_filler = "default:sand",
624 --node_water_top = "",
625 --depth_water_top = ,
627 --node_river_water = "",
628 node_riverbed = "default:gravel",
638 minetest.register_biome({
640 node_dust = "default:snow",
641 node_top = "default:dirt_with_snow",
643 node_filler = "default:dirt",
646 --node_water_top = "",
647 --depth_water_top = ,
649 --node_river_water = "",
650 node_riverbed = "default:sand",
658 minetest.register_biome({
659 name = "taiga_ocean",
661 node_top = "default:sand",
663 node_filler = "default:sand",
666 --node_water_top = "",
667 --depth_water_top = ,
669 --node_river_water = "",
670 node_riverbed = "default:sand",
680 minetest.register_biome({
681 name = "snowy_grassland",
682 node_dust = "default:snow",
683 node_top = "default:dirt_with_snow",
685 node_filler = "default:dirt",
688 --node_water_top = "",
689 --depth_water_top = ,
691 --node_river_water = "",
692 node_riverbed = "default:sand",
700 minetest.register_biome({
701 name = "snowy_grassland_ocean",
703 node_top = "default:sand",
705 node_filler = "default:sand",
708 --node_water_top = "",
709 --depth_water_top = ,
711 --node_river_water = "",
712 node_riverbed = "default:sand",
722 minetest.register_biome({
725 node_top = "default:dirt_with_grass",
727 node_filler = "default:dirt",
730 --node_water_top = "",
731 --depth_water_top = ,
733 --node_river_water = "",
734 node_riverbed = "default:sand",
742 minetest.register_biome({
743 name = "grassland_dunes",
745 node_top = "default:sand",
747 node_filler = "default:sand",
750 --node_water_top = "",
751 --depth_water_top = ,
753 --node_river_water = "",
754 node_riverbed = "default:sand",
762 minetest.register_biome({
763 name = "grassland_ocean",
765 node_top = "default:sand",
767 node_filler = "default:sand",
770 --node_water_top = "",
771 --depth_water_top = ,
773 --node_river_water = "",
774 node_riverbed = "default:sand",
784 minetest.register_biome({
785 name = "coniferous_forest",
787 node_top = "default:dirt_with_grass",
789 node_filler = "default:dirt",
792 --node_water_top = "",
793 --depth_water_top = ,
795 --node_river_water = "",
796 node_riverbed = "default:sand",
804 minetest.register_biome({
805 name = "coniferous_forest_dunes",
807 node_top = "default:sand",
809 node_filler = "default:sand",
812 --node_water_top = "",
813 --depth_water_top = ,
815 --node_river_water = "",
816 node_riverbed = "default:sand",
824 minetest.register_biome({
825 name = "coniferous_forest_ocean",
827 node_top = "default:sand",
829 node_filler = "default:sand",
832 --node_water_top = "",
833 --depth_water_top = ,
835 --node_river_water = "",
836 node_riverbed = "default:sand",
846 minetest.register_biome({
847 name = "deciduous_forest",
849 node_top = "default:dirt_with_grass",
851 node_filler = "default:dirt",
854 --node_water_top = "",
855 --depth_water_top = ,
857 --node_river_water = "",
858 node_riverbed = "default:sand",
866 minetest.register_biome({
867 name = "deciduous_forest_shore",
869 node_top = "default:dirt",
871 node_filler = "default:dirt",
874 --node_water_top = "",
875 --depth_water_top = ,
877 --node_river_water = "",
878 node_riverbed = "default:sand",
886 minetest.register_biome({
887 name = "deciduous_forest_ocean",
889 node_top = "default:sand",
891 node_filler = "default:sand",
894 --node_water_top = "",
895 --depth_water_top = ,
897 --node_river_water = "",
898 node_riverbed = "default:sand",
908 minetest.register_biome({
911 node_top = "default:desert_sand",
913 node_filler = "default:desert_sand",
915 node_stone = "default:desert_stone",
916 --node_water_top = "",
917 --depth_water_top = ,
919 --node_river_water = "",
920 node_riverbed = "default:sand",
928 minetest.register_biome({
929 name = "desert_ocean",
931 node_top = "default:sand",
933 node_filler = "default:sand",
935 node_stone = "default:desert_stone",
936 --node_water_top = "",
937 --depth_water_top = ,
939 --node_river_water = "",
940 node_riverbed = "default:sand",
950 minetest.register_biome({
951 name = "sandstone_desert",
953 node_top = "default:sand",
955 node_filler = "default:sand",
957 node_stone = "default:sandstone",
958 --node_water_top = "",
959 --depth_water_top = ,
961 --node_river_water = "",
962 node_riverbed = "default:sand",
970 minetest.register_biome({
971 name = "sandstone_desert_ocean",
973 node_top = "default:sand",
975 node_filler = "default:sand",
977 node_stone = "default:sandstone",
978 --node_water_top = "",
979 --depth_water_top = ,
981 --node_river_water = "",
982 node_riverbed = "default:sand",
992 minetest.register_biome({
993 name = "cold_desert",
995 node_top = "default:silver_sand",
997 node_filler = "default:silver_sand",
1000 --node_water_top = "",
1001 --depth_water_top = ,
1003 --node_river_water = "",
1004 node_riverbed = "default:sand",
1007 y_max = upper_limit,
1012 minetest.register_biome({
1013 name = "cold_desert_ocean",
1015 node_top = "default:sand",
1017 node_filler = "default:sand",
1020 --node_water_top = "",
1021 --depth_water_top = ,
1023 --node_river_water = "",
1024 node_riverbed = "default:sand",
1034 minetest.register_biome({
1037 node_top = "default:dirt_with_dry_grass",
1039 node_filler = "default:dirt",
1042 --node_water_top = "",
1043 --depth_water_top = ,
1045 --node_river_water = "",
1046 node_riverbed = "default:sand",
1049 y_max = upper_limit,
1051 humidity_point = 42,
1054 minetest.register_biome({
1055 name = "savanna_shore",
1057 node_top = "default:dirt",
1059 node_filler = "default:dirt",
1062 --node_water_top = "",
1063 --depth_water_top = ,
1065 --node_river_water = "",
1066 node_riverbed = "default:sand",
1071 humidity_point = 42,
1074 minetest.register_biome({
1075 name = "savanna_ocean",
1077 node_top = "default:sand",
1079 node_filler = "default:sand",
1082 --node_water_top = "",
1083 --depth_water_top = ,
1085 --node_river_water = "",
1086 node_riverbed = "default:sand",
1091 humidity_point = 42,
1096 minetest.register_biome({
1097 name = "rainforest",
1099 node_top = "default:dirt_with_rainforest_litter",
1101 node_filler = "default:dirt",
1104 --node_water_top = "",
1105 --depth_water_top = ,
1107 --node_river_water = "",
1108 node_riverbed = "default:sand",
1111 y_max = upper_limit,
1113 humidity_point = 65,
1116 minetest.register_biome({
1117 name = "rainforest_swamp",
1119 node_top = "default:dirt",
1121 node_filler = "default:dirt",
1124 --node_water_top = "",
1125 --depth_water_top = ,
1127 --node_river_water = "",
1128 node_riverbed = "default:sand",
1133 humidity_point = 65,
1136 minetest.register_biome({
1137 name = "rainforest_ocean",
1139 node_top = "default:sand",
1141 node_filler = "default:sand",
1144 --node_water_top = "",
1145 --depth_water_top = ,
1147 --node_river_water = "",
1148 node_riverbed = "default:sand",
1153 humidity_point = 65,
1158 minetest.register_biome({
1159 name = "underground",
1166 --node_water_top = "",
1167 --depth_water_top = ,
1169 --node_river_water = "",
1173 humidity_point = 50,
1178 -- Biomes for floatlands
1180 function default.register_floatland_biomes(floatland_level, shadow_limit)
1182 -- Coniferous forest
1184 minetest.register_biome({
1185 name = "floatland_coniferous_forest",
1187 node_top = "default:dirt_with_grass",
1189 node_filler = "default:dirt",
1192 --node_water_top = "",
1193 --depth_water_top = ,
1195 --node_river_water = "",
1196 --node_riverbed = "",
1197 --depth_riverbed = ,
1198 y_min = floatland_level + 2,
1201 humidity_point = 70,
1206 minetest.register_biome({
1207 name = "floatland_grassland",
1209 node_top = "default:dirt_with_grass",
1211 node_filler = "default:dirt",
1214 --node_water_top = "",
1215 --depth_water_top = ,
1217 --node_river_water = "",
1218 --node_riverbed = "",
1219 --depth_riverbed = ,
1220 y_min = floatland_level + 2,
1223 humidity_point = 35,
1228 minetest.register_biome({
1229 name = "floatland_sandstone_desert",
1231 node_top = "default:sand",
1233 node_filler = "default:sand",
1235 node_stone = "default:sandstone",
1236 --node_water_top = "",
1237 --depth_water_top = ,
1239 --node_river_water = "",
1240 --node_riverbed = "",
1241 --depth_riverbed = ,
1242 y_min = floatland_level + 2,
1248 -- Floatland ocean / underground
1250 minetest.register_biome({
1251 name = "floatland_ocean",
1253 node_top = "default:sand",
1255 node_filler = "default:sand",
1258 --node_water_top = "",
1259 --depth_water_top = ,
1261 --node_river_water = "",
1262 --node_riverbed = "",
1263 --depth_riverbed = ,
1264 y_min = shadow_limit,
1265 y_max = floatland_level + 1,
1267 humidity_point = 50,
1273 -- Register decorations
1278 function default.register_mgv6_decorations()
1282 minetest.register_decoration({
1283 deco_type = "simple",
1284 place_on = {"default:dirt_with_grass"},
1289 spread = {x = 100, y = 100, z = 100},
1296 decoration = "default:papyrus",
1299 spawn_by = "default:water_source",
1305 minetest.register_decoration({
1306 deco_type = "simple",
1307 place_on = {"default:desert_sand"},
1312 spread = {x = 100, y = 100, z = 100},
1319 decoration = "default:cactus",
1326 for length = 1, 5 do
1327 minetest.register_decoration({
1328 deco_type = "simple",
1329 place_on = {"default:dirt_with_grass"},
1334 spread = {x = 100, y = 100, z = 100},
1341 decoration = "default:grass_"..length,
1347 minetest.register_decoration({
1348 deco_type = "simple",
1349 place_on = {"default:desert_sand", "default:dirt_with_snow"},
1354 spread = {x = 100, y = 100, z = 100},
1361 decoration = "default:dry_shrub",
1366 -- All mapgens except mgv6
1368 local function register_grass_decoration(offset, scale, length)
1369 minetest.register_decoration({
1370 deco_type = "simple",
1371 place_on = {"default:dirt_with_grass", "default:sand"},
1376 spread = {x = 200, y = 200, z = 200},
1381 biomes = {"grassland", "grassland_dunes", "deciduous_forest",
1382 "coniferous_forest", "coniferous_forest_dunes",
1383 "floatland_grassland", "floatland_coniferous_forest"},
1386 decoration = "default:grass_" .. length,
1390 local function register_dry_grass_decoration(offset, scale, length)
1391 minetest.register_decoration({
1392 deco_type = "simple",
1393 place_on = {"default:dirt_with_dry_grass"},
1398 spread = {x = 200, y = 200, z = 200},
1403 biomes = {"savanna"},
1406 decoration = "default:dry_grass_" .. length,
1411 function default.register_decorations()
1413 -- Apple tree and log
1415 minetest.register_decoration({
1416 deco_type = "schematic",
1417 place_on = {"default:dirt_with_grass"},
1422 spread = {x = 250, y = 250, z = 250},
1427 biomes = {"deciduous_forest"},
1430 schematic = minetest.get_modpath("default") .. "/schematics/apple_tree.mts",
1431 flags = "place_center_x, place_center_z",
1432 rotation = "random",
1435 minetest.register_decoration({
1436 deco_type = "schematic",
1437 place_on = {"default:dirt_with_grass"},
1442 spread = {x = 250, y = 250, z = 250},
1447 biomes = {"deciduous_forest"},
1450 schematic = minetest.get_modpath("default") .. "/schematics/apple_log.mts",
1451 flags = "place_center_x",
1452 rotation = "random",
1455 -- Jungle tree and log
1457 minetest.register_decoration({
1458 deco_type = "schematic",
1459 place_on = {"default:dirt_with_rainforest_litter", "default:dirt"},
1462 biomes = {"rainforest", "rainforest_swamp"},
1465 schematic = minetest.get_modpath("default") .. "/schematics/jungle_tree.mts",
1466 flags = "place_center_x, place_center_z",
1467 rotation = "random",
1470 minetest.register_decoration({
1471 deco_type = "schematic",
1472 place_on = {"default:dirt_with_rainforest_litter", "default:dirt"},
1475 biomes = {"rainforest", "rainforest_swamp"},
1478 schematic = minetest.get_modpath("default") .. "/schematics/jungle_log.mts",
1479 flags = "place_center_x",
1480 rotation = "random",
1483 -- Taiga and temperate coniferous forest pine tree and log
1485 minetest.register_decoration({
1486 deco_type = "schematic",
1487 place_on = {"default:dirt_with_snow", "default:dirt_with_grass"},
1492 spread = {x = 250, y = 250, z = 250},
1497 biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"},
1500 schematic = minetest.get_modpath("default") .. "/schematics/pine_tree.mts",
1501 flags = "place_center_x, place_center_z",
1504 minetest.register_decoration({
1505 deco_type = "schematic",
1506 place_on = {"default:dirt_with_snow", "default:dirt_with_grass"},
1511 spread = {x = 250, y = 250, z = 250},
1516 biomes = {"taiga", "coniferous_forest"},
1519 schematic = minetest.get_modpath("default") .. "/schematics/pine_log.mts",
1520 flags = "place_center_x",
1521 rotation = "random",
1524 -- Acacia tree and log
1526 minetest.register_decoration({
1527 deco_type = "schematic",
1528 place_on = {"default:dirt_with_dry_grass"},
1533 spread = {x = 250, y = 250, z = 250},
1538 biomes = {"savanna"},
1541 schematic = minetest.get_modpath("default") .. "/schematics/acacia_tree.mts",
1542 flags = "place_center_x, place_center_z",
1543 rotation = "random",
1546 minetest.register_decoration({
1547 deco_type = "schematic",
1548 place_on = {"default:dirt_with_dry_grass"},
1553 spread = {x = 250, y = 250, z = 250},
1558 biomes = {"savanna"},
1561 schematic = minetest.get_modpath("default") .. "/schematics/acacia_log.mts",
1562 flags = "place_center_x",
1563 rotation = "random",
1566 -- Aspen tree and log
1568 minetest.register_decoration({
1569 deco_type = "schematic",
1570 place_on = {"default:dirt_with_grass"},
1575 spread = {x = 250, y = 250, z = 250},
1580 biomes = {"deciduous_forest"},
1583 schematic = minetest.get_modpath("default") .. "/schematics/aspen_tree.mts",
1584 flags = "place_center_x, place_center_z",
1587 minetest.register_decoration({
1588 deco_type = "schematic",
1589 place_on = {"default:dirt_with_grass"},
1594 spread = {x = 250, y = 250, z = 250},
1599 biomes = {"deciduous_forest"},
1602 schematic = minetest.get_modpath("default") .. "/schematics/aspen_log.mts",
1603 flags = "place_center_x",
1604 rotation = "random",
1609 minetest.register_decoration({
1610 deco_type = "schematic",
1611 place_on = {"default:desert_sand"},
1616 spread = {x = 200, y = 200, z = 200},
1621 biomes = {"desert"},
1624 schematic = minetest.get_modpath("default") .. "/schematics/large_cactus.mts",
1625 flags = "place_center_x",
1626 rotation = "random",
1631 minetest.register_decoration({
1632 deco_type = "simple",
1633 place_on = {"default:desert_sand"},
1638 spread = {x = 200, y = 200, z = 200},
1643 biomes = {"desert"},
1646 decoration = "default:cactus",
1653 minetest.register_decoration({
1654 deco_type = "schematic",
1655 place_on = {"default:dirt"},
1660 spread = {x = 200, y = 200, z = 200},
1665 biomes = {"savanna_shore"},
1668 schematic = minetest.get_modpath("default") .. "/schematics/papyrus.mts",
1673 minetest.register_decoration({
1674 deco_type = "schematic",
1675 place_on = {"default:dirt_with_grass", "default:dirt_with_snow"},
1680 spread = {x = 100, y = 100, z = 100},
1685 biomes = {"snowy_grassland", "grassland", "deciduous_forest",
1686 "floatland_grassland"},
1689 schematic = minetest.get_modpath("default") .. "/schematics/bush.mts",
1690 flags = "place_center_x, place_center_z",
1695 minetest.register_decoration({
1696 deco_type = "schematic",
1697 place_on = {"default:dirt_with_dry_grass"},
1702 spread = {x = 100, y = 100, z = 100},
1707 biomes = {"savanna"},
1710 schematic = minetest.get_modpath("default") .. "/schematics/acacia_bush.mts",
1711 flags = "place_center_x, place_center_z",
1716 register_grass_decoration(-0.03, 0.09, 5)
1717 register_grass_decoration(-0.015, 0.075, 4)
1718 register_grass_decoration(0, 0.06, 3)
1719 register_grass_decoration(0.015, 0.045, 2)
1720 register_grass_decoration(0.03, 0.03, 1)
1724 register_dry_grass_decoration(0.01, 0.05, 5)
1725 register_dry_grass_decoration(0.03, 0.03, 4)
1726 register_dry_grass_decoration(0.05, 0.01, 3)
1727 register_dry_grass_decoration(0.07, -0.01, 2)
1728 register_dry_grass_decoration(0.09, -0.03, 1)
1732 minetest.register_decoration({
1733 deco_type = "simple",
1734 place_on = {"default:dirt_with_rainforest_litter"},
1737 biomes = {"rainforest"},
1740 decoration = "default:junglegrass",
1745 minetest.register_decoration({
1746 deco_type = "simple",
1747 place_on = {"default:desert_sand",
1748 "default:sand", "default:silver_sand"},
1753 spread = {x = 200, y = 200, z = 200},
1758 biomes = {"desert", "sandstone_desert", "cold_desert"},
1761 decoration = "default:dry_shrub",
1766 minetest.register_decoration({
1767 deco_type = "schematic",
1768 place_on = {"default:sand"},
1772 spread = {x = 100, y = 100, z = 100},
1784 schematic = minetest.get_modpath("default") .. "/schematics/corals.mts",
1785 flags = "place_center_x, place_center_z",
1786 rotation = "random",
1792 -- Detect mapgen, flags and parameters to select functions
1795 -- Get setting or default
1796 local mgv7_spflags = minetest.get_mapgen_setting("mgv7_spflags") or
1797 "mountains, ridges, nofloatlands"
1798 local captures_float = string.match(mgv7_spflags, "floatlands")
1799 local captures_nofloat = string.match(mgv7_spflags, "nofloatlands")
1801 local mgv7_floatland_level = minetest.get_mapgen_setting("mgv7_floatland_level") or 1280
1802 local mgv7_shadow_limit = minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024
1804 minetest.clear_registered_biomes()
1805 minetest.clear_registered_ores()
1806 minetest.clear_registered_decorations()
1808 local mg_name = minetest.get_mapgen_setting("mg_name")
1809 if mg_name == "v6" then
1810 default.register_mgv6_blob_ores()
1811 default.register_ores()
1812 default.register_mgv6_decorations()
1813 elseif mg_name == "v7" and captures_float == "floatlands" and
1814 captures_nofloat ~= "nofloatlands" then
1815 -- Mgv7 with floatlands
1816 default.register_biomes(mgv7_shadow_limit - 1)
1817 default.register_floatland_biomes(mgv7_floatland_level, mgv7_shadow_limit)
1818 default.register_blob_ores()
1819 default.register_ores()
1820 default.register_decorations()
1822 default.register_biomes(31000)
1823 default.register_blob_ores()
1824 default.register_ores()
1825 default.register_decorations()