From 4775d98fb7e12f7210cf778351767828e551011d Mon Sep 17 00:00:00 2001 From: SmallJoker <mk939@ymail.com> Date: Thu, 20 Oct 2022 20:08:56 +0200 Subject: [PATCH] Unify and simplify LED/Lamp node definition --- technic/machines/register/recipes.lua | 51 +++++++++++++++++++++++++++++++++++++++++++-------- 1 files changed, 43 insertions(+), 8 deletions(-) diff --git a/technic/machines/register/recipes.lua b/technic/machines/register/recipes.lua index f9e2458..ba4a5e1 100644 --- a/technic/machines/register/recipes.lua +++ b/technic/machines/register/recipes.lua @@ -1,4 +1,6 @@ local have_ui = minetest.get_modpath("unified_inventory") +local have_cg = minetest.get_modpath("craftguide") +local have_i3 = minetest.get_modpath("i3") technic.recipes = { cooking = { input_size = 1, output_size = 1 } } function technic.register_recipe_type(typename, origdata) @@ -6,12 +8,24 @@ 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 have_ui and unified_inventory.register_craft_type and data.output_size == 1 then - unified_inventory.register_craft_type(typename, { - description = data.description, - width = data.input_size, - height = 1, - }) + if data.output_size == 1 then + if have_ui and unified_inventory.register_craft_type then + unified_inventory.register_craft_type(typename, { + description = data.description, + width = data.input_size, + height = 1, + }) + end + if have_cg and craftguide.register_craft_type then + craftguide.register_craft_type(typename, { + description = data.description, + }) + end + if have_i3 then + i3.register_craft_type(typename, { + description = data.description, + }) + end end data.recipes = {} technic.recipes[typename] = data @@ -39,7 +53,7 @@ else data.output = ItemStack(data.output):to_string() end - + local recipe = {time = data.time, input = {}, output = data.output} local index = get_recipe_index(data.input) if not index then @@ -49,7 +63,7 @@ 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 have_ui and technic.recipes[typename].output_size == 1 then unified_inventory.register_craft({ @@ -59,6 +73,27 @@ width = 0, }) end + if (have_cg or have_i3) and technic.recipes[typename].output_size == 1 then + local result = data.output + if (type(result)=="table") then + result = result[1] + end + local items = table.concat(data.input, ", ") + if have_cg and craftguide.register_craft then + craftguide.register_craft({ + type = typename, + result = result, + items = {items}, + }) + end + if have_i3 then + i3.register_craft({ + type = typename, + result = result, + items = {items}, + }) + end + end end function technic.register_recipe(typename, data) -- Gitblit v1.8.0