mcl_vegan/mcl_soy/item.lua

82 lines
2.0 KiB
Lua

local modname = minetest.get_current_modname()
minetest.register_craftitem(modname .. ":soy", {
description = "Soy Beans",
groups = {
craftitem = 1,
food = 1,
eatable = 1,
},
_mcl_saturation = 0.0,
inventory_image = modname .. "_soy.png",
on_place = function (item_stack, placer, pointed_thing)
return mcl_farming:place_seed(item_stack, placer, pointed_thing, modname .. ":soy_1")
end,
on_secondary_use = minetest.item_eat(1),
})
minetest.register_craftitem(modname .. ":tofu_raw", {
description = "Raw Tofu",
inventory_image = modname .. "_tofu_raw.png",
groups = {
craftitem = 1,
food = 1,
eatable = 3,
},
_mcl_saturation = 1.0,
on_place = minetest.item_eat(3),
on_secondary_use = minetest.item_eat(3),
})
minetest.register_craftitem(modname .. ":tofu_cooked", {
description = "Cooked Tofu",
inventory_image = modname .. "_tofu_cooked.png",
groups = {
food = 2,
eatable = 6,
},
_mcl_saturation = 4.0,
on_place = minetest.item_eat(6),
on_secondary_use = minetest.item_eat(6),
})
-- TODO: extract this into general utility mod.
local function get_drop (target_name)
local def = minetest.registered_items[target_name]
if not def then return false end
def.drop = def.drop or {}
return def.drop
end
local function stringify_table (tab)
local result = "{ "
for key, value in pairs(tab) do
if type(key) == "table" then key = stringify_table(key) end
if type(value) == "table" then value = stringify_table(value) end
result = result .. key .. " = " .. value .. ", "
end
return result .. "}"
end
-- TODO: extract this into general utility mod.
local function add_drop (target_name, item)
local drops = get_drop(target_name)
if not drops then return false end
table.insert(drops.items, item)
return true
end
local grasses = {
"mcl_flowers:tallgrass",
"mcl_flowers:fern",
"mcl_flowers:double_grass",
"mcl_flowers:double_fern",
}
for _, grass in pairs(grasses) do
add_drop(grass, {
items = { modname .. ":soy" },
rarity = 8,
})
end