Skip to content

Commit

Permalink
Floatland biomes: Update due to mgv7 biomerepeat option
Browse files Browse the repository at this point in the history
Only register floatland biomes if mgv7 'biomerepeat' flag is false.
Simplify floatland biomes to coniferous forest and ocean.
Make 'mgv7_floatland_level' and 'mgv7_shadow_limit' parameters global
values for mods to use to register their own floatland biomes.
  • Loading branch information
paramat committed Jul 22, 2017
1 parent 886537e commit 48baf1a
Show file tree
Hide file tree
Showing 2 changed files with 27 additions and 105 deletions.
130 changes: 26 additions & 104 deletions mods/default/mapgen.lua
Expand Up @@ -463,7 +463,6 @@ function default.register_ores()
"deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert",
"cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean",
"rainforest", "rainforest_swamp", "rainforest_ocean", "underground",
"floatland_grassland", "floatland_grassland_ocean",
"floatland_coniferous_forest", "floatland_coniferous_forest_ocean"}
})

Expand All @@ -488,8 +487,7 @@ function default.register_ores()
},
biomes = {"taiga", "snowy_grassland", "grassland", "coniferous_forest",
"deciduous_forest", "deciduous_forest_shore", "savanna", "savanna_shore",
"rainforest", "rainforest_swamp", "floatland_grassland",
"floatland_coniferous_forest"}
"rainforest", "rainforest_swamp", "floatland_coniferous_forest"}
})

-- Gravel
Expand Down Expand Up @@ -518,7 +516,6 @@ function default.register_ores()
"deciduous_forest_shore", "deciduous_forest_ocean", "cold_desert",
"cold_desert_ocean", "savanna", "savanna_shore", "savanna_ocean",
"rainforest", "rainforest_swamp", "rainforest_ocean", "underground",
"floatland_grassland", "floatland_grassland_ocean",
"floatland_coniferous_forest", "floatland_coniferous_forest_ocean"}
})

Expand Down Expand Up @@ -1448,6 +1445,8 @@ end


-- Biomes for floatlands
-- Used when mgv7 'biomerepeat' flag is false
-- TODO Temporary simple biomes to be developed later

function default.register_floatland_biomes(floatland_level, shadow_limit)

Expand All @@ -1467,10 +1466,10 @@ function default.register_floatland_biomes(floatland_level, shadow_limit)
--node_river_water = "",
--node_riverbed = "",
--depth_riverbed = ,
y_min = floatland_level + 2,
y_min = floatland_level + 4,
y_max = 31000,
heat_point = 50,
humidity_point = 70,
humidity_point = 50,
})

-- Coniferous forest ocean
Expand All @@ -1490,97 +1489,9 @@ function default.register_floatland_biomes(floatland_level, shadow_limit)
--node_riverbed = "",
--depth_riverbed = ,
y_min = shadow_limit,
y_max = floatland_level + 1,
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,
})

-- Grassland ocean

minetest.register_biome({
name = "floatland_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 = "",
--depth_riverbed = ,
y_min = shadow_limit,
y_max = floatland_level + 1,
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,
})

-- Sandstone desert ocean

minetest.register_biome({
name = "floatland_sandstone_desert_ocean",
--node_dust = "",
node_top = "default:sand",
depth_top = 1,
node_filler = "default:sand",
depth_filler = 3,
node_stone = "default:sandstone",
--node_water_top = "",
--depth_water_top = ,
--node_water = "",
--node_river_water = "",
--node_riverbed = "",
--depth_riverbed = ,
y_min = shadow_limit,
y_max = floatland_level + 1,
y_max = floatland_level + 3,
heat_point = 50,
humidity_point = 0,
humidity_point = 50,
})
end

Expand Down Expand Up @@ -2110,26 +2021,37 @@ end

-- Get setting or default
local mgv7_spflags = minetest.get_mapgen_setting("mgv7_spflags") or
"mountains, ridges, nofloatlands"
"mountains, ridges, nofloatlands, caverns, biomerepeat"
local captures_float = string.match(mgv7_spflags, "floatlands")
local captures_nofloat = string.match(mgv7_spflags, "nofloatlands")
local captures_nobiorep = string.match(mgv7_spflags, "nobiomerepeat")

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
-- Get setting or default
-- Make global for mods to use to register floatland biomes
default.mgv7_floatland_level =
minetest.get_mapgen_setting("mgv7_floatland_level") or 1280
default.mgv7_shadow_limit =
minetest.get_mapgen_setting("mgv7_shadow_limit") or 1024

minetest.clear_registered_biomes()
minetest.clear_registered_ores()
minetest.clear_registered_decorations()

local mg_name = minetest.get_mapgen_setting("mg_name")

if mg_name == "v6" then
default.register_mgv6_ores()
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)
elseif mg_name == "v7" and
captures_float == "floatlands" and
-- Need to check for 'nofloatlands' because that contains
-- 'floatlands' which makes the second condition true.
captures_nofloat ~= "nofloatlands" and
captures_nobiorep == "nobiomerepeat" then
-- Mgv7 with floatlands and floatland biomes
default.register_biomes(default.mgv7_shadow_limit - 1)
default.register_floatland_biomes(
default.mgv7_floatland_level, default.mgv7_shadow_limit)
default.register_ores()
default.register_decorations()
else
Expand Down
2 changes: 1 addition & 1 deletion mods/flowers/mapgen.lua
Expand Up @@ -95,7 +95,7 @@ local function register_flower(seed, name)
persist = 0.6
},
biomes = {"grassland", "deciduous_forest", "coniferous_forest",
"floatland_grassland", "floatland_coniferous_forest"},
"floatland_coniferous_forest"},
y_min = 1,
y_max = 31000,
decoration = "flowers:"..name,
Expand Down

0 comments on commit 48baf1a

Please sign in to comment.