From d78db87afae27b3dbc7d316064f975eca8de27d4 Mon Sep 17 00:00:00 2001 From: trans_soup <> Date: Mon, 17 Jul 2023 00:03:20 +0200 Subject: [PATCH] add registration of farming items to utility mod. --- mcl_vegan_utils/farming_item.lua | 62 +++++++++++++++++++ .../{farming.lua => farming_node.lua} | 6 +- mcl_vegan_utils/init.lua | 3 +- 3 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 mcl_vegan_utils/farming_item.lua rename mcl_vegan_utils/{farming.lua => farming_node.lua} (94%) diff --git a/mcl_vegan_utils/farming_item.lua b/mcl_vegan_utils/farming_item.lua new file mode 100644 index 0000000..5f8ccdf --- /dev/null +++ b/mcl_vegan_utils/farming_item.lua @@ -0,0 +1,62 @@ +local registered_plant_items = {} +mcl_vegan.registered_plant_items = registered_plant_items + +function mcl_vegan.register_plant_items (own_mod_name, base_name, def) + def.own_mod_name = own_mod_name + def.base_name = base_name + + local full_base_name = own_mod_name .. ":" .. base_name + + registered_plant_items[full_base_name] = def + + local seed = def.seed + local full_seed = own_mod_name .. ":" .. seed + local descriptions = def.descriptions + -- 0 means inedible + if def.food_strength == nil then def.food_strength = 0 end + local food_strength = def.food_strength + + + + local on_secondary_use = nil + if food_strength > 0 then + on_secondary_use = minetest.item_eat(food_strength) + end + + local plant_seed = function (item_stack, placer, pointed_thing) + return mcl_farming:place_seed(item_stack, placer, pointed_thing, full_base_name .. "_1") + end + + local on_place = nil + if seed == base_name then + on_place = plant_seed + elseif food_strength > 0 then + on_place = on_secondary_use + end + + + + minetest.register_craftitem(full_base_name, { + description = descriptions.base, + groups = { + craftitem = 1, + food = 1, + eatable = food_strength, + }, + _mcl_saturation = food_strength, + inventory_image = own_mod_name .. "_" .. base_name .. ".png", + on_place = on_place, + on_secondary_use = on_secondary_use + }) + + if seed ~= base_name then + minetest.register_craftitem(full_seed, { + description = descriptions.seed, + groups = { + craftitem = 1, + }, + inventory_image = modname .. "_" .. seed .. ".png", + on_place = plant_seed, + }) + end +end diff --git a/mcl_vegan_utils/farming.lua b/mcl_vegan_utils/farming_node.lua similarity index 94% rename from mcl_vegan_utils/farming.lua rename to mcl_vegan_utils/farming_node.lua index dd938f6..0a5e1dc 100644 --- a/mcl_vegan_utils/farming.lua +++ b/mcl_vegan_utils/farming_node.lua @@ -1,5 +1,5 @@ -local registered_plants = {} -mcl_vegan.registered_plants = registered_plants +local registered_plant_nodes = {} +mcl_vegan.registered_plant_nodes = registered_plant_nodes local grasses = { "mcl_flowers:tallgrass", @@ -14,7 +14,7 @@ function mcl_vegan.register_basic_plant (own_mod_name, base_name, def) local full_base_name = own_mod_name .. ":" .. base_name - registered_plants[full_base_name] = def + registered_plant_nodes[full_base_name] = def local seed = own_mod_name .. ":" .. def.seed local descriptions = def.descriptions diff --git a/mcl_vegan_utils/init.lua b/mcl_vegan_utils/init.lua index aa1cc02..6d7c952 100644 --- a/mcl_vegan_utils/init.lua +++ b/mcl_vegan_utils/init.lua @@ -9,5 +9,6 @@ end rawset(_G, "include", include) include("debug") -include("farming") +include("farming_node") +include("farming_item") include("drops")