diff --git a/game_api.txt b/game_api.txt index b3f6efc6..d5d1c82e 100644 --- a/game_api.txt +++ b/game_api.txt @@ -381,7 +381,9 @@ The farming API allows you to easily register plants and hoes. steps = 8, -- How many steps the plant has to grow, until it can be harvested -- ^ Always provide a plant texture for each step, format: modname_plantname_i.png (i = stepnumber) minlight = 13, -- Minimum light to grow - maxlight = default.LIGHT_MAX -- Maximum light to grow + maxlight = default.LIGHT_MAX, -- Maximum light to grow + soil_group = "soil" -- Soil node group where plant can grow ("soil" by default). + -- Group rating must be at least 2 for plant growing. } diff --git a/mods/farming/api.lua b/mods/farming/api.lua index 96f9f636..828158bd 100644 --- a/mods/farming/api.lua +++ b/mods/farming/api.lua @@ -173,7 +173,8 @@ farming.place_seed = function(itemstack, placer, pointed_thing, plantname) end -- check if pointing at soil - if minetest.get_item_group(under.name, "soil") < 2 then + local soil_group = farming.registered_plants[plantname].soil_group + if minetest.get_item_group(under.name, soil_group) < 2 then return itemstack end @@ -279,6 +280,7 @@ farming.register_plant = function(name, def) if not def.fertility then def.fertility = {} end + def.soil_group = def.soil_group or "soil" farming.registered_plants[pname] = def @@ -322,7 +324,7 @@ farming.register_plant = function(name, def) pointed_thing) or itemstack end - return farming.place_seed(itemstack, placer, pointed_thing, mname .. ":seed_" .. pname) + return farming.place_seed(itemstack, placer, pointed_thing, mname .. ":seed_" .. pname, def.soil_group) end, next_plant = mname .. ":" .. pname .. "_1", on_timer = farming.grow_plant,