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",
579 "rainforest_swamp", "floatland_coniferous_forest"}
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(upper_limit)
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",
1046 y_max = upper_limit,
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",
1098 y_max = upper_limit,
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",
1149 y_max = upper_limit,
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",
1216 y_max = upper_limit,
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",
1283 y_max = upper_limit,
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",
1350 y_max = upper_limit,
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",
1400 y_max = upper_limit,
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",
1449 y_max = upper_limit,
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",
1499 y_max = upper_limit,
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",
1566 y_max = upper_limit,
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,
1622 -- Biomes for floatlands
1624 -- TODO Temporary simple biomes to be replaced by special floatland biomes later.
1626 function default.register_floatland_biomes(floatland_level, shadow_limit)
1628 minetest.register_biome({
1629 name = "floatland_grassland",
1630 node_top = "default:dirt_with_grass",
1632 node_filler = "default:dirt",
1634 node_dungeon = "default:cobble",
1635 node_dungeon_alt = "default:mossycobble",
1636 node_dungeon_stair = "stairs:stair_cobble",
1638 y_min = floatland_level + 2,
1640 humidity_point = 25,
1643 minetest.register_biome({
1644 name = "floatland_coniferous_forest",
1645 node_top = "default:dirt_with_coniferous_litter",
1647 node_filler = "default:dirt",
1649 node_dungeon = "default:cobble",
1650 node_dungeon_alt = "default:mossycobble",
1651 node_dungeon_stair = "stairs:stair_cobble",
1653 y_min = floatland_level + 2,
1655 humidity_point = 75,
1658 minetest.register_biome({
1659 name = "floatland_ocean",
1660 node_top = "default:sand",
1662 node_filler = "default:sand",
1664 node_dungeon = "default:cobble",
1665 node_dungeon_alt = "default:mossycobble",
1666 node_dungeon_stair = "stairs:stair_cobble",
1667 y_max = floatland_level + 1,
1668 y_min = shadow_limit,
1670 humidity_point = 50,
1676 -- Register decorations
1681 function default.register_mgv6_decorations()
1685 minetest.register_decoration({
1686 name = "default:papyrus",
1687 deco_type = "simple",
1688 place_on = {"default:dirt_with_grass"},
1693 spread = {x = 100, y = 100, z = 100},
1700 decoration = "default:papyrus",
1703 spawn_by = "default:water_source",
1709 minetest.register_decoration({
1710 name = "default:cactus",
1711 deco_type = "simple",
1712 place_on = {"default:desert_sand"},
1717 spread = {x = 100, y = 100, z = 100},
1724 decoration = "default:cactus",
1731 for length = 1, 5 do
1732 minetest.register_decoration({
1733 name = "default:grass_"..length,
1734 deco_type = "simple",
1735 place_on = {"default:dirt_with_grass"},
1740 spread = {x = 100, y = 100, z = 100},
1747 decoration = "default:grass_"..length,
1753 minetest.register_decoration({
1754 name = "default:dry_shrub",
1755 deco_type = "simple",
1756 place_on = {"default:desert_sand", "default:dirt_with_snow"},
1761 spread = {x = 100, y = 100, z = 100},
1768 decoration = "default:dry_shrub",
1774 -- All mapgens except mgv6
1776 local function register_grass_decoration(offset, scale, length)
1777 minetest.register_decoration({
1778 name = "default:grass_" .. length,
1779 deco_type = "simple",
1780 place_on = {"default:dirt_with_grass"},
1785 spread = {x = 200, y = 200, z = 200},
1790 biomes = {"grassland", "deciduous_forest", "floatland_grassland"},
1793 decoration = "default:grass_" .. length,
1797 local function register_dry_grass_decoration(offset, scale, length)
1798 minetest.register_decoration({
1799 name = "default:dry_grass_" .. length,
1800 deco_type = "simple",
1801 place_on = {"default:dry_dirt_with_dry_grass"},
1806 spread = {x = 200, y = 200, z = 200},
1811 biomes = {"savanna"},
1814 decoration = "default:dry_grass_" .. length,
1818 local function register_fern_decoration(seed, length)
1819 minetest.register_decoration({
1820 name = "default:fern_" .. length,
1821 deco_type = "simple",
1822 place_on = {"default:dirt_with_coniferous_litter"},
1827 spread = {x = 100, y = 100, z = 100},
1832 biomes = {"coniferous_forest", "floatland_coniferous_forest"},
1835 decoration = "default:fern_" .. length,
1840 function default.register_decorations()
1841 -- Savanna bare dirt patches.
1842 -- Must come before all savanna decorations that are placed on dry grass.
1843 -- Noise is similar to long dry grass noise, but scale inverted, to appear
1844 -- where long dry grass is least dense and shortest.
1846 minetest.register_decoration({
1847 deco_type = "simple",
1848 place_on = {"default:dry_dirt_with_dry_grass"},
1853 spread = {x = 200, y = 200, z = 200},
1858 biomes = {"savanna"},
1861 decoration = "default:dry_dirt",
1862 place_offset_y = -1,
1863 flags = "force_placement",
1866 -- Apple tree and log
1868 minetest.register_decoration({
1869 name = "default:apple_tree",
1870 deco_type = "schematic",
1871 place_on = {"default:dirt_with_grass"},
1876 spread = {x = 250, y = 250, z = 250},
1881 biomes = {"deciduous_forest"},
1884 schematic = minetest.get_modpath("default") .. "/schematics/apple_tree.mts",
1885 flags = "place_center_x, place_center_z",
1886 rotation = "random",
1889 minetest.register_decoration({
1890 name = "default:apple_log",
1891 deco_type = "schematic",
1892 place_on = {"default:dirt_with_grass"},
1898 spread = {x = 250, y = 250, z = 250},
1903 biomes = {"deciduous_forest"},
1906 schematic = minetest.get_modpath("default") .. "/schematics/apple_log.mts",
1907 flags = "place_center_x",
1908 rotation = "random",
1909 spawn_by = "default:dirt_with_grass",
1913 -- Emergent jungle tree
1914 -- Due to 32 node height, altitude is limited and prescence depends on chunksize
1916 local chunksize = tonumber(minetest.get_mapgen_setting("chunksize"))
1917 if chunksize >= 5 then
1918 minetest.register_decoration({
1919 name = "default:emergent_jungle_tree",
1920 deco_type = "schematic",
1921 place_on = {"default:dirt_with_rainforest_litter"},
1926 spread = {x = 250, y = 250, z = 250},
1931 biomes = {"rainforest"},
1934 schematic = minetest.get_modpath("default") ..
1935 "/schematics/emergent_jungle_tree.mts",
1936 flags = "place_center_x, place_center_z",
1937 rotation = "random",
1938 place_offset_y = -4,
1942 -- Jungle tree and log
1944 minetest.register_decoration({
1945 name = "default:jungle_tree",
1946 deco_type = "schematic",
1947 place_on = {"default:dirt_with_rainforest_litter", "default:dirt"},
1950 biomes = {"rainforest", "rainforest_swamp"},
1953 schematic = minetest.get_modpath("default") .. "/schematics/jungle_tree.mts",
1954 flags = "place_center_x, place_center_z",
1955 rotation = "random",
1958 minetest.register_decoration({
1959 name = "default:jungle_log",
1960 deco_type = "schematic",
1961 place_on = {"default:dirt_with_rainforest_litter"},
1965 biomes = {"rainforest", "rainforest_swamp"},
1968 schematic = minetest.get_modpath("default") .. "/schematics/jungle_log.mts",
1969 flags = "place_center_x",
1970 rotation = "random",
1971 spawn_by = "default:dirt_with_rainforest_litter",
1975 -- Taiga and temperate coniferous forest pine tree, small pine tree and log
1977 minetest.register_decoration({
1978 name = "default:pine_tree",
1979 deco_type = "schematic",
1980 place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
1985 spread = {x = 250, y = 250, z = 250},
1990 biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"},
1993 schematic = minetest.get_modpath("default") .. "/schematics/pine_tree.mts",
1994 flags = "place_center_x, place_center_z",
1997 minetest.register_decoration({
1998 name = "default:small_pine_tree",
1999 deco_type = "schematic",
2000 place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
2005 spread = {x = 250, y = 250, z = 250},
2010 biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"},
2013 schematic = minetest.get_modpath("default") .. "/schematics/small_pine_tree.mts",
2014 flags = "place_center_x, place_center_z",
2017 minetest.register_decoration({
2018 name = "default:pine_log",
2019 deco_type = "schematic",
2020 place_on = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
2023 fill_ratio = 0.0018,
2024 biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"},
2027 schematic = minetest.get_modpath("default") .. "/schematics/pine_log.mts",
2028 flags = "place_center_x",
2029 rotation = "random",
2030 spawn_by = {"default:dirt_with_snow", "default:dirt_with_coniferous_litter"},
2034 -- Acacia tree and log
2036 minetest.register_decoration({
2037 name = "default:acacia_tree",
2038 deco_type = "schematic",
2039 place_on = {"default:dry_dirt_with_dry_grass"},
2044 spread = {x = 250, y = 250, z = 250},
2049 biomes = {"savanna"},
2052 schematic = minetest.get_modpath("default") .. "/schematics/acacia_tree.mts",
2053 flags = "place_center_x, place_center_z",
2054 rotation = "random",
2057 minetest.register_decoration({
2058 name = "default:acacia_log",
2059 deco_type = "schematic",
2060 place_on = {"default:dry_dirt_with_dry_grass"},
2066 spread = {x = 250, y = 250, z = 250},
2071 biomes = {"savanna"},
2074 schematic = minetest.get_modpath("default") .. "/schematics/acacia_log.mts",
2075 flags = "place_center_x",
2076 rotation = "random",
2077 spawn_by = "default:dry_dirt_with_dry_grass",
2081 -- Aspen tree and log
2083 minetest.register_decoration({
2084 name = "default:aspen_tree",
2085 deco_type = "schematic",
2086 place_on = {"default:dirt_with_grass"},
2091 spread = {x = 250, y = 250, z = 250},
2096 biomes = {"deciduous_forest"},
2099 schematic = minetest.get_modpath("default") .. "/schematics/aspen_tree.mts",
2100 flags = "place_center_x, place_center_z",
2103 minetest.register_decoration({
2104 name = "default:aspen_log",
2105 deco_type = "schematic",
2106 place_on = {"default:dirt_with_grass"},
2112 spread = {x = 250, y = 250, z = 250},
2117 biomes = {"deciduous_forest"},
2120 schematic = minetest.get_modpath("default") .. "/schematics/aspen_log.mts",
2121 flags = "place_center_x",
2122 rotation = "random",
2123 spawn_by = "default:dirt_with_grass",
2129 minetest.register_decoration({
2130 name = "default:large_cactus",
2131 deco_type = "schematic",
2132 place_on = {"default:desert_sand"},
2137 spread = {x = 200, y = 200, z = 200},
2142 biomes = {"desert"},
2145 schematic = minetest.get_modpath("default") .. "/schematics/large_cactus.mts",
2146 flags = "place_center_x, place_center_z",
2147 rotation = "random",
2152 minetest.register_decoration({
2153 name = "default:cactus",
2154 deco_type = "simple",
2155 place_on = {"default:desert_sand"},
2160 spread = {x = 200, y = 200, z = 200},
2165 biomes = {"desert"},
2168 decoration = "default:cactus",
2175 minetest.register_decoration({
2176 name = "default:papyrus",
2177 deco_type = "schematic",
2178 place_on = {"default:dirt"},
2183 spread = {x = 200, y = 200, z = 200},
2188 biomes = {"savanna_shore"},
2191 schematic = minetest.get_modpath("default") .. "/schematics/papyrus.mts",
2196 minetest.register_decoration({
2197 name = "default:bush",
2198 deco_type = "schematic",
2199 place_on = {"default:dirt_with_grass"},
2204 spread = {x = 100, y = 100, z = 100},
2209 biomes = {"grassland", "deciduous_forest",
2210 "floatland_grassland"},
2213 schematic = minetest.get_modpath("default") .. "/schematics/bush.mts",
2214 flags = "place_center_x, place_center_z",
2219 minetest.register_decoration({
2220 name = "default:blueberry_bush",
2221 deco_type = "schematic",
2222 place_on = {"default:dirt_with_grass", "default:dirt_with_snow"},
2227 spread = {x = 100, y = 100, z = 100},
2232 biomes = {"grassland", "snowy_grassland"},
2236 schematic = minetest.get_modpath("default") .. "/schematics/blueberry_bush.mts",
2237 flags = "place_center_x, place_center_z",
2242 minetest.register_decoration({
2243 name = "default:acacia_bush",
2244 deco_type = "schematic",
2245 place_on = {"default:dry_dirt_with_dry_grass"},
2250 spread = {x = 100, y = 100, z = 100},
2255 biomes = {"savanna"},
2258 schematic = minetest.get_modpath("default") .. "/schematics/acacia_bush.mts",
2259 flags = "place_center_x, place_center_z",
2264 minetest.register_decoration({
2265 name = "default:pine_bush",
2266 deco_type = "schematic",
2267 place_on = {"default:dirt_with_snow"},
2272 spread = {x = 100, y = 100, z = 100},
2277 biomes = {"taiga", "snowy_grassland"},
2280 schematic = minetest.get_modpath("default") .. "/schematics/pine_bush.mts",
2281 flags = "place_center_x, place_center_z",
2286 register_grass_decoration(-0.03, 0.09, 5)
2287 register_grass_decoration(-0.015, 0.075, 4)
2288 register_grass_decoration(0, 0.06, 3)
2289 register_grass_decoration(0.015, 0.045, 2)
2290 register_grass_decoration(0.03, 0.03, 1)
2294 register_dry_grass_decoration(0.01, 0.05, 5)
2295 register_dry_grass_decoration(0.03, 0.03, 4)
2296 register_dry_grass_decoration(0.05, 0.01, 3)
2297 register_dry_grass_decoration(0.07, -0.01, 2)
2298 register_dry_grass_decoration(0.09, -0.03, 1)
2302 register_fern_decoration(14936, 3)
2303 register_fern_decoration(801, 2)
2304 register_fern_decoration(5, 1)
2308 minetest.register_decoration({
2309 name = "default:junglegrass",
2310 deco_type = "simple",
2311 place_on = {"default:dirt_with_rainforest_litter"},
2314 biomes = {"rainforest"},
2317 decoration = "default:junglegrass",
2322 minetest.register_decoration({
2323 name = "default:dry_shrub",
2324 deco_type = "simple",
2325 place_on = {"default:desert_sand",
2326 "default:sand", "default:silver_sand"},
2331 spread = {x = 200, y = 200, z = 200},
2336 biomes = {"desert", "sandstone_desert", "cold_desert"},
2339 decoration = "default:dry_shrub",
2345 minetest.register_decoration({
2346 name = "default:marram_grass",
2347 deco_type = "simple",
2348 place_on = {"default:sand"},
2353 spread = {x = 16, y = 16, z = 16},
2359 biomes = {"coniferous_forest_dunes", "grassland_dunes"},
2363 "default:marram_grass_1",
2364 "default:marram_grass_2",
2365 "default:marram_grass_3",
2371 minetest.register_decoration({
2372 deco_type = "simple",
2373 place_on = {"default:permafrost_with_stones"},
2378 spread = {x = 100, y = 100, z = 100},
2383 biomes = {"tundra"},
2386 decoration = "default:permafrost_with_moss",
2387 place_offset_y = -1,
2388 flags = "force_placement",
2391 -- Tundra patchy snow
2393 minetest.register_decoration({
2394 deco_type = "simple",
2396 "default:permafrost_with_moss",
2397 "default:permafrost_with_stones",
2405 spread = {x = 100, y = 100, z = 100},
2410 biomes = {"tundra", "tundra_beach"},
2413 decoration = "default:snow",
2418 minetest.register_decoration({
2419 name = "default:corals",
2420 deco_type = "simple",
2421 place_on = {"default:sand"},
2422 place_offset_y = -1,
2427 spread = {x = 50, y = 50, z = 50},
2439 flags = "force_placement",
2441 "default:coral_green", "default:coral_pink",
2442 "default:coral_cyan", "default:coral_brown",
2443 "default:coral_orange", "default:coral_skeleton",
2449 minetest.register_decoration({
2450 name = "default:kelp",
2451 deco_type = "simple",
2452 place_on = {"default:sand"},
2453 place_offset_y = -1,
2458 spread = {x = 200, y = 200, z = 200},
2465 "snowy_grassland_ocean",
2467 "coniferous_forest_ocean",
2468 "deciduous_forest_ocean",
2469 "sandstone_desert_ocean",
2470 "cold_desert_ocean"},
2473 flags = "force_placement",
2474 decoration = "default:sand_with_kelp",
2482 -- Detect mapgen, flags and parameters to select functions
2485 -- Get setting or default
2486 local mgv7_spflags = minetest.get_mapgen_setting("mgv7_spflags") or
2487 "mountains, ridges, nofloatlands, caverns"
2488 local captures_float = string.match(mgv7_spflags, "floatlands")
2489 local captures_nofloat = string.match(mgv7_spflags, "nofloatlands")
2491 -- Get setting or default
2492 -- Make global for mods to use to register floatland biomes
2493 default.mgv7_floatland_level =
2494 minetest.get_mapgen_setting("mgv7_floatland_level") or 1280
2495 default.mgv7_shadow_limit =
2496 minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024
2498 minetest.clear_registered_biomes()
2499 minetest.clear_registered_ores()
2500 minetest.clear_registered_decorations()
2502 local mg_name = minetest.get_mapgen_setting("mg_name")
2504 if mg_name == "v6" then
2505 default.register_mgv6_ores()
2506 default.register_mgv6_decorations()
2507 -- Need to check for 'nofloatlands' because that contains
2508 -- 'floatlands' which makes the second condition true.
2509 elseif mg_name == "v7" and
2510 captures_float == "floatlands" and
2511 captures_nofloat ~= "nofloatlands" then
2512 -- Mgv7 with floatlands and floatland biomes
2513 default.register_biomes(default.mgv7_shadow_limit - 1)
2514 default.register_floatland_biomes(
2515 default.mgv7_floatland_level, default.mgv7_shadow_limit)
2516 default.register_ores()
2517 default.register_decorations()
2519 default.register_biomes(31000)
2520 default.register_ores()
2521 default.register_decorations()