From 52825ff02bd436c3afd52e1fbbaf16cd464dc2b1 Mon Sep 17 00:00:00 2001 From: wsor4035 <24964441+wsor4035@users.noreply.github.com> Date: Sat, 10 Jan 2026 17:00:02 -0500 Subject: [PATCH] remove biome lib usage from ferns (#72) * chuck all worthless settings stuff, remove disabled code * remove pre 5x dead code * translate ferns.lua * translate horsetail.lua * chuck dead crafting reciepes * remove biome lib from treefern.lua * remove biome lib from gianttreefern.lua --- ferns/crafting.lua | 28 ----- ferns/fern.lua | 248 ++++++++++++---------------------------- ferns/gianttreefern.lua | 75 ++++-------- ferns/horsetail.lua | 128 ++++++--------------- ferns/init.lua | 22 +--- ferns/mod.conf | 2 +- ferns/settings.lua | 43 ------- ferns/treefern.lua | 82 +++++-------- 8 files changed, 162 insertions(+), 466 deletions(-) delete mode 100644 ferns/settings.lua diff --git a/ferns/crafting.lua b/ferns/crafting.lua index db419ef..af2abba 100644 --- a/ferns/crafting.lua +++ b/ferns/crafting.lua @@ -79,31 +79,3 @@ minetest.register_craft({ output = "dye:green", recipe = {"group:horsetail"}, }) ------------------------------------------------------------------------------------------------ --- GLUE WOODEN TOOLS with RESIN & POLISH them with HORSETAIL (planned) ------------------------------------------------------------------------------------------------ ---[[minetest.register_craft({ - type = "shapeless", - output = "default:pick_wood", - recipe = {"default:pick_wood","group:horsetail","farming:string","default:stick"}, -}) -minetest.register_craft({ - type = "shapeless", - output = "default:shovel_wood", - recipe = {"default:shovel_wood","group:horsetail","farming:string","default:stick"}, -}) -minetest.register_craft({ - type = "shapeless", - output = "default:axe_wood", - recipe = {"default:axe_wood","group:horsetail","farming:string","default:stick"}, -}) -minetest.register_craft({ - type = "shapeless", - output = "default:sword_wood", - recipe = {"default:sword_wood","group:horsetail","farming:string","default:stick"}, -}) -minetest.register_craft({ - type = "shapeless", - output = "farming:hoe_wood", - recipe = {"farming:hoe_wood","group:horsetail","farming:string","default:stick"}, -})]] diff --git a/ferns/fern.lua b/ferns/fern.lua index f29e459..5d9f007 100644 --- a/ferns/fern.lua +++ b/ferns/fern.lua @@ -4,7 +4,6 @@ -- by Mossmanikin -- Contains code from: biome_lib -- Looked at code from: default, flowers, painting, trees --- Dependencies: biome_lib -- Supports: dryplants, stoneage, sumpf ----------------------------------------------------------------------------------------------- -- some inspiration from here @@ -12,19 +11,10 @@ -- http://www.mygarden.net.au/gardening/athyrium-yokoscense/3900/1 ----------------------------------------------------------------------------------------------- -assert(abstract_ferns.config.enable_lady_fern == true) +minetest.register_alias("ferns:fern_03", "default:fern_3") +minetest.register_alias("ferns:fern_02", "default:fern_2") +minetest.register_alias("ferns:fern_01", "default:fern_1") --- support for i18n -local S = minetest.get_translator("ferns") - --- Maintain backward compatibilty --- minetest-0.5: Begin -local default_ferns = minetest.registered_items["default:fern_1"] or false -if default_ferns then - minetest.register_alias("ferns:fern_03", "default:fern_3") - minetest.register_alias("ferns:fern_02", "default:fern_2") - minetest.register_alias("ferns:fern_01", "default:fern_1") -end -- minetest-0.5: End minetest.register_alias("archaeplantae:fern", "ferns:fern_03") minetest.register_alias("archaeplantae:fern_mid", "ferns:fern_02") @@ -33,183 +23,87 @@ minetest.register_alias("ferns:fern_04", "ferns:fern_02") -- for placing local nodenames = {} -local function create_nodes() - local images = { "ferns_fern.png", "ferns_fern_mid.png", "ferns_fern_big.png" } - local vscales = { 1, math.sqrt(8), math.sqrt(11) } - local descs = { S("Lady-fern (Athyrium)"), nil, nil } - - for i = 1, 3 do - local node_on_place = nil - if i == 1 then - node_on_place = function(itemstack, placer, pointed_thing) - -- place a random fern - local stack = ItemStack("ferns:fern_0"..math.random(1,4)) - local ret = minetest.item_place(stack, placer, pointed_thing) - return ItemStack("ferns:fern_01 "..itemstack:get_count()-(1-ret:get_count())) -- TODO FIXME? - end - end - nodenames[i] = "ferns:fern_"..string.format("%02d", i) - minetest.register_node(nodenames[i], { - description = descs[i] or (S("Lady-fern (Athyrium)").." " .. string.format("%02d", i)), - inventory_image = "ferns_fern.png", - drawtype = "plantlike", - visual_scale = vscales[i], - paramtype = "light", - tiles = { images[i] }, - walkable = false, - buildable_to = true, - groups = {snappy=3,flammable=2,attached_node=1,not_in_creative_inventory=1}, - sounds = default.node_sound_leaves_defaults(), - selection_box = { - type = "fixed", - fixed = {-7/16, -1/2, -7/16, 7/16, 0, 7/16}, - }, - drop = "ferns:fern_01", - on_place = node_on_place - }) - end -end - ----------------------------------------------------------------------------------------------- -- Init ----------------------------------------------------------------------------------------------- -if default_ferns then - for i = 1, 3 do - nodenames[i] = "ferns:fern_"..string.format("%02d", i) - end -else - create_nodes() +for i = 1, 3 do + nodenames[i] = "ferns:fern_"..string.format("%02d", i) end ----------------------------------------------------------------------------------------------- -- Spawning ----------------------------------------------------------------------------------------------- -if abstract_ferns.config.lady_ferns_near_tree == true then - biome_lib.register_on_generate({ -- near trees (woodlands) - surface = { - "default:dirt_with_grass", - "default:mossycobble", - "default:desert_sand", - "default:sand", - "default:jungletree", - "stoneage:grass_with_silex", - "sumpf:sumpf" - }, - max_count = 30, - rarity = 62,--63, - min_elevation = 1, -- above sea level - near_nodes = {"group:tree"}, - near_nodes_size = 3,--4, - near_nodes_vertical = 2,--3, - near_nodes_count = 1, - plantlife_limit = -0.9, - humidity_max = -1.0, - humidity_min = 0.4, - temp_max = -0.5, -- 55 °C (too hot?) - temp_min = 0.75, -- -12 °C - random_facedir = { 0, 179 }, +minetest.register_decoration({ -- near trees (woodlands) + decoration = nodenames, + deco_type = "simple", + flags = "all_floors", + place_on = { + "default:dirt_with_grass", + "default:mossycobble", + "default:desert_sand", + "default:sand", + "default:jungletree", + "stoneage:grass_with_silex", + "sumpf:sumpf" }, - nodenames - ) -end + y_min = 1, -- above sea level + param2 = 0, + param2_max = 179, + spawn_by = "group:tree", + num_spawn_by = 1, + fill_ratio = 0.1, +}) -if abstract_ferns.config.lady_ferns_near_rock == true then - biome_lib.register_on_generate({ -- near stone (mountains) - surface = { - "default:dirt_with_grass", - "default:mossycobble", - "group:falling_node", - --"default:jungletree", - "stoneage:grass_with_silex", - "sumpf:sumpf" - }, - max_count = 35, - rarity = 40, - min_elevation = 1, -- above sea level - near_nodes = {"group:stone"}, - near_nodes_size = 1, - near_nodes_count = 16, - plantlife_limit = -0.9, - humidity_max = -1.0, - humidity_min = 0.4, - temp_max = -0.5, -- 55 °C (too hot?) - temp_min = 0.75, -- -12 °C - random_facedir = { 0, 179 }, +minetest.register_decoration({ -- near stone (mountains) + decoration = nodenames, + deco_type = "simple", + flags = "all_floors", + place_on = { + "default:dirt_with_grass", + "default:mossycobble", + "group:falling_node", + --"default:jungletree", + "stoneage:grass_with_silex", + "sumpf:sumpf" }, - nodenames - ) -end + y_min = 1, -- above sea level + param2 = 0, + param2_max = 179, + spawn_by = "group:stone", + num_spawn_by = 1, + fill_ratio = 0.3, +}) -if abstract_ferns.config.lady_ferns_near_ores == true then -- this one causes a huge fps drop - biome_lib.register_on_generate({ -- near ores (potential mining sites) - surface = { - "default:dirt_with_grass", - "default:mossycobble", - "default:stone_with_coal", - "default:stone_with_iron", - "default:stone_with_tin", -- minetest >= 0.4.16 - "moreores:mineral_tin", - "moreores:mineral_silver", - "sumpf:sumpf" - }, - max_count = 1200,--1600, -- maybe too much? :D - rarity = 25,--15, - min_elevation = 1, -- above sea level - near_nodes = { - "default:stone_with_iron", - --"default:stone_with_copper", - --"default:stone_with_mese", - --"default:stone_with_gold", - --"default:stone_with_diamond", - "default:stone_with_tin", -- minetest >= 0.4.16 - "moreores:mineral_tin", - "moreores:mineral_silver" - --"moreores:mineral_mithril" - }, - near_nodes_size = 2, - near_nodes_vertical = 4,--5,--6, - near_nodes_count = 2,--3, - plantlife_limit = -0.9, - humidity_max = -1.0, - humidity_min = 0.4, - temp_max = -0.5, -- 55 °C (too hot?) - temp_min = 0.75, -- -12 °C - random_facedir = { 0, 179 }, +minetest.register_decoration({ -- near stone (mountains) + decoration = nodenames, + deco_type = "simple", + flags = "all_floors", + place_on = { + "default:dirt_with_grass", + "default:mossycobble", + "default:stone_with_coal", + "default:stone_with_iron", + "default:stone_with_tin", + "moreores:mineral_tin", + "moreores:mineral_silver", + "sumpf:sumpf" }, - nodenames - ) -end - -if abstract_ferns.config.lady_ferns_in_groups == true then -- this one is meant as a replacement of Ferns_near_Ores - biome_lib.register_on_generate({ - surface = { - "default:dirt_with_grass", - "default:mossycobble", - "default:stone_with_coal", - "default:stone_with_iron", - "default:stone_with_tin", -- minetest >= 0.4.16 - "moreores:mineral_tin", - "moreores:mineral_silver", - "sumpf:sumpf" - }, - max_count = 70, - rarity = 25,--15, - min_elevation = 1, -- above sea level - near_nodes = { - "default:stone" - }, - near_nodes_size = 2, - near_nodes_vertical = 2,--6, - near_nodes_count = 3, - plantlife_limit = -0.9, - humidity_max = -1.0, - humidity_min = 0.4, - temp_max = -0.5, -- 55 °C (too hot?) - temp_min = 0.75, -- -12 °C - random_facedir = { 0, 179 }, + y_min = 1, -- above sea level + param2 = 0, + param2_max = 179, + spawn_by = { + "default:stone_with_iron", + --"default:stone_with_copper", + --"default:stone_with_mese", + --"default:stone_with_gold", + --"default:stone_with_diamond", + "default:stone_with_tin", + "moreores:mineral_tin", + "moreores:mineral_silver" + --"moreores:mineral_mithril" }, - nodenames - ) -end + num_spawn_by = 1, + fill_ratio = 0.8, +}) \ No newline at end of file diff --git a/ferns/gianttreefern.lua b/ferns/gianttreefern.lua index b5115e8..5ccf8be 100644 --- a/ferns/gianttreefern.lua +++ b/ferns/gianttreefern.lua @@ -7,8 +7,6 @@ -- Supports: vines ----------------------------------------------------------------------------------------------- -assert(abstract_ferns.config.enable_giant_treefern == true) - -- support for i18n local S = minetest.get_translator("ferns") -- lot of code, lot to load @@ -330,55 +328,26 @@ minetest.register_abm({ -- GENERATE GIANT TREE FERN ----------------------------------------------------------------------------------------------- --- in jungles -if abstract_ferns.config.enable_giant_treeferns_in_jungle == true then - biome_lib.register_on_generate({ - surface = { - "default:dirt_with_grass", - "default:dirt_with_rainforest_litter", -- minetest >= 0.4.16 - "default:sand", - "default:desert_sand"--, - --"dryplants:grass_short" - }, - max_count = 12,--27, - avoid_nodes = {"group:tree"}, - avoid_radius = 3,--4, - rarity = 85, - seed_diff = 329, - min_elevation = 1, - near_nodes = {"default:jungletree"}, - near_nodes_size = 6, - near_nodes_vertical = 2,--4, - near_nodes_count = 1, - plantlife_limit = -0.9, - }, - abstract_ferns.grow_giant_tree_fern - ) -end +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:dirt_with_grass", "default:dirt_with_rainforest_litter", "default:sand", "default:desert_sand"}, + sidelen = 16, + fill_ratio = 0.012, + y_min = 1, + y_max = 31000, + spawn_by = "default:jungletree", + num_spawn_by = 1, + decoration = "ferns:sapling_giant_tree_fern", +}) --- for oases & tropical beaches -if abstract_ferns.config.enable_giant_treeferns_in_oases == true then - biome_lib.register_on_generate({ - surface = { - "default:sand"--, - --"default:desert_sand" - }, - max_count = 10,--27, - rarity = 90, - seed_diff = 329, - neighbors = {"default:desert_sand"}, - ncount = 1, - min_elevation = 1, - near_nodes = {"default:water_source", "default:river_water_source"}, - near_nodes_size = 2, - near_nodes_vertical = 1, - near_nodes_count = 1, - plantlife_limit = -0.9, - humidity_max = -1.0, - humidity_min = 1.0, - temp_max = -1.0, - temp_min = 1.0, - }, - abstract_ferns.grow_giant_tree_fern - ) -end +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:sand"}, + sidelen = 16, + fill_ratio = 0.012, + y_min = 1, + y_max = 31000, + spawn_by = "default:water_source,default:river_water_source", + num_spawn_by = 1, + decoration = "ferns:sapling_giant_tree_fern", +}) diff --git a/ferns/horsetail.lua b/ferns/horsetail.lua index 21ef862..90f9e7c 100644 --- a/ferns/horsetail.lua +++ b/ferns/horsetail.lua @@ -8,8 +8,6 @@ -- Supports: dryplants, stoneage, sumpf ----------------------------------------------------------------------------------------------- -assert(abstract_ferns.config.enable_horsetails == true) - -- support for i18n local S = minetest.get_translator("ferns") ----------------------------------------------------------------------------------------------- @@ -71,101 +69,45 @@ end create_nodes() ------------------------------------------------------------------------------------------------ --- Spawning ------------------------------------------------------------------------------------------------ -if abstract_ferns.config.enable_horsetails_spawning == true then - minetest.register_abm({ - nodenames = { - "default:dirt_with_grass", - "default:dirt_with_coniferous_litter", - "default:desert_sand", - "default:sand", - "dryplants:grass_short", - "stoneage:grass_with_silex", - "default:mossycobble", - "default:gravel" - }, - interval = 1200, - chance = 400, - label = "[ferns] spawn horsetails", - min_y = 1, - max_y = 48, - action = function(pos, node) - local p_top = {x = pos.x, y = pos.y + 1, z = pos.z} - local n_top = minetest.get_node_or_nil(p_top) - if not n_top or n_top.name ~= "air" then return end - - local NEAR_DST = 2 - if #minetest.find_nodes_in_area( - {x=pos.x-NEAR_DST, y=pos.y-1, z=pos.z-NEAR_DST}, - {x=pos.x+NEAR_DST, y=pos.y+1, z=pos.z+NEAR_DST}, - {"default:water_source","default:river_water_source","default:gravel"} - ) < 1 then return - end - - local plant_to_spawn = node_names[math.random(1, #node_names)] - - minetest.swap_node(p_top, {name = plant_to_spawn, param2 = 0}) - end - }) -end - ----------------------------------------------------------------------------------------------- -- Generating ----------------------------------------------------------------------------------------------- -if abstract_ferns.config.enable_horsetails_on_grass == true then - biome_lib.register_on_generate({ - surface = { - "default:dirt_with_grass", - "default:dirt_with_coniferous_litter", -- minetest >= 0.5 - "sumpf:sumpf" - }, - max_count = 35, - rarity = 40, - min_elevation = 1, -- above sea level - near_nodes = { - "group:water", -- likes water (of course) - "default:gravel", -- near those on gravel - "default:sand", -- some like sand - "default:clay", -- some like clay - "stoneage:grass_with_silex", - "default:mossycobble", - "default:cobble", - "sumpf:sumpf" - }, - near_nodes_size = 3, - near_nodes_vertical = 2,--3, - near_nodes_count = 1, - plantlife_limit = -0.9, - humidity_min = 0.4, - temp_max = -0.5, -- 55 °C - temp_min = 0.53, -- 0 °C, dies back in winter - --random_facedir = { 0, 179 }, +minetest.register_decoration({ -- near trees (woodlands) + decoration = node_names, + deco_type = "simple", + flags = "all_floors", + place_on = { + "default:dirt_with_grass", + "default:dirt_with_coniferous_litter", + "sumpf:sumpf" }, - node_names - ) -end + y_min = 1, -- above sea level + spawn_by = { + "group:water", -- likes water (of course) + "default:gravel", -- near those on gravel + "default:sand", -- some like sand + "default:clay", -- some like clay + "stoneage:grass_with_silex", + "default:mossycobble", + "default:cobble", + "sumpf:sumpf" + }, + num_spawn_by = 1, + fill_ratio = 0.1, +}) -if abstract_ferns.config.enable_horsetails_on_stones == true then - biome_lib.register_on_generate({ - surface = { - "default:gravel", -- roots go deep - "default:mossycobble", - "stoneage:dirt_with_silex", - "stoneage:grass_with_silex", - "stoneage:sand_with_silex", -- roots go deep - }, - max_count = 35, - rarity = 20, - min_elevation = 1, -- above sea level - plantlife_limit = -0.9, - humidity_min = 0.4, - temp_max = -0.5, -- 55 °C - temp_min = 0.53, -- 0 °C, dies back in winter - --random_facedir = { 0, 179 }, +minetest.register_decoration({ -- near trees (woodlands) + decoration = node_names, + deco_type = "simple", + flags = "all_floors", + place_on = { + "default:gravel", -- roots go deep + "default:mossycobble", + "stoneage:dirt_with_silex", + "stoneage:grass_with_silex", + "stoneage:sand_with_silex", -- roots go deep }, - node_names - ) -end + y_min = 1, -- above sea level + fill_ratio = 0.1, +}) \ No newline at end of file diff --git a/ferns/init.lua b/ferns/init.lua index 14249b3..d4101ad 100644 --- a/ferns/init.lua +++ b/ferns/init.lua @@ -1,21 +1,7 @@ abstract_ferns = {} -dofile(minetest.get_modpath("ferns").."/settings.lua") - -if abstract_ferns.config.enable_lady_fern == true then - dofile(minetest.get_modpath("ferns").."/fern.lua") -end - -if abstract_ferns.config.enable_horsetails == true then - dofile(minetest.get_modpath("ferns").."/horsetail.lua") -end - -if abstract_ferns.config.enable_treefern == true then - dofile(minetest.get_modpath("ferns").."/treefern.lua") -end - -if abstract_ferns.config.enable_giant_treefern == true then - dofile(minetest.get_modpath("ferns").."/gianttreefern.lua") -end - +dofile(minetest.get_modpath("ferns").."/fern.lua") +dofile(minetest.get_modpath("ferns").."/horsetail.lua") +dofile(minetest.get_modpath("ferns").."/treefern.lua") +dofile(minetest.get_modpath("ferns").."/gianttreefern.lua") dofile(minetest.get_modpath("ferns").."/crafting.lua") diff --git a/ferns/mod.conf b/ferns/mod.conf index fe92bf7..2c58df5 100644 --- a/ferns/mod.conf +++ b/ferns/mod.conf @@ -1,2 +1,2 @@ name = ferns -depends = default, biome_lib +depends = default diff --git a/ferns/settings.lua b/ferns/settings.lua deleted file mode 100644 index 0fcdfbb..0000000 --- a/ferns/settings.lua +++ /dev/null @@ -1,43 +0,0 @@ --- In case you don't wanna have errors: - --- Only change what's behind a "=" (or "--"). --- Don't use caps (behind a "="). - --- If there's a "false" (behind a "=") you can change it to "true" (and the other way around). --- Spelling is important. --- If "true" or "false" is necessary as setting, everything(!) which is not spelled "true" will be read as if it were "false" (even "1", "True"...) - --- If you wanna comment something (for example to remember the default value), you can do this by putting "--" in front of the comment. --- You can put "--" at the end of a line with "=" in it, or at the beginning of an empty/new line (minetest will ignore what's behind it then). --- But don't put "--" in front of a line with "=" in it (or else minetest will ignore the setting and you might get an error). - --- If something is still unclear, don't hesitate to post your question @ https://forum.minetest.net/viewtopic.php?id=6921 - -abstract_ferns.config = {} - --- Which plants should generate/spawn? -abstract_ferns.config.enable_lady_fern = true -abstract_ferns.config.enable_horsetails = true -abstract_ferns.config.enable_treefern = true -abstract_ferns.config.enable_giant_treefern = true - --- Where should they generate/spawn? (if they generate/spawn) --- --- Lady-Fern -abstract_ferns.config.lady_ferns_near_tree = true -abstract_ferns.config.lady_ferns_near_rock = true -abstract_ferns.config.lady_ferns_near_ores = true -- if there's a bunch of ferns there's ores nearby, this one causes a huge fps drop -abstract_ferns.config.lady_ferns_in_groups = false -- this one is meant as a replacement of Ferns_near_Ores: ferns tend to generate in groups, less fps drop, no hint for nearby ores --- --- Horsetails -abstract_ferns.config.enable_horsetails_spawning = false -- horsetails will grow in already explored areas, over time, near water or gravel -abstract_ferns.config.enable_horsetails_on_grass = true -- on dirt with grass and swamp (sumpf mod) -abstract_ferns.config.enable_horsetails_on_stones = true -- on gravel, mossy cobble and silex (stoneage mod) --- --- Tree_Fern -abstract_ferns.config.enable_treeferns_in_jungle = true -abstract_ferns.config.enable_treeferns_in_oases = true -- for oases and tropical beaches --- --- Giant_Tree_Fern -abstract_ferns.config.enable_giant_treeferns_in_jungle = true -abstract_ferns.config.enable_giant_treeferns_in_oases = true -- for oases and tropical beaches diff --git a/ferns/treefern.lua b/ferns/treefern.lua index 7869dff..562eaa1 100644 --- a/ferns/treefern.lua +++ b/ferns/treefern.lua @@ -9,8 +9,6 @@ -- support for i18n local S = minetest.get_translator("ferns") -assert(abstract_ferns.config.enable_treefern == true) - function abstract_ferns.can_grow_tree_fern(pos) local node_name = minetest.get_node(pos).name if node_name ~= "air" and node_name ~= "ferns:sapling_tree_fern" and node_name ~= "default:junglegrass" then @@ -205,57 +203,35 @@ minetest.register_abm({ ----------------------------------------------------------------------------------------------- -- in jungles -if abstract_ferns.config.enable_treeferns_in_jungle == true then - biome_lib.register_on_generate({ - surface = { - "default:dirt_with_grass", - "default:dirt_with_rainforest_litter", -- minetest >= 0.4.16 - "default:sand", - "default:desert_sand", - }, - max_count = 35,--27, - avoid_nodes = {"default:tree"}, - avoid_radius = 4, - rarity = 50, - seed_diff = 329, - min_elevation = -10, - near_nodes = {"default:jungletree"}, - near_nodes_size = 6, - near_nodes_vertical = 2,--4, - near_nodes_count = 1, - plantlife_limit = -0.9, - humidity_max = -1.0, - humidity_min = 0.4, - temp_max = -0.5, - temp_min = 0.13, +minetest.register_decoration({ + deco_type = "simple", + place_on = { + "default:dirt_with_grass", + "default:dirt_with_rainforest_litter", + "default:sand", + "default:desert_sand", }, - abstract_ferns.grow_tree_fern - ) -end + sidelen = 16, + fill_ratio = 0.002, + biomes = {"rainforest", "rainforest_swamp"}, + y_min = -10, + y_max = 31000, + spawn_by = "default:jungletree", + num_spawn_by = 1, + decoration = "ferns:sapling_tree_fern", + flags = "force_placement", +}) -- for oases & tropical beaches -if abstract_ferns.config.enable_treeferns_in_oases == true then - biome_lib.register_on_generate({ - surface = { - "default:sand"--, - --"default:desert_sand" - }, - max_count = 35, - rarity = 50, - seed_diff = 329, - neighbors = {"default:desert_sand"}, - ncount = 1, - min_elevation = 1, - near_nodes = {"default:water_source","default:river_water_source"}, - near_nodes_size = 2, - near_nodes_vertical = 1, - near_nodes_count = 1, - plantlife_limit = -0.9, - humidity_max = -1.0, - humidity_min = 1.0, - temp_max = -1.0, - temp_min = 1.0, - }, - abstract_ferns.grow_tree_fern -) -end +minetest.register_decoration({ + deco_type = "simple", + place_on = {"default:sand"}, + sidelen = 16, + fill_ratio = 0.002, + y_min = 1, + y_max = 31000, + spawn_by = {"default:water_source", "default:river_water_source"}, + num_spawn_by = 1, + decoration = "ferns:sapling_tree_fern", + flags = "force_placement", +})