From 1a45ad19d4fa627e147bd385665e37942f6147fb Mon Sep 17 00:00:00 2001 From: Serhiy Zahoriya <serhiy.int@gmail.com> Date: Sat, 11 Jan 2020 22:06:24 +0100 Subject: [PATCH] Alloy furnace: Accept only unique ItemStacks from tubes (#523) --- technic/machines/register/recipes.lua | 18 ++++++++++++++---- 1 files changed, 14 insertions(+), 4 deletions(-) diff --git a/technic/machines/register/recipes.lua b/technic/machines/register/recipes.lua index 28a0275..f9e2458 100644 --- a/technic/machines/register/recipes.lua +++ b/technic/machines/register/recipes.lua @@ -1,3 +1,4 @@ +local have_ui = minetest.get_modpath("unified_inventory") technic.recipes = { cooking = { input_size = 1, output_size = 1 } } function technic.register_recipe_type(typename, origdata) @@ -5,11 +6,11 @@ for k, v in pairs(origdata) do data[k] = v end data.input_size = data.input_size or 1 data.output_size = data.output_size or 1 - if unified_inventory and unified_inventory.register_craft_type and data.output_size == 1 then + if have_ui and unified_inventory.register_craft_type and data.output_size == 1 then unified_inventory.register_craft_type(typename, { description = data.description, - height = data.input_size, - width = 1, + width = data.input_size, + height = 1, }) end data.recipes = {} @@ -17,6 +18,7 @@ end local function get_recipe_index(items) + if not items or type(items) ~= "table" then return false end local l = {} for i, stack in ipairs(items) do l[i] = ItemStack(stack):get_name() @@ -40,12 +42,16 @@ local recipe = {time = data.time, input = {}, output = data.output} local index = get_recipe_index(data.input) + if not index then + print("[Technic] ignored registration of garbage recipe!") + return + end for _, stack in ipairs(data.input) do recipe.input[ItemStack(stack):get_name()] = ItemStack(stack):get_count() end technic.recipes[typename].recipes[index] = recipe - if unified_inventory and technic.recipes[typename].output_size == 1 then + if have_ui and technic.recipes[typename].output_size == 1 then unified_inventory.register_craft({ type = typename, output = data.output, @@ -75,6 +81,10 @@ end end local index = get_recipe_index(items) + if not index then + print("[Technic] ignored registration of garbage recipe!") + return + end local recipe = technic.recipes[typename].recipes[index] if recipe then local new_input = {} -- Gitblit v1.8.0