sfence
2021-04-14 1c219487d3f4dd03c01ff9aa1f298c7c18c7e189
Add support for craftguide mod recipe registration (#584)

3 files modified
1 files deleted
55 ■■■■ changed files
.luacheckrc 2 ●●●●● patch | view | raw | blame | history
technic/depends.txt 14 ●●●●● patch | view | raw | blame | history
technic/machines/register/recipes.lua 37 ●●●●● patch | view | raw | blame | history
technic/mod.conf 2 ●●● patch | view | raw | blame | history
.luacheckrc
@@ -28,6 +28,8 @@
    "protector", "isprotect",
    "homedecor_expect_infinite_stacks",
    "craftguide", "i3"
}
files["concrete/init.lua"].ignore = { "steel_ingot" }
technic/depends.txt
File was deleted
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
    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 @@
            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)
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
optional_depends = bucket, screwdriver, mesecons, mesecons_mvps, digilines, digiline_remote, intllib, unified_inventory, vector_extras, dye, craftguide,i3