From: paramat Date: Thu, 1 Dec 2016 03:15:15 +0000 (+0000) Subject: Default / flowers: New biomes. Limit dirt blobs. Add corals, bushes X-Git-Tag: 0.4.15~15 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=42afe679a7f7267806b0bf2749728e609e78ccb3;p=oweals%2Fminetest_game.git Default / flowers: New biomes. Limit dirt blobs. Add corals, bushes Biomes: Add 'sandstone desert', 'cold desert', 'snowy grassland'. Rename 'glacier' biome to 'icesheet' biome. Rename non-swamp 'swamp' biomes to 'shore' biomes. Remove 'sandstone grassland' biome. Rename 'stone grassland' biome to 'grassland' biome. Edit biome points for improved similarity to Whittaker classification. Change 'tundra' to bare stone with snowblocks. Make dirt 'swamp' / 'shore' less deep. Ores: Make dirt blob ore biome-specific, limit to dirt biomes. Decorations: Make mushroom noise spread match that of appletrees as originally intended, to have mushrooms spawn in darker thicker forest areas. Add coral reefs in warm oceans. Add bushes and acacia bushes. Jungletrees in deeper water for larger swamps. Register flower mod decorations in singlenode mapgen for use by minetest.generate_registered_decorations, as in default/mapgen.lua. --- diff --git a/mods/default/mapgen.lua b/mods/default/mapgen.lua index 52aa294c..d786a841 100644 --- a/mods/default/mapgen.lua +++ b/mods/default/mapgen.lua @@ -43,6 +43,7 @@ minetest.register_alias("mapgen_stair_sandstonebrick", "stairs:stair_sandstonebr -- function default.register_ores() + minetest.clear_registered_ores() -- Blob ores -- These first to avoid other ores in blobs @@ -109,6 +110,8 @@ function default.register_ores() octaves = 1, persist = 0.0 }, + biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest", + "deciduous_forest", "savanna", "rainforest"} }) -- Gravel @@ -379,10 +382,10 @@ end function default.register_biomes() minetest.clear_registered_biomes() - -- Permanent ice + -- Icesheet minetest.register_biome({ - name = "glacier", + name = "icesheet", node_dust = "default:snowblock", node_top = "default:snowblock", depth_top = 1, @@ -398,36 +401,36 @@ function default.register_biomes() y_min = -8, y_max = 31000, heat_point = 0, - humidity_point = 50, + humidity_point = 73, }) minetest.register_biome({ - name = "glacier_ocean", + name = "icesheet_ocean", node_dust = "default:snowblock", node_top = "default:sand", depth_top = 1, node_filler = "default:sand", depth_filler = 3, --node_stone = "", - --node_water_top = "", - --depth_water_top = , + node_water_top = "default:ice", + depth_water_top = 10, --node_water = "", --node_river_water = "", y_min = -112, y_max = -9, heat_point = 0, - humidity_point = 50, + humidity_point = 73, }) - -- Cold + -- Tundra minetest.register_biome({ name = "tundra", - --node_dust = "", - node_top = "default:dirt_with_snow", - depth_top = 1, - node_filler = "default:dirt", - depth_filler = 1, + node_dust = "default:snowblock", + --node_top = , + --depth_top = , + --node_filler = , + --depth_filler = , --node_stone = "", --node_water_top = "", --depth_water_top = , @@ -437,8 +440,8 @@ function default.register_biomes() depth_riverbed = 2, y_min = 2, y_max = 31000, - heat_point = 15, - humidity_point = 35, + heat_point = 0, + humidity_point = 40, }) minetest.register_biome({ @@ -457,8 +460,8 @@ function default.register_biomes() depth_riverbed = 2, y_min = -3, y_max = 1, - heat_point = 15, - humidity_point = 35, + heat_point = 0, + humidity_point = 40, }) minetest.register_biome({ @@ -477,10 +480,11 @@ function default.register_biomes() depth_riverbed = 2, y_min = -112, y_max = -4, - heat_point = 15, - humidity_point = 35, + heat_point = 0, + humidity_point = 40, }) + -- Taiga minetest.register_biome({ name = "taiga", @@ -498,8 +502,8 @@ function default.register_biomes() depth_riverbed = 2, y_min = 2, y_max = 31000, - heat_point = 15, - humidity_point = 65, + heat_point = 25, + humidity_point = 70, }) minetest.register_biome({ @@ -518,14 +522,56 @@ function default.register_biomes() depth_riverbed = 2, y_min = -112, y_max = 1, - heat_point = 15, - humidity_point = 65, + heat_point = 25, + humidity_point = 70, + }) + + -- Snowy grassland + + minetest.register_biome({ + name = "snowy_grassland", + node_dust = "default:snow", + node_top = "default:dirt_with_snow", + depth_top = 1, + node_filler = "default:dirt", + depth_filler = 1, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = 31000, + heat_point = 20, + humidity_point = 35, + }) + + minetest.register_biome({ + name = "snowy_grassland_ocean", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 3, + --node_stone = "", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = -112, + y_max = 4, + heat_point = 20, + humidity_point = 35, }) - -- Temperate + -- Grassland minetest.register_biome({ - name = "stone_grassland", + name = "grassland", --node_dust = "", node_top = "default:dirt_with_grass", depth_top = 1, @@ -540,12 +586,12 @@ function default.register_biomes() depth_riverbed = 2, y_min = 6, y_max = 31000, - heat_point = 40, + heat_point = 50, humidity_point = 35, }) minetest.register_biome({ - name = "stone_grassland_dunes", + name = "grassland_dunes", --node_dust = "", node_top = "default:sand", depth_top = 1, @@ -560,12 +606,12 @@ function default.register_biomes() depth_riverbed = 2, y_min = 5, y_max = 5, - heat_point = 40, + heat_point = 50, humidity_point = 35, }) minetest.register_biome({ - name = "stone_grassland_ocean", + name = "grassland_ocean", --node_dust = "", node_top = "default:sand", depth_top = 1, @@ -580,10 +626,11 @@ function default.register_biomes() depth_riverbed = 2, y_min = -112, y_max = 4, - heat_point = 40, + heat_point = 50, humidity_point = 35, }) + -- Coniferous forest minetest.register_biome({ name = "coniferous_forest", @@ -601,8 +648,8 @@ function default.register_biomes() depth_riverbed = 2, y_min = 6, y_max = 31000, - heat_point = 40, - humidity_point = 65, + heat_point = 45, + humidity_point = 70, }) minetest.register_biome({ @@ -621,8 +668,8 @@ function default.register_biomes() depth_riverbed = 2, y_min = 5, y_max = 5, - heat_point = 40, - humidity_point = 65, + heat_point = 45, + humidity_point = 70, }) minetest.register_biome({ @@ -641,59 +688,60 @@ function default.register_biomes() depth_riverbed = 2, y_min = -112, y_max = 4, - heat_point = 40, - humidity_point = 65, + heat_point = 45, + humidity_point = 70, }) + -- Deciduous forest minetest.register_biome({ - name = "sandstone_grassland", + name = "deciduous_forest", --node_dust = "", node_top = "default:dirt_with_grass", depth_top = 1, node_filler = "default:dirt", - depth_filler = 1, - node_stone = "default:sandstone", + depth_filler = 3, + --node_stone = "", --node_water_top = "", --depth_water_top = , --node_water = "", --node_river_water = "", node_riverbed = "default:sand", depth_riverbed = 2, - y_min = 6, + y_min = 1, y_max = 31000, heat_point = 60, - humidity_point = 35, + humidity_point = 68, }) minetest.register_biome({ - name = "sandstone_grassland_dunes", + name = "deciduous_forest_shore", --node_dust = "", - node_top = "default:sand", + node_top = "default:dirt", depth_top = 1, - node_filler = "default:sand", - depth_filler = 2, - node_stone = "default:sandstone", + node_filler = "default:dirt", + depth_filler = 3, + --node_stone = "", --node_water_top = "", --depth_water_top = , --node_water = "", --node_river_water = "", node_riverbed = "default:sand", depth_riverbed = 2, - y_min = 5, - y_max = 5, + y_min = -1, + y_max = 0, heat_point = 60, - humidity_point = 35, + humidity_point = 68, }) minetest.register_biome({ - name = "sandstone_grassland_ocean", + name = "deciduous_forest_ocean", --node_dust = "", node_top = "default:sand", depth_top = 1, node_filler = "default:sand", depth_filler = 3, - node_stone = "default:sandstone", + --node_stone = "", --node_water_top = "", --depth_water_top = , --node_water = "", @@ -701,60 +749,83 @@ function default.register_biomes() node_riverbed = "default:sand", depth_riverbed = 2, y_min = -112, - y_max = 4, + y_max = -2, heat_point = 60, - humidity_point = 35, + humidity_point = 68, }) + -- Desert minetest.register_biome({ - name = "deciduous_forest", + name = "desert", --node_dust = "", - node_top = "default:dirt_with_grass", + node_top = "default:desert_sand", depth_top = 1, - node_filler = "default:dirt", - depth_filler = 3, - --node_stone = "", + node_filler = "default:desert_sand", + depth_filler = 1, + node_stone = "default:desert_stone", --node_water_top = "", --depth_water_top = , --node_water = "", --node_river_water = "", node_riverbed = "default:sand", depth_riverbed = 2, - y_min = 1, + y_min = 5, y_max = 31000, - heat_point = 60, - humidity_point = 65, + heat_point = 92, + humidity_point = 16, }) minetest.register_biome({ - name = "deciduous_forest_swamp", + name = "desert_ocean", --node_dust = "", - node_top = "default:dirt", + node_top = "default:sand", depth_top = 1, - node_filler = "default:dirt", + node_filler = "default:sand", depth_filler = 3, - --node_stone = "", + node_stone = "default:desert_stone", --node_water_top = "", --depth_water_top = , --node_water = "", --node_river_water = "", node_riverbed = "default:sand", depth_riverbed = 2, - y_min = -3, - y_max = 0, + y_min = -112, + y_max = 4, + heat_point = 92, + humidity_point = 16, + }) + + -- Sandstone desert + + minetest.register_biome({ + name = "sandstone_desert", + --node_dust = "", + node_top = "default:sand", + depth_top = 1, + node_filler = "default:sand", + depth_filler = 0, + node_stone = "default:sandstone", + --node_water_top = "", + --depth_water_top = , + --node_water = "", + --node_river_water = "", + node_riverbed = "default:sand", + depth_riverbed = 2, + y_min = 5, + y_max = 31000, heat_point = 60, - humidity_point = 65, + humidity_point = 0, }) minetest.register_biome({ - name = "deciduous_forest_ocean", + name = "sandstone_desert_ocean", --node_dust = "", node_top = "default:sand", depth_top = 1, node_filler = "default:sand", depth_filler = 3, - --node_stone = "", + node_stone = "default:sandstone", --node_water_top = "", --depth_water_top = , --node_water = "", @@ -762,21 +833,21 @@ function default.register_biomes() node_riverbed = "default:sand", depth_riverbed = 2, y_min = -112, - y_max = -4, + y_max = 4, heat_point = 60, - humidity_point = 65, + humidity_point = 0, }) - -- Hot + -- Cold desert minetest.register_biome({ - name = "desert", + name = "cold_desert", --node_dust = "", - node_top = "default:desert_sand", + node_top = "default:silver_sand", depth_top = 1, - node_filler = "default:desert_sand", + node_filler = "default:silver_sand", depth_filler = 1, - node_stone = "default:desert_stone", + --node_stone = "", --node_water_top = "", --depth_water_top = , --node_water = "", @@ -785,18 +856,18 @@ function default.register_biomes() depth_riverbed = 2, y_min = 5, y_max = 31000, - heat_point = 85, - humidity_point = 20, + heat_point = 40, + humidity_point = 0, }) minetest.register_biome({ - name = "desert_ocean", + name = "cold_desert_ocean", --node_dust = "", node_top = "default:sand", depth_top = 1, node_filler = "default:sand", depth_filler = 3, - node_stone = "default:desert_stone", + --node_stone = "", --node_water_top = "", --depth_water_top = , --node_water = "", @@ -805,10 +876,11 @@ function default.register_biomes() depth_riverbed = 2, y_min = -112, y_max = 4, - heat_point = 85, - humidity_point = 20, + heat_point = 40, + humidity_point = 0, }) + -- Savanna minetest.register_biome({ name = "savanna", @@ -826,12 +898,12 @@ function default.register_biomes() depth_riverbed = 2, y_min = 1, y_max = 31000, - heat_point = 85, - humidity_point = 50, + heat_point = 89, + humidity_point = 42, }) minetest.register_biome({ - name = "savanna_swamp", + name = "savanna_shore", --node_dust = "", node_top = "default:dirt", depth_top = 1, @@ -844,10 +916,10 @@ function default.register_biomes() --node_river_water = "", node_riverbed = "default:sand", depth_riverbed = 2, - y_min = -3, + y_min = -1, y_max = 0, - heat_point = 85, - humidity_point = 50, + heat_point = 89, + humidity_point = 42, }) minetest.register_biome({ @@ -865,11 +937,12 @@ function default.register_biomes() node_riverbed = "default:sand", depth_riverbed = 2, y_min = -112, - y_max = -4, - heat_point = 85, - humidity_point = 50, + y_max = -2, + heat_point = 89, + humidity_point = 42, }) + -- Rainforest minetest.register_biome({ name = "rainforest", @@ -887,8 +960,8 @@ function default.register_biomes() depth_riverbed = 2, y_min = 1, y_max = 31000, - heat_point = 85, - humidity_point = 80, + heat_point = 86, + humidity_point = 65, }) minetest.register_biome({ @@ -905,10 +978,10 @@ function default.register_biomes() --node_river_water = "", node_riverbed = "default:sand", depth_riverbed = 2, - y_min = -3, + y_min = -1, y_max = 0, - heat_point = 85, - humidity_point = 80, + heat_point = 86, + humidity_point = 65, }) minetest.register_biome({ @@ -926,9 +999,9 @@ function default.register_biomes() node_riverbed = "default:sand", depth_riverbed = 2, y_min = -112, - y_max = -4, - heat_point = 85, - humidity_point = 80, + y_max = -2, + heat_point = 86, + humidity_point = 65, }) -- Underground @@ -1047,7 +1120,8 @@ function default.register_mgv6_decorations() }) end --- All mapgens except mgv6 and singlenode + +-- All mapgens except mgv6 local function register_grass_decoration(offset, scale, length) minetest.register_decoration({ @@ -1062,13 +1136,11 @@ local function register_grass_decoration(offset, scale, length) octaves = 3, persist = 0.6 }, - biomes = {"stone_grassland", "sandstone_grassland", - "deciduous_forest", "coniferous_forest", - "stone_grassland_dunes", "sandstone_grassland_dunes", - "coniferous_forest_dunes"}, + biomes = {"grassland", "grassland_dunes", "deciduous_forest", + "coniferous_forest", "coniferous_forest_dunes"}, y_min = 1, y_max = 31000, - decoration = "default:grass_"..length, + decoration = "default:grass_" .. length, }) end @@ -1088,10 +1160,11 @@ local function register_dry_grass_decoration(offset, scale, length) biomes = {"savanna"}, y_min = 1, y_max = 31000, - decoration = "default:dry_grass_"..length, + decoration = "default:dry_grass_" .. length, }) end + function default.register_decorations() minetest.clear_registered_decorations() @@ -1112,7 +1185,7 @@ function default.register_decorations() biomes = {"deciduous_forest"}, y_min = 1, y_max = 31000, - schematic = minetest.get_modpath("default").."/schematics/apple_tree.mts", + schematic = minetest.get_modpath("default") .. "/schematics/apple_tree.mts", flags = "place_center_x, place_center_z", }) @@ -1157,9 +1230,9 @@ function default.register_decorations() sidelen = 80, fill_ratio = 0.1, biomes = {"rainforest", "rainforest_swamp"}, - y_min = 0, + y_min = -1, y_max = 31000, - schematic = minetest.get_modpath("default").."/schematics/jungle_tree.mts", + schematic = minetest.get_modpath("default") .. "/schematics/jungle_tree.mts", flags = "place_center_x, place_center_z", rotation = "random", }) @@ -1207,7 +1280,7 @@ function default.register_decorations() biomes = {"taiga", "coniferous_forest"}, y_min = 2, y_max = 31000, - schematic = minetest.get_modpath("default").."/schematics/pine_tree.mts", + schematic = minetest.get_modpath("default") .. "/schematics/pine_tree.mts", flags = "place_center_x, place_center_z", }) @@ -1261,7 +1334,7 @@ function default.register_decorations() biomes = {"savanna"}, y_min = 1, y_max = 31000, - schematic = minetest.get_modpath("default").."/schematics/acacia_tree.mts", + schematic = minetest.get_modpath("default") .. "/schematics/acacia_tree.mts", flags = "place_center_x, place_center_z", rotation = "random", }) @@ -1313,7 +1386,7 @@ function default.register_decorations() biomes = {"deciduous_forest"}, y_min = 1, y_max = 31000, - schematic = minetest.get_modpath("default").."/schematics/aspen_tree.mts", + schematic = minetest.get_modpath("default") .. "/schematics/aspen_tree.mts", flags = "place_center_x, place_center_z", }) @@ -1349,6 +1422,7 @@ function default.register_decorations() flags = "place_center_x", rotation = "random", }) + -- Large cactus minetest.register_decoration({ @@ -1366,7 +1440,7 @@ function default.register_decorations() biomes = {"desert"}, y_min = 5, y_max = 31000, - schematic = minetest.get_modpath("default").."/schematics/large_cactus.mts", + schematic = minetest.get_modpath("default") .. "/schematics/large_cactus.mts", flags = "place_center_x", rotation = "random", }) @@ -1407,10 +1481,52 @@ function default.register_decorations() octaves = 3, persist = 0.7 }, - biomes = {"savanna_swamp"}, + biomes = {"savanna_shore"}, y_min = 0, y_max = 0, - schematic = minetest.get_modpath("default").."/schematics/papyrus.mts", + schematic = minetest.get_modpath("default") .. "/schematics/papyrus.mts", + }) + + -- Bush + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_grass", "default:dirt_with_snow"}, + sidelen = 16, + noise_params = { + offset = -0.004, + scale = 0.01, + spread = {x = 100, y = 100, z = 100}, + seed = 137, + octaves = 3, + persist = 0.7, + }, + biomes = {"snowy_grassland", "grassland", "deciduous_forest"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/bush.mts", + flags = "place_center_x, place_center_z", + }) + + -- Acacia bush + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:dirt_with_dry_grass"}, + sidelen = 16, + noise_params = { + offset = -0.004, + scale = 0.01, + spread = {x = 100, y = 100, z = 100}, + seed = 90155, + octaves = 3, + persist = 0.7, + }, + biomes = {"savanna"}, + y_min = 1, + y_max = 31000, + schematic = minetest.get_modpath("default") .. "/schematics/acacia_bush.mts", + flags = "place_center_x, place_center_z", }) -- Grasses @@ -1446,7 +1562,8 @@ function default.register_decorations() minetest.register_decoration({ deco_type = "simple", - place_on = {"default:desert_sand", "default:dirt_with_snow"}, + place_on = {"default:desert_sand", + "default:sand", "default:silver_sand"}, sidelen = 16, noise_params = { offset = 0, @@ -1456,11 +1573,36 @@ function default.register_decorations() octaves = 3, persist = 0.6 }, - biomes = {"desert", "tundra"}, + biomes = {"desert", "sandstone_desert", "cold_desert"}, y_min = 2, y_max = 31000, decoration = "default:dry_shrub", }) + + -- Coral reef + + minetest.register_decoration({ + deco_type = "schematic", + place_on = {"default:sand"}, + noise_params = { + offset = -0.1, + scale = 0.1, + spread = {x = 200, y = 200, z = 200}, + seed = 7013, + octaves = 3, + persist = 1, + }, + biomes = { + "desert_ocean", + "savanna_ocean", + "rainforest_ocean", + }, + y_min = -8, + y_max = -2, + schematic = minetest.get_modpath("default") .. "/schematics/corals.mts", + flags = "place_center_x, place_center_z", + rotation = "random", + }) end diff --git a/mods/default/schematics/acacia_bush.mts b/mods/default/schematics/acacia_bush.mts new file mode 100644 index 00000000..df955861 Binary files /dev/null and b/mods/default/schematics/acacia_bush.mts differ diff --git a/mods/default/schematics/bush.mts b/mods/default/schematics/bush.mts new file mode 100644 index 00000000..d08cf5f5 Binary files /dev/null and b/mods/default/schematics/bush.mts differ diff --git a/mods/default/schematics/corals.mts b/mods/default/schematics/corals.mts new file mode 100644 index 00000000..e1bd7ded Binary files /dev/null and b/mods/default/schematics/corals.mts differ diff --git a/mods/flowers/mapgen.lua b/mods/flowers/mapgen.lua index 162b11db..ec03c9b2 100644 --- a/mods/flowers/mapgen.lua +++ b/mods/flowers/mapgen.lua @@ -94,8 +94,7 @@ local function register_flower(seed, name) octaves = 3, persist = 0.6 }, - biomes = {"stone_grassland", "sandstone_grassland", - "deciduous_forest", "coniferous_forest"}, + biomes = {"grassland", "deciduous_forest", "coniferous_forest"}, y_min = 1, y_max = 31000, decoration = "flowers:"..name, @@ -110,7 +109,7 @@ local function register_mushroom(name) noise_params = { offset = 0, scale = 0.006, - spread = {x = 200, y = 200, z = 200}, + spread = {x = 250, y = 250, z = 250}, seed = 2, octaves = 3, persist = 0.66 @@ -135,10 +134,10 @@ local function register_waterlily() octaves = 3, persist = 0.7 }, - biomes = {"rainforest_swamp", "savanna_swamp", "deciduous_forest_swamp"}, + biomes = {"rainforest_swamp", "savanna_shore", "deciduous_forest_shore"}, y_min = 0, y_max = 0, - schematic = minetest.get_modpath("flowers").."/schematics/waterlily.mts", + schematic = minetest.get_modpath("flowers") .. "/schematics/waterlily.mts", rotation = "random", }) end @@ -162,12 +161,9 @@ end -- Detect mapgen to select functions -- --- Mods using singlenode mapgen can call these functions to enable --- the use of minetest.generate_ores or minetest.generate_decorations - local mg_name = minetest.get_mapgen_setting("mg_name") if mg_name == "v6" then flowers.register_mgv6_decorations() -elseif mg_name ~= "singlenode" then +else flowers.register_decorations() end