163 lines
5.2 KiB
Lua
163 lines
5.2 KiB
Lua
local function add_terumet_recipes()
|
|
-- add each defined alloy recipe to UnInv
|
|
for _, recipe in pairs(terumet.options.smelter.recipes) do
|
|
local listed = {}
|
|
for i=1,#recipe.input do listed[#listed+1] = recipe.input[i] end
|
|
if recipe.flux > 0 then
|
|
listed[#listed+1] = terumet.id('uninv_flux_req', recipe.flux)
|
|
end
|
|
listed[#listed+1] = terumet.id('uninv_time_req', math.ceil(recipe.time))
|
|
unified_inventory.register_craft{
|
|
type = 'terumet_alloy',
|
|
output = recipe.result,
|
|
items = listed
|
|
}
|
|
end
|
|
|
|
-- add each defined vacuum oven recipe (1 entry for each output)
|
|
for _, recipe in ipairs(terumet.options.vac_oven.recipes) do
|
|
local time = terumet.id('uninv_time_req', math.ceil(recipe.time))
|
|
for _, output in ipairs(recipe.results) do
|
|
unified_inventory.register_craft{
|
|
type = 'terumet_vacoven',
|
|
output = output,
|
|
items = {recipe.input, time}
|
|
}
|
|
end
|
|
end
|
|
|
|
-- add each defined flux source to UnInv
|
|
for source, details in pairs(terumet.options.smelter.FLUX_ITEMS) do
|
|
unified_inventory.register_craft{
|
|
type = 'terumet_alloy',
|
|
output = terumet.id('uninv_flux_req'),
|
|
items = {source, terumet.id('uninv_time_req', math.ceil(details.time))}
|
|
}
|
|
end
|
|
|
|
-- add each crusher recipe to UnInv
|
|
for source, result in pairs(terumet.options.crusher.recipes) do
|
|
unified_inventory.register_craft{
|
|
type = 'terumet_crush',
|
|
output = result,
|
|
items = {source}
|
|
}
|
|
end
|
|
|
|
-- add each repair material to UnInv
|
|
for id, repmatval in pairs(terumet.options.repm.repair_mats) do
|
|
unified_inventory.register_craft{
|
|
type = 'terumet_repmat',
|
|
output = terumet.id('uninv_repmat', repmatval),
|
|
items = {id}
|
|
}
|
|
end
|
|
|
|
-- add each repairable tool to UnInv
|
|
for id, rmreq in pairs(terumet.options.repm.repairable) do
|
|
unified_inventory.register_craft{
|
|
type = 'terumet_repair',
|
|
output = id,
|
|
items = {id, terumet.id('uninv_repmat', rmreq)}
|
|
}
|
|
end
|
|
|
|
-- add each crystal vulcanizer recipe to UnInv
|
|
for source, result in pairs(terumet.options.vulcan.recipes) do
|
|
--minetest.log(string.format('%s => %s x %s', source or 'NIL', result[1] or 'NIL', result[2] or 'NIL'))
|
|
unified_inventory.register_craft{
|
|
type = 'terumet_vulcan',
|
|
output = result[1] .. ' ' .. result[2],
|
|
items = {source}
|
|
}
|
|
end
|
|
|
|
-- add each valid ore for ore saw to UnInv
|
|
for node, _ in pairs(terumet.options.ore_saw.VALID_ORES) do
|
|
unified_inventory.register_craft{
|
|
type = 'terumet_ore_saw',
|
|
output = node,
|
|
items = {node}
|
|
}
|
|
end
|
|
end
|
|
|
|
-- dummy item to display amount of flux needed to alloy
|
|
minetest.register_craftitem( terumet.id('uninv_flux_req'), {
|
|
description = "terumetal flux (in smelter tank)",
|
|
inventory_image = terumet.tex('uninv_flux_req'),
|
|
groups={not_in_creative_inventory=1}
|
|
})
|
|
|
|
-- dummy item to display amount of time needed to alloy
|
|
minetest.register_craftitem( terumet.id('uninv_time_req'), {
|
|
description = "time (seconds)",
|
|
inventory_image = terumet.tex('uninv_time_req'),
|
|
groups={not_in_creative_inventory=1}
|
|
})
|
|
|
|
-- dummy item to display amount of repair material
|
|
minetest.register_craftitem( terumet.id('uninv_repmat'), {
|
|
description = "repair material value",
|
|
inventory_image = terumet.tex('uninv_repmat'),
|
|
groups={not_in_creative_inventory=1}
|
|
})
|
|
|
|
-- register terumetal alloying with UnInv
|
|
unified_inventory.register_craft_type( 'terumet_alloy', {
|
|
description = 'Terumetal Alloy Smelting',
|
|
icon = 'terumet_asmelt_front_lit.png',
|
|
width=3,
|
|
height=2,
|
|
})
|
|
|
|
-- register crushing with UnInv
|
|
unified_inventory.register_craft_type( 'terumet_crush', {
|
|
description = 'Expansion Crusher',
|
|
icon = 'terumet_crush_front_lit.png',
|
|
width=1,
|
|
height=1,
|
|
})
|
|
|
|
-- register repair materials with UnInv
|
|
unified_inventory.register_craft_type( 'terumet_repmat', {
|
|
description = 'Equipment Reformer\n(material)',
|
|
icon = 'terumet_repm_front.png',
|
|
width=1,
|
|
height=1,
|
|
})
|
|
|
|
-- register tool repair with UnInv
|
|
unified_inventory.register_craft_type( 'terumet_repair', {
|
|
description = 'Equipment Reformer\n(for 100% wear)',
|
|
icon = 'terumet_repm_front.png',
|
|
width=2,
|
|
height=1,
|
|
})
|
|
|
|
-- register crystal vulcanizing with UnInv
|
|
unified_inventory.register_craft_type( 'terumet_vulcan', {
|
|
description = 'Crystal Vulcanizer',
|
|
icon = 'terumet_vulcan_front.png',
|
|
width=1,
|
|
height=1,
|
|
})
|
|
|
|
-- register ore saw gathering
|
|
unified_inventory.register_craft_type( 'terumet_ore_saw', {
|
|
description = 'Ore-cutting Saw',
|
|
icon = 'terumet_tool_ore_saw.png^[transformFX',
|
|
width=1,
|
|
height=1,
|
|
})
|
|
|
|
-- register vacuum oven with UnInv
|
|
unified_inventory.register_craft_type( 'terumet_vacoven', {
|
|
description = 'Vacuum Oven',
|
|
icon = 'terumet_vacoven_front.png',
|
|
width=3,
|
|
height=2,
|
|
})
|
|
|
|
-- call after all mods are loaded to catch new submod recipes/changes
|
|
minetest.after(0.01, function() add_terumet_recipes() end) |