2 -- Aliases for map generators
7 minetest.register_alias("mapgen_stone", "default:stone")
8 minetest.register_alias("mapgen_water_source", "default:water_source")
9 minetest.register_alias("mapgen_river_water_source", "default:river_water_source")
11 -- Additional aliases needed for mapgen v6
13 minetest.register_alias("mapgen_lava_source", "default:lava_source")
14 minetest.register_alias("mapgen_dirt", "default:dirt")
15 minetest.register_alias("mapgen_dirt_with_grass", "default:dirt_with_grass")
16 minetest.register_alias("mapgen_sand", "default:sand")
17 minetest.register_alias("mapgen_gravel", "default:gravel")
18 minetest.register_alias("mapgen_desert_stone", "default:desert_stone")
19 minetest.register_alias("mapgen_desert_sand", "default:desert_sand")
20 minetest.register_alias("mapgen_dirt_with_snow", "default:dirt_with_snow")
21 minetest.register_alias("mapgen_snowblock", "default:snowblock")
22 minetest.register_alias("mapgen_snow", "default:snow")
23 minetest.register_alias("mapgen_ice", "default:ice")
25 minetest.register_alias("mapgen_tree", "default:tree")
26 minetest.register_alias("mapgen_leaves", "default:leaves")
27 minetest.register_alias("mapgen_apple", "default:apple")
28 minetest.register_alias("mapgen_jungletree", "default:jungletree")
29 minetest.register_alias("mapgen_jungleleaves", "default:jungleleaves")
30 minetest.register_alias("mapgen_junglegrass", "default:junglegrass")
31 minetest.register_alias("mapgen_pine_tree", "default:pine_tree")
32 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")
46 function default.register_mgv6_ores()
49 -- These first to avoid other ores in blobs
52 -- This first to avoid clay in sand blobs
54 minetest.register_ore({
57 wherein = {"default:sand"},
58 clust_scarcity = 16 * 16 * 16,
62 noise_threshold = 0.0,
66 spread = {x = 5, y = 5, z = 5},
75 minetest.register_ore({
78 wherein = {"default:stone", "default:desert_stone"},
79 clust_scarcity = 16 * 16 * 16,
83 noise_threshold = 0.0,
87 spread = {x = 5, y = 5, z = 5},
96 minetest.register_ore({
99 wherein = {"default:stone"},
100 clust_scarcity = 16 * 16 * 16,
104 noise_threshold = 0.0,
108 spread = {x = 5, y = 5, z = 5},
117 minetest.register_ore({
119 ore = "default:gravel",
120 wherein = {"default:stone"},
121 clust_scarcity = 16 * 16 * 16,
125 noise_threshold = 0.0,
129 spread = {x = 5, y = 5, z = 5},
140 minetest.register_ore({
141 ore_type = "scatter",
142 ore = "default:stone_with_coal",
143 wherein = "default:stone",
144 clust_scarcity = 8 * 8 * 8,
151 minetest.register_ore({
152 ore_type = "scatter",
153 ore = "default:stone_with_coal",
154 wherein = "default:stone",
155 clust_scarcity = 8 * 8 * 8,
162 minetest.register_ore({
163 ore_type = "scatter",
164 ore = "default:stone_with_coal",
165 wherein = "default:stone",
166 clust_scarcity = 24 * 24 * 24,
175 minetest.register_ore({
176 ore_type = "scatter",
177 ore = "default:stone_with_iron",
178 wherein = "default:stone",
179 clust_scarcity = 9 * 9 * 9,
186 minetest.register_ore({
187 ore_type = "scatter",
188 ore = "default:stone_with_iron",
189 wherein = "default:stone",
190 clust_scarcity = 7 * 7 * 7,
197 minetest.register_ore({
198 ore_type = "scatter",
199 ore = "default:stone_with_iron",
200 wherein = "default:stone",
201 clust_scarcity = 24 * 24 * 24,
210 minetest.register_ore({
211 ore_type = "scatter",
212 ore = "default:stone_with_copper",
213 wherein = "default:stone",
214 clust_scarcity = 9 * 9 * 9,
221 minetest.register_ore({
222 ore_type = "scatter",
223 ore = "default:stone_with_copper",
224 wherein = "default:stone",
225 clust_scarcity = 12 * 12 * 12,
232 minetest.register_ore({
233 ore_type = "scatter",
234 ore = "default:stone_with_copper",
235 wherein = "default:stone",
236 clust_scarcity = 9 * 9 * 9,
245 minetest.register_ore({
246 ore_type = "scatter",
247 ore = "default:stone_with_tin",
248 wherein = "default:stone",
249 clust_scarcity = 10 * 10 * 10,
256 minetest.register_ore({
257 ore_type = "scatter",
258 ore = "default:stone_with_tin",
259 wherein = "default:stone",
260 clust_scarcity = 13 * 13 * 13,
267 minetest.register_ore({
268 ore_type = "scatter",
269 ore = "default:stone_with_tin",
270 wherein = "default:stone",
271 clust_scarcity = 10 * 10 * 10,
280 minetest.register_ore({
281 ore_type = "scatter",
282 ore = "default:stone_with_gold",
283 wherein = "default:stone",
284 clust_scarcity = 13 * 13 * 13,
291 minetest.register_ore({
292 ore_type = "scatter",
293 ore = "default:stone_with_gold",
294 wherein = "default:stone",
295 clust_scarcity = 15 * 15 * 15,
302 minetest.register_ore({
303 ore_type = "scatter",
304 ore = "default:stone_with_gold",
305 wherein = "default:stone",
306 clust_scarcity = 13 * 13 * 13,
315 minetest.register_ore({
316 ore_type = "scatter",
317 ore = "default:stone_with_mese",
318 wherein = "default:stone",
319 clust_scarcity = 14 * 14 * 14,
326 minetest.register_ore({
327 ore_type = "scatter",
328 ore = "default:stone_with_mese",
329 wherein = "default:stone",
330 clust_scarcity = 18 * 18 * 18,
337 minetest.register_ore({
338 ore_type = "scatter",
339 ore = "default:stone_with_mese",
340 wherein = "default:stone",
341 clust_scarcity = 14 * 14 * 14,
350 minetest.register_ore({
351 ore_type = "scatter",
352 ore = "default:stone_with_diamond",
353 wherein = "default:stone",
354 clust_scarcity = 15 * 15 * 15,
361 minetest.register_ore({
362 ore_type = "scatter",
363 ore = "default:stone_with_diamond",
364 wherein = "default:stone",
365 clust_scarcity = 17 * 17 * 17,
372 minetest.register_ore({
373 ore_type = "scatter",
374 ore = "default:stone_with_diamond",
375 wherein = "default:stone",
376 clust_scarcity = 15 * 15 * 15,
385 minetest.register_ore({
386 ore_type = "scatter",
387 ore = "default:mese",
388 wherein = "default:stone",
389 clust_scarcity = 36 * 36 * 36,
396 minetest.register_ore({
397 ore_type = "scatter",
398 ore = "default:mese",
399 wherein = "default:stone",
400 clust_scarcity = 36 * 36 * 36,
409 -- All mapgens except mgv6
411 function default.register_ores()
414 -- These obviously first.
418 minetest.register_ore({
419 ore_type = "stratum",
420 ore = "default:silver_sandstone",
421 wherein = {"default:stone"},
428 spread = {x = 128, y = 128, z = 128},
432 stratum_thickness = 4,
433 biomes = {"cold_desert"},
436 minetest.register_ore({
437 ore_type = "stratum",
438 ore = "default:silver_sandstone",
439 wherein = {"default:stone"},
446 spread = {x = 128, y = 128, z = 128},
450 stratum_thickness = 2,
451 biomes = {"cold_desert"},
456 minetest.register_ore({
457 ore_type = "stratum",
458 ore = "default:desert_sandstone",
459 wherein = {"default:desert_stone"},
466 spread = {x = 128, y = 128, z = 128},
470 stratum_thickness = 4,
474 minetest.register_ore({
475 ore_type = "stratum",
476 ore = "default:desert_sandstone",
477 wherein = {"default:desert_stone"},
484 spread = {x = 128, y = 128, z = 128},
488 stratum_thickness = 2,
494 minetest.register_ore({
495 ore_type = "stratum",
496 ore = "default:sandstone",
497 wherein = {"default:desert_stone"},
504 spread = {x = 128, y = 128, z = 128},
508 stratum_thickness = 2,
513 -- These before scatter ores to avoid other ores in blobs.
517 minetest.register_ore({
519 ore = "default:clay",
520 wherein = {"default:sand"},
521 clust_scarcity = 16 * 16 * 16,
525 noise_threshold = 0.0,
529 spread = {x = 5, y = 5, z = 5},
538 minetest.register_ore({
540 ore = "default:silver_sand",
541 wherein = {"default:stone"},
542 clust_scarcity = 16 * 16 * 16,
546 noise_threshold = 0.0,
550 spread = {x = 5, y = 5, z = 5},
559 minetest.register_ore({
561 ore = "default:dirt",
562 wherein = {"default:stone"},
563 clust_scarcity = 16 * 16 * 16,
567 noise_threshold = 0.0,
571 spread = {x = 5, y = 5, z = 5},
576 -- Only where default:dirt is present as surface material
577 biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest",
578 "deciduous_forest", "deciduous_forest_shore", "rainforest",
584 minetest.register_ore({
586 ore = "default:gravel",
587 wherein = {"default:stone"},
588 clust_scarcity = 16 * 16 * 16,
592 noise_threshold = 0.0,
596 spread = {x = 5, y = 5, z = 5},
607 minetest.register_ore({
608 ore_type = "scatter",
609 ore = "default:stone_with_coal",
610 wherein = "default:stone",
611 clust_scarcity = 8 * 8 * 8,
618 minetest.register_ore({
619 ore_type = "scatter",
620 ore = "default:stone_with_coal",
621 wherein = "default:stone",
622 clust_scarcity = 8 * 8 * 8,
629 minetest.register_ore({
630 ore_type = "scatter",
631 ore = "default:stone_with_coal",
632 wherein = "default:stone",
633 clust_scarcity = 12 * 12 * 12,
642 minetest.register_ore({
643 ore_type = "scatter",
644 ore = "default:stone_with_tin",
645 wherein = "default:stone",
646 clust_scarcity = 10 * 10 * 10,
653 minetest.register_ore({
654 ore_type = "scatter",
655 ore = "default:stone_with_tin",
656 wherein = "default:stone",
657 clust_scarcity = 13 * 13 * 13,
664 minetest.register_ore({
665 ore_type = "scatter",
666 ore = "default:stone_with_tin",
667 wherein = "default:stone",
668 clust_scarcity = 10 * 10 * 10,
677 minetest.register_ore({
678 ore_type = "scatter",
679 ore = "default:stone_with_copper",
680 wherein = "default:stone",
681 clust_scarcity = 9 * 9 * 9,
688 minetest.register_ore({
689 ore_type = "scatter",
690 ore = "default:stone_with_copper",
691 wherein = "default:stone",
692 clust_scarcity = 12 * 12 * 12,
699 minetest.register_ore({
700 ore_type = "scatter",
701 ore = "default:stone_with_copper",
702 wherein = "default:stone",
703 clust_scarcity = 9 * 9 * 9,
712 minetest.register_ore({
713 ore_type = "scatter",
714 ore = "default:stone_with_iron",
715 wherein = "default:stone",
716 clust_scarcity = 9 * 9 * 9,
723 minetest.register_ore({
724 ore_type = "scatter",
725 ore = "default:stone_with_iron",
726 wherein = "default:stone",
727 clust_scarcity = 7 * 7 * 7,
734 minetest.register_ore({
735 ore_type = "scatter",
736 ore = "default:stone_with_iron",
737 wherein = "default:stone",
738 clust_scarcity = 12 * 12 * 12,
747 minetest.register_ore({
748 ore_type = "scatter",
749 ore = "default:stone_with_gold",
750 wherein = "default:stone",
751 clust_scarcity = 13 * 13 * 13,
758 minetest.register_ore({
759 ore_type = "scatter",
760 ore = "default:stone_with_gold",
761 wherein = "default:stone",
762 clust_scarcity = 15 * 15 * 15,
769 minetest.register_ore({
770 ore_type = "scatter",
771 ore = "default:stone_with_gold",
772 wherein = "default:stone",
773 clust_scarcity = 13 * 13 * 13,
782 minetest.register_ore({
783 ore_type = "scatter",
784 ore = "default:stone_with_mese",
785 wherein = "default:stone",
786 clust_scarcity = 14 * 14 * 14,
793 minetest.register_ore({
794 ore_type = "scatter",
795 ore = "default:stone_with_mese",
796 wherein = "default:stone",
797 clust_scarcity = 18 * 18 * 18,
804 minetest.register_ore({
805 ore_type = "scatter",
806 ore = "default:stone_with_mese",
807 wherein = "default:stone",
808 clust_scarcity = 14 * 14 * 14,
817 minetest.register_ore({
818 ore_type = "scatter",
819 ore = "default:stone_with_diamond",
820 wherein = "default:stone",
821 clust_scarcity = 15 * 15 * 15,
828 minetest.register_ore({
829 ore_type = "scatter",
830 ore = "default:stone_with_diamond",
831 wherein = "default:stone",
832 clust_scarcity = 17 * 17 * 17,
839 minetest.register_ore({
840 ore_type = "scatter",
841 ore = "default:stone_with_diamond",
842 wherein = "default:stone",
843 clust_scarcity = 15 * 15 * 15,
852 minetest.register_ore({
853 ore_type = "scatter",
854 ore = "default:mese",
855 wherein = "default:stone",
856 clust_scarcity = 36 * 36 * 36,
863 minetest.register_ore({
864 ore_type = "scatter",
865 ore = "default:mese",
866 wherein = "default:stone",
867 clust_scarcity = 36 * 36 * 36,
874 minetest.register_ore({
875 ore_type = "scatter",
876 ore = "default:mese",
877 wherein = "default:stone",
878 clust_scarcity = 28 * 28 * 28,
891 -- All mapgens except mgv6
893 function default.register_biomes()
897 minetest.register_biome({
899 node_dust = "default:snowblock",
900 node_top = "default:snowblock",
902 node_filler = "default:snowblock",
904 node_stone = "default:cave_ice",
905 node_water_top = "default:ice",
906 depth_water_top = 10,
907 node_river_water = "default:ice",
908 node_riverbed = "default:gravel",
910 node_dungeon = "default:ice",
911 node_dungeon_stair = "stairs:stair_ice",
918 minetest.register_biome({
919 name = "icesheet_ocean",
920 node_dust = "default:snowblock",
921 node_top = "default:sand",
923 node_filler = "default:sand",
925 node_water_top = "default:ice",
926 depth_water_top = 10,
927 node_cave_liquid = "default:water_source",
928 node_dungeon = "default:cobble",
929 node_dungeon_alt = "default:mossycobble",
930 node_dungeon_stair = "stairs:stair_cobble",
937 minetest.register_biome({
938 name = "icesheet_under",
939 node_cave_liquid = {"default:water_source", "default:lava_source"},
940 node_dungeon = "default:cobble",
941 node_dungeon_alt = "default:mossycobble",
942 node_dungeon_stair = "stairs:stair_cobble",
951 minetest.register_biome({
952 name = "tundra_highland",
953 node_dust = "default:snow",
954 node_riverbed = "default:gravel",
956 node_dungeon = "default:cobble",
957 node_dungeon_alt = "default:mossycobble",
958 node_dungeon_stair = "stairs:stair_cobble",
965 minetest.register_biome({
967 node_top = "default:permafrost_with_stones",
969 node_filler = "default:permafrost",
971 node_riverbed = "default:gravel",
973 node_dungeon = "default:cobble",
974 node_dungeon_alt = "default:mossycobble",
975 node_dungeon_stair = "stairs:stair_cobble",
983 minetest.register_biome({
984 name = "tundra_beach",
985 node_top = "default:gravel",
987 node_filler = "default:gravel",
989 node_riverbed = "default:gravel",
991 node_dungeon = "default:cobble",
992 node_dungeon_alt = "default:mossycobble",
993 node_dungeon_stair = "stairs:stair_cobble",
1001 minetest.register_biome({
1002 name = "tundra_ocean",
1003 node_top = "default:sand",
1005 node_filler = "default:sand",
1007 node_riverbed = "default:gravel",
1009 node_cave_liquid = "default:water_source",
1010 node_dungeon = "default:cobble",
1011 node_dungeon_alt = "default:mossycobble",
1012 node_dungeon_stair = "stairs:stair_cobble",
1017 humidity_point = 40,
1020 minetest.register_biome({
1021 name = "tundra_under",
1022 node_cave_liquid = {"default:water_source", "default:lava_source"},
1023 node_dungeon = "default:cobble",
1024 node_dungeon_alt = "default:mossycobble",
1025 node_dungeon_stair = "stairs:stair_cobble",
1029 humidity_point = 40,
1034 minetest.register_biome({
1036 node_dust = "default:snow",
1037 node_top = "default:dirt_with_snow",
1039 node_filler = "default:dirt",
1041 node_riverbed = "default:sand",
1043 node_dungeon = "default:cobble",
1044 node_dungeon_alt = "default:mossycobble",
1045 node_dungeon_stair = "stairs:stair_cobble",
1049 humidity_point = 70,
1052 minetest.register_biome({
1053 name = "taiga_ocean",
1054 node_dust = "default:snow",
1055 node_top = "default:sand",
1057 node_filler = "default:sand",
1059 node_riverbed = "default:sand",
1061 node_cave_liquid = "default:water_source",
1062 node_dungeon = "default:cobble",
1063 node_dungeon_alt = "default:mossycobble",
1064 node_dungeon_stair = "stairs:stair_cobble",
1069 humidity_point = 70,
1072 minetest.register_biome({
1073 name = "taiga_under",
1074 node_cave_liquid = {"default:water_source", "default:lava_source"},
1075 node_dungeon = "default:cobble",
1076 node_dungeon_alt = "default:mossycobble",
1077 node_dungeon_stair = "stairs:stair_cobble",
1081 humidity_point = 70,
1086 minetest.register_biome({
1087 name = "snowy_grassland",
1088 node_dust = "default:snow",
1089 node_top = "default:dirt_with_snow",
1091 node_filler = "default:dirt",
1093 node_riverbed = "default:sand",
1095 node_dungeon = "default:cobble",
1096 node_dungeon_alt = "default:mossycobble",
1097 node_dungeon_stair = "stairs:stair_cobble",
1101 humidity_point = 35,
1104 minetest.register_biome({
1105 name = "snowy_grassland_ocean",
1106 node_dust = "default:snow",
1107 node_top = "default:sand",
1109 node_filler = "default:sand",
1111 node_riverbed = "default:sand",
1113 node_cave_liquid = "default:water_source",
1114 node_dungeon = "default:cobble",
1115 node_dungeon_alt = "default:mossycobble",
1116 node_dungeon_stair = "stairs:stair_cobble",
1121 humidity_point = 35,
1124 minetest.register_biome({
1125 name = "snowy_grassland_under",
1126 node_cave_liquid = {"default:water_source", "default:lava_source"},
1127 node_dungeon = "default:cobble",
1128 node_dungeon_alt = "default:mossycobble",
1129 node_dungeon_stair = "stairs:stair_cobble",
1133 humidity_point = 35,
1138 minetest.register_biome({
1140 node_top = "default:dirt_with_grass",
1142 node_filler = "default:dirt",
1144 node_riverbed = "default:sand",
1146 node_dungeon = "default:cobble",
1147 node_dungeon_alt = "default:mossycobble",
1148 node_dungeon_stair = "stairs:stair_cobble",
1152 humidity_point = 35,
1155 minetest.register_biome({
1156 name = "grassland_dunes",
1157 node_top = "default:sand",
1159 node_filler = "default:sand",
1161 node_riverbed = "default:sand",
1163 node_dungeon = "default:cobble",
1164 node_dungeon_alt = "default:mossycobble",
1165 node_dungeon_stair = "stairs:stair_cobble",
1170 humidity_point = 35,
1173 minetest.register_biome({
1174 name = "grassland_ocean",
1175 node_top = "default:sand",
1177 node_filler = "default:sand",
1179 node_riverbed = "default:sand",
1181 node_cave_liquid = "default:water_source",
1182 node_dungeon = "default:cobble",
1183 node_dungeon_alt = "default:mossycobble",
1184 node_dungeon_stair = "stairs:stair_cobble",
1188 humidity_point = 35,
1191 minetest.register_biome({
1192 name = "grassland_under",
1193 node_cave_liquid = {"default:water_source", "default:lava_source"},
1194 node_dungeon = "default:cobble",
1195 node_dungeon_alt = "default:mossycobble",
1196 node_dungeon_stair = "stairs:stair_cobble",
1200 humidity_point = 35,
1203 -- Coniferous forest
1205 minetest.register_biome({
1206 name = "coniferous_forest",
1207 node_top = "default:dirt_with_coniferous_litter",
1209 node_filler = "default:dirt",
1211 node_riverbed = "default:sand",
1213 node_dungeon = "default:cobble",
1214 node_dungeon_alt = "default:mossycobble",
1215 node_dungeon_stair = "stairs:stair_cobble",
1219 humidity_point = 70,
1222 minetest.register_biome({
1223 name = "coniferous_forest_dunes",
1224 node_top = "default:sand",
1226 node_filler = "default:sand",
1228 node_riverbed = "default:sand",
1230 node_dungeon = "default:cobble",
1231 node_dungeon_alt = "default:mossycobble",
1232 node_dungeon_stair = "stairs:stair_cobble",
1237 humidity_point = 70,
1240 minetest.register_biome({
1241 name = "coniferous_forest_ocean",
1242 node_top = "default:sand",
1244 node_filler = "default:sand",
1246 node_riverbed = "default:sand",
1248 node_cave_liquid = "default:water_source",
1249 node_dungeon = "default:cobble",
1250 node_dungeon_alt = "default:mossycobble",
1251 node_dungeon_stair = "stairs:stair_cobble",
1255 humidity_point = 70,
1258 minetest.register_biome({
1259 name = "coniferous_forest_under",
1260 node_cave_liquid = {"default:water_source", "default:lava_source"},
1261 node_dungeon = "default:cobble",
1262 node_dungeon_alt = "default:mossycobble",
1263 node_dungeon_stair = "stairs:stair_cobble",
1267 humidity_point = 70,
1272 minetest.register_biome({
1273 name = "deciduous_forest",
1274 node_top = "default:dirt_with_grass",
1276 node_filler = "default:dirt",
1278 node_riverbed = "default:sand",
1280 node_dungeon = "default:cobble",
1281 node_dungeon_alt = "default:mossycobble",
1282 node_dungeon_stair = "stairs:stair_cobble",
1286 humidity_point = 68,
1289 minetest.register_biome({
1290 name = "deciduous_forest_shore",
1291 node_top = "default:dirt",
1293 node_filler = "default:dirt",
1295 node_riverbed = "default:sand",
1297 node_dungeon = "default:cobble",
1298 node_dungeon_alt = "default:mossycobble",
1299 node_dungeon_stair = "stairs:stair_cobble",
1303 humidity_point = 68,
1306 minetest.register_biome({
1307 name = "deciduous_forest_ocean",
1308 node_top = "default:sand",
1310 node_filler = "default:sand",
1312 node_riverbed = "default:sand",
1314 node_cave_liquid = "default:water_source",
1315 node_dungeon = "default:cobble",
1316 node_dungeon_alt = "default:mossycobble",
1317 node_dungeon_stair = "stairs:stair_cobble",
1322 humidity_point = 68,
1325 minetest.register_biome({
1326 name = "deciduous_forest_under",
1327 node_cave_liquid = {"default:water_source", "default:lava_source"},
1328 node_dungeon = "default:cobble",
1329 node_dungeon_alt = "default:mossycobble",
1330 node_dungeon_stair = "stairs:stair_cobble",
1334 humidity_point = 68,
1339 minetest.register_biome({
1341 node_top = "default:desert_sand",
1343 node_filler = "default:desert_sand",
1345 node_stone = "default:desert_stone",
1346 node_riverbed = "default:sand",
1348 node_dungeon = "default:desert_stone",
1349 node_dungeon_stair = "stairs:stair_desert_stone",
1353 humidity_point = 16,
1356 minetest.register_biome({
1357 name = "desert_ocean",
1358 node_top = "default:sand",
1360 node_filler = "default:sand",
1362 node_stone = "default:desert_stone",
1363 node_riverbed = "default:sand",
1365 node_cave_liquid = "default:water_source",
1366 node_dungeon = "default:desert_stone",
1367 node_dungeon_stair = "stairs:stair_desert_stone",
1372 humidity_point = 16,
1375 minetest.register_biome({
1376 name = "desert_under",
1377 node_cave_liquid = {"default:water_source", "default:lava_source"},
1378 node_dungeon = "default:cobble",
1379 node_dungeon_alt = "default:mossycobble",
1380 node_dungeon_stair = "stairs:stair_cobble",
1384 humidity_point = 16,
1389 minetest.register_biome({
1390 name = "sandstone_desert",
1391 node_top = "default:sand",
1393 node_filler = "default:sand",
1395 node_stone = "default:sandstone",
1396 node_riverbed = "default:sand",
1398 node_dungeon = "default:sandstonebrick",
1399 node_dungeon_stair = "stairs:stair_sandstone_block",
1406 minetest.register_biome({
1407 name = "sandstone_desert_ocean",
1408 node_top = "default:sand",
1410 node_filler = "default:sand",
1412 node_stone = "default:sandstone",
1413 node_riverbed = "default:sand",
1415 node_cave_liquid = "default:water_source",
1416 node_dungeon = "default:sandstonebrick",
1417 node_dungeon_stair = "stairs:stair_sandstone_block",
1424 minetest.register_biome({
1425 name = "sandstone_desert_under",
1426 node_cave_liquid = {"default:water_source", "default:lava_source"},
1427 node_dungeon = "default:cobble",
1428 node_dungeon_alt = "default:mossycobble",
1429 node_dungeon_stair = "stairs:stair_cobble",
1438 minetest.register_biome({
1439 name = "cold_desert",
1440 node_top = "default:silver_sand",
1442 node_filler = "default:silver_sand",
1444 node_riverbed = "default:sand",
1446 node_dungeon = "default:cobble",
1447 node_dungeon_alt = "default:mossycobble",
1448 node_dungeon_stair = "stairs:stair_cobble",
1455 minetest.register_biome({
1456 name = "cold_desert_ocean",
1457 node_top = "default:sand",
1459 node_filler = "default:sand",
1461 node_riverbed = "default:sand",
1463 node_cave_liquid = "default:water_source",
1464 node_dungeon = "default:cobble",
1465 node_dungeon_alt = "default:mossycobble",
1466 node_dungeon_stair = "stairs:stair_cobble",
1474 minetest.register_biome({
1475 name = "cold_desert_under",
1476 node_cave_liquid = {"default:water_source", "default:lava_source"},
1477 node_dungeon = "default:cobble",
1478 node_dungeon_alt = "default:mossycobble",
1479 node_dungeon_stair = "stairs:stair_cobble",
1488 minetest.register_biome({
1490 node_top = "default:dry_dirt_with_dry_grass",
1492 node_filler = "default:dry_dirt",
1494 node_riverbed = "default:sand",
1496 node_dungeon = "default:cobble",
1497 node_dungeon_alt = "default:mossycobble",
1498 node_dungeon_stair = "stairs:stair_cobble",
1502 humidity_point = 42,
1505 minetest.register_biome({
1506 name = "savanna_shore",
1507 node_top = "default:dry_dirt",
1509 node_filler = "default:dry_dirt",
1511 node_riverbed = "default:sand",
1513 node_dungeon = "default:cobble",
1514 node_dungeon_alt = "default:mossycobble",
1515 node_dungeon_stair = "stairs:stair_cobble",
1519 humidity_point = 42,
1522 minetest.register_biome({
1523 name = "savanna_ocean",
1524 node_top = "default:sand",
1526 node_filler = "default:sand",
1528 node_riverbed = "default:sand",
1530 node_cave_liquid = "default:water_source",
1531 node_dungeon = "default:cobble",
1532 node_dungeon_alt = "default:mossycobble",
1533 node_dungeon_stair = "stairs:stair_cobble",
1538 humidity_point = 42,
1541 minetest.register_biome({
1542 name = "savanna_under",
1543 node_cave_liquid = {"default:water_source", "default:lava_source"},
1544 node_dungeon = "default:cobble",
1545 node_dungeon_alt = "default:mossycobble",
1546 node_dungeon_stair = "stairs:stair_cobble",
1550 humidity_point = 42,
1555 minetest.register_biome({
1556 name = "rainforest",
1557 node_top = "default:dirt_with_rainforest_litter",
1559 node_filler = "default:dirt",
1561 node_riverbed = "default:sand",
1563 node_dungeon = "default:cobble",
1564 node_dungeon_alt = "default:mossycobble",
1565 node_dungeon_stair = "stairs:stair_cobble",
1569 humidity_point = 65,
1572 minetest.register_biome({
1573 name = "rainforest_swamp",
1574 node_top = "default:dirt",
1576 node_filler = "default:dirt",
1578 node_riverbed = "default:sand",
1580 node_dungeon = "default:cobble",
1581 node_dungeon_alt = "default:mossycobble",
1582 node_dungeon_stair = "stairs:stair_cobble",
1586 humidity_point = 65,
1589 minetest.register_biome({
1590 name = "rainforest_ocean",
1591 node_top = "default:sand",
1593 node_filler = "default:sand",
1595 node_riverbed = "default:sand",
1597 node_cave_liquid = "default:water_source",
1598 node_dungeon = "default:cobble",
1599 node_dungeon_alt = "default:mossycobble",
1600 node_dungeon_stair = "stairs:stair_cobble",
1605 humidity_point = 65,
1608 minetest.register_biome({
1609 name = "rainforest_under",
1610 node_cave_liquid = {"default:water_source", "default:lava_source"},
1611 node_dungeon = "default:cobble",
1612 node_dungeon_alt = "default:mossycobble",
1613 node_dungeon_stair = "stairs:stair_cobble",
1617 humidity_point = 65,
1623 -- Register decorations
1628 function default.register_mgv6_decorations()
1632 minetest.register_decoration({
1633 name = "default:papyrus",
1634 deco_type = "simple",
1635 place_on = {"default:dirt_with_grass"},
1640 spread = {x = 100, y = 100, z = 100},
1647 decoration = "default:papyrus",
1650 spawn_by = "default:water_source",
1656 minetest.register_decoration({
1657 name = "default:cactus",
1658 deco_type = "simple",
1659 place_on = {"default:desert_sand"},
1664 spread = {x = 100, y = 100, z = 100},
1671 decoration = "default:cactus",
1678 for length = 1, 5 do
1679 minetest.register_decoration({
1680 name = "default:grass_"..length,
1681 deco_type = "simple",
1682 place_on = {"default:dirt_with_grass"},
1687 spread = {x = 100, y = 100, z = 100},
1694 decoration = "default:grass_"..length,
1700 minetest.register_decoration({
1701 name = "default:dry_shrub",
1702 deco_type = "simple",
1703 place_on = {"default:desert_sand", "default:dirt_with_snow"},
1708 spread = {x = 100, y = 100, z = 100},
1715 decoration = "default:dry_shrub",
1721 -- All mapgens except mgv6
1723 local function register_grass_decoration(offset, scale, length)
1724 minetest.register_decoration({
1725 name = "default:grass_" .. length,
1726 deco_type = "simple",
1727 place_on = {"default:dirt_with_grass"},
1732 spread = {x = 200, y = 200, z = 200},
1737 biomes = {"grassland", "deciduous_forest"},
1740 decoration = "default:grass_" .. length,
1744 local function register_dry_grass_decoration(offset, scale, length)
1745 minetest.register_decoration({
1746 name = "default:dry_grass_" .. length,
1747 deco_type = "simple",
1748 place_on = {"default:dry_dirt_with_dry_grass"},
1753 spread = {x = 200, y = 200, z = 200},
1758 biomes = {"savanna"},
1761 decoration = "default:dry_grass_" .. length,
1765 local function register_fern_decoration(seed, length)
1766 minetest.register_decoration({
1767 name = "default:fern_" .. length,
1768 deco_type = "simple",
1769 place_on = {"default:dirt_with_coniferous_litter"},
1774 spread = {x = 100, y = 100, z = 100},
1779 biomes = {"coniferous_forest"},
1782 decoration = "default:fern_" .. length,
1787 function default.register_decorations()
1788 -- Savanna bare dirt patches.
1789 -- Must come before all savanna decorations that are placed on dry grass.
1790 -- Noise is similar to long dry grass noise, but scale inverted, to appear
1791 -- where long dry grass is least dense and shortest.
1793 minetest.register_decoration({
1794 deco_type = "simple",
1795 place_on = {"default:dry_dirt_with_dry_grass"},
1800 spread = {x = 200, y = 200, z = 200},
1805 biomes = {"savanna"},
1808 decoration = "default:dry_dirt",
1809 place_offset_y = -1,
1810 flags = "force_placement",
1813 -- Apple tree and log
1815 minetest.register_decoration({
1816 name = "default:apple_tree",
1817 deco_type = "schematic",
1818 place_on = {"default:dirt_with_grass"},
1823 spread = {x = 250, y = 250, z = 250},
1828 biomes = {"deciduous_forest"},
1831 schematic = minetest.get_modpath("default") .. "/schematics/apple_tree.mts",
1832 flags = "place_center_x, place_center_z",
1833 rotation = "random",
1836 minetest.register_decoration({
1837 name = "default:apple_log",
1838 deco_type = "schematic",
1839 place_on = {"default:dirt_with_grass"},
1845 spread = {x = 250, y = 250, z = 250},
1850 biomes = {"deciduous_forest"},
1853 schematic = minetest.get_modpath("default") .. "/schematics/apple_log.mts",
1854 flags = "place_center_x",
1855 rotation = "random",
1856 spawn_by = "default:dirt_with_grass",
1860 -- Emergent jungle tree
1861 -- Due to 32 node height, altitude is limited and prescence depends on chunksize
1863 local chunksize = tonumber(minetest.get_mapgen_setting("chunksize"))
1864 if chunksize >= 5 then
1865 minetest.register_decoration({
1866 name = "default:emergent_jungle_tree",
1867 deco_type = "schematic",
1868 place_on = {"default:dirt_with_rainforest_litter"},
1873 spread = {x = 250, y = 250, z = 250},
1878 biomes = {"rainforest"},
1881 schematic = minetest.get_modpath("default") ..
1882 "/schematics/emergent_jungle_tree.mts",
1883 flags = "place_center_x, place_center_z",
1884 rotation = "random",
1885 place_offset_y = -4,
1889 -- Jungle tree and log
1891 minetest.register_decoration({
1892 name = "default:jungle_tree",
1893 deco_type = "schematic",
1894 place_on = {"default:dirt_with_rainforest_litter"},
1897 biomes = {"rainforest"},
1900 schematic = minetest.get_modpath("default") .. "/schematics/jungle_tree.mts",
1901 flags = "place_center_x, place_center_z",
1902 rotation = "random",
1905 -- Swamp jungle trees
1907 minetest.register_decoration({
1908 name = "default:jungle_tree(swamp)",
1909 deco_type = "schematic",
1910 place_on = {"default:dirt"},
1912 -- Noise tuned to place swamp trees where papyrus is absent
1916 spread = {x = 200, y = 200, z = 200},
1921 biomes = {"rainforest_swamp"},
1924 schematic = minetest.get_modpath("default") .. "/schematics/jungle_tree.mts",
1925 flags = "place_center_x, place_center_z",
1926 rotation = "random",
1929 minetest.register_decoration({
1930 name = "default:jungle_log",
1931 deco_type = "schematic",
1932 place_on = {"default:dirt_with_rainforest_litter"},
1936 biomes = {"rainforest"},
1939 schematic = minetest.get_modpath("default") .. "/schematics/jungle_log.mts",
1940 flags = "place_center_x",
1941 rotation = "random",
1942 spawn_by = "default:dirt_with_rainforest_litter",
1946 -- Taiga and temperate coniferous forest pine tree, small pine tree and log
1948 minetest.register_decoration({
1949 name = "default:pine_tree",
1950 deco_type = "schematic",
1951 place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
1956 spread = {x = 250, y = 250, z = 250},
1961 biomes = {"taiga", "coniferous_forest"},
1964 schematic = minetest.get_modpath("default") .. "/schematics/pine_tree.mts",
1965 flags = "place_center_x, place_center_z",
1968 minetest.register_decoration({
1969 name = "default:small_pine_tree",
1970 deco_type = "schematic",
1971 place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
1976 spread = {x = 250, y = 250, z = 250},
1981 biomes = {"taiga", "coniferous_forest"},
1984 schematic = minetest.get_modpath("default") .. "/schematics/small_pine_tree.mts",
1985 flags = "place_center_x, place_center_z",
1988 minetest.register_decoration({
1989 name = "default:pine_log",
1990 deco_type = "schematic",
1991 place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
1994 fill_ratio = 0.0018,
1995 biomes = {"taiga", "coniferous_forest"},
1998 schematic = minetest.get_modpath("default") .. "/schematics/pine_log.mts",
1999 flags = "place_center_x",
2000 rotation = "random",
2001 spawn_by = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
2005 -- Acacia tree and log
2007 minetest.register_decoration({
2008 name = "default:acacia_tree",
2009 deco_type = "schematic",
2010 place_on = {"default:dry_dirt_with_dry_grass"},
2015 spread = {x = 250, y = 250, z = 250},
2020 biomes = {"savanna"},
2023 schematic = minetest.get_modpath("default") .. "/schematics/acacia_tree.mts",
2024 flags = "place_center_x, place_center_z",
2025 rotation = "random",
2028 minetest.register_decoration({
2029 name = "default:acacia_log",
2030 deco_type = "schematic",
2031 place_on = {"default:dry_dirt_with_dry_grass"},
2037 spread = {x = 250, y = 250, z = 250},
2042 biomes = {"savanna"},
2045 schematic = minetest.get_modpath("default") .. "/schematics/acacia_log.mts",
2046 flags = "place_center_x",
2047 rotation = "random",
2048 spawn_by = "default:dry_dirt_with_dry_grass",
2052 -- Aspen tree and log
2054 minetest.register_decoration({
2055 name = "default:aspen_tree",
2056 deco_type = "schematic",
2057 place_on = {"default:dirt_with_grass"},
2062 spread = {x = 250, y = 250, z = 250},
2067 biomes = {"deciduous_forest"},
2070 schematic = minetest.get_modpath("default") .. "/schematics/aspen_tree.mts",
2071 flags = "place_center_x, place_center_z",
2074 minetest.register_decoration({
2075 name = "default:aspen_log",
2076 deco_type = "schematic",
2077 place_on = {"default:dirt_with_grass"},
2083 spread = {x = 250, y = 250, z = 250},
2088 biomes = {"deciduous_forest"},
2091 schematic = minetest.get_modpath("default") .. "/schematics/aspen_log.mts",
2092 flags = "place_center_x",
2093 rotation = "random",
2094 spawn_by = "default:dirt_with_grass",
2100 minetest.register_decoration({
2101 name = "default:large_cactus",
2102 deco_type = "schematic",
2103 place_on = {"default:desert_sand"},
2108 spread = {x = 200, y = 200, z = 200},
2113 biomes = {"desert"},
2116 schematic = minetest.get_modpath("default") .. "/schematics/large_cactus.mts",
2117 flags = "place_center_x, place_center_z",
2118 rotation = "random",
2123 minetest.register_decoration({
2124 name = "default:cactus",
2125 deco_type = "simple",
2126 place_on = {"default:desert_sand"},
2131 spread = {x = 200, y = 200, z = 200},
2136 biomes = {"desert"},
2139 decoration = "default:cactus",
2146 minetest.register_decoration({
2147 name = "default:papyrus",
2148 deco_type = "schematic",
2149 place_on = {"default:dirt"},
2154 spread = {x = 200, y = 200, z = 200},
2159 biomes = {"savanna_shore", "rainforest_swamp"},
2162 schematic = minetest.get_modpath("default") .. "/schematics/papyrus.mts",
2167 minetest.register_decoration({
2168 name = "default:bush",
2169 deco_type = "schematic",
2170 place_on = {"default:dirt_with_grass"},
2175 spread = {x = 100, y = 100, z = 100},
2180 biomes = {"grassland", "deciduous_forest"},
2183 schematic = minetest.get_modpath("default") .. "/schematics/bush.mts",
2184 flags = "place_center_x, place_center_z",
2189 minetest.register_decoration({
2190 name = "default:blueberry_bush",
2191 deco_type = "schematic",
2192 place_on = {"default:dirt_with_grass", "default:dirt_with_snow"},
2197 spread = {x = 100, y = 100, z = 100},
2202 biomes = {"grassland", "snowy_grassland"},
2206 schematic = minetest.get_modpath("default") .. "/schematics/blueberry_bush.mts",
2207 flags = "place_center_x, place_center_z",
2212 minetest.register_decoration({
2213 name = "default:acacia_bush",
2214 deco_type = "schematic",
2215 place_on = {"default:dry_dirt_with_dry_grass"},
2220 spread = {x = 100, y = 100, z = 100},
2225 biomes = {"savanna"},
2228 schematic = minetest.get_modpath("default") .. "/schematics/acacia_bush.mts",
2229 flags = "place_center_x, place_center_z",
2234 minetest.register_decoration({
2235 name = "default:pine_bush",
2236 deco_type = "schematic",
2237 place_on = {"default:dirt_with_snow"},
2242 spread = {x = 100, y = 100, z = 100},
2247 biomes = {"taiga", "snowy_grassland"},
2250 schematic = minetest.get_modpath("default") .. "/schematics/pine_bush.mts",
2251 flags = "place_center_x, place_center_z",
2256 register_grass_decoration(-0.03, 0.09, 5)
2257 register_grass_decoration(-0.015, 0.075, 4)
2258 register_grass_decoration(0, 0.06, 3)
2259 register_grass_decoration(0.015, 0.045, 2)
2260 register_grass_decoration(0.03, 0.03, 1)
2264 register_dry_grass_decoration(0.01, 0.05, 5)
2265 register_dry_grass_decoration(0.03, 0.03, 4)
2266 register_dry_grass_decoration(0.05, 0.01, 3)
2267 register_dry_grass_decoration(0.07, -0.01, 2)
2268 register_dry_grass_decoration(0.09, -0.03, 1)
2272 register_fern_decoration(14936, 3)
2273 register_fern_decoration(801, 2)
2274 register_fern_decoration(5, 1)
2278 minetest.register_decoration({
2279 name = "default:junglegrass",
2280 deco_type = "simple",
2281 place_on = {"default:dirt_with_rainforest_litter"},
2284 biomes = {"rainforest"},
2287 decoration = "default:junglegrass",
2292 minetest.register_decoration({
2293 name = "default:dry_shrub",
2294 deco_type = "simple",
2295 place_on = {"default:desert_sand",
2296 "default:sand", "default:silver_sand"},
2301 spread = {x = 200, y = 200, z = 200},
2306 biomes = {"desert", "sandstone_desert", "cold_desert"},
2309 decoration = "default:dry_shrub",
2315 minetest.register_decoration({
2316 name = "default:marram_grass",
2317 deco_type = "simple",
2318 place_on = {"default:sand"},
2323 spread = {x = 16, y = 16, z = 16},
2327 flags = "absvalue, eased"
2329 biomes = {"coniferous_forest_dunes", "grassland_dunes"},
2333 "default:marram_grass_1",
2334 "default:marram_grass_2",
2335 "default:marram_grass_3",
2341 minetest.register_decoration({
2342 deco_type = "simple",
2343 place_on = {"default:permafrost_with_stones"},
2348 spread = {x = 100, y = 100, z = 100},
2353 biomes = {"tundra"},
2356 decoration = "default:permafrost_with_moss",
2357 place_offset_y = -1,
2358 flags = "force_placement",
2361 -- Tundra patchy snow
2363 minetest.register_decoration({
2364 deco_type = "simple",
2366 "default:permafrost_with_moss",
2367 "default:permafrost_with_stones",
2375 spread = {x = 100, y = 100, z = 100},
2380 biomes = {"tundra", "tundra_beach"},
2383 decoration = "default:snow",
2388 minetest.register_decoration({
2389 name = "default:corals",
2390 deco_type = "simple",
2391 place_on = {"default:sand"},
2392 place_offset_y = -1,
2397 spread = {x = 50, y = 50, z = 50},
2409 flags = "force_placement",
2411 "default:coral_green", "default:coral_pink",
2412 "default:coral_cyan", "default:coral_brown",
2413 "default:coral_orange", "default:coral_skeleton",
2419 minetest.register_decoration({
2420 name = "default:kelp",
2421 deco_type = "simple",
2422 place_on = {"default:sand"},
2423 place_offset_y = -1,
2428 spread = {x = 200, y = 200, z = 200},
2435 "snowy_grassland_ocean",
2437 "coniferous_forest_ocean",
2438 "deciduous_forest_ocean",
2439 "sandstone_desert_ocean",
2440 "cold_desert_ocean"},
2443 flags = "force_placement",
2444 decoration = "default:sand_with_kelp",
2452 -- Detect mapgen to select functions
2455 minetest.clear_registered_biomes()
2456 minetest.clear_registered_ores()
2457 minetest.clear_registered_decorations()
2459 local mg_name = minetest.get_mapgen_setting("mg_name")
2461 if mg_name == "v6" then
2462 default.register_mgv6_ores()
2463 default.register_mgv6_decorations()
2465 default.register_biomes()
2466 default.register_ores()
2467 default.register_decorations()