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)