Add nether biomes

This commit is contained in:
cora 2022-07-28 17:07:40 +02:00
parent 6c2bdf3156
commit 70daeda500
12 changed files with 507 additions and 111 deletions

View File

@ -20,7 +20,7 @@ end
-- Warped fungus
-- Crimson fungus
-- Nether woods
-- Functions and Biomes
-- Functions
-- WARNING: The most comments are in german. Please Translate with an translater if you don't speak good german
@ -636,7 +636,7 @@ for b=1, #barks do
local bark = barks[b]
local sub = bark[1].."_hyphae_bark"
local id = "mcl_mushroom:"..bark[1].."_hyphae"
mcl_stairs.register_stair(sub, id,
{handy=1,axey=1, bark_stairs=1, material_wood=1},
{minetest.registered_nodes[id].tiles[3]},
@ -830,112 +830,7 @@ function generate_crimson_tree(pos)
end
else
if breakgrow2 == false then
minetest.set_node(pos,{ name = "mcl_mushroom:crimson_fungus" })
minetest.set_node(pos,{ name = "mcl_mushroom:crimson_fungus" })
end
end
end
--[[
FIXME: Biomes are to rare
FIXME: Decoration don't do generate
WARNING: Outdatet, the biomes gernerate now different, with Ores
-- biomes in test!
minetest.register_biome({
name = "WarpedForest",
node_filler = "mcl_nether:netherrack",
node_stone = "mcl_nether:netherrack",
node_top = "mcl_mushroom:warped_nylium",
node_water = "air",
node_river_water = "air",
y_min = -29065,
y_max = -28940,
heat_point = 100,
humidity_point = 0,
_mcl_biome_type = "hot",
_mcl_palette_index = 19,
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_mushroom:warped_nylium"},
sidelen = 16,
noise_params = {
offset = 0.01,
scale = 0.0022,
spread = {x = 250, y = 250, z = 250},
seed = 2,
octaves = 3,
persist = 0.66
},
biomes = {"WarpedForest"},
y_min = -29065,
y_max = -28940 + 80,
decoration = "mcl_mushroom:warped_fungus",
})
]]
minetest.register_ore({
ore_type = "sheet",
ore = "mcl_mushroom:warped_checknode",
-- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally
-- in v6, but instead set with the on_generated function in mcl_mapgen_core.
wherein = {"mcl_nether:netherrack", "mcl_core:stone"},
clust_scarcity = 14 * 14 * 14,
clust_size = 10,
y_min = -29065,
y_max = -28940,
noise_threshold = 0.0,
noise_params = {
offset = 0.5,
scale = 0.1,
spread = {x = 8, y = 8, z = 8},
seed = 4996,
octaves = 1,
persist = 0.0
},
})
minetest.register_ore({
ore_type = "sheet",
ore = "mcl_mushroom:crimson_checknode",
-- Note: Stone is included only for v6 mapgen support. Netherrack is not generated naturally
-- in v6, but instead set with the on_generated function in mcl_mapgen_core.
wherein = {"mcl_nether:netherrack", "mcl_core:stone"},
clust_scarcity = 10 * 10 * 10,
clust_size = 10,
y_min = -29065,
y_max = -28940,
noise_threshold = 0.0,
noise_params = {
offset = 1,
scale = 0.5,
spread = {x = 12, y = 12, z = 12},
seed = 12948,
octaves = 1,
persist = 0.0
},
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_mushroom:warped_nylium"},
sidelen = 16,
fill_ratio = 0.1,
biomes = {"Nether"},
y_max = -28940,
y_min = -29065,
decoration = "mcl_mushroom:warped_fungus",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_mushroom:crimson_nylium"},
sidelen = 16,
fill_ratio = 0.1,
biomes = {"Nether"},
y_max = -28940,
y_min = -29065,
decoration = "mcl_mushroom:crimson_fungus",
})

Binary file not shown.

Binary file not shown.

Binary file not shown.

View File

@ -8,6 +8,8 @@ local generate_fallen_logs = minetest.settings:get_bool("mcl_generate_fallen_log
local mod_mcl_structures = minetest.get_modpath("mcl_structures")
local mod_mcl_core = minetest.get_modpath("mcl_core")
local mod_mcl_mushrooms = minetest.get_modpath("mcl_mushrooms")
local mod_mcl_mushroom = minetest.get_modpath("mcl_mushroom")
local mod_mcl_blackstone = minetest.get_modpath("mcl_blackstone")
-- Jungle bush schematic. In PC/Java Edition it's Jungle Wood + Oak Leaves
local jungle_bush_schematic = mod_mcl_core.."/schematics/mcl_core_jungle_bush_oak_leaves.mts"
@ -1482,6 +1484,12 @@ end
-- Register biomes of non-Overworld biomes
local function register_dimension_biomes()
--mcl2 schematic compat
minetest.register_alias("mcl_crimson:warped_wart_block", "mcl_mushroom:warped_wart_block")
minetest.register_alias("mcl_crimson:warped_hyphae", "mcl_mushroom:warped_hyphae")
minetest.register_alias("mcl_crimson:shroomlight", "mcl_mushroom:shroomlight")
minetest.register_alias("mcl_crimson:crimson_hyphae", "mcl_mushroom:crimson_hyphae")
--[[ REALMS ]]
--[[ THE NETHER ]]
@ -1493,8 +1501,7 @@ local function register_dimension_biomes()
node_river_water = "air",
node_cave_liquid = "air",
y_min = mcl_mapgen.nether.min,
-- FIXME: For some reason the Nether stops generating early if this constant is not added.
-- Figure out why.
y_max = mcl_mapgen.nether.max + 80,
heat_point = 100,
humidity_point = 0,
@ -1502,6 +1509,176 @@ local function register_dimension_biomes()
_mcl_palette_index = 17,
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_nether:netherrack","mcl_nether:glowstone","mcl_blackstone:nether_gold","mcl_nether:quartz_ore","mcl_core:gravel","mcl_nether:soul_sand"},
sidelen = 16,
fill_ratio = 10,
biomes = { "Nether" },
y_min = -31000,
y_max = mcl_mapgen.nether.max,
decoration = "mcl_nether:netherrack",
flags = "all_floors",
param2 = 0,
})
minetest.register_biome({
name = "SoulsandValley",
node_filler = "mcl_nether:netherrack",
node_stone = "mcl_nether:netherrack",
node_top = "mcl_blackstone:soul_soil",
node_water = "air",
node_river_water = "air",
node_cave_liquid = "air",
y_min = mcl_mapgen.nether.min,
y_max = mcl_mapgen.nether.max + 80,
heat_point = 77,
humidity_point = 33,
_mcl_biome_type = "hot",
_mcl_palette_index = 17,
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_nether:netherrack","mcl_nether:glowstone"},
sidelen = 16,
fill_ratio = 10,
biomes = { "SoulsandValley" },
y_min = -31000,
y_max = mcl_mapgen.nether.max,
decoration = "mcl_blackstone:soul_soil",
flags = "all_floors, all_ceilings",
param2 = 0,
})
minetest.register_ore({
ore_type = "blob",
ore = "mcl_nether:soul_sand",
wherein = { "mcl_nether:netherrack", "mcl_blackstone:soul_soil" },
clust_scarcity = 100,
clust_num_ores = 225,
clust_size = 15,
biomes = { "SoulsandValley" },
y_min = mcl_mapgen.nether.min,
y_max = mcl_mapgen.nether.max + 80,
noise_params = {
offset = 0,
scale = 1,
spread = { x = 250, y = 250, z = 250 },
seed = 12345,
octaves = 3,
persist = 0.6,
lacunarity = 2,
flags = "defaults",
}
})
minetest.register_biome({
name = "CrimsonForest",
node_filler = "mcl_nether:netherrack",
node_stone = "mcl_nether:netherrack",
node_top = "mcl_mushroom:crimson_nylium",
node_water = "air",
node_river_water = "air",
node_cave_liquid = "air",
y_min = mcl_mapgen.nether.min,
y_max = mcl_mapgen.nether.max + 80,
heat_point = 60,
humidity_point = 47,
_mcl_biome_type = "hot",
_mcl_palette_index = 17,
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_nether:netherrack","mcl_nether:glowstone","mcl_blackstone:nether_gold","mcl_nether:quartz_ore","mcl_core:gravel","mcl_nether:soul_sand"},
sidelen = 16,
fill_ratio = 10,
biomes = { "CrimsonForest" },
y_min = -31000,
y_max = mcl_mapgen.nether.max,
decoration = "mcl_mushroom:crimson_nylium",
flags = "all_floors",
param2 = 0,
})
minetest.register_biome({
name = "WarpedForest",
node_filler = "mcl_nether:netherrack",
node_stone = "mcl_nether:netherrack",
node_top = "mcl_mushroom:warped_nylium",
node_water = "air",
node_river_water = "air",
node_cave_liquid = "air",
y_min = mcl_mapgen.nether.min,
y_max = mcl_mapgen.nether.max + 80,
heat_point = 37,
humidity_point = 70,
_mcl_biome_type = "hot",
_mcl_palette_index = 17,
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_nether:netherrack","mcl_nether:glowstone","mcl_blackstone:nether_gold","mcl_nether:quartz_ore","mcl_core:gravel","mcl_nether:soul_sand"},
sidelen = 16,
fill_ratio = 10,
biomes = { "WarpedForest" },
y_min = -31000,
y_max = mcl_mapgen.nether.max,
decoration = "mcl_mushroom:warped_nylium",
flags = "all_floors",
param2 = 0,
})
minetest.register_biome({
name = "BasaltDelta",
node_filler = "mcl_nether:netherrack",
node_stone = "mcl_nether:netherrack",
node_top = "mcl_blackstone:basalt",
node_water = "air",
node_river_water = "air",
node_cave_liquid = "air",
y_min = mcl_mapgen.nether.min,
y_max = mcl_mapgen.nether.max + 80,
heat_point = 27,
humidity_point = 80,
_mcl_biome_type = "hot",
_mcl_palette_index = 17,
})
minetest.register_ore({
ore_type = "blob",
ore = "mcl_blackstone:blackstone",
wherein = {"mcl_nether:netherrack","mcl_nether:glowstone","mcl_core:gravel","mcl_nether:soul_sand"},
clust_scarcity = 100,
clust_num_ores = 400,
clust_size = 20,
biomes = { "BasaltDelta" },
y_min = mcl_mapgen.nether.min,
y_max = mcl_mapgen.nether.max + 80,
noise_params = {
offset = 0,
scale = 1,
spread = { x = 250, y = 250, z = 250 },
seed = 12345,
octaves = 3,
persist = 0.6,
lacunarity = 2,
flags = "defaults",
}
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_nether:netherrack","mcl_nether:glowstone","mcl_blackstone:nether_gold","mcl_nether:quartz_ore","mcl_core:gravel","mcl_nether:soul_sand","mcl_blackstone:blackstone"},
sidelen = 16,
fill_ratio = 10,
biomes = { "BasaltDelta" },
y_min = -31000,
y_max = mcl_mapgen.nether.max,
decoration = "mcl_blackstone:basalt",
flags = "all_floors",
param2 = 0,
})
--[[ THE END ]]
minetest.register_biome({
name = "End",
@ -3938,7 +4115,331 @@ local chorus_noise_params = {
local function register_dimension_decorations()
--[[ NETHER ]]
-- TODO: Nether
--NETHER WASTES (Nether)
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_nether:netherrack","mcl_nether:magma"},
sidelen = 16,
fill_ratio = 0.04,
biomes = {"Nether"},
y_min = mcl_mapgen.nether.lava_max + 1,
y_max = mcl_mapgen.nether.max - 1,
flags = "all_floors",
decoration = "mcl_fire:eternal_fire",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_nether:netherrack"},
sidelen = 16,
fill_ratio = 0.013,
biomes = {"Nether"},
y_min = mcl_mapgen.nether.lava_max + 1,
y_max = mcl_mapgen.nether.max - 1,
flags = "all_floors",
decoration = "mcl_mushrooms:mushroom_brown",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_nether:netherrack"},
sidelen = 16,
fill_ratio = 0.012,
biomes = {"Nether"},
y_min = mcl_mapgen.nether.lava_max + 1,
y_max = mcl_mapgen.nether.max - 1,
flags = "all_floors",
decoration = "mcl_mushrooms:mushroom_red",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_nether:soul_sand"},
sidelen = 16,
fill_ratio = 0.0032,
biomes = {"Nether","SoulsandValley"},
y_min = mcl_mapgen.nether.lava_max + 1,
y_max = mcl_mapgen.nether.max - 1,
flags = "all_floors",
decoration = "mcl_nether:nether_wart",
})
-- WARPED FOREST
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_mushroom:warped_nylium"},
sidelen = 16,
fill_ratio = 0.02,
biomes = {"WarpedForest"},
y_min = mcl_mapgen.nether.lava_max + 1,
y_max = mcl_mapgen.nether.max - 10,
flags = "all_floors",
decoration = "mcl_mushroom:warped_fungus",
})
minetest.register_decoration({
deco_type = "schematic",
name = "mcl_biomes:warped_tree1",
place_on = {"mcl_mushroom:warped_nylium"},
sidelen = 16,
fill_ratio = 0.007,
biomes = {"WarpedForest"},
y_min = mcl_mapgen.nether.lava_max + 1,
y_max = mcl_mapgen.nether.max - 15,
flags = "all_floors, place_center_x, place_center_z",
schematic = mod_mcl_mushroom.."/schematics/warped_fungus_1.mts",
size = {x = 5, y = 11, z = 5},
rotation = "random",
})
minetest.register_decoration({
deco_type = "schematic",
name = "mcl_biomes:warped_tree2",
place_on = {"mcl_mushroom:warped_nylium"},
sidelen = 16,
fill_ratio = 0.005,
biomes = {"WarpedForest"},
y_min = mcl_mapgen.nether.lava_max + 1,
y_max = mcl_mapgen.nether.max - 10,
flags = "all_floors, place_center_x, place_center_z",
schematic = mod_mcl_mushroom.."/schematics/warped_fungus_2.mts",
size = {x = 5, y = 6, z = 5},
rotation = "random",
})
minetest.register_decoration({
deco_type = "schematic",
name = "mcl_biomes:warped_tree3",
place_on = {"mcl_mushroom:warped_nylium"},
sidelen = 16,
fill_ratio = 0.03,
biomes = {"WarpedForest"},
y_min = mcl_mapgen.nether.lava_max + 1,
y_max = mcl_mapgen.nether.max - 14,
flags = "all_floors, place_center_x, place_center_z",
schematic = mod_mcl_mushroom.."/schematics/warped_fungus_3.mts",
size = {x = 5, y = 12, z = 5},
rotation = "random",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_mushroom:warped_nylium","mcl_mushroom:twisting_vines"},
sidelen = 16,
fill_ratio = 0.012,
biomes = {"WarpedForest"},
y_min = mcl_mapgen.nether.lava_max + 1,
flags = "all_floors",
height = 2,
height_max = 8,
decoration = "mcl_mushroom:twisting_vines",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_mushroom:warped_nylium"},
sidelen = 16,
fill_ratio = 0.0812,
biomes = {"WarpedForest"},
y_min = mcl_mapgen.nether.lava_max + 1,
flags = "all_floors",
max_height = 5,
decoration = "mcl_mushroom:warped_roots",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_mushroom:crimson_nylium"},
sidelen = 16,
fill_ratio = 0.052,
biomes = {"WarpedForest"},
y_min = mcl_mapgen.nether.lava_max + 1,
flags = "all_floors",
decoration = "mcl_mushroom:nether_sprouts",
})
-- CRIMSON FOREST
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_mushroom:crimson_nylium"},
sidelen = 16,
fill_ratio = 0.02,
biomes = {"CrimsonForest"},
y_min = mcl_mapgen.nether.lava_max + 1,
y_max = mcl_mapgen.nether.lava_max - 10,
flags = "all_floors",
decoration = "mcl_mushroom:crimson_fungus",
})
minetest.register_decoration({
deco_type = "schematic",
name = "mcl_biomes:crimson_tree",
place_on = {"mcl_mushroom:crimson_nylium"},
sidelen = 16,
fill_ratio = 0.008,
biomes = {"CrimsonForest"},
y_min = mcl_mapgen.nether.lava_max + 1,
y_max = mcl_mapgen.nether.max - 10,
flags = "all_floors, place_center_x, place_center_z",
schematic = mod_mcl_mushroom.."/schematics/crimson_fungus_1.mts",
size = {x = 5, y = 8, z = 5},
rotation = "random",
})
minetest.register_decoration({
deco_type = "schematic",
name = "mcl_biomes:crimson_tree2",
place_on = {"mcl_mushroom:crimson_nylium"},
sidelen = 16,
fill_ratio = 0.006,
biomes = {"CrimsonForest"},
y_min = mcl_mapgen.nether.lava_max + 1,
y_max = mcl_mapgen.nether.max - 15,
flags = "all_floors, place_center_x, place_center_z",
schematic = mod_mcl_mushroom.."/schematics/crimson_fungus_2.mts",
size = {x = 5, y = 12, z = 5},
rotation = "random",
})
minetest.register_decoration({
deco_type = "schematic",
name = "mcl_biomes:crimson_tree3",
place_on = {"mcl_mushroom:crimson_nylium"},
sidelen = 16,
fill_ratio = 0.004,
biomes = {"CrimsonForest"},
y_min = mcl_mapgen.nether.lava_max + 1,
y_max = mcl_mapgen.nether.max - 20,
flags = "all_floors, place_center_x, place_center_z",
schematic = mod_mcl_mushroom.."/schematics/crimson_fungus_3.mts",
size = {x = 7, y = 13, z = 7},
rotation = "random",
})
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_mushroom:crimson_nylium"},
sidelen = 16,
fill_ratio = 0.082,
biomes = {"CrimsonForest"},
y_min = mcl_mapgen.nether.lava_max + 1,
flags = "all_floors",
max_height = 5,
decoration = "mcl_mushroom:crimson_roots",
})
--SOULSAND VALLEY
minetest.register_decoration({
deco_type = "simple",
place_on = {"mcl_blackstone:soul_soil","mcl_nether:soul_sand"},
sidelen = 16,
fill_ratio = 0.062,
biomes = {"SoulsandValley"},
y_min = mcl_mapgen.nether.lava_max + 1,
flags = "all_floors",
max_height = 5,
decoration = "mcl_blackstone:soul_fire",
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"mcl_blackstone:soul_soil","mcl_nether:soulsand"},
sidelen = 16,
fill_ratio = 0.000212,
biomes = {"SoulsandValley"},
y_min = mcl_mapgen.nether.lava_max + 1,
flags = "all_floors, place_center_x, place_center_z",
schematic = mod_mcl_blackstone.."/schematics/mcl_blackstone_nether_fossil_1.mts",
size = {x = 5, y = 8, z = 5},
rotation = "random",
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"mcl_blackstone:soul_soil","mcl_nether:soulsand"},
sidelen = 16,
fill_ratio = 0.0002233,
biomes = {"SoulsandValley"},
y_min = mcl_mapgen.nether.lava_max + 1,
flags = "all_floors, place_center_x, place_center_z",
schematic = mod_mcl_blackstone.."/schematics/mcl_blackstone_nether_fossil_2.mts",
size = {x = 5, y = 8, z = 5},
rotation = "random",
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"mcl_blackstone:soul_soil","mcl_nether:soulsand"},
sidelen = 16,
fill_ratio = 0.000225,
biomes = {"SoulsandValley"},
y_min = mcl_mapgen.nether.lava_max + 1,
flags = "all_floors, place_center_x, place_center_z",
schematic = mod_mcl_blackstone.."/schematics/mcl_blackstone_nether_fossil_3.mts",
size = {x = 5, y = 8, z = 5},
rotation = "random",
})
minetest.register_decoration({
deco_type = "schematic",
place_on = {"mcl_blackstone:soul_soil","mcl_nether:soulsand"},
sidelen = 16,
fill_ratio = 0.00022323,
biomes = {"SoulsandValley"},
y_min = mcl_mapgen.nether.lava_max + 1,
flags = "all_floors, place_center_x, place_center_z",
schematic = mod_mcl_blackstone.."/schematics/mcl_blackstone_nether_fossil_4.mts",
size = {x = 5, y = 8, z = 5},
rotation = "random",
})
--BASALT DELTA
minetest.register_decoration({
deco_type = "simple",
decoration = "mcl_blackstone:basalt",
place_on = {"mcl_blackstone:basalt","mcl_nether:netherrack","mcl_blackstone:blackstone"},
sidelen = 80,
height_max = 55,
noise_params={
offset = -0.0085,
scale = 0.002,
spread = {x = 25, y = 120, z = 25},
seed = 2325,
octaves = 5,
persist = 2,
lacunarity = 3.5,
flags = "absvalue"
},
biomes = {"BasaltDelta"},
y_min = mcl_mapgen.nether.lava_max + 1,
flags = "all_floors, all ceilings",
})
minetest.register_decoration({
deco_type = "simple",
decoration = "mcl_blackstone:basalt",
place_on = {"mcl_blackstone:basalt","mcl_nether:netherrack","mcl_blackstone:blackstone"},
sidelen = 80,
height_max = 15,
noise_params={
offset = -0.0085,
scale = 0.004,
spread = {x = 25, y = 120, z = 25},
seed = 235,
octaves = 5,
persist = 2.5,
lacunarity = 3.5,
flags = "absvalue"
},
biomes = {"BasaltDelta"},
y_min = mcl_mapgen.nether.lava_max + 1,
flags = "all_floors, all ceilings",
})
minetest.register_decoration({
deco_type = "simple",
decoration = "mcl_nether:magma",
place_on = {"mcl_blackstone:basalt","mcl_nether:netherrack","mcl_blackstone:blackstone"},
sidelen = 80,
fill_ratio = 0.082323,
biomes = {"BasaltDelta"},
place_offset_y = -1,
y_min = mcl_mapgen.nether.lava_max + 1,
flags = "all_floors, all ceilings",
})
minetest.register_decoration({
deco_type = "simple",
decoration = "mcl_nether:nether_lava_source",
place_on = {"mcl_blackstone:basalt","mcl_nether:netherrack","mcl_blackstone:blackstone"},
spawn_by = {"mcl_blackstone:basalt","mcl_blackstone:blackstone"},
num_spawn_by = 14,
sidelen = 80,
fill_ratio = 4,
biomes = {"BasaltDelta"},
place_offset_y = -1,
y_min = mcl_mapgen.nether.lava_max + 1,
y_max = mcl_mapgen.nether.max - 5,
flags = "all_floors, force_placement",
})
--[[ THE END ]]