forked from minetest/minetest_game
Biomes: Add and auto-select mgv7 floatland biomes
A simple set of biomes for now: Ocean, coniferous forest, grassland, sandstone desert. Update biome lists for blob ores and decorations. Make sandstone desert filler 1 node deeper to match other deserts.
This commit is contained in:
parent
73e4666f28
commit
68212967c0
@ -187,7 +187,8 @@ function default.register_blob_ores()
|
|||||||
"coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest",
|
"coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest",
|
||||||
"deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert",
|
"deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert",
|
||||||
"cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean",
|
"cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean",
|
||||||
"rainforest", "rainforest_swamp", "rainforest_ocean", "underground"}
|
"rainforest", "rainforest_swamp", "rainforest_ocean", "underground",
|
||||||
|
"floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"}
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Dirt
|
-- Dirt
|
||||||
@ -211,7 +212,8 @@ function default.register_blob_ores()
|
|||||||
},
|
},
|
||||||
biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest",
|
biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest",
|
||||||
"deciduous_forest", "deciduous_forest_shore", "savanna", "savanna_shore",
|
"deciduous_forest", "deciduous_forest_shore", "savanna", "savanna_shore",
|
||||||
"rainforest", "rainforest_swamp"}
|
"rainforest", "rainforest_swamp", "floatland_grassland",
|
||||||
|
"floatland_coniferous_forest"}
|
||||||
})
|
})
|
||||||
|
|
||||||
-- Gravel
|
-- Gravel
|
||||||
@ -239,7 +241,8 @@ function default.register_blob_ores()
|
|||||||
"coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest",
|
"coniferous_forest_dunes", "coniferous_forest_ocean", "deciduous_forest",
|
||||||
"deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert",
|
"deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert",
|
||||||
"cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean",
|
"cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean",
|
||||||
"rainforest", "rainforest_swamp", "rainforest_ocean", "underground"}
|
"rainforest", "rainforest_swamp", "rainforest_ocean", "underground",
|
||||||
|
"floatland_ocean", "floatland_grassland", "floatland_coniferous_forest"}
|
||||||
})
|
})
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -491,7 +494,7 @@ end
|
|||||||
|
|
||||||
-- All mapgens except mgv6
|
-- All mapgens except mgv6
|
||||||
|
|
||||||
function default.register_biomes()
|
function default.register_biomes(upper_limit)
|
||||||
|
|
||||||
-- Icesheet
|
-- Icesheet
|
||||||
|
|
||||||
@ -510,7 +513,7 @@ function default.register_biomes()
|
|||||||
node_riverbed = "default:gravel",
|
node_riverbed = "default:gravel",
|
||||||
depth_riverbed = 2,
|
depth_riverbed = 2,
|
||||||
y_min = -8,
|
y_min = -8,
|
||||||
y_max = 31000,
|
y_max = upper_limit,
|
||||||
heat_point = 0,
|
heat_point = 0,
|
||||||
humidity_point = 73,
|
humidity_point = 73,
|
||||||
})
|
})
|
||||||
@ -550,7 +553,7 @@ function default.register_biomes()
|
|||||||
node_riverbed = "default:gravel",
|
node_riverbed = "default:gravel",
|
||||||
depth_riverbed = 2,
|
depth_riverbed = 2,
|
||||||
y_min = 2,
|
y_min = 2,
|
||||||
y_max = 31000,
|
y_max = upper_limit,
|
||||||
heat_point = 0,
|
heat_point = 0,
|
||||||
humidity_point = 40,
|
humidity_point = 40,
|
||||||
})
|
})
|
||||||
@ -612,7 +615,7 @@ function default.register_biomes()
|
|||||||
node_riverbed = "default:sand",
|
node_riverbed = "default:sand",
|
||||||
depth_riverbed = 2,
|
depth_riverbed = 2,
|
||||||
y_min = 2,
|
y_min = 2,
|
||||||
y_max = 31000,
|
y_max = upper_limit,
|
||||||
heat_point = 25,
|
heat_point = 25,
|
||||||
humidity_point = 70,
|
humidity_point = 70,
|
||||||
})
|
})
|
||||||
@ -654,7 +657,7 @@ function default.register_biomes()
|
|||||||
node_riverbed = "default:sand",
|
node_riverbed = "default:sand",
|
||||||
depth_riverbed = 2,
|
depth_riverbed = 2,
|
||||||
y_min = 5,
|
y_min = 5,
|
||||||
y_max = 31000,
|
y_max = upper_limit,
|
||||||
heat_point = 20,
|
heat_point = 20,
|
||||||
humidity_point = 35,
|
humidity_point = 35,
|
||||||
})
|
})
|
||||||
@ -696,7 +699,7 @@ function default.register_biomes()
|
|||||||
node_riverbed = "default:sand",
|
node_riverbed = "default:sand",
|
||||||
depth_riverbed = 2,
|
depth_riverbed = 2,
|
||||||
y_min = 6,
|
y_min = 6,
|
||||||
y_max = 31000,
|
y_max = upper_limit,
|
||||||
heat_point = 50,
|
heat_point = 50,
|
||||||
humidity_point = 35,
|
humidity_point = 35,
|
||||||
})
|
})
|
||||||
@ -758,7 +761,7 @@ function default.register_biomes()
|
|||||||
node_riverbed = "default:sand",
|
node_riverbed = "default:sand",
|
||||||
depth_riverbed = 2,
|
depth_riverbed = 2,
|
||||||
y_min = 6,
|
y_min = 6,
|
||||||
y_max = 31000,
|
y_max = upper_limit,
|
||||||
heat_point = 45,
|
heat_point = 45,
|
||||||
humidity_point = 70,
|
humidity_point = 70,
|
||||||
})
|
})
|
||||||
@ -820,7 +823,7 @@ function default.register_biomes()
|
|||||||
node_riverbed = "default:sand",
|
node_riverbed = "default:sand",
|
||||||
depth_riverbed = 2,
|
depth_riverbed = 2,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
y_max = 31000,
|
y_max = upper_limit,
|
||||||
heat_point = 60,
|
heat_point = 60,
|
||||||
humidity_point = 68,
|
humidity_point = 68,
|
||||||
})
|
})
|
||||||
@ -882,7 +885,7 @@ function default.register_biomes()
|
|||||||
node_riverbed = "default:sand",
|
node_riverbed = "default:sand",
|
||||||
depth_riverbed = 2,
|
depth_riverbed = 2,
|
||||||
y_min = 5,
|
y_min = 5,
|
||||||
y_max = 31000,
|
y_max = upper_limit,
|
||||||
heat_point = 92,
|
heat_point = 92,
|
||||||
humidity_point = 16,
|
humidity_point = 16,
|
||||||
})
|
})
|
||||||
@ -915,7 +918,7 @@ function default.register_biomes()
|
|||||||
node_top = "default:sand",
|
node_top = "default:sand",
|
||||||
depth_top = 1,
|
depth_top = 1,
|
||||||
node_filler = "default:sand",
|
node_filler = "default:sand",
|
||||||
depth_filler = 0,
|
depth_filler = 1,
|
||||||
node_stone = "default:sandstone",
|
node_stone = "default:sandstone",
|
||||||
--node_water_top = "",
|
--node_water_top = "",
|
||||||
--depth_water_top = ,
|
--depth_water_top = ,
|
||||||
@ -924,7 +927,7 @@ function default.register_biomes()
|
|||||||
node_riverbed = "default:sand",
|
node_riverbed = "default:sand",
|
||||||
depth_riverbed = 2,
|
depth_riverbed = 2,
|
||||||
y_min = 5,
|
y_min = 5,
|
||||||
y_max = 31000,
|
y_max = upper_limit,
|
||||||
heat_point = 60,
|
heat_point = 60,
|
||||||
humidity_point = 0,
|
humidity_point = 0,
|
||||||
})
|
})
|
||||||
@ -966,7 +969,7 @@ function default.register_biomes()
|
|||||||
node_riverbed = "default:sand",
|
node_riverbed = "default:sand",
|
||||||
depth_riverbed = 2,
|
depth_riverbed = 2,
|
||||||
y_min = 5,
|
y_min = 5,
|
||||||
y_max = 31000,
|
y_max = upper_limit,
|
||||||
heat_point = 40,
|
heat_point = 40,
|
||||||
humidity_point = 0,
|
humidity_point = 0,
|
||||||
})
|
})
|
||||||
@ -1008,7 +1011,7 @@ function default.register_biomes()
|
|||||||
node_riverbed = "default:sand",
|
node_riverbed = "default:sand",
|
||||||
depth_riverbed = 2,
|
depth_riverbed = 2,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
y_max = 31000,
|
y_max = upper_limit,
|
||||||
heat_point = 89,
|
heat_point = 89,
|
||||||
humidity_point = 42,
|
humidity_point = 42,
|
||||||
})
|
})
|
||||||
@ -1070,7 +1073,7 @@ function default.register_biomes()
|
|||||||
node_riverbed = "default:sand",
|
node_riverbed = "default:sand",
|
||||||
depth_riverbed = 2,
|
depth_riverbed = 2,
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
y_max = 31000,
|
y_max = upper_limit,
|
||||||
heat_point = 86,
|
heat_point = 86,
|
||||||
humidity_point = 65,
|
humidity_point = 65,
|
||||||
})
|
})
|
||||||
@ -1137,6 +1140,100 @@ function default.register_biomes()
|
|||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
|
-- Biomes for floatlands
|
||||||
|
|
||||||
|
function default.register_floatland_biomes(floatland_level, shadow_limit)
|
||||||
|
|
||||||
|
-- Coniferous forest
|
||||||
|
|
||||||
|
minetest.register_biome({
|
||||||
|
name = "floatland_coniferous_forest",
|
||||||
|
--node_dust = "",
|
||||||
|
node_top = "default:dirt_with_grass",
|
||||||
|
depth_top = 1,
|
||||||
|
node_filler = "default:dirt",
|
||||||
|
depth_filler = 3,
|
||||||
|
--node_stone = "",
|
||||||
|
--node_water_top = "",
|
||||||
|
--depth_water_top = ,
|
||||||
|
--node_water = "",
|
||||||
|
--node_river_water = "",
|
||||||
|
--node_riverbed = "",
|
||||||
|
--depth_riverbed = ,
|
||||||
|
y_min = floatland_level + 2,
|
||||||
|
y_max = 31000,
|
||||||
|
heat_point = 50,
|
||||||
|
humidity_point = 70,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Grassland
|
||||||
|
|
||||||
|
minetest.register_biome({
|
||||||
|
name = "floatland_grassland",
|
||||||
|
--node_dust = "",
|
||||||
|
node_top = "default:dirt_with_grass",
|
||||||
|
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 = "",
|
||||||
|
--depth_riverbed = ,
|
||||||
|
y_min = floatland_level + 2,
|
||||||
|
y_max = 31000,
|
||||||
|
heat_point = 50,
|
||||||
|
humidity_point = 35,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Sandstone desert
|
||||||
|
|
||||||
|
minetest.register_biome({
|
||||||
|
name = "floatland_sandstone_desert",
|
||||||
|
--node_dust = "",
|
||||||
|
node_top = "default:sand",
|
||||||
|
depth_top = 1,
|
||||||
|
node_filler = "default:sand",
|
||||||
|
depth_filler = 1,
|
||||||
|
node_stone = "default:sandstone",
|
||||||
|
--node_water_top = "",
|
||||||
|
--depth_water_top = ,
|
||||||
|
--node_water = "",
|
||||||
|
--node_river_water = "",
|
||||||
|
--node_riverbed = "",
|
||||||
|
--depth_riverbed = ,
|
||||||
|
y_min = floatland_level + 2,
|
||||||
|
y_max = 31000,
|
||||||
|
heat_point = 50,
|
||||||
|
humidity_point = 0,
|
||||||
|
})
|
||||||
|
|
||||||
|
-- Floatland ocean / underground
|
||||||
|
|
||||||
|
minetest.register_biome({
|
||||||
|
name = "floatland_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 = "",
|
||||||
|
--depth_riverbed = ,
|
||||||
|
y_min = shadow_limit,
|
||||||
|
y_max = floatland_level + 1,
|
||||||
|
heat_point = 50,
|
||||||
|
humidity_point = 50,
|
||||||
|
})
|
||||||
|
end
|
||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Register decorations
|
-- Register decorations
|
||||||
--
|
--
|
||||||
@ -1247,7 +1344,8 @@ local function register_grass_decoration(offset, scale, length)
|
|||||||
persist = 0.6
|
persist = 0.6
|
||||||
},
|
},
|
||||||
biomes = {"grassland", "grassland_dunes", "deciduous_forest",
|
biomes = {"grassland", "grassland_dunes", "deciduous_forest",
|
||||||
"coniferous_forest", "coniferous_forest_dunes"},
|
"coniferous_forest", "coniferous_forest_dunes",
|
||||||
|
"floatland_grassland", "floatland_coniferous_forest"},
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
y_max = 31000,
|
y_max = 31000,
|
||||||
decoration = "default:grass_" .. length,
|
decoration = "default:grass_" .. length,
|
||||||
@ -1361,7 +1459,7 @@ function default.register_decorations()
|
|||||||
octaves = 3,
|
octaves = 3,
|
||||||
persist = 0.66
|
persist = 0.66
|
||||||
},
|
},
|
||||||
biomes = {"taiga", "coniferous_forest"},
|
biomes = {"taiga", "coniferous_forest", "floatland_coniferous_forest"},
|
||||||
y_min = 2,
|
y_min = 2,
|
||||||
y_max = 31000,
|
y_max = 31000,
|
||||||
schematic = minetest.get_modpath("default") .. "/schematics/pine_tree.mts",
|
schematic = minetest.get_modpath("default") .. "/schematics/pine_tree.mts",
|
||||||
@ -1549,7 +1647,8 @@ function default.register_decorations()
|
|||||||
octaves = 3,
|
octaves = 3,
|
||||||
persist = 0.7,
|
persist = 0.7,
|
||||||
},
|
},
|
||||||
biomes = {"snowy_grassland", "grassland", "deciduous_forest"},
|
biomes = {"snowy_grassland", "grassland", "deciduous_forest",
|
||||||
|
"floatland_grassland"},
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
y_max = 31000,
|
y_max = 31000,
|
||||||
schematic = minetest.get_modpath("default") .. "/schematics/bush.mts",
|
schematic = minetest.get_modpath("default") .. "/schematics/bush.mts",
|
||||||
@ -1655,9 +1754,18 @@ end
|
|||||||
|
|
||||||
|
|
||||||
--
|
--
|
||||||
-- Detect mapgen to select functions
|
-- Detect mapgen, flags and parameters to select functions
|
||||||
--
|
--
|
||||||
|
|
||||||
|
-- Get setting or default
|
||||||
|
local mgv7_spflags = minetest.get_mapgen_setting("mgv7_spflags") or
|
||||||
|
"mountains, ridges, nofloatlands"
|
||||||
|
local captures_float = string.match(mgv7_spflags, "floatlands")
|
||||||
|
local captures_nofloat = string.match(mgv7_spflags, "nofloatlands")
|
||||||
|
|
||||||
|
local mgv7_floatland_level = minetest.get_mapgen_setting("mgv7_floatland_level") or 1280
|
||||||
|
local mgv7_shadow_limit = minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024
|
||||||
|
|
||||||
minetest.clear_registered_biomes()
|
minetest.clear_registered_biomes()
|
||||||
minetest.clear_registered_ores()
|
minetest.clear_registered_ores()
|
||||||
minetest.clear_registered_decorations()
|
minetest.clear_registered_decorations()
|
||||||
@ -1667,8 +1775,16 @@ if mg_name == "v6" then
|
|||||||
default.register_mgv6_blob_ores()
|
default.register_mgv6_blob_ores()
|
||||||
default.register_ores()
|
default.register_ores()
|
||||||
default.register_mgv6_decorations()
|
default.register_mgv6_decorations()
|
||||||
|
elseif mg_name == "v7" and captures_float == "floatlands" and
|
||||||
|
captures_nofloat ~= "nofloatlands" then
|
||||||
|
-- Mgv7 with floatlands
|
||||||
|
default.register_biomes(mgv7_shadow_limit - 1)
|
||||||
|
default.register_floatland_biomes(mgv7_floatland_level, mgv7_shadow_limit)
|
||||||
|
default.register_blob_ores()
|
||||||
|
default.register_ores()
|
||||||
|
default.register_decorations()
|
||||||
else
|
else
|
||||||
default.register_biomes()
|
default.register_biomes(31000)
|
||||||
default.register_blob_ores()
|
default.register_blob_ores()
|
||||||
default.register_ores()
|
default.register_ores()
|
||||||
default.register_decorations()
|
default.register_decorations()
|
||||||
|
@ -94,7 +94,8 @@ local function register_flower(seed, name)
|
|||||||
octaves = 3,
|
octaves = 3,
|
||||||
persist = 0.6
|
persist = 0.6
|
||||||
},
|
},
|
||||||
biomes = {"grassland", "deciduous_forest", "coniferous_forest"},
|
biomes = {"grassland", "deciduous_forest", "coniferous_forest",
|
||||||
|
"floatland_grassland", "floatland_coniferous_forest"},
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
y_max = 31000,
|
y_max = 31000,
|
||||||
decoration = "flowers:"..name,
|
decoration = "flowers:"..name,
|
||||||
@ -114,7 +115,8 @@ local function register_mushroom(name)
|
|||||||
octaves = 3,
|
octaves = 3,
|
||||||
persist = 0.66
|
persist = 0.66
|
||||||
},
|
},
|
||||||
biomes = {"deciduous_forest", "coniferous_forest"},
|
biomes = {"deciduous_forest", "coniferous_forest",
|
||||||
|
"floatland_coniferous_forest"},
|
||||||
y_min = 1,
|
y_min = 1,
|
||||||
y_max = 31000,
|
y_max = 31000,
|
||||||
decoration = "flowers:"..name,
|
decoration = "flowers:"..name,
|
||||||
|
Loading…
Reference in New Issue
Block a user