Repixture/mods/rp_default/mapgen_biomes_v2.lua

821 lines
21 KiB
Lua

--
-- Mapgen
--
local S = minetest.get_translator("rp_default")
--[[ BIOMES ]]
minetest.clear_registered_biomes()
local mg_name = minetest.get_mapgen_setting("mg_name")
local register_underwater_and_beach = function(biomename, underwater_description, beach_description, node_underwater, beach_depth, node_beach)
local orig_biome = minetest.registered_biomes[biomename]
if not orig_biome then
return
end
local newdef = table.copy(orig_biome)
newdef.name = biomename .. " Underwater"
newdef._description = underwater_description
newdef.node_top = node_underwater or "rp_default:sand"
newdef.node_filler = newdef.node_top
newdef.y_min = default.UNDERGROUND_Y_MAX + 1
if beach_depth and beach_depth > 0 then
newdef.y_max = orig_biome.y_min - beach_depth - 1
else
newdef.y_max = orig_biome.y_min - 1
end
minetest.register_biome(newdef)
if beach_depth and beach_depth > 0 then
local newdef2 = table.copy(orig_biome)
newdef2.name = biomename .. " Beach"
newdef2._description = beach_description
newdef2.node_top = node_beach or "rp_default:sand"
newdef2.node_filler = newdef2.node_top
newdef2.y_min = orig_biome.y_min - beach_depth
newdef2.y_max = orig_biome.y_min - 1
minetest.register_biome(newdef2)
end
end
if mg_name ~= "v6" then
-- 'lowland' version of Dense Grassland biome
minetest.register_biome(
{
name = "Marsh",
_description = S("Marsh"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_cave_liquid = "rp_default:swamp_water_source",
node_riverbed = "rp_default:dirt",
depth_filler = 0,
depth_top = 1,
depth_riverbed = 1,
y_min = 2,
y_max = default.SWAMP_Y_MAX,
heat_point = 81,
humidity_point = 80,
})
register_underwater_and_beach("Marsh", S("Marsh Underwater"), S("Marsh Beach"), "rp_default:dirt", 2, "rp_default:sand")
default.set_biome_info("Marsh", "grassy")
-- 'highland' version of Marsh biome
minetest.register_biome(
{
name = "Dense Grassland",
_description = S("Dense Grassland"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:dirt",
depth_filler = 3,
depth_top = 1,
depth_riverbed = 3,
y_min = default.SWAMP_Y_MAX + 1,
y_max = default.GLOBAL_Y_MAX,
heat_point = 81,
humidity_point = 80,
})
default.set_biome_info("Dense Grassland", "grassy")
-- This special biome has the giant birch trees and is
-- limited to a very specific height.
-- It has no equivalent biome above or below.
minetest.register_biome(
{
name = "Deep Forest",
_description = S("Giga Birch Forest"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:sand",
depth_filler = 6,
depth_top = 1,
depth_riverbed = 3,
y_min = 30,
y_max = 40,
heat_point = 29,
humidity_point = 34,
})
default.set_biome_info("Deep Forest", "grassy")
minetest.register_biome(
{
name = "Forest",
_description = S("Mixed Forest"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:sand",
depth_filler = 6,
depth_top = 1,
depth_riverbed = 2,
y_min = 2,
y_max = 200,
heat_point = 29,
humidity_point = 36,
})
register_underwater_and_beach("Forest", S("Mixed Forest Underwater"), S("Mixed Forest Beach"), "rp_default:sand")
default.set_biome_info("Forest", "grassy")
minetest.register_biome(
{
name = "Grove",
_description = S("Grove"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:sand",
depth_filler = 4,
depth_top = 1,
depth_riverbed = 4,
y_min = 3,
y_max = default.GLOBAL_Y_MAX,
heat_point = 35,
humidity_point = 19,
})
register_underwater_and_beach("Grove", S("Grove Underwater"), S("Grove Beach"), "rp_default:sand")
default.set_biome_info("Grove", "grassy")
minetest.register_biome(
{
name = "Wilderness",
_description = S("Wilderness"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:sand",
depth_filler = 6,
depth_top = 1,
depth_riverbed = 2,
y_min = 3,
y_max = default.GLOBAL_Y_MAX,
heat_point = 55,
humidity_point = 24,
})
register_underwater_and_beach("Wilderness", S("Wilderness Underwater"), S("Wilderness Beach"), "rp_default:sand")
default.set_biome_info("Wilderness", "grassy")
-- Note: Grassland is below Orchard
minetest.register_biome(
{
name = "Grassland",
_description = S("Grassland"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:sand",
depth_filler = 4,
depth_top = 1,
depth_riverbed = 2,
y_min = 3,
y_max = default.ORCHARD_Y_MIN - 1,
heat_point = 55,
humidity_point = 56,
})
register_underwater_and_beach("Grassland", S("Grassland Underwater"), S("Grassland Beach"), "rp_default:sand")
default.set_biome_info("Grassland", "grassy")
-- Note: Orchard is the 'highland' version of Grassland
minetest.register_biome(
{
name = "Orchard",
_description = S("Orchard"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:sand",
depth_filler = 4,
depth_top = 1,
depth_riverbed = 2,
y_min = default.ORCHARD_Y_MIN,
y_max = default.GLOBAL_Y_MAX,
heat_point = 55,
humidity_point = 56,
})
default.set_biome_info("Orchard", "grassy")
-- Note: Shrubbery is below Chaparral
minetest.register_biome(
{
name = "Shrubbery",
_description = S("Shrubbery"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:sand",
depth_filler = 3,
depth_top = 1,
depth_riverbed = 2,
y_min = 2,
y_max = 55,
heat_point = 76,
humidity_point = 50,
})
register_underwater_and_beach("Shrubbery", S("Shrubbery Underwater"), S("Shrubbery Beach"), "rp_default:sand")
default.set_biome_info("Shrubbery", "grassy")
-- Note: High biome. This is the highland version of Shrubbery
minetest.register_biome(
{
name = "Chaparral",
_description = S("Chaparral"),
node_top = "rp_default:dirt_with_dry_grass",
node_filler = "rp_default:dry_dirt",
node_riverbed = "rp_default:sand",
depth_filler = 0,
depth_top = 1,
depth_riverbed = 4,
y_min = 56,
y_max = default.GLOBAL_Y_MAX,
heat_point = 76,
humidity_point = 50,
})
default.set_biome_info("Chaparral", "savannic")
minetest.register_biome(
{
name = "Savanna",
_description = S("Savanna"),
node_top = "rp_default:dirt_with_dry_grass",
node_filler = "rp_default:dry_dirt",
node_riverbed = "rp_default:gravel",
depth_filler = 2,
depth_top = 1,
depth_riverbed = 3,
y_min = 2,
y_max = 55,
heat_point = 77,
humidity_point = 12,
})
register_underwater_and_beach("Savanna", S("Savanna Underwater"), S("Savanna Beach"), "rp_default:sand")
default.set_biome_info("Savanna", "savannic")
minetest.register_biome(
{
name = "Wasteland",
_description = S("Wasteland"),
node_top = "rp_default:dry_dirt",
node_filler = "rp_default:sandstone",
node_riverbed = "rp_default:sandstone",
depth_filler = 3,
depth_top = 1,
depth_riverbed = 2,
y_min = 2,
y_max = default.GLOBAL_Y_MAX,
heat_point = 100,
humidity_point = 0,
})
register_underwater_and_beach("Wasteland", S("Wasteland Underwater"), S("Wasteland Beach"), "rp_default:dry_dirt", 5, "rp_default:gravel")
default.set_biome_info("Wasteland", "drylandic")
minetest.register_biome(
{
name = "Rocky Dryland",
_description = S("Rocky Dryland"),
node_top = "rp_default:dry_dirt",
node_filler = "rp_default:dry_dirt",
node_riverbed = "rp_default:gravel",
depth_filler = 0,
depth_top = 1,
depth_riverbed = 4,
y_min = 3,
y_max = default.GLOBAL_Y_MAX,
heat_point = 86,
humidity_point = 7,
})
register_underwater_and_beach("Rocky Dryland", S("Rocky Dryland Underwater"), S("Rocky Dryland Beach"), "rp_default:gravel")
default.set_biome_info("Rocky Dryland", "drylandic")
minetest.register_biome(
{
name = "Wooded Dryland",
_description = S("Wooded Dryland"),
node_top = "rp_default:dry_dirt",
node_filler = "rp_default:dry_dirt",
node_riverbed = "rp_default:gravel",
depth_filler = 4,
depth_top = 1,
depth_riverbed = 2,
y_min = 1,
y_max = default.GLOBAL_Y_MAX,
heat_point = 94,
humidity_point = 10,
})
register_underwater_and_beach("Wooded Dryland", S("Wooded Dryland Underwater"), S("Wooded Dryland Beach"), "rp_default:dry_dirt")
default.set_biome_info("Wooded Dryland", "drylandic")
minetest.register_biome(
{
name = "Savannic Wasteland",
_description = S("Savannic Wasteland"),
node_top = "rp_default:dry_dirt",
node_filler = "rp_default:sandstone",
node_riverbed = "rp_default:gravel",
depth_filler = 2,
depth_top = 1,
depth_riverbed = 2,
y_min = 2,
y_max = default.GLOBAL_Y_MAX,
heat_point = 80,
humidity_point = 10,
})
register_underwater_and_beach("Savannic Wasteland", S("Savannic Wasteland Underwater"), S("Savannic Wasteland Beach"), "rp_default:sand")
default.set_biome_info("Savannic Wasteland", "savannic")
minetest.register_biome(
{
name = "Thorny Shrubs",
_description = S("Thorny Shrubs"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:gravel",
depth_filler = 4,
depth_top = 1,
depth_riverbed = 2,
y_min = 2,
y_max = 200,
heat_point = 54,
humidity_point = 0,
})
register_underwater_and_beach("Thorny Shrubs", S("Thorny Shrubs Underwater"), S("Thorny Shrubs Beach"), "rp_default:sand")
default.set_biome_info("Thorny Shrubs", "grassy")
minetest.register_biome(
{
name = "Mystery Forest",
_description = S("Mystery Forest"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:gravel",
depth_filler = 4,
depth_top = 1,
depth_riverbed = 2,
y_min = 1,
y_max = 200,
heat_point = 15,
humidity_point = 0,
})
register_underwater_and_beach("Mystery Forest", S("Mystery Forest Underwater"), S("Mystery Forest Beach"), "rp_default:dirt")
default.set_biome_info("Mystery Forest", "grassy")
minetest.register_biome(
{
name = "Poplar Plains",
_description = S("Poplar Plains"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:sand",
depth_filler = 4,
depth_top = 1,
depth_riverbed = 2,
y_min = 1,
y_max = default.GLOBAL_Y_MAX,
heat_point = 100,
humidity_point = 56,
})
register_underwater_and_beach("Poplar Plains", S("Poplar Plains Underwater"), S("Poplar Plains Beach"), "rp_default:dirt")
default.set_biome_info("Poplar Plains", "grassy")
minetest.register_biome(
{
name = "Baby Poplar Plains",
_description = S("Baby Poplar Plains"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:sand",
depth_filler = 4,
depth_top = 1,
depth_riverbed = 2,
y_min = 2,
y_max = default.GLOBAL_Y_MAX,
heat_point = 100,
humidity_point = 42,
})
register_underwater_and_beach("Baby Poplar Plains", S("Baby Poplar Plains Underwater"), S("Baby Poplar Plains Beach"), "rp_default:sand")
default.set_biome_info("Baby Poplar Plains", "grassy")
minetest.register_biome(
{
name = "Tall Birch Forest",
_description = S("Tall Birch Forest"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:sand",
depth_filler = 3,
depth_top = 1,
depth_riverbed = 2,
y_min = 2,
y_max = default.GLOBAL_Y_MAX,
heat_point = 0,
humidity_point = 15,
})
register_underwater_and_beach("Tall Birch Forest", S("Tall Birch Forest Underwater"), S("Tall Birch Forest Beach"), "rp_default:sand")
default.set_biome_info("Tall Birch Forest", "grassy")
minetest.register_biome(
{
name = "Birch Forest",
_description = S("Birch Forest"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:sand",
depth_filler = 3,
depth_top = 1,
depth_riverbed = 2,
y_min = 2,
y_max = default.GLOBAL_Y_MAX,
heat_point = 14,
humidity_point = 16,
})
register_underwater_and_beach("Birch Forest", S("Birch Forest Underwater"), S("Birch Forest Beach"), "rp_default:sand")
default.set_biome_info("Birch Forest", "grassy")
minetest.register_biome(
{
name = "Oak Shrubbery",
_description = S("Oak Shrubbery"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:gravel",
depth_filler = 3,
depth_top = 1,
depth_riverbed = 1,
y_min = 1,
y_max = default.GLOBAL_Y_MAX,
heat_point = 33,
humidity_point = 62,
})
register_underwater_and_beach("Oak Shrubbery", S("Oak Shrubbery Underwater"), S("Oak Shrubbery Beach"), "rp_default:dirt")
default.set_biome_info("Oak Shrubbery", "grassy")
minetest.register_biome(
{
name = "Oak Forest",
_description = S("Oak Forest"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:gravel",
depth_filler = 5,
depth_top = 1,
depth_riverbed = 1,
y_min = 1,
y_max = default.GLOBAL_Y_MAX,
heat_point = 32,
humidity_point = 61,
})
register_underwater_and_beach("Oak Forest", S("Oak Forest Underwater"), S("Oak Forest Beach"), "rp_default:sand")
default.set_biome_info("Oak Forest", "grassy")
minetest.register_biome(
{
name = "Tall Oak Forest",
_description = S("Tall Oak Forest"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:gravel",
depth_filler = 6,
depth_top = 1,
depth_riverbed = 2,
y_min = 1,
y_max = default.GLOBAL_Y_MAX,
heat_point = 10,
humidity_point = 52,
})
register_underwater_and_beach("Tall Oak Forest", S("Tall Oak Forest Underwater"), S("Tall Oak Forest Beach"), "rp_default:sand")
default.set_biome_info("Tall Oak Forest", "grassy")
minetest.register_biome(
{
name = "Dense Oak Forest",
_description = S("Dense Oak Forest"),
node_top = "rp_default:dirt_with_grass",
node_filler = "rp_default:dirt",
node_riverbed = "rp_default:gravel",
depth_filler = 7,
depth_top = 1,
depth_riverbed = 3,
y_min = 30,
y_max = default.GLOBAL_Y_MAX,
heat_point = 0,
humidity_point = 52,
})
default.set_biome_info("Dense Oak Forest", "grassy")
-- Equivalent to Pixture's original 'Swamp' biome
minetest.register_biome(
{
name = "Swamp Meadow",
_description = S("Swamp Meadow"),
node_top = "rp_default:dirt_with_swamp_grass",
node_filler = "rp_default:swamp_dirt",
node_cave_liquid = "rp_default:swamp_water_source",
node_riverbed = "rp_default:swamp_dirt",
depth_filler = 7,
depth_top = 1,
depth_riverbed = 4,
y_min = 2,
y_max = default.SWAMP_Y_MAX,
heat_point = 54,
humidity_point = 97,
})
register_underwater_and_beach("Swamp Meadow", S("Swamp Meadow Underwater"), S("Swamp Meadow Beach"), "rp_default:swamp_dirt", 3, "rp_default:sand")
default.set_biome_info("Swamp Meadow", "swampy")
minetest.register_biome(
{
name = "Swamp Meadow Highland",
_description = S("Swamp Meadow Highland"),
node_top = "rp_default:dirt_with_swamp_grass",
node_filler = "rp_default:swamp_dirt",
node_cave_liquid = "rp_default:swamp_water_source",
node_riverbed = "rp_default:swamp_dirt",
depth_filler = 6,
depth_top = 1,
depth_riverbed = 3,
y_min = default.SWAMP_Y_MAX+1,
y_max = default.SWAMP_HIGH_Y_MAX,
heat_point = 54,
humidity_point = 133,
})
default.set_biome_info("Swamp Meadow Highland", "swampy")
minetest.register_biome(
{
name = "Mixed Swamp",
_description = S("Mixed Swamp"),
node_top = "rp_default:dirt_with_swamp_grass",
node_filler = "rp_default:swamp_dirt",
node_cave_liquid = "rp_default:swamp_water_source",
node_riverbed = "rp_default:swamp_dirt",
depth_filler = 7,
depth_top = 1,
depth_riverbed = 3,
y_min = 1,
y_max = default.SWAMP_Y_MAX,
heat_point = 32,
humidity_point = 92,
})
register_underwater_and_beach("Mixed Swamp", S("Mixed Swamp Underwater"), S("Mixed Swamp Beach"), "rp_default:dirt", 5, "rp_default:swamp_dirt")
default.set_biome_info("Mixed Swamp", "swampy")
minetest.register_biome(
{
name = "Mixed Swamp Highland",
_description = S("Mixed Swamp Highland"),
node_top = "rp_default:dirt_with_swamp_grass",
node_filler = "rp_default:swamp_dirt",
node_cave_liquid = "rp_default:swamp_water_source",
node_riverbed = "rp_default:swamp_dirt",
depth_filler = 6,
depth_top = 1,
depth_riverbed = 2,
y_min = default.SWAMP_Y_MAX + 1,
y_max = default.SWAMP_HIGH_Y_MAX,
heat_point = 32,
humidity_point = 133,
})
default.set_biome_info("Mixed Swamp Highland", "swampy")
minetest.register_biome(
{
name = "Swamp Forest",
_description = S("Swamp Forest"),
node_top = "rp_default:dirt_with_swamp_grass",
node_filler = "rp_default:swamp_dirt",
node_cave_liquid = "rp_default:swamp_water_source",
node_riverbed = "rp_default:swamp_dirt",
depth_filler = 5,
depth_top = 1,
depth_riverbed = 4,
y_min = 1,
y_max = default.SWAMP_Y_MAX,
heat_point = 11,
humidity_point = 91,
})
register_underwater_and_beach("Swamp Forest", S("Swamp Forest Underwater"), S("Swamp Forest Beach"), "rp_default:dirt", 5, "rp_default:swamp_dirt")
default.set_biome_info("Swamp Forest", "swampy")
minetest.register_biome(
{
name = "Swamp Forest Highland",
_description = S("Swamp Forest Highland"),
node_top = "rp_default:dirt_with_swamp_grass",
node_filler = "rp_default:swamp_dirt",
node_cave_liquid = "rp_default:swamp_water_source",
node_riverbed = "rp_default:swamp_dirt",
depth_filler = 4,
depth_top = 1,
depth_riverbed = 3,
y_min = default.SWAMP_Y_MAX + 1,
y_max = default.SWAMP_HIGH_Y_MAX,
heat_point = 11,
humidity_point = 133,
})
default.set_biome_info("Swamp Forest Highland", "swampy")
minetest.register_biome(
{
name = "Dry Swamp",
_description = S("Dry Swamp"),
node_top = "rp_default:dirt_with_swamp_grass",
node_filler = "rp_default:swamp_dirt",
node_riverbed = "rp_default:swamp_dirt",
depth_filler = 6,
depth_top = 1,
depth_riverbed = 2,
y_min = 1,
y_max = default.SWAMP_Y_MAX,
heat_point = 83,
humidity_point = 84,
})
register_underwater_and_beach("Dry Swamp", S("Dry Swamp Underwater"), S("Dry Swamp Beach"), "rp_default:dirt", 3, "rp_default:swamp_dirt") -- force creation of beach sub-biome
default.set_biome_info("Dry Swamp", "swampy")
minetest.register_biome(
{
name = "Dry Swamp Highland",
_description = S("Dry Swamp Highland"),
node_top = "rp_default:dirt_with_swamp_grass",
node_filler = "rp_default:swamp_dirt",
node_riverbed = "rp_default:swamp_dirt",
depth_filler = 5,
depth_top = 1,
depth_riverbed = 1,
y_min = default.SWAMP_Y_MAX + 1,
y_max = default.SWAMP_HIGH_Y_MAX,
heat_point = 83,
humidity_point = 129,
})
default.set_biome_info("Dry Swamp Highland", "swampy")
minetest.register_biome(
{
name = "Papyrus Swamp",
_description = S("Papyrus Swamp"),
node_top = "rp_default:dirt_with_swamp_grass",
node_filler = "rp_default:swamp_dirt",
node_cave_liquid = "rp_default:swamp_water_source",
node_riverbed = "rp_default:swamp_dirt",
depth_filler = 4,
depth_top = 1,
depth_riverbed = 3,
y_min = 1,
y_max = default.SWAMP_Y_MAX,
heat_point = 44,
humidity_point = 98,
})
register_underwater_and_beach("Papyrus Swamp", S("Papyrus Swamp Underwater"), S("Papyrus Swamp Beach"), "rp_default:swamp_dirt")
default.set_biome_info("Papyrus Swamp", "swampy")
-- Special Underground biome
minetest.register_biome(
{
name = "Underground",
_description = S("Underground"),
y_min = default.GLOBAL_Y_MIN,
y_max = default.UNDERGROUND_Y_MAX,
heat_point = 50,
humidity_point = 50,
})
default.set_biome_info("Underground", "undergroundy")
end