Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add support for craftguide mod recipe registration (#584) #174

Merged
merged 1 commit into from
Apr 15, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 13 additions & 12 deletions .luacheckrc
Original file line number Diff line number Diff line change
Expand Up @@ -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"
}
15 changes: 0 additions & 15 deletions technic/depends.txt

This file was deleted.

47 changes: 41 additions & 6 deletions technic/machines/register/recipes.lua
Original file line number Diff line number Diff line change
@@ -1,17 +1,31 @@
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)
local data = {}
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
Expand Down Expand Up @@ -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)
Expand Down
2 changes: 1 addition & 1 deletion technic/mod.conf
Original file line number Diff line number Diff line change
@@ -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