MapGen update. Adjusted decorations.

This commit is contained in:
Michieal 2022-12-21 20:57:34 -05:00
parent e0d48400a7
commit 9445b02dcc
1 changed files with 936 additions and 656 deletions

View File

@ -126,6 +126,10 @@ local function register_biomes()
"MesaPlateauF", "MesaPlateauF",
"MesaPlateauFM", "MesaPlateauFM",
"MangroveSwamp", "MangroveSwamp",
"BambooJungle",
"BambooJungleM",
"BambooJungleEdge",
"BambooJungleEdgeM",
} }
-- Ice Plains Spikes (rare) -- Ice Plains Spikes (rare)
@ -951,8 +955,6 @@ local function register_biomes()
_mcl_palette_index = 20, _mcl_palette_index = 20,
}) })
-- Mesa Plateau F -- Mesa Plateau F
-- Identical to Mesa below Y=30. At Y=30 and above there is a "dry" 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({
@ -1489,6 +1491,173 @@ local function register_biomes()
_mcl_palette_index = 29, _mcl_palette_index = 29,
}) })
-- Bamboo Jungle areas are like the Jungle areas, but warmer and more humid.
-- Bamboo Jungle
minetest.register_biome({
name = "BambooJungle",
node_top = "mcl_core:dirt_with_grass",
depth_top = 1,
node_filler = "mcl_core:dirt",
depth_filler = 3,
node_riverbed = "mcl_core:sand",
depth_riverbed = 2,
y_min = 1,
y_max = mcl_vars.mg_overworld_max,
humidity_point = 90,
heat_point = 95,
_mcl_biome_type = "medium",
_mcl_palette_index = 24,
})
minetest.register_biome({
name = "BambooJungle_shore",
node_top = "mcl_core:dirt",
depth_top = 1,
node_filler = "mcl_core:dirt",
depth_filler = 3,
node_riverbed = "mcl_core:sand",
depth_riverbed = 2,
y_min = -2,
y_max = 0,
humidity_point = 90,
heat_point = 95,
_mcl_biome_type = "medium",
_mcl_palette_index = 24,
})
minetest.register_biome({
name = "BambooJungle_ocean",
node_top = "mcl_core:sand",
depth_top = 1,
node_filler = "mcl_core:sand",
depth_filler = 3,
node_riverbed = "mcl_core:sand",
depth_riverbed = 2,
y_min = OCEAN_MIN,
y_max = -3,
vertical_blend = 1,
humidity_point = 95,
heat_point = 90,
_mcl_biome_type = "medium",
_mcl_palette_index = 24,
})
-- Bamboo Jungle M
-- Like Bamboo Jungle but with even more dense vegetation
minetest.register_biome({
name = "BambooJungleM",
node_top = "mcl_core:dirt_with_grass",
depth_top = 1,
node_filler = "mcl_core:dirt",
depth_filler = 3,
node_riverbed = "mcl_core:sand",
depth_riverbed = 2,
y_min = 1,
y_max = mcl_vars.mg_overworld_max,
humidity_point = 95,
heat_point = 95,
_mcl_biome_type = "medium",
_mcl_palette_index = 25,
})
minetest.register_biome({
name = "BambooJungleM_shore",
node_top = "mcl_core:dirt",
depth_top = 1,
node_filler = "mcl_core:dirt",
depth_filler = 3,
node_riverbed = "mcl_core:sand",
depth_riverbed = 2,
y_min = -2,
y_max = 0,
humidity_point = 95,
heat_point = 90,
_mcl_biome_type = "medium",
_mcl_palette_index = 25,
})
minetest.register_biome({
name = "BambooJungleM_ocean",
node_top = "mcl_core:sand",
depth_top = 1,
node_filler = "mcl_core:sand",
depth_filler = 3,
node_riverbed = "mcl_core:sand",
depth_riverbed = 2,
y_min = OCEAN_MIN,
y_max = -3,
vertical_blend = 1,
humidity_point = 95,
heat_point = 95,
_mcl_biome_type = "medium",
_mcl_palette_index = 25,
})
-- Bamboo Jungle Edge
minetest.register_biome({
name = "BambooJungleEdge",
node_top = "mcl_core:dirt_with_grass",
depth_top = 1,
node_filler = "mcl_core:dirt",
depth_filler = 2,
node_riverbed = "mcl_core:sand",
depth_riverbed = 2,
y_min = 1,
y_max = mcl_vars.mg_overworld_max,
humidity_point = 92,
heat_point = 90,
_mcl_biome_type = "medium",
_mcl_palette_index = 26,
})
minetest.register_biome({
name = "BambooJungleEdge_ocean",
node_top = "mcl_core:sand",
depth_top = 1,
node_filler = "mcl_core:sand",
depth_filler = 2,
node_riverbed = "mcl_core:sand",
depth_riverbed = 2,
y_min = OCEAN_MIN,
y_max = 0,
humidity_point = 95,
heat_point = 88,
_mcl_biome_type = "medium",
_mcl_palette_index = 26,
})
-- Jungle Edge M (very rare).
-- Almost identical to Jungle Edge. Has deeper dirt. Melons spawn here a lot.
-- This biome occours directly between Jungle M and Jungle Edge but also has a small border to Jungle.
-- This biome is very small in general.
minetest.register_biome({
name = "BambooJungleEdgeM",
node_top = "mcl_core:dirt_with_grass",
depth_top = 1,
node_filler = "mcl_core:dirt",
depth_filler = 4,
node_riverbed = "mcl_core:sand",
depth_riverbed = 2,
y_min = 1,
y_max = mcl_vars.mg_overworld_max,
humidity_point = 95,
heat_point = 95,
_mcl_biome_type = "medium",
_mcl_palette_index = 27,
})
minetest.register_biome({
name = "BambooJungleEdgeM_ocean",
node_top = "mcl_core:sand",
depth_top = 1,
node_filler = "mcl_core:sand",
depth_filler = 4,
node_riverbed = "mcl_core:sand",
depth_riverbed = 2,
y_min = OCEAN_MIN,
y_max = 0,
humidity_point = 97,
heat_point = 90,
_mcl_biome_type = "medium",
_mcl_palette_index = 27,
})
-- Add deep ocean and underground biomes automatically. -- Add deep ocean and underground biomes automatically.
for i = 1, #overworld_biomes do for i = 1, #overworld_biomes do
local biome = overworld_biomes[i] local biome = overworld_biomes[i]
@ -1559,7 +1728,6 @@ local function register_dimension_biomes()
param2 = 0, param2 = 0,
}) })
minetest.register_biome({ minetest.register_biome({
name = "Nether", name = "Nether",
node_filler = "mcl_nether:netherrack", node_filler = "mcl_nether:netherrack",
@ -3156,7 +3324,7 @@ local function register_decorations()
place_on = {"group:grass_block_no_snow", "mcl_core:dirt"}, place_on = {"group:grass_block_no_snow", "mcl_core:dirt"},
sidelen = 80, sidelen = 80,
fill_ratio = 0.004, fill_ratio = 0.004,
biomes = {"Jungle", "JungleM"}, biomes = {"Jungle", "JungleM","BambooJungle", "BambooJungleM"},
y_min = 1, y_min = 1,
y_max = mcl_vars.mg_overworld_max, y_max = mcl_vars.mg_overworld_max,
schematic = mod_mcl_core .. "/schematics/mcl_core_oak_classic.mts", schematic = mod_mcl_core .. "/schematics/mcl_core_oak_classic.mts",
@ -3484,7 +3652,7 @@ local function register_decorations()
place_on = {"group:grass_block_no_snow", "mcl_core:dirt"}, place_on = {"group:grass_block_no_snow", "mcl_core:dirt"},
sidelen = 80, sidelen = 80,
fill_ratio = 0.025, fill_ratio = 0.025,
biomes = {"Jungle"}, biomes = {"Jungle","BambooJungle"},
y_min = 1, y_min = 1,
y_max = mcl_vars.mg_overworld_max, y_max = mcl_vars.mg_overworld_max,
schematic = mod_mcl_core .. "/schematics/mcl_core_jungle_tree.mts", schematic = mod_mcl_core .. "/schematics/mcl_core_jungle_tree.mts",
@ -3496,7 +3664,7 @@ local function register_decorations()
place_on = {"group:grass_block_no_snow", "mcl_core:dirt"}, place_on = {"group:grass_block_no_snow", "mcl_core:dirt"},
sidelen = 80, sidelen = 80,
fill_ratio = 0.0045, fill_ratio = 0.0045,
biomes = {"JungleEdge", "JungleEdgeM"}, biomes = {"JungleEdge", "JungleEdgeM", "BambooJungleEdge", "BambooJungleEdgeM"},
y_min = 1, y_min = 1,
y_max = mcl_vars.mg_overworld_max, y_max = mcl_vars.mg_overworld_max,
schematic = mod_mcl_core .. "/schematics/mcl_core_jungle_tree.mts", schematic = mod_mcl_core .. "/schematics/mcl_core_jungle_tree.mts",
@ -3509,7 +3677,7 @@ local function register_decorations()
place_on = {"group:grass_block_no_snow", "mcl_core:dirt"}, place_on = {"group:grass_block_no_snow", "mcl_core:dirt"},
sidelen = 80, sidelen = 80,
fill_ratio = 0.09, fill_ratio = 0.09,
biomes = {"JungleM"}, biomes = {"JungleM", "BambooJungleM"},
y_min = 1, y_min = 1,
y_max = mcl_vars.mg_overworld_max, y_max = mcl_vars.mg_overworld_max,
schematic = mod_mcl_core .. "/schematics/mcl_core_jungle_tree_2.mts", schematic = mod_mcl_core .. "/schematics/mcl_core_jungle_tree_2.mts",
@ -3749,7 +3917,6 @@ local function register_decorations()
rotation = "random", rotation = "random",
}) })
local ratio_mushroom = 0.0001 local ratio_mushroom = 0.0001
local ratio_mushroom_huge = ratio_mushroom * (11 / 12) local ratio_mushroom_huge = ratio_mushroom * (11 / 12)
local ratio_mushroom_giant = ratio_mushroom * (1 / 12) local ratio_mushroom_giant = ratio_mushroom * (1 / 12)
@ -4070,7 +4237,7 @@ local function register_decorations()
end end
end end
register_double_fern(0.01, 0.03, { "Jungle", "JungleM", "JungleEdge", "JungleEdgeM", "Taiga", "ColdTaiga", "MegaTaiga", "MegaSpruceTaiga" }) register_double_fern(0.01, 0.03, {"Jungle", "JungleM", "JungleEdge", "JungleEdgeM", "Taiga", "ColdTaiga", "MegaTaiga", "MegaSpruceTaiga", "BambooJungle", "BambooJungleM", "BambooJungleEdge", "BambooJungleEdgeM",})
register_double_fern(0.15, 0.1, {"JungleM"}) register_double_fern(0.15, 0.1, {"JungleM"})
-- Large flowers -- Large flowers
@ -4157,7 +4324,7 @@ local function register_decorations()
octaves = 4, octaves = 4,
persist = 0.6, persist = 0.6,
}, },
biomes = {"Jungle"}, biomes = {"Jungle", "BambooJungle"},
y_min = 3, y_min = 3,
y_max = mcl_vars.mg_overworld_max, y_max = mcl_vars.mg_overworld_max,
schematic = mod_mcl_core .. "/schematics/mcl_core_jungle_bush_oak_leaves_2.mts", schematic = mod_mcl_core .. "/schematics/mcl_core_jungle_bush_oak_leaves_2.mts",
@ -4175,7 +4342,7 @@ local function register_decorations()
octaves = 4, octaves = 4,
persist = 0.6, persist = 0.6,
}, },
biomes = {"JungleM"}, biomes = {"JungleM","BambooJungleM"},
y_min = 1, y_min = 1,
y_max = mcl_vars.mg_overworld_max, y_max = mcl_vars.mg_overworld_max,
schematic = mod_mcl_core .. "/schematics/mcl_core_jungle_bush_oak_leaves.mts", schematic = mod_mcl_core .. "/schematics/mcl_core_jungle_bush_oak_leaves.mts",
@ -4193,13 +4360,121 @@ local function register_decorations()
octaves = 4, octaves = 4,
persist = 0.6, persist = 0.6,
}, },
biomes = {"JungleEdge", "JungleEdgeM"}, biomes = {"JungleEdge", "JungleEdgeM","BambooJungleEdge", "BambooJungleEdgeM"},
y_min = 3, y_min = 3,
y_max = mcl_vars.mg_overworld_max, y_max = mcl_vars.mg_overworld_max,
schematic = mod_mcl_core .. "/schematics/mcl_core_jungle_bush_oak_leaves.mts", schematic = mod_mcl_core .. "/schematics/mcl_core_jungle_bush_oak_leaves.mts",
flags = "place_center_x, place_center_z", flags = "place_center_x, place_center_z",
}) })
-- Bamboo
minetest.register_decoration({
deco_type = "simple",
place_on = {"group:grass_block_no_snow", "mcl_core:dirt",},
sidelen = 80,
fill_ratio = 0.0043,
biomes = {"Jungle", "JungleM", "JungleEdge", "JungleEdgeM"},
y_min = 1,
y_max = mcl_vars.mg_overworld_max,
decoration = "mcl_bamboo:bamboo",
height = 12,
max_height = 15,
flags = "place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"group:grass_block_no_snow", "mcl_core:dirt", "mcl_core:podzol"},
sidelen = 80,
fill_ratio = 0.095,
biomes = {"BambooJungle", "BambooJungleM", "BambooJungleEdge", "BambooJungleEdgeM"},
y_min = 1,
y_max = mcl_vars.mg_overworld_max,
decoration = "mcl_bamboo:bamboo",
height = 12,
max_height = 15,
flags = "place_center_x, place_center_z",
rotation = "random",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_bamboo:bamboo"},
sidelen = 80,
fill_ratio = 1,
biomes = {"BambooJungle", "BambooJungleM", "BambooJungleEdge", "BambooJungleEdgeM", "Jungle", "JungleM", "JungleEdge", "JungleEdgeM"},
y_min = 1,
y_max = mcl_vars.mg_overworld_max,
decoration = "mcl_bamboo:bamboo_endcap",
height = 1,
max_height = 4,
flags = "all_floors",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"group:grass_block_no_snow"},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.012,
spread = {x = 100, y = 100, z = 100},
seed = 354,
octaves = 1,
persist = 0.5,
lacunarity = 1.0,
flags = "absvalue"
},
biomes = {"BambooJungle", "BambooJungleM"},
y_max = mcl_vars.mg_overworld_max,
y_min = 2,
decoration = "mcl_core:podzol"
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"group:grass_block_no_snow"},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.012,
spread = {x = 100, y = 100, z = 100},
seed = 354,
octaves = 1,
persist = 0.5,
lacunarity = 1.0,
flags = "absvalue"
},
biomes = {"BambooJungle", "BambooJungleEdge","BambooJungleM", "BambooJungleEdge"},
y_max = mcl_vars.mg_overworld_max,
y_min = 1,
decoration = "mcl_flowers:tallgrass"
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"group:grass_block_no_snow"},
sidelen = 16,
noise_params = {
offset = 0,
scale = 0.012,
spread = {x = 100, y = 100, z = 100},
seed = 354,
octaves = 1,
persist = 0.5,
lacunarity = 1.0,
flags = "absvalue"
},
biomes = {"BambooJungle", "BambooJungleM", "BambooJungleEdge"},
y_max = mcl_vars.mg_overworld_max,
y_min = 2,
decoration = "mcl_mud:mud"
})
register_doubletall_grass(-0.0005, -0.3, {"BambooJungle", "BambooJungleM", "BambooJungleEdge"})
register_grass_decoration("tallgrass", -0.03, 1, {"BambooJungle", "BambooJungleM", "BambooJungleEdge"})
-----------------
-- Fallen logs -- Fallen logs
-- These fallen logs are not really good yet. They must be longer and also have one upright block. -- These fallen logs are not really good yet. They must be longer and also have one upright block.
-- Note the decortion API does not like wide schematics, they are likely to overhang. -- Note the decortion API does not like wide schematics, they are likely to overhang.
@ -5246,6 +5521,7 @@ local function register_dimension_decorations()
end end
-- --
-- Detect mapgen to select functions -- Detect mapgen to select functions
-- --
@ -5319,7 +5595,9 @@ if mg_name ~= "singlenode" then
end end
end end
end end
if minp.y > -26900 then return end if minp.y > -26900 then
return
end
for _, pos in ipairs(gennotify["decoration#" .. deco_id_chorus_plant] or {}) do for _, pos in ipairs(gennotify["decoration#" .. deco_id_chorus_plant] or {}) do
local x, y, z = pos.x, pos.y, pos.z local x, y, z = pos.x, pos.y, pos.z
if x < -10 or x > 10 or z < -10 or z > 10 then if x < -10 or x > 10 or z < -10 or z > 10 then
@ -5330,7 +5608,9 @@ if mg_name ~= "singlenode" then
end end
end end
end end
if minp.y > mcl_vars.mg_nether_max then return end if minp.y > mcl_vars.mg_nether_max then
return
end
for _, f in pairs(deco_ids_fungus) do for _, f in pairs(deco_ids_fungus) do
for _, pos in ipairs(gennotify["decoration#" .. f] or {}) do for _, pos in ipairs(gennotify["decoration#" .. f] or {}) do
minetest.fix_light(vector.offset(pos, -8, -8, -8), vector.offset(pos, 8, 8, 8)) minetest.fix_light(vector.offset(pos, -8, -8, -8), vector.offset(pos, 8, 8, 8))