mods that hopefully work for a TechAge-based pack
This commit is contained in:
@@ -0,0 +1,88 @@
|
||||
-- recipes integration
|
||||
if (yl_canned_food_mtg.settings.enable_recipes ~= true) then return false end
|
||||
|
||||
local amount = 0
|
||||
|
||||
local function group_has_member(group)
|
||||
for itemname, _ in pairs(minetest.registered_items) do
|
||||
if minetest.get_item_group(itemname, group) ~= 0 then return true end
|
||||
end
|
||||
return false
|
||||
end
|
||||
|
||||
local itemcache = {}
|
||||
|
||||
local vessel = "vessels:glass_bottle"
|
||||
|
||||
itemcache[vessel] = true
|
||||
|
||||
for _, recipe in ipairs(yl_canned_food_mtg.data) do
|
||||
itemcache[recipe.out] = true
|
||||
|
||||
local ingredient = recipe.base_mod .. ":" .. recipe.base_item
|
||||
itemcache[ingredient] = true
|
||||
|
||||
for _, additive in ipairs(recipe.additives) do itemcache[additive] = true end
|
||||
end
|
||||
|
||||
local item_good = {}
|
||||
|
||||
for item, _ in pairs(itemcache) do
|
||||
local groupname = item:match("^group:(.*)")
|
||||
if (groupname == nil) then
|
||||
item_good[item] = (minetest.registered_items[item] ~= nil)
|
||||
else
|
||||
item_good[item] = group_has_member(groupname)
|
||||
end
|
||||
end
|
||||
|
||||
for _, recipe in ipairs(yl_canned_food_mtg.data) do
|
||||
|
||||
local crafting = {}
|
||||
local success = true
|
||||
|
||||
-- vessel
|
||||
table.insert(crafting, vessel)
|
||||
if (item_good[vessel] ~= false) then
|
||||
success = success and true
|
||||
else
|
||||
success = false
|
||||
end
|
||||
|
||||
-- additive
|
||||
for _, additive in ipairs(recipe.additives) do
|
||||
table.insert(crafting, additive)
|
||||
if (item_good[additive] ~= false) then
|
||||
success = success and true
|
||||
else
|
||||
success = false
|
||||
end
|
||||
end
|
||||
-- ingredient
|
||||
local ingredient = recipe.base_mod .. ":" .. recipe.base_item
|
||||
|
||||
for i = recipe.base_amount, 1, -1 do
|
||||
table.insert(crafting, ingredient)
|
||||
if (item_good[ingredient] ~= false) then
|
||||
success = success and true
|
||||
else
|
||||
success = false
|
||||
end
|
||||
end
|
||||
|
||||
if (success == true) then
|
||||
-- register the craft
|
||||
minetest.register_craft({
|
||||
output = recipe.out,
|
||||
type = "shapeless",
|
||||
recipe = crafting
|
||||
})
|
||||
|
||||
amount = amount + 1
|
||||
else
|
||||
minetest.log("warning",
|
||||
yl_canned_food_mtg.t("recipe_not_good", recipe.out))
|
||||
end
|
||||
end
|
||||
|
||||
yl_canned_food_mtg.log("recipes integration: " .. dump(amount))
|
||||
Reference in New Issue
Block a user