Erode strata a bit in Mesa and MesaPlateauF

This commit is contained in:
Wuzzy 2019-03-11 23:00:59 +01:00
parent f1f6dc4c48
commit c62658fd27
1 changed files with 49 additions and 19 deletions

View File

@ -749,7 +749,8 @@ local function register_biomes()
heat_point = 27, heat_point = 27,
}) })
-- Mesa -- Mesa: Starts with a couple of sand-covered layers (the "sandlevel"),
-- followed by terracotta with colorful (but imperfect) strata
minetest.register_biome({ minetest.register_biome({
name = "Mesa", name = "Mesa",
node_top = "mcl_colorblocks:hardened_clay", node_top = "mcl_colorblocks:hardened_clay",
@ -793,7 +794,7 @@ local function register_biomes()
heat_point = 100, heat_point = 100,
}) })
-- Mesa Bryce: Variant of Mesa, but without the red sand desert -- Mesa Bryce: Variant of Mesa, but without the red sand desert. Has perfect strata
minetest.register_biome({ minetest.register_biome({
name = "MesaBryce", name = "MesaBryce",
node_top = "mcl_colorblocks:hardened_clay", node_top = "mcl_colorblocks:hardened_clay",
@ -807,7 +808,6 @@ local function register_biomes()
humidity_point = -5, humidity_point = -5,
heat_point = 100, heat_point = 100,
}) })
-- Helper biome for the red sand at the bottom of Mesas.
minetest.register_biome({ minetest.register_biome({
name = "MesaBryce_sandlevel", name = "MesaBryce_sandlevel",
node_top = "mcl_core:redsand", node_top = "mcl_core:redsand",
@ -840,7 +840,7 @@ local function register_biomes()
-- Mesa Plateau F -- Mesa Plateau F
-- Identical to Mesa below Y=30. At Y=30 and above there is an oak forest -- Identical to Mesa below Y=30. At Y=30 and above there is a "dry" oak forest
minetest.register_biome({ minetest.register_biome({
name = "MesaPlateauF", name = "MesaPlateauF",
node_top = "mcl_colorblocks:hardened_clay", node_top = "mcl_colorblocks:hardened_clay",
@ -855,9 +855,9 @@ local function register_biomes()
heat_point = 60, heat_point = 60,
vertical_blend = 0, -- we want a sharp transition vertical_blend = 0, -- we want a sharp transition
}) })
-- The oak forest plateau of this biome.
-- The actual plateau of this biome -- This is a plateau for grass blocks, dry shrubs, tall grass, coarse dirt and oaks.
-- This is a plateau for grass blocks, tall grass, coarse dirt and oaks. -- Strata don't generate here.
minetest.register_biome({ minetest.register_biome({
name = "MesaPlateauF_grasstop", name = "MesaPlateauF_grasstop",
node_top = "mcl_core:dirt_with_dry_grass", node_top = "mcl_core:dirt_with_dry_grass",
@ -872,8 +872,6 @@ local function register_biomes()
humidity_point = 0, humidity_point = 0,
heat_point = 60, heat_point = 60,
}) })
-- Helper biome for the red sand at the bottom.
minetest.register_biome({ minetest.register_biome({
name = "MesaPlateauF_sandlevel", name = "MesaPlateauF_sandlevel",
node_top = "mcl_core:redsand", node_top = "mcl_core:redsand",
@ -904,7 +902,9 @@ local function register_biomes()
}) })
-- Mesa Plateau FM -- Mesa Plateau FM
-- Variant of MesaPlateauF: fewer trees, more coarse dirt, more erratic terrain, more sand, red sandstone at sandlevel -- Dryer and more "chaotic"/"weathered down" variant of MesaPlateauF:
-- oak forest is less dense, more coarse dirt, more erratic terrain, vertical blend, more red sand layers,
-- red sand as ores, red sandstone at sandlevel
minetest.register_biome({ minetest.register_biome({
name = "MesaPlateauFM", name = "MesaPlateauFM",
node_top = "mcl_colorblocks:hardened_clay", node_top = "mcl_colorblocks:hardened_clay",
@ -919,7 +919,6 @@ local function register_biomes()
heat_point = 60, heat_point = 60,
vertical_blend = 5, vertical_blend = 5,
}) })
-- Grass plateau -- Grass plateau
minetest.register_biome({ minetest.register_biome({
name = "MesaPlateauFM_grasstop", name = "MesaPlateauFM_grasstop",
@ -935,8 +934,6 @@ local function register_biomes()
humidity_point = -5, humidity_point = -5,
heat_point = 60, heat_point = 60,
}) })
-- Helper biome for the red sand at the bottom.
minetest.register_biome({ minetest.register_biome({
name = "MesaPlateauFM_sandlevel", name = "MesaPlateauFM_sandlevel",
node_top = "mcl_core:redsand", node_top = "mcl_core:redsand",
@ -1543,7 +1540,7 @@ local function register_biomelike_ores()
-- Mesa strata (registered as sheet ores) -- Mesa strata (registered as sheet ores)
-- Helper function to create strata. -- Helper function to create strata.
local stratum = function(y_min, height, color, seed) local stratum = function(y_min, height, color, seed, is_perfect)
if not height then if not height then
height = 1 height = 1
end end
@ -1551,16 +1548,49 @@ local function register_biomelike_ores()
seed = 39 seed = 39
end end
local y_max = y_min + height-1 local y_max = y_min + height-1
-- Full stratum local perfect_biomes
if is_perfect then
-- "perfect" means no erosion
perfect_biomes = { "MesaBryce", "Mesa", "MesaPlateauF", "MesaPlateauFM" }
else
perfect_biomes = { "MesaBryce" }
end
-- Full, perfect stratum
minetest.register_ore({ minetest.register_ore({
ore_type = "stratum", ore_type = "stratum",
ore = "mcl_colorblocks:hardened_clay_"..color, ore = "mcl_colorblocks:hardened_clay_"..color,
wherein = {"mcl_colorblocks:hardened_clay"}, wherein = {"mcl_colorblocks:hardened_clay"},
y_min = y_min, y_min = y_min,
y_max = y_max, y_max = y_max,
biomes = { "Mesa", "MesaPlateauF", "MesaBryce" }, biomes = perfect_biomes,
}) })
-- Eroded stratum if not is_perfect then
-- Slightly eroded stratum, only minor imperfections
minetest.register_ore({
ore_type = "stratum",
ore = "mcl_colorblocks:hardened_clay_"..color,
wherein = {"mcl_colorblocks:hardened_clay"},
y_min = y_min,
y_max = y_max,
biomes = { "Mesa", "MesaPlateauF" },
noise_params = {
offset = y_min+(y_max-y_min)/2,
scale = 0,
spread = {x = 50, y = 50, z = 50},
seed = seed+4,
octaves = 1,
persist = 1.0
},
np_stratum_thickness = {
offset = 1.28,
scale = 1,
spread = {x = 18, y = 18, z = 18},
seed = seed+4,
octaves = 3,
persist = 0.8,
},
})
-- Very eroded stratum, most of the color is gone
minetest.register_ore({ minetest.register_ore({
ore_type = "stratum", ore_type = "stratum",
ore = "mcl_colorblocks:hardened_clay_"..color, ore = "mcl_colorblocks:hardened_clay_"..color,
@ -1585,12 +1615,12 @@ local function register_biomelike_ores()
persist = 0.6, persist = 0.6,
}, },
}) })
end
end end
-- First stratum near the sand level. Always orange. -- First stratum near the sand level. Always orange.
stratum(-1, 15, "orange") stratum(-1, 15, "orange", nil, true)
-- Create random strata for up to Y = 256. -- Create random strata for up to Y = 256.
-- These strata are calculated based on the world seed and are global. -- These strata are calculated based on the world seed and are global.