From 983aa747c565656a81fb65221df657bfd4b3ede5 Mon Sep 17 00:00:00 2001 From: sfence Date: Wed, 14 Apr 2021 16:20:20 +0200 Subject: [PATCH] Add support for craftguide mod recipe registration (#584) --- .luacheckrc | 25 +++++++------- technic/depends.txt | 15 --------- technic/machines/register/recipes.lua | 47 +++++++++++++++++++++++---- technic/mod.conf | 2 +- 4 files changed, 55 insertions(+), 34 deletions(-) delete mode 100644 technic/depends.txt diff --git a/.luacheckrc b/.luacheckrc index 839ac0f0..f78d0a05 100644 --- a/.luacheckrc +++ b/.luacheckrc @@ -6,31 +6,32 @@ exclude_files = { } globals = { - "technic", "technic_cnc", "minetest", "wrench" + "technic", "technic_cnc", "minetest", "wrench" } read_globals = { -- Lua - string = {fields = {"split", "trim"}}, - table = {fields = {"copy", "getn"}}, - + string = {fields = {"split", "trim"}}, + table = {fields = {"copy", "getn"}}, + -- Minetest - "PseudoRandom", "ItemStack", + "PseudoRandom", "ItemStack", "VoxelArea", "VoxelManip", "Settings", "vector", - + -- Mods - "default", "stairsplus", + "default", "stairsplus", "screwdriver", "bucket", "digilines", "pipeworks", "mesecon", "moretrees", - "unified_inventory", "protector", - "unifieddyes", "digiline_remote", - "monitoring", "drawers", "mg", - + "unified_inventory", "protector", + "unifieddyes", "digiline_remote", + "monitoring", "drawers", "mg", + "craftguide", "i3", + -- Only used in technic/machines/MV/lighting.lua (disabled) "isprotect", "homedecor_expect_infinite_stacks", - + -- TODO: Remove after translation update "intllib" } diff --git a/technic/depends.txt b/technic/depends.txt deleted file mode 100644 index c6059808..00000000 --- a/technic/depends.txt +++ /dev/null @@ -1,15 +0,0 @@ -default -pipeworks -technic_worldgen -basic_materials -bucket? -screwdriver? -mesecons? -mesecons_mvps? -digilines? -digiline_remote? -digistuff? -intllib? -unified_inventory? -vector_extras? -dye? diff --git a/technic/machines/register/recipes.lua b/technic/machines/register/recipes.lua index 3afe765f..fd8f4e0e 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 @@ function technic.register_recipe_type(typename, origdata) 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 @@ -59,6 +73,27 @@ local function register_recipe(typename, data) 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) diff --git a/technic/mod.conf b/technic/mod.conf index 986b2e74..337fac24 100644 --- a/technic/mod.conf +++ b/technic/mod.conf @@ -1,3 +1,3 @@ name = technic depends = default, pipeworks, technic_worldgen, basic_materials -optional_depends = bucket, screwdriver, mesecons, mesecons_mvps, digilines, digiline_remote, intllib, unified_inventory, vector_extras, dye, monitoring +optional_depends = bucket, screwdriver, mesecons, mesecons_mvps, digilines, digiline_remote, intllib, unified_inventory, vector_extras, dye, monitoring, craftguide,i3