From 99d58e08767399faaf37b297f82211fe228560c1 Mon Sep 17 00:00:00 2001 From: Niklp09 <89982526+Niklp09@users.noreply.github.com> Date: Sun, 16 Apr 2023 19:24:52 +0200 Subject: [PATCH] add pl.generate_noise_params() --- bushes/init.lua | 13 +--- bushes/mod.conf | 2 +- dryplants/juncus.lua | 70 ++++++++++---------- dryplants/meadowvariation.lua | 11 ++-- dryplants/moregrass.lua | 15 +---- dryplants/reedmace.lua | 107 +++++++++++++++--------------- molehills/init.lua | 9 ++- pl_seaweed/init.lua | 46 +++++-------- plantlife_lib/init.lua | 30 +++++++-- plantlife_lib/util.lua | 28 ++++++++ trunks/generating.lua | 121 +++++++++++----------------------- woodsoils/generating.lua | 58 ++++++---------- youngtrees/init.lua | 4 +- youngtrees/mod.conf | 2 +- 14 files changed, 226 insertions(+), 290 deletions(-) diff --git a/bushes/init.lua b/bushes/init.lua index ff5dfd6..7563a5b 100644 --- a/bushes/init.lua +++ b/bushes/init.lua @@ -12,11 +12,9 @@ abstract_bushes = {} 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_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_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", { @@ -218,13 +216,10 @@ pl.register_on_generate({ "sumpf:peat", "sumpf:sumpf" }, - rarity = bushes_bush_rarity, - rarity_fertility = bushes_bush_rarity_fertility, - plantlife_limit = bushes_bush_fertility, + noise_params = pl.generate_noise_params({rarity = bushes_bush_rarity, rarity_fertility = bushes_bush_rarity_fertility}), min_elevation = 1, -- above sea level }, "bushes:bushes", - nil, abstract_bushes.grow_bush ) @@ -255,6 +250,7 @@ abstract_bushes.grow_youngtree_node2 = function(pos, height) end end + pl.register_on_generate({ surface = { "default:dirt_with_grass", @@ -262,12 +258,9 @@ pl.register_on_generate({ "sumpf:peat", "sumpf:sumpf" }, - rarity = bushes_youngtrees_rarity, - rarity_fertility = bushes_youngtrees_rarity_fertility, - plantlife_limit = bushes_youngtrees_fertility, + noise_params = pl.generate_noise_params({rarity = bushes_youngtrees_rarity, rarity_fertility = bushes_youngtrees_rarity_fertility}), min_elevation = 1, -- above sea level }, "bushes:youngtrees", - nil, abstract_bushes.grow_youngtree2 ) diff --git a/bushes/mod.conf b/bushes/mod.conf index 18c091d..0a4f665 100644 --- a/bushes/mod.conf +++ b/bushes/mod.conf @@ -1,3 +1,3 @@ name = bushes -depends = default, plantlife_lib +depends = default, biome_lib optional_depends = stoneage, sumpf diff --git a/dryplants/juncus.lua b/dryplants/juncus.lua index 0bfd635..8959756 100644 --- a/dryplants/juncus.lua +++ b/dryplants/juncus.lua @@ -92,44 +92,42 @@ minetest.register_node("dryplants:juncus_02", { -- GENERATE SMALL JUNCUS ----------------------------------------------------------------------------------------------- -- near water or swamp -biome_lib.register_on_generate({ - surface = { - "default:dirt_with_grass", - --"default:desert_sand", - --"default:sand", - "stoneage:grass_with_silex", - "sumpf:peat", - "sumpf:sumpf" +pl.register_on_generate({ + surface = { + "default:dirt_with_grass", + --"default:desert_sand", + --"default:sand", + "stoneage:grass_with_silex", + "sumpf:peat", + "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, - 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, - plantlife_limit = -0.9, - }, - abstract_dryplants.grow_juncus + "dryplants:juncus_near_water", + abstract_dryplants.grow_juncus ) -- at dunes/beach -biome_lib.register_on_generate({ - surface = { - --"default:dirt_with_grass", - --"default:desert_sand", - "default:sand", - --"stoneage:grass_with_silex", - --"sumpf:peat", - --"sumpf:sumpf" +pl.register_on_generate({ + surface = { + --"default:dirt_with_grass", + --"default:desert_sand", + "default:sand", + --"stoneage:grass_with_silex", + --"sumpf:peat", + --"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, - 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, - plantlife_limit = -0.9, - }, - abstract_dryplants.grow_juncus + "dryplants:junces_at_beach", + abstract_dryplants.grow_juncus ) diff --git a/dryplants/meadowvariation.lua b/dryplants/meadowvariation.lua index d11d7da..6155254 100644 --- a/dryplants/meadowvariation.lua +++ b/dryplants/meadowvariation.lua @@ -12,14 +12,13 @@ abstract_dryplants.grow_grass_variation = function(pos) minetest.swap_node(right_here, {name="dryplants:grass_short"}) end -biome_lib.register_on_generate({ +pl.register_on_generate({ surface = { - "default:dirt_with_grass", - }, - max_count = 4800, - rarity = 25, + "default:dirt_with_grass", + }, + noise_params = pl.generate_noise_params({max_count = 4800, rarity = 25}), min_elevation = 1, -- above sea level - plantlife_limit = -0.9, }, + "dryplants:grass", abstract_dryplants.grow_grass_variation ) diff --git a/dryplants/moregrass.lua b/dryplants/moregrass.lua index 3bc26f5..ac1734f 100644 --- a/dryplants/moregrass.lua +++ b/dryplants/moregrass.lua @@ -21,20 +21,7 @@ minetest.register_decoration({ "sumpf:peat", "sumpf:sumpf" }, - noise_params = { - persist = 0.6, - flags = "absvalue", - lacunarity = 2, - offset = 0, - scale = 0.74, - spread = { - z = 100, - x = 100, - y = 100 - }, - seed = 0, - octaves = 3 - }, + noise_params = pl.generate_noise_params({max_count = TALL_GRASS_PER_MAPBLOCK, rarity = 101 - TALL_GRASS_RARITY}), flags = "all_floors", deco_type = "simple", y_min = 1, diff --git a/dryplants/reedmace.lua b/dryplants/reedmace.lua index 3c97f56..3a8908e 100644 --- a/dryplants/reedmace.lua +++ b/dryplants/reedmace.lua @@ -349,66 +349,63 @@ minetest.register_entity("dryplants:reedmace_water_entity",{ -- GENERATE REEDMACE ----------------------------------------------------------------------------------------------- -- near water or swamp -biome_lib.register_on_generate({ - surface = { - "default:dirt_with_grass", - "default:desert_sand", - "stoneage:grass_with_silex", - "sumpf:peat", - "sumpf:sumpf" +pl.register_on_generate({ + surface = { + "default:dirt_with_grass", + "default:desert_sand", + "stoneage:grass_with_silex", + "sumpf:peat", + "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, - 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, - plantlife_limit = -0.9, - }, - abstract_dryplants.grow_reedmace + "dryplants:reedmace_near_water", + abstract_dryplants.grow_reedmace ) -- in water -biome_lib.register_on_generate({ - surface = { - "default:dirt", - "default:dirt_with_grass", - --"default:desert_sand", - --"stoneage:grass_with_silex", - "stoneage:sand_with_silex", - "sumpf:peat", - "sumpf:sumpf" +pl.register_on_generate({ + surface = { + "default:dirt", + "default:dirt_with_grass", + --"default:desert_sand", + --"stoneage:grass_with_silex", + "stoneage:sand_with_silex", + "sumpf:peat", + "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, - 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, - plantlife_limit = -0.9, - }, - abstract_dryplants.grow_reedmace_water + "dryplants:reedmace_in_water", + abstract_dryplants.grow_reedmace_water ) -- for oases & tropical beaches & tropical swamps -biome_lib.register_on_generate({ - surface = { - "default:sand", - "sumpf:sumpf" +pl.register_on_generate({ + surface = { + "default:sand", + "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, - rarity = 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, - plantlife_limit = -0.9, - }, - abstract_dryplants.grow_reedmace + "dryplants:reemace_oases", + abstract_dryplants.grow_reedmace ) diff --git a/molehills/init.lua b/molehills/init.lua index aba3d41..0b8c81f 100644 --- a/molehills/init.lua +++ b/molehills/init.lua @@ -62,15 +62,14 @@ abstract_molehills.place_molehill = function(pos) end end -biome_lib.register_on_generate({ +pl.register_on_generate({ surface = {"default:dirt_with_grass"}, - rarity = molehills_rarity, - rarity_fertility = molehills_rarity_fertility, - plantlife_limit = molehills_fertility, + noise_params = pl.generate_noise_params({rarity = molehills_rarity, rarity_fertility = molehills_rarity_fertility}), min_elevation = 1, 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, }, + "molehills:molehills", abstract_molehills.place_molehill ) diff --git a/pl_seaweed/init.lua b/pl_seaweed/init.lua index 1171719..a2786fe 100644 --- a/pl_seaweed/init.lua +++ b/pl_seaweed/init.lua @@ -56,16 +56,16 @@ for i in ipairs(algae_list) do local above_node = minetest.get_node(pt.above) 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 place_pos = pt.under 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 else return 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 end 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}) end - if not biome_lib.expect_infinite_stacks then + if not pl.expect_infinite_stacks then itemstack:take_item() end 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)}) end -pl.register_on_generate({ - place_on = { - "default:water_source" - }, - noise_params = { - scale = 0.00234375, - offset = 0, - seed = 0, - octaves = 3, - lacunarity = 2, - flags = "absvalue", - 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 +biome_lib.register_on_generate({ + surface = {"default:water_source"}, + max_count = seaweed_max_count, + rarity = seaweed_rarity, + min_elevation = 1, + max_elevation = 40, + near_nodes = {"default:dirt_with_grass"}, + near_nodes_size = 4, + near_nodes_vertical = 1, + near_nodes_count = 1, + plantlife_limit = -0.9, }, - "pl_seaweed:water_grass", - nil, pl_seaweed.grow_seaweed ) diff --git a/plantlife_lib/init.lua b/plantlife_lib/init.lua index ed5f0ce..c9e1073 100644 --- a/plantlife_lib/init.lua +++ b/plantlife_lib/init.lua @@ -11,10 +11,9 @@ function pl.get_def_from_id(id) end end -function pl.register_on_generate(def, plantname, index, func) - if not index then index = 1 end -- Do we need `index`? +function pl.register_on_generate(def, plantname, func) local deco_def = { - name = plantname .. "_" .. index, + name = plantname, deco_type = "simple", place_on = def.place_on or def.surface, sidelen = 16, @@ -43,6 +42,11 @@ function pl.register_on_generate(def, plantname, index, func) end deco_def.near_nodes_count = def.near_nodes_count or 1 end + -- handle ncount/neighbors + if def.ncount and def.neighbors then + deco_def.ncount = def.ncount + deco_def.neighbors = def.neighbors + end -- save def local next = #deco + 1 deco[next] = {} @@ -60,14 +64,24 @@ minetest.register_on_mods_loaded(function() deco[k][1].id = id table.insert(ids, id) end - -- print(dump2(ids)) + print(dump2(ids)) minetest.set_gen_notify("decoration", ids) -- print(dump(deco)) end) local function place_handler(t) 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 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}, def.near_nodes ) < def.near_nodes_count then - return -- Long distance neighbours do not match + return -- Long distance neighbors do not match end -- avoid nodes handler 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 return end @@ -93,8 +108,9 @@ local function place_handler(t) -- some fun local player = minetest.get_player_by_name("Niklp") -- player:set_pos(t.pos) + t.pos.y = t.pos.y + 3 minetest.add_particle({ - pos = p_top, + pos = t.pos, expirationtime = 15, playername = player:get_player_name(), glow = minetest.LIGHT_MAX, diff --git a/plantlife_lib/util.lua b/plantlife_lib/util.lua index 7a77e91..4b5153f 100644 --- a/plantlife_lib/util.lua +++ b/plantlife_lib/util.lua @@ -11,4 +11,32 @@ if minetest.get_modpath("unified_inventory") or not minetest.settings:get_bool(" pl.expect_infinite_stacks = false else 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 \ No newline at end of file diff --git a/trunks/generating.lua b/trunks/generating.lua index 7d38e1a..793e4ec 100644 --- a/trunks/generating.lua +++ b/trunks/generating.lua @@ -152,52 +152,34 @@ abstract_trunks.place_twig = function(pos) end if Twigs_on_ground == true then -biome_lib.register_on_generate({ +pl.register_on_generate({ surface = {"default:dirt_with_grass"}, - max_count = Twigs_on_ground_Max_Count, - rarity = Twigs_on_ground_Rarity, + noise_params = pl.generate_noise_params({max_count = Twigs_on_ground_Max_Count, rarity = Twigs_on_ground_Rarity}), min_elevation = 1, max_elevation = 40, near_nodes = {"group:tree","ferns:fern_03","ferns:fern_02","ferns:fern_01"}, near_nodes_size = 3, near_nodes_vertical = 1, near_nodes_count = 1, - plantlife_limit = -0.9, }, + "trunks:on_grass", abstract_trunks.place_twig ) end if Twigs_on_water == true then pl.register_on_generate({ - place_on = { - "default:water_source" - }, - noise_params = { - flags = "absvalue", - offset = 0, - scale = 0.05, - spread = { - z = 100, - x = 100, - y = 100 - }, - 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 + surface = {"default:water_source"}, + noise_params = pl.generate_noise_params({max_count = Twigs_on_water_Max_Count, rarity = Twigs_on_water_Rarity}), + min_elevation = 1, + max_elevation = 40, + near_nodes = {"group:tree"}, + near_nodes_size = 3, + near_nodes_vertical = 1, + near_nodes_count = 1, + }, + "trunks:on_water", + abstract_trunks.place_twig ) end @@ -338,10 +320,9 @@ abstract_trunks.place_trunk = function(pos) end end -biome_lib.register_on_generate({ +pl.register_on_generate({ surface = {"default:dirt_with_grass"}, - max_count = Trunks_Max_Count, -- 320, - rarity = Trunks_Rarity, -- 99, + noise_params = pl.generate_noise_params({max_count = Trunks_Max_Count, rarity = Trunks_Rarity}), min_elevation = 1, max_elevation = 40, avoid_nodes = {"group:tree"}, @@ -350,8 +331,8 @@ biome_lib.register_on_generate({ near_nodes_size = 3, near_nodes_vertical = 1, near_nodes_count = 1, - plantlife_limit = -0.9, }, + "trunks:on_grass_2", abstract_trunks.place_trunk ) @@ -373,42 +354,22 @@ abstract_trunks.grow_moss_on_ground = function(pos) end pl.register_on_generate({ - y_max = 40, - flags = "all_floors", - deco_type = "simple", - place_on = { - "default:dirt_with_grass" - }, - noise_params = { - offset = 0, - scale = 0.1, - 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 + surface = {"default:dirt_with_grass"}, + noise_params = pl.generate_noise_params({max_count = Moss_on_ground_Max_Count, rarity = Moss_on_ground_Rarity}), + min_elevation = 1, + max_elevation = 40, + near_nodes = { + "group:tree", + "ferns:fern_03", + "ferns:fern_02", + "ferns:fern_01" }, - "trunks:on_dirt_with_grass", - nil, - abstract_trunks.grow_moss_on_ground + near_nodes_size = 2, + near_nodes_vertical = 1, + near_nodes_count = 1, + }, + "trunks:on_grass_3", + abstract_trunks.grow_moss_on_ground ) end @@ -493,15 +454,11 @@ pl.register_on_generate({ "moretrees:willow_trunk", "default:mossycobble" }, - max_count = Moss_on_trunk_Max_Count, - rarity = Moss_on_trunk_Rarity, + noise_params = pl.generate_noise_params({max_count = Moss_on_trunk_Max_Count, rarity = Moss_on_trunk_Rarity}), min_elevation = 1, max_elevation = 40, - plantlife_limit = -0.9, - check_air = false, }, - "trunks:grow_moss_on_trunk", - nil, + "trunks:moss_on_trunk", abstract_trunks.grow_moss_on_trunk ) end @@ -547,20 +504,18 @@ abstract_trunks.grow_roots = function(pos) end end -biome_lib.register_on_generate({ +pl.register_on_generate({ surface = {"group:tree"}, - max_count = 1000, - rarity = 1, + noise_params = pl.generate_noise_params({max_count = 1000, rarity = 1,}), min_elevation = 1, max_elevation = 40, near_nodes = {"default:dirt_with_grass"}, near_nodes_size = 1, near_nodes_vertical = 1, near_nodes_count = 1, - plantlife_limit = -1, - check_air = false, }, - "abstract_trunks.grow_roots" + "trunks:grow_roots", + abstract_trunks.grow_roots ) end diff --git a/woodsoils/generating.lua b/woodsoils/generating.lua index 803cb02..c250f2a 100644 --- a/woodsoils/generating.lua +++ b/woodsoils/generating.lua @@ -73,44 +73,28 @@ abstract_woodsoils.place_soil = function(pos) end end -pl.register_on_generate({ - place_on = { - "group:tree", - "ferns:fern_03", - "ferns:fern_02", - "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 +biome_lib.register_on_generate({ + surface = { + "group:tree", + "ferns:fern_03", + "ferns:fern_02", + "ferns:fern_01" }, - "woodsoils:place_soil", - nil, - abstract_woodsoils.place_soil + max_count = 1000, + rarity = 1, + 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 = { "moretrees:apple_tree_sapling_ongen", "moretrees:beech_sapling_ongen", @@ -131,9 +115,7 @@ pl.register_on_generate({ plantlife_limit = -0.9, check_air = false, }, - "woodsoils:place_soil_ongen", - nil, - abstract_woodsoils.place_soil + "abstract_woodsoils.place_soil" ) minetest.register_abm({ diff --git a/youngtrees/init.lua b/youngtrees/init.lua index c6b3fc4..586b5e4 100644 --- a/youngtrees/init.lua +++ b/youngtrees/init.lua @@ -134,7 +134,7 @@ abstract_youngtrees.grow_youngtree_node = function(pos, height) end -pl.register_on_generate({ +biome_lib.register_on_generate({ surface = { "default:dirt_with_grass", "stoneage:grass_with_silex", @@ -146,7 +146,5 @@ pl.register_on_generate({ plantlife_limit = youngtrees_youngtrees_fertility, min_elevation = 1, -- above sea level }, - "youngtrees:youngtrees", - nil, abstract_youngtrees.grow_youngtree ) diff --git a/youngtrees/mod.conf b/youngtrees/mod.conf index 1ac7ade..7de3928 100644 --- a/youngtrees/mod.conf +++ b/youngtrees/mod.conf @@ -1,2 +1,2 @@ name = youngtrees -depends = default, plantlife_lib +depends = default, biome_lib