add pl.generate_noise_params()

This commit is contained in:
Niklp09 2023-04-16 19:24:52 +02:00
parent 59c483fd4f
commit 99d58e0876
14 changed files with 226 additions and 290 deletions

View File

@ -12,11 +12,9 @@ abstract_bushes = {}
local bushes_bush_rarity = tonumber(minetest.settings:get("bushes_bush_rarity")) or 99.9 local bushes_bush_rarity = tonumber(minetest.settings:get("bushes_bush_rarity")) or 99.9
local bushes_bush_rarity_fertility = tonumber(minetest.settings:get("bushes_bush_rarity_fertility")) or 1.5 local bushes_bush_rarity_fertility = tonumber(minetest.settings:get("bushes_bush_rarity_fertility")) or 1.5
local bushes_bush_fertility = tonumber(minetest.settings:get("bushes_bush_fertility")) or -1
local bushes_youngtrees_rarity = tonumber(minetest.settings:get("bushes_youngtrees_rarity")) or 100 local bushes_youngtrees_rarity = tonumber(minetest.settings:get("bushes_youngtrees_rarity")) or 100
local bushes_youngtrees_rarity_fertility = tonumber(minetest.settings:get("bushes_youngtrees_rarity_fertility")) or 0.6 local bushes_youngtrees_rarity_fertility = tonumber(minetest.settings:get("bushes_youngtrees_rarity_fertility")) or 0.6
local bushes_youngtrees_fertility = tonumber(minetest.settings:get("bushes_youngtrees_fertility")) or -0.5
minetest.register_node("bushes:youngtree2_bottom", { minetest.register_node("bushes:youngtree2_bottom", {
@ -218,13 +216,10 @@ pl.register_on_generate({
"sumpf:peat", "sumpf:peat",
"sumpf:sumpf" "sumpf:sumpf"
}, },
rarity = bushes_bush_rarity, noise_params = pl.generate_noise_params({rarity = bushes_bush_rarity, rarity_fertility = bushes_bush_rarity_fertility}),
rarity_fertility = bushes_bush_rarity_fertility,
plantlife_limit = bushes_bush_fertility,
min_elevation = 1, -- above sea level min_elevation = 1, -- above sea level
}, },
"bushes:bushes", "bushes:bushes",
nil,
abstract_bushes.grow_bush abstract_bushes.grow_bush
) )
@ -255,6 +250,7 @@ abstract_bushes.grow_youngtree_node2 = function(pos, height)
end end
end end
pl.register_on_generate({ pl.register_on_generate({
surface = { surface = {
"default:dirt_with_grass", "default:dirt_with_grass",
@ -262,12 +258,9 @@ pl.register_on_generate({
"sumpf:peat", "sumpf:peat",
"sumpf:sumpf" "sumpf:sumpf"
}, },
rarity = bushes_youngtrees_rarity, noise_params = pl.generate_noise_params({rarity = bushes_youngtrees_rarity, rarity_fertility = bushes_youngtrees_rarity_fertility}),
rarity_fertility = bushes_youngtrees_rarity_fertility,
plantlife_limit = bushes_youngtrees_fertility,
min_elevation = 1, -- above sea level min_elevation = 1, -- above sea level
}, },
"bushes:youngtrees", "bushes:youngtrees",
nil,
abstract_bushes.grow_youngtree2 abstract_bushes.grow_youngtree2
) )

View File

@ -1,3 +1,3 @@
name = bushes name = bushes
depends = default, plantlife_lib depends = default, biome_lib
optional_depends = stoneage, sumpf optional_depends = stoneage, sumpf

View File

@ -92,44 +92,42 @@ minetest.register_node("dryplants:juncus_02", {
-- GENERATE SMALL JUNCUS -- GENERATE SMALL JUNCUS
----------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------
-- near water or swamp -- near water or swamp
biome_lib.register_on_generate({ pl.register_on_generate({
surface = { surface = {
"default:dirt_with_grass", "default:dirt_with_grass",
--"default:desert_sand", --"default:desert_sand",
--"default:sand", --"default:sand",
"stoneage:grass_with_silex", "stoneage:grass_with_silex",
"sumpf:peat", "sumpf:peat",
"sumpf:sumpf" "sumpf:sumpf"
},
noise_params = pl.generate_noise_params({max_count = JUNCUS_NEAR_WATER_PER_MAPBLOCK, rarity = 101 - JUNCUS_NEAR_WATER_RARITY}),
min_elevation = 1, -- above sea level
near_nodes = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"},
near_nodes_size = 2,
near_nodes_vertical = 1,
near_nodes_count = 1,
}, },
max_count = JUNCUS_NEAR_WATER_PER_MAPBLOCK, "dryplants:juncus_near_water",
rarity = 101 - JUNCUS_NEAR_WATER_RARITY, abstract_dryplants.grow_juncus
min_elevation = 1, -- above sea level
near_nodes = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"},
near_nodes_size = 2,
near_nodes_vertical = 1,
near_nodes_count = 1,
plantlife_limit = -0.9,
},
abstract_dryplants.grow_juncus
) )
-- at dunes/beach -- at dunes/beach
biome_lib.register_on_generate({ pl.register_on_generate({
surface = { surface = {
--"default:dirt_with_grass", --"default:dirt_with_grass",
--"default:desert_sand", --"default:desert_sand",
"default:sand", "default:sand",
--"stoneage:grass_with_silex", --"stoneage:grass_with_silex",
--"sumpf:peat", --"sumpf:peat",
--"sumpf:sumpf" --"sumpf:sumpf"
},
noise_params = pl.generate_noise_params({max_count = JUNCUS_AT_BEACH_PER_MAPBLOCK, rarity = 101 - JUNCUS_AT_BEACH_RARITY}),
min_elevation = 1, -- above sea level
near_nodes = {"default:dirt_with_grass"},
near_nodes_size = 2,
near_nodes_vertical = 1,
near_nodes_count = 1,
}, },
max_count = JUNCUS_AT_BEACH_PER_MAPBLOCK, "dryplants:junces_at_beach",
rarity = 101 - JUNCUS_AT_BEACH_RARITY, abstract_dryplants.grow_juncus
min_elevation = 1, -- above sea level
near_nodes = {"default:dirt_with_grass"},
near_nodes_size = 2,
near_nodes_vertical = 1,
near_nodes_count = 1,
plantlife_limit = -0.9,
},
abstract_dryplants.grow_juncus
) )

View File

@ -12,14 +12,13 @@ abstract_dryplants.grow_grass_variation = function(pos)
minetest.swap_node(right_here, {name="dryplants:grass_short"}) minetest.swap_node(right_here, {name="dryplants:grass_short"})
end end
biome_lib.register_on_generate({ pl.register_on_generate({
surface = { surface = {
"default:dirt_with_grass", "default:dirt_with_grass",
}, },
max_count = 4800, noise_params = pl.generate_noise_params({max_count = 4800, rarity = 25}),
rarity = 25,
min_elevation = 1, -- above sea level min_elevation = 1, -- above sea level
plantlife_limit = -0.9,
}, },
"dryplants:grass",
abstract_dryplants.grow_grass_variation abstract_dryplants.grow_grass_variation
) )

View File

@ -21,20 +21,7 @@ minetest.register_decoration({
"sumpf:peat", "sumpf:peat",
"sumpf:sumpf" "sumpf:sumpf"
}, },
noise_params = { noise_params = pl.generate_noise_params({max_count = TALL_GRASS_PER_MAPBLOCK, rarity = 101 - TALL_GRASS_RARITY}),
persist = 0.6,
flags = "absvalue",
lacunarity = 2,
offset = 0,
scale = 0.74,
spread = {
z = 100,
x = 100,
y = 100
},
seed = 0,
octaves = 3
},
flags = "all_floors", flags = "all_floors",
deco_type = "simple", deco_type = "simple",
y_min = 1, y_min = 1,

View File

@ -349,66 +349,63 @@ minetest.register_entity("dryplants:reedmace_water_entity",{
-- GENERATE REEDMACE -- GENERATE REEDMACE
----------------------------------------------------------------------------------------------- -----------------------------------------------------------------------------------------------
-- near water or swamp -- near water or swamp
biome_lib.register_on_generate({ pl.register_on_generate({
surface = { surface = {
"default:dirt_with_grass", "default:dirt_with_grass",
"default:desert_sand", "default:desert_sand",
"stoneage:grass_with_silex", "stoneage:grass_with_silex",
"sumpf:peat", "sumpf:peat",
"sumpf:sumpf" "sumpf:sumpf"
},
noise_params = pl.generate_noise_params({max_count = REEDMACE_NEAR_WATER_PER_MAPBLOCK, rarity = 101 - REEDMACE_NEAR_WATER_RARITY}),
--rarity = 60,
min_elevation = 1, -- above sea level
near_nodes = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"},
near_nodes_size = 2,
near_nodes_vertical = 1,
near_nodes_count = 1,
}, },
max_count = REEDMACE_NEAR_WATER_PER_MAPBLOCK, "dryplants:reedmace_near_water",
rarity = 101 - REEDMACE_NEAR_WATER_RARITY, abstract_dryplants.grow_reedmace
--rarity = 60,
min_elevation = 1, -- above sea level
near_nodes = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"},
near_nodes_size = 2,
near_nodes_vertical = 1,
near_nodes_count = 1,
plantlife_limit = -0.9,
},
abstract_dryplants.grow_reedmace
) )
-- in water -- in water
biome_lib.register_on_generate({ pl.register_on_generate({
surface = { surface = {
"default:dirt", "default:dirt",
"default:dirt_with_grass", "default:dirt_with_grass",
--"default:desert_sand", --"default:desert_sand",
--"stoneage:grass_with_silex", --"stoneage:grass_with_silex",
"stoneage:sand_with_silex", "stoneage:sand_with_silex",
"sumpf:peat", "sumpf:peat",
"sumpf:sumpf" "sumpf:sumpf"
},
noise_params = pl.generate_noise_params({max_count = REEDMACE_IN_WATER_PER_MAPBLOCK, rarity = 101 - REEDMACE_IN_WATER_RARITY}),
--rarity = 35,
min_elevation = 0, -- a bit below sea level
max_elevation = 0, -- ""
near_nodes = {"default:water_source","sumpf:dirtywater_source"},
near_nodes_size = 1,
near_nodes_count = 1,
}, },
max_count = REEDMACE_IN_WATER_PER_MAPBLOCK, "dryplants:reedmace_in_water",
rarity = 101 - REEDMACE_IN_WATER_RARITY, abstract_dryplants.grow_reedmace_water
--rarity = 35,
min_elevation = 0, -- a bit below sea level
max_elevation = 0, -- ""
near_nodes = {"default:water_source","sumpf:dirtywater_source"},
near_nodes_size = 1,
near_nodes_count = 1,
plantlife_limit = -0.9,
},
abstract_dryplants.grow_reedmace_water
) )
-- for oases & tropical beaches & tropical swamps -- for oases & tropical beaches & tropical swamps
biome_lib.register_on_generate({ pl.register_on_generate({
surface = { surface = {
"default:sand", "default:sand",
"sumpf:sumpf" "sumpf:sumpf"
},
noise_params = pl.generate_noise_params({max_count = REEDMACE_FOR_OASES_PER_MAPBLOCK, 101 - REEDMACE_FOR_OASES_RARITY}),
--rarity = 10,
neighbors = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"},
ncount = 1,
min_elevation = 1, -- above sea level
near_nodes = {"default:desert_sand","sumpf:sumpf"},
near_nodes_size = 2,
near_nodes_vertical = 1,
near_nodes_count = 1,
}, },
max_count = REEDMACE_FOR_OASES_PER_MAPBLOCK, "dryplants:reemace_oases",
rarity = 101 - REEDMACE_FOR_OASES_RARITY, abstract_dryplants.grow_reedmace
--rarity = 10,
neighbors = {"default:water_source","sumpf:dirtywater_source","sumpf:sumpf"},
ncount = 1,
min_elevation = 1, -- above sea level
near_nodes = {"default:desert_sand","sumpf:sumpf"},
near_nodes_size = 2,
near_nodes_vertical = 1,
near_nodes_count = 1,
plantlife_limit = -0.9,
},
abstract_dryplants.grow_reedmace
) )

View File

@ -62,15 +62,14 @@ abstract_molehills.place_molehill = function(pos)
end end
end end
biome_lib.register_on_generate({ pl.register_on_generate({
surface = {"default:dirt_with_grass"}, surface = {"default:dirt_with_grass"},
rarity = molehills_rarity, noise_params = pl.generate_noise_params({rarity = molehills_rarity, rarity_fertility = molehills_rarity_fertility}),
rarity_fertility = molehills_rarity_fertility,
plantlife_limit = molehills_fertility,
min_elevation = 1, min_elevation = 1,
max_elevation = 40, max_elevation = 40,
avoid_nodes = {"group:tree","group:liquid","group:stone","group:falling_node"--[[,"air"]]}, avoid_nodes = {"group:tree","group:liquid","group:stone","group:falling_node"},
avoid_radius = 4, avoid_radius = 4,
}, },
"molehills:molehills",
abstract_molehills.place_molehill abstract_molehills.place_molehill
) )

View File

@ -56,16 +56,16 @@ for i in ipairs(algae_list) do
local above_node = minetest.get_node(pt.above) local above_node = minetest.get_node(pt.above)
local top_node = minetest.get_node(top_pos) local top_node = minetest.get_node(top_pos)
if biome_lib.get_nodedef_field(under_node.name, "buildable_to") then if pl.get_nodedef_field(under_node.name, "buildable_to") then
if under_node.name ~= "default:water_source" then if under_node.name ~= "default:water_source" then
place_pos = pt.under place_pos = pt.under
elseif top_node.name ~= "default:water_source" elseif top_node.name ~= "default:water_source"
and biome_lib.get_nodedef_field(top_node.name, "buildable_to") then and pl.get_nodedef_field(top_node.name, "buildable_to") then
place_pos = top_pos place_pos = top_pos
else else
return return
end end
elseif biome_lib.get_nodedef_field(above_node.name, "buildable_to") then elseif pl.get_nodedef_field(above_node.name, "buildable_to") then
place_pos = pt.above place_pos = pt.above
end end
if not place_pos then return end -- something went wrong :P if not place_pos then return end -- something went wrong :P
@ -92,7 +92,7 @@ for i in ipairs(algae_list) do
minetest.swap_node(place_pos, {name = "flowers:seaweed", param2 = fdir}) minetest.swap_node(place_pos, {name = "flowers:seaweed", param2 = fdir})
end end
if not biome_lib.expect_infinite_stacks then if not pl.expect_infinite_stacks then
itemstack:take_item() itemstack:take_item()
end end
return itemstack return itemstack
@ -111,34 +111,18 @@ pl_seaweed.grow_seaweed = function(pos)
minetest.swap_node(right_here, {name=node_name, param2=math.random(1,3)}) minetest.swap_node(right_here, {name=node_name, param2=math.random(1,3)})
end end
pl.register_on_generate({ biome_lib.register_on_generate({
place_on = { surface = {"default:water_source"},
"default:water_source" max_count = seaweed_max_count,
}, rarity = seaweed_rarity,
noise_params = { min_elevation = 1,
scale = 0.00234375, max_elevation = 40,
offset = 0, near_nodes = {"default:dirt_with_grass"},
seed = 0, near_nodes_size = 4,
octaves = 3, near_nodes_vertical = 1,
lacunarity = 2, near_nodes_count = 1,
flags = "absvalue", plantlife_limit = -0.9,
spread = {
x = 100,
y = 100,
z = 100
},
persist = 0.6
},
flags = "all_floors",
y_min = 1,
y_max = 40,
near_nodes = {
"default:dirt_with_grass"
},
near_nodes_size = 1
}, },
"pl_seaweed:water_grass",
nil,
pl_seaweed.grow_seaweed pl_seaweed.grow_seaweed
) )

View File

@ -11,10 +11,9 @@ function pl.get_def_from_id(id)
end end
end end
function pl.register_on_generate(def, plantname, index, func) function pl.register_on_generate(def, plantname, func)
if not index then index = 1 end -- Do we need `index`?
local deco_def = { local deco_def = {
name = plantname .. "_" .. index, name = plantname,
deco_type = "simple", deco_type = "simple",
place_on = def.place_on or def.surface, place_on = def.place_on or def.surface,
sidelen = 16, sidelen = 16,
@ -43,6 +42,11 @@ function pl.register_on_generate(def, plantname, index, func)
end end
deco_def.near_nodes_count = def.near_nodes_count or 1 deco_def.near_nodes_count = def.near_nodes_count or 1
end end
-- handle ncount/neighbors
if def.ncount and def.neighbors then
deco_def.ncount = def.ncount
deco_def.neighbors = def.neighbors
end
-- save def -- save def
local next = #deco + 1 local next = #deco + 1
deco[next] = {} deco[next] = {}
@ -60,14 +64,24 @@ minetest.register_on_mods_loaded(function()
deco[k][1].id = id deco[k][1].id = id
table.insert(ids, id) table.insert(ids, id)
end end
-- print(dump2(ids)) print(dump2(ids))
minetest.set_gen_notify("decoration", ids) minetest.set_gen_notify("decoration", ids)
-- print(dump(deco)) -- print(dump(deco))
end) end)
local function place_handler(t) local function place_handler(t)
local def = pl.get_def_from_id(t.id) local def = pl.get_def_from_id(t.id)
local p_top = {x = pos.x, y = pos.y + 1, z = pos.z}
-- ncount/neighbors handler
if def.ncount and
#minetest.find_nodes_in_area(
{x = t.pos.x-1, y = t.pos.y, z = t.pos.z-1},
{x = t.pos.x+1, y = t.pos.y, z = t.pos.z+1},
def.neighbors
) <= def.ncount then
print("return due ncount")
return -- Not enough similar biome nodes around
end
-- near nodes handler -- near nodes handler
if def.near_nodes and if def.near_nodes and
@ -76,11 +90,12 @@ local function place_handler(t)
{x = t.pos.x+def.near_nodes_size, y = t.pos.y+def.near_nodes_vertical, z = t.pos.z+def.near_nodes_size}, {x = t.pos.x+def.near_nodes_size, y = t.pos.y+def.near_nodes_vertical, z = t.pos.z+def.near_nodes_size},
def.near_nodes def.near_nodes
) < def.near_nodes_count then ) < def.near_nodes_count then
return -- Long distance neighbours do not match return -- Long distance neighbors do not match
end end
-- avoid nodes handler -- avoid nodes handler
if def.avoid_nodes and def.avoid_radius then if def.avoid_nodes and def.avoid_radius then
local p_top = {x = t.pos.x, y = t.pos.y + 1, z = t.pos.z}
if minetest.find_node_near(p_top, def.avoid_radius + math.random(-1.5,2), def.avoid_nodes) then if minetest.find_node_near(p_top, def.avoid_radius + math.random(-1.5,2), def.avoid_nodes) then
return return
end end
@ -93,8 +108,9 @@ local function place_handler(t)
-- some fun -- some fun
local player = minetest.get_player_by_name("Niklp") local player = minetest.get_player_by_name("Niklp")
-- player:set_pos(t.pos) -- player:set_pos(t.pos)
t.pos.y = t.pos.y + 3
minetest.add_particle({ minetest.add_particle({
pos = p_top, pos = t.pos,
expirationtime = 15, expirationtime = 15,
playername = player:get_player_name(), playername = player:get_player_name(),
glow = minetest.LIGHT_MAX, glow = minetest.LIGHT_MAX,

View File

@ -11,4 +11,32 @@ if minetest.get_modpath("unified_inventory") or not minetest.settings:get_bool("
pl.expect_infinite_stacks = false pl.expect_infinite_stacks = false
else else
pl.expect_infinite_stacks = true pl.expect_infinite_stacks = true
end
-- Noise param helper
local function set_defaults(biome)
biome.seed_diff = biome.seed_diff or 0
biome.rarity = biome.rarity or 50
biome.rarity_fertility = biome.rarity_fertility or 0
biome.max_count = biome.max_count or 125
return biome
end
function pl.generate_noise_params(b)
local biome = set_defaults(b)
local r = (100-biome.rarity)/100
local mc = math.min(biome.max_count, 6400)/6400
local noise_params = {
octaves = biome_lib.fertile_perlin_octaves,
persist = biome_lib.fertile_perlin_persistence * (100/biome_lib.fertile_perlin_scale),
scale = math.min(r, mc),
seed = biome.seed_diff,
offset = 0,
spread = {x = 100, y = 100, z = 100},
lacunarity = 2,
flags = "absvalue"
}
return noise_params
end end

View File

@ -152,52 +152,34 @@ abstract_trunks.place_twig = function(pos)
end end
if Twigs_on_ground == true then if Twigs_on_ground == true then
biome_lib.register_on_generate({ pl.register_on_generate({
surface = {"default:dirt_with_grass"}, surface = {"default:dirt_with_grass"},
max_count = Twigs_on_ground_Max_Count, noise_params = pl.generate_noise_params({max_count = Twigs_on_ground_Max_Count, rarity = Twigs_on_ground_Rarity}),
rarity = Twigs_on_ground_Rarity,
min_elevation = 1, min_elevation = 1,
max_elevation = 40, max_elevation = 40,
near_nodes = {"group:tree","ferns:fern_03","ferns:fern_02","ferns:fern_01"}, near_nodes = {"group:tree","ferns:fern_03","ferns:fern_02","ferns:fern_01"},
near_nodes_size = 3, near_nodes_size = 3,
near_nodes_vertical = 1, near_nodes_vertical = 1,
near_nodes_count = 1, near_nodes_count = 1,
plantlife_limit = -0.9,
}, },
"trunks:on_grass",
abstract_trunks.place_twig abstract_trunks.place_twig
) )
end end
if Twigs_on_water == true then if Twigs_on_water == true then
pl.register_on_generate({ pl.register_on_generate({
place_on = { surface = {"default:water_source"},
"default:water_source" noise_params = pl.generate_noise_params({max_count = Twigs_on_water_Max_Count, rarity = Twigs_on_water_Rarity}),
}, min_elevation = 1,
noise_params = { max_elevation = 40,
flags = "absvalue", near_nodes = {"group:tree"},
offset = 0, near_nodes_size = 3,
scale = 0.05, near_nodes_vertical = 1,
spread = { near_nodes_count = 1,
z = 100, },
x = 100, "trunks:on_water",
y = 100 abstract_trunks.place_twig
},
seed = 0,
octaves = 3,
lacunarity = 2,
persist = 0.6
},
flags = "all_floors",
y_min = 1,
y_max = 40,
near_nodes = {"group:tree"},
near_nodes_size = 3,
near_nodes_vertical = 1,
near_nodes_count = 1
},
"trunks:on_water",
nil,
abstract_trunks.place_twig
) )
end end
@ -338,10 +320,9 @@ abstract_trunks.place_trunk = function(pos)
end end
end end
biome_lib.register_on_generate({ pl.register_on_generate({
surface = {"default:dirt_with_grass"}, surface = {"default:dirt_with_grass"},
max_count = Trunks_Max_Count, -- 320, noise_params = pl.generate_noise_params({max_count = Trunks_Max_Count, rarity = Trunks_Rarity}),
rarity = Trunks_Rarity, -- 99,
min_elevation = 1, min_elevation = 1,
max_elevation = 40, max_elevation = 40,
avoid_nodes = {"group:tree"}, avoid_nodes = {"group:tree"},
@ -350,8 +331,8 @@ biome_lib.register_on_generate({
near_nodes_size = 3, near_nodes_size = 3,
near_nodes_vertical = 1, near_nodes_vertical = 1,
near_nodes_count = 1, near_nodes_count = 1,
plantlife_limit = -0.9,
}, },
"trunks:on_grass_2",
abstract_trunks.place_trunk abstract_trunks.place_trunk
) )
@ -373,42 +354,22 @@ abstract_trunks.grow_moss_on_ground = function(pos)
end end
pl.register_on_generate({ pl.register_on_generate({
y_max = 40, surface = {"default:dirt_with_grass"},
flags = "all_floors", noise_params = pl.generate_noise_params({max_count = Moss_on_ground_Max_Count, rarity = Moss_on_ground_Rarity}),
deco_type = "simple", min_elevation = 1,
place_on = { max_elevation = 40,
"default:dirt_with_grass" near_nodes = {
}, "group:tree",
noise_params = { "ferns:fern_03",
offset = 0, "ferns:fern_02",
scale = 0.1, "ferns:fern_01"
persist = 0.6,
seed = 0,
octaves = 3,
lacunarity = 2,
flags = "absvalue",
spread = {
x = 100,
y = 100,
z = 100
}
},
flags = "all_floors",
y_min = 1,
y_max = 40,
near_nodes = {
"group:tree",
"ferns:fern_03",
"ferns:fern_02",
"ferns:fern_01"
},
near_nodes_size = 2,
near_nodes_vertical = 1,
near_nodes_count = 1
}, },
"trunks:on_dirt_with_grass", near_nodes_size = 2,
nil, near_nodes_vertical = 1,
abstract_trunks.grow_moss_on_ground near_nodes_count = 1,
},
"trunks:on_grass_3",
abstract_trunks.grow_moss_on_ground
) )
end end
@ -493,15 +454,11 @@ pl.register_on_generate({
"moretrees:willow_trunk", "moretrees:willow_trunk",
"default:mossycobble" "default:mossycobble"
}, },
max_count = Moss_on_trunk_Max_Count, noise_params = pl.generate_noise_params({max_count = Moss_on_trunk_Max_Count, rarity = Moss_on_trunk_Rarity}),
rarity = Moss_on_trunk_Rarity,
min_elevation = 1, min_elevation = 1,
max_elevation = 40, max_elevation = 40,
plantlife_limit = -0.9,
check_air = false,
}, },
"trunks:grow_moss_on_trunk", "trunks:moss_on_trunk",
nil,
abstract_trunks.grow_moss_on_trunk abstract_trunks.grow_moss_on_trunk
) )
end end
@ -547,20 +504,18 @@ abstract_trunks.grow_roots = function(pos)
end end
end end
biome_lib.register_on_generate({ pl.register_on_generate({
surface = {"group:tree"}, surface = {"group:tree"},
max_count = 1000, noise_params = pl.generate_noise_params({max_count = 1000, rarity = 1,}),
rarity = 1,
min_elevation = 1, min_elevation = 1,
max_elevation = 40, max_elevation = 40,
near_nodes = {"default:dirt_with_grass"}, near_nodes = {"default:dirt_with_grass"},
near_nodes_size = 1, near_nodes_size = 1,
near_nodes_vertical = 1, near_nodes_vertical = 1,
near_nodes_count = 1, near_nodes_count = 1,
plantlife_limit = -1,
check_air = false,
}, },
"abstract_trunks.grow_roots" "trunks:grow_roots",
abstract_trunks.grow_roots
) )
end end

View File

@ -73,44 +73,28 @@ abstract_woodsoils.place_soil = function(pos)
end end
end end
pl.register_on_generate({ biome_lib.register_on_generate({
place_on = { surface = {
"group:tree", "group:tree",
"ferns:fern_03", "ferns:fern_03",
"ferns:fern_02", "ferns:fern_02",
"ferns:fern_01" "ferns:fern_01"
},
noise_params = {
flags = "absvalue",
offset = 0,
scale = 0.15625,
spread = {
x = 100,
y = 100,
z = 100
},
seed = 0,
octaves = 3,
persist = 0.6,
lacunarity = 2
},
flags = "all_floors,force_placement",
y_min = 1,
y_max = 40,
near_nodes = {
"group:tree",
"ferns:fern_03",
"ferns:fern_02",
"ferns:fern_01"
},
near_nodes_count = 4
}, },
"woodsoils:place_soil", max_count = 1000,
nil, rarity = 1,
abstract_woodsoils.place_soil min_elevation = 1,
max_elevation = 40,
near_nodes = {"group:tree","ferns:fern_03","ferns:fern_02","ferns:fern_01"},
near_nodes_size = 5,
near_nodes_vertical = 1,
near_nodes_count = 4,
plantlife_limit = -1,
check_air = false,
},
"abstract_woodsoils.place_soil"
) )
pl.register_on_generate({ biome_lib.register_on_generate({
surface = { surface = {
"moretrees:apple_tree_sapling_ongen", "moretrees:apple_tree_sapling_ongen",
"moretrees:beech_sapling_ongen", "moretrees:beech_sapling_ongen",
@ -131,9 +115,7 @@ pl.register_on_generate({
plantlife_limit = -0.9, plantlife_limit = -0.9,
check_air = false, check_air = false,
}, },
"woodsoils:place_soil_ongen", "abstract_woodsoils.place_soil"
nil,
abstract_woodsoils.place_soil
) )
minetest.register_abm({ minetest.register_abm({

View File

@ -134,7 +134,7 @@ abstract_youngtrees.grow_youngtree_node = function(pos, height)
end end
pl.register_on_generate({ biome_lib.register_on_generate({
surface = { surface = {
"default:dirt_with_grass", "default:dirt_with_grass",
"stoneage:grass_with_silex", "stoneage:grass_with_silex",
@ -146,7 +146,5 @@ pl.register_on_generate({
plantlife_limit = youngtrees_youngtrees_fertility, plantlife_limit = youngtrees_youngtrees_fertility,
min_elevation = 1, -- above sea level min_elevation = 1, -- above sea level
}, },
"youngtrees:youngtrees",
nil,
abstract_youngtrees.grow_youngtree abstract_youngtrees.grow_youngtree
) )

View File

@ -1,2 +1,2 @@
name = youngtrees name = youngtrees
depends = default, plantlife_lib depends = default, biome_lib