
-- see elepower_papi >> external_nodes_items.lua for explanation
-- shorten table ref
local epi = ele.external.ing

--*****************--
-- MACHINE RECIPES --
--*****************--

--------------
-- Alloying --
--------------

local alloy_recipes = {
	{
		recipe = { "elepower_dynamics:iron_ingot", "elepower_dynamics:coal_dust 4" },
		output = epi.steel_ingot,
	},
	{
		recipe = { epi.copper_ingot.." 2", epi.tin_ingot },
		output = epi.bronze_ingot.." 3",
	},
	{
		recipe = { "elepower_dynamics:iron_ingot 3", "elepower_dynamics:nickel_ingot" },
		output = "elepower_dynamics:invar_ingot 4",
	},
	{
		recipe = { epi.gold_ingot.." 2", "elepower_dynamics:invar_ingot" },
		output = "elepower_dynamics:electrum_ingot 3",
	},
	{
		recipe = { "basic_materials:silicon", "elepower_dynamics:coal_dust 2" },
		output = "elepower_dynamics:silicon_wafer",
	},
	{
		recipe = { epi.coal_lump, "elepower_dynamics:coal_dust 4" },
		output = "elepower_dynamics:graphite_ingot",
	},
	{
		recipe = { "elepower_dynamics:silicon_wafer", "elepower_dynamics:gold_dust 4" },
		output = "elepower_dynamics:silicon_wafer_doped",
		time   = 8,
	},
	{
		recipe = { epi.obsidian_glass, "elepower_dynamics:lead_ingot 4" },
		output = "elepower_dynamics:hardened_glass 4",
		time   = 8,
	},
	{
		recipe = { epi.copper_ingot.." 2", epi.silver_ingot },
		output = "basic_materials:brass_ingot 3",
		time   = 8,
	},
	{
		recipe = { epi.bronze_ingot, epi.steel_ingot.." 4" },
		output = "elepower_machines:heat_casing 4",
	},
}

-- Register alloy furnace recipes
for _,i in pairs(alloy_recipes) do
	elepm.register_craft({
		type   = "alloy",
		recipe = i.recipe,
		output = i.output,
		time   = i.time or 4
	})
end

--------------
-- Grinding --
--------------

local keywords  = { _ingot = 1, _lump = 2, _block = 9, block = 9 }
local ingot_map = {}
local block_map = {}
for mat, data in pairs(elepd.registered_dusts) do
	local kwfound = nil
	for keyword,count in pairs(keywords) do
		local found = ele.helpers.scan_item_list(mat .. keyword)
		if found then
			if keyword == "_ingot" and not kwfound then
				kwfound = found
			elseif keyword == "_block" or keyword == "block" and not block_map[mat] then
				block_map[mat] = found
			end

			-- Grind recipe for material
			elepm.register_craft({
				type   = "grind",
				recipe = { found },
				output = data.item .. " " .. count,
				time   = count + 4,
			})
		end
	end

	-- Add dust -> ingot smelting
	if kwfound then
		ingot_map[mat] = kwfound
		minetest.register_craft({
			type   = "cooking",
			recipe = data.item,
			output = kwfound
		})
	end
end

-- Other recipes

local grinding_recipes = {
	{
		recipe = { epi.wheat },
		output = epi.flour.." 2",
		time   = 4,
	},
	{
		recipe = { epi.desert_sand.." 4" },
		output = "basic_materials:silicon",
	},
	{
		recipe = { epi.sand.." 4" },
		output = "basic_materials:silicon",
	},
	{
		recipe = { epi.cobble },
		output = epi.gravel.." 4",
	},
	{
		recipe = { epi.gravel },
		output = epi.sand.." 4",
	},
	{
		recipe = { epi.mese },
		output = epi.mese_crystal.." 9",
	},
	{
		recipe = { epi.mese_crystal },
		output = epi.mese_crystal_fragment.." 9",
	},
	{
		recipe = { epi.mese_crystal_fragment },
		output = "elepower_dynamics:mese_dust",
	},
	{
		recipe = { "elepower_dynamics:graphite_ingot" },
		output = "elepower_dynamics:graphite_rod 3",
	}
}

-- Register grind recipes
for _,i in pairs(grinding_recipes) do
	elepm.register_craft({
		type   = "grind",
		recipe = i.recipe,
		output = i.output,
		time   = i.time or 8,
	})
end

-----------------
-- Compressing --
-----------------

for mat, ingot in pairs(ingot_map) do
	local plate = elepd.registered_plates[mat]
	local dust  = elepd.registered_dusts[mat]

	if plate then
		elepm.register_craft({
			type   = "compress",
			recipe = {ingot,ingot},
			output = plate.item.." 2",
			time   = 4,
		})

		if dust then
			elepm.register_craft({
				type   = "grind",
				recipe = { plate.item },
				output = dust.item,
				time   = 6,
			})
		end
	end
end

-- Detect sands
for name in pairs(minetest.registered_nodes) do
	if name:match("sand") and not name:match("sandstone") then
		local sand      = name
		local sandstone = name .. "stone"
		if minetest.registered_nodes[sandstone] then
			elepm.register_craft({
				type   = "compress",
				recipe = { sand .. " 2",sand .. " 2"},
				output = sandstone,
				time   = 1,
			})

			-- Also give a grinding recipe to get the sand back
			elepm.register_craft({
				type   = "grind",
				recipe = { sandstone },
				output = sand .. " 4",
				time   = 5,
			})

			-- Find block as well
			local ssblock = sandstone .. "_block"
			if minetest.registered_nodes[ssblock] then
				elepm.register_craft({
					type   = "compress",
					recipe = { sandstone .. " 2",sandstone .. " 2" },
					output = ssblock,
					time   = 1,
				})
			end
		end
	end
end

local compressor_recipes = {
	{
		recipe = { "elepower_dynamics:viridisium_block 4", "elepower_dynamics:viridisium_block 4" },
		output = "elepower_dynamics:xycrone_lump",
		time   = 20,
	},
	{
		recipe = { epi.mese_crystal_fragment.." 4", epi.mese_crystal_fragment.." 4" },
		output = epi.mese_crystal,
		time   = 2,
	},
	{
		recipe = { epi.mese_crystal.." 4",epi.mese_crystal.." 4" },
		output = epi.mese,
		time   = 2,
	},
	{
		recipe = { "elepower_dynamics:coal_dust 2","elepower_dynamics:coal_dust 2"  },
		output = "elepower_dynamics:carbon_fiber",
		time   = 2,
	},
	{
		recipe = { "elepower_dynamics:carbon_fiber 2","elepower_dynamics:carbon_fiber 2" },
		output = "elepower_dynamics:carbon_sheet",
		time   = 2,
	}
}


-- Register compressor recipes
for _,i in pairs(compressor_recipes) do
	elepm.register_craft({
		type   = "compress",
		recipe = i.recipe,
		output = i.output,
		time   = i.time or 1
	})
end

-------------
-- Sawmill --
-------------

-- Register all logs as sawable, if we can find a planks version
minetest.after(0.2, function ()
	local wood_nodes = {}
	for name in pairs(minetest.registered_nodes) do
		if ele.helpers.get_item_group(name, "wood") then
			wood_nodes[#wood_nodes + 1] = name
		end
	end

	-- Begin making associations
	-- Get crafting recipe for all woods
	local assoc = {}
	for _,wood in ipairs(wood_nodes) do
		local recipes = minetest.get_all_craft_recipes(wood)
		if recipes then
			for _, recipe in ipairs(recipes) do
				if recipe.items and #recipe.items == 1 then
					assoc[recipe.items[1]] = wood
				end
			end
		end
	end

	-- Register sawmill craft
	for tree, wood in pairs(assoc) do
		elepm.register_craft({
			type   = "saw",
			recipe = { tree },
			output = {wood .. " 6", "elepower_dynamics:wood_dust"},
			time   = 8,
		})
	end
end)

---------------
-- Soldering --
---------------

local soldering_recipes = {
	{
		recipe = { "elepower_dynamics:silicon_wafer_doped", "elepower_dynamics:chip 4", "elepower_dynamics:lead_ingot 2" },
		output = "elepower_dynamics:microcontroller",
		time   = 8,
	},
	{
		recipe = { epi.copper_ingot.." 4", "elepower_dynamics:microcontroller 4", "elepower_dynamics:electrum_ingot 2" },
		output = "elepower_dynamics:soc",
		time   = 28,
	},
	{
		recipe = { "elepower_dynamics:microcontroller", "elepower_dynamics:control_circuit", "elepower_dynamics:capacitor 5" },
		output = "elepower_dynamics:micro_circuit",
		time   = 18,
	},
	{
		recipe = { "elepower_dynamics:chip 8", "elepower_dynamics:integrated_circuit 2", "elepower_dynamics:capacitor 4" },
		output = "elepower_dynamics:control_circuit",
		time   = 20,
	},
	{
		recipe = { "elepower_dynamics:wound_copper_coil 4", "elepower_dynamics:wound_silver_coil 2", "basic_materials:copper_wire" },
		output = "elepower_dynamics:induction_coil",
		time   = 16,
	},
	{
		recipe = { "elepower_dynamics:induction_coil 4", "basic_materials:copper_wire", "elepower_dynamics:zinc_dust 2" },
		output = "elepower_dynamics:induction_coil_advanced",
		time   = 18,
	},
	{
		recipe = { "elepower_machines:power_cell_0", "elepower_machines:hardened_capacitor 2", "elepower_dynamics:invar_plate 8" },
		output = "elepower_machines:hardened_power_cell_0",
		time   = 18,
	},
	{
		recipe = { "elepower_machines:hardened_power_cell_0", "elepower_machines:reinforced_capacitor 2", "elepower_dynamics:electrum_plate 8" },
		output = "elepower_machines:reinforced_power_cell_0",
		time   = 20,
	},
	{
		recipe = { "elepower_machines:reinforced_power_cell_0", "elepower_machines:resonant_capacitor 2", "elepower_dynamics:viridisium_plate 8" },
		output = "elepower_machines:resonant_power_cell_0",
		time   = 22,
	},
	{
		recipe = { "elepower_machines:resonant_power_cell_0", "elepower_machines:super_capacitor 2", "elepower_dynamics:xycrone_lump" },
		output = "elepower_machines:super_power_cell_0",
		time   = 24,
	},
	{
		recipe = { "elepower_dynamics:integrated_circuit", "elepower_dynamics:induction_coil 2", "elepower_dynamics:soc" },
		output = "elepower_machines:upgrade_speed",
		time   = 16,
	},
	{
		recipe = { "elepower_dynamics:integrated_circuit", "elepower_machines:hardened_capacitor 2", "elepower_dynamics:soc" },
		output = "elepower_machines:upgrade_efficiency",
		time   = 16,
	},
	{
		recipe = { "elepower_machines:upgrade_efficiency", "elepower_machines:resonant_capacitor 2", "elepower_dynamics:soc" },
		output = "elepower_machines:upgrade_efficiency_2",
		time   = 16,
	}
}

-- Register solderer recipes
for _,i in pairs(soldering_recipes) do
	elepm.register_craft({
		type   = "solder",
		recipe = i.recipe,
		output = i.output,
		time   = i.time or 4
	})
end

-------------
-- Canning --
-------------

--******************--
-- CRAFTING RECIPES --
--******************--

-- Capacitors
minetest.register_craft({
	output = "elepower_machines:hardened_capacitor",
	recipe = {
		{"basic_materials:plastic_sheet", "basic_materials:plastic_sheet", "basic_materials:plastic_sheet"},
		{"elepower_dynamics:invar_plate", epi.mese_crystal               , "elepower_dynamics:invar_plate"},
		{"elepower_dynamics:invar_plate", "elepower_dynamics:capacitor"  , "elepower_dynamics:invar_plate"},
	}
})

minetest.register_craft({
	output = "elepower_machines:reinforced_capacitor",
	recipe = {
		{"elepower_dynamics:invar_plate", "elepower_dynamics:invar_plate", "elepower_dynamics:invar_plate"},
		{"elepower_dynamics:electrum_plate", epi.mese_crystal            , "elepower_dynamics:electrum_plate"},
		{"elepower_dynamics:electrum_plate", "elepower_machines:hardened_capacitor", "elepower_dynamics:electrum_plate"},
	}
})

minetest.register_craft({
	output = "elepower_machines:resonant_capacitor",
	recipe = {
		{"elepower_dynamics:electrum_plate", "elepower_dynamics:electrum_plate", "elepower_dynamics:electrum_plate"},
		{"elepower_dynamics:viridisium_plate", epi.mese_crystal                , "elepower_dynamics:viridisium_plate"},
		{"elepower_dynamics:viridisium_plate", "elepower_machines:reinforced_capacitor", "elepower_dynamics:viridisium_plate"},
	}
})

minetest.register_craft({
	output = "elepower_machines:super_capacitor",
	recipe = {
		{"elepower_dynamics:viridisium_plate", "elepower_dynamics:viridisium_plate", "elepower_dynamics:viridisium_plate"},
		{"elepower_dynamics:viridisium_plate", "elepower_dynamics:xycrone_lump", "elepower_dynamics:viridisium_plate"},
		{"elepower_dynamics:xycrone_lump", "elepower_machines:resonant_capacitor", "elepower_dynamics:xycrone_lump"},
	}
})

minetest.register_craft({
	output = "elepower_machines:heavy_filter",
	recipe = {
		{"elepower_dynamics:steel_plate", "fluid_transfer:fluid_duct", "elepower_dynamics:steel_plate"},
		{"basic_materials:silicon", "elepower_dynamics:servo_valve", "basic_materials:silicon"},
		{"elepower_dynamics:carbon_sheet", "fluid_transfer:fluid_duct", "elepower_dynamics:carbon_sheet"}
	}
})

minetest.register_craft({
	output = "elepower_machines:opaque_duct_roll",
	recipe = {
		{"elepower_dynamics:opaque_duct", "elepower_dynamics:opaque_duct", "elepower_dynamics:opaque_duct"},
		{"elepower_dynamics:opaque_duct", "basic_materials:motor", "elepower_dynamics:opaque_duct"},
		{"elepower_dynamics:opaque_duct", "elepower_dynamics:opaque_duct", "elepower_dynamics:opaque_duct"},
	}
})

minetest.register_craft({
	output = "elepower_machines:wind_turbine_blade",
	recipe = {
		{""             , epi.group_wood , epi.group_wood},
		{epi.group_stick, epi.group_wood , epi.group_wood},
		{epi.group_stick, epi.group_stick, ""},
	}
})

minetest.register_craft({
	output = "elepower_machines:wind_turbine_blades",
	recipe = {
		{"elepower_machines:wind_turbine_blade", "elepower_machines:wind_turbine_blade", "elepower_machines:wind_turbine_blade"},
		{"elepower_machines:wind_turbine_blade",             epi.group_wood            , "elepower_machines:wind_turbine_blade"},
		{"elepower_machines:wind_turbine_blade", "elepower_machines:wind_turbine_blade", "elepower_machines:wind_turbine_blade"},
	}
})

-- Nodes

-- Coal-fired Alloy Furnace
minetest.register_craft({
	output = "elepower_machines:coal_alloy_furnace",
	recipe = {
		{epi.brick, epi.brick    , epi.brick},
		{epi.brick, epi.coal_lump, epi.brick},
		{epi.brick, epi.brick    , epi.brick},
	}
})

-- Grindstone
minetest.register_craft({
	output = "elepower_machines:grindstone",
	recipe = {
		{epi.group_stone, epi.group_stone, epi.group_stone},
		{epi.flint      , epi.flint      , epi.flint      },
		{epi.cobble     , epi.cobble     , epi.cobble     }
	}
})

minetest.register_craft({
	output = "elepower_machines:crank",
	recipe = {
		{epi.group_stick, epi.group_stick, epi.group_stick},
		{""             , ""             , epi.group_stick},
		{""             , ""             , epi.group_stick}
	}
})

-- Machine block
minetest.register_craft({
	output = "elepower_machines:machine_block",
	recipe = {
		{epi.steel_ingot, epi.glass                     , epi.steel_ingot},
		{epi.glass      , "elepower_dynamics:brass_gear", epi.glass      },
		{epi.steel_ingot, "basic_materials:motor"       , epi.steel_ingot}
	}
})

-- Generator
minetest.register_craft({
	output = "elepower_machines:generator",
	recipe = {
		{""                                   , epi.steel_ingot                  ,              ""                      },
		{epi.steel_ingot                      , "elepower_machines:machine_block", epi.steel_ingot                      },
		{"elepower_dynamics:wound_copper_coil", epi.coal_lump                    , "elepower_dynamics:wound_copper_coil"}
	}
})

-- Liquid Fuel Combustion Generator
minetest.register_craft({
	output = "elepower_machines:fuel_burner",
	recipe = {
		{"elepower_dynamics:wound_copper_coil", "elepower_dynamics:integrated_circuit", "elepower_dynamics:wound_copper_coil"},
		{epi.brick                            , "elepower_dynamics:portable_tank"     , epi.brick},
		{"elepower_dynamics:servo_valve"      , "elepower_machines:generator"         , "elepower_dynamics:servo_valve"},
	}
})

-- Alloy Furnace
minetest.register_craft({
	output = "elepower_machines:alloy_furnace",
	recipe = {
		{ ""                                  , "elepower_dynamics:integrated_circuit", ""                             },
		{"elepower_dynamics:wound_copper_coil","basic_materials:heating_element", "elepower_dynamics:wound_copper_coil"},
		{epi.brick                            , "elepower_machines:machine_block"     , epi.brick                      },
	}
})

-- Solderer
minetest.register_craft({
	output = "elepower_machines:solderer",
	recipe = {
		{""                            , "elepower_dynamics:integrated_circuit",   ""                       },
		{"elepower_dynamics:chip"      , "elepower_machines:machine_block"   , "elepower_dynamics:chip"     },
		{"elepower_dynamics:invar_gear","elepower_dynamics:wound_copper_coil","elepower_dynamics:invar_gear"}
	}
})

-- Furnace
minetest.register_craft({
	output = "elepower_machines:furnace",
	recipe = {
		{"", "elepower_dynamics:integrated_circuit", ""},
		{"elepower_dynamics:wound_copper_coil","basic_materials:heating_element", "elepower_dynamics:wound_copper_coil"},
		{epi.clay_brick, "elepower_machines:machine_block", epi.clay_brick},
	}
})

-- Pulverizer
minetest.register_craft({
	output = "elepower_machines:pulverizer",
	recipe = {
		{"", "elepower_dynamics:integrated_circuit", ""},
		{epi.flint, "elepower_machines:machine_block", epi.flint},
		{"elepower_dynamics:wound_copper_coil", "elepower_dynamics:lead_gear", "elepower_dynamics:wound_copper_coil"},
	}
})

-- Sawmill
minetest.register_craft({
	output = "elepower_machines:sawmill",
	recipe = {
		{"", "elepower_dynamics:integrated_circuit", ""},
		{"elepower_dynamics:steel_gear", "elepower_machines:machine_block", "elepower_dynamics:steel_gear"},
		{"elepower_dynamics:lead_ingot", "elepower_dynamics:diamond_gear", "elepower_dynamics:lead_ingot"},
	}
})

-- Power Cell
minetest.register_craft({
	output = "elepower_machines:power_cell_0",
	recipe = {
		{"elepower_dynamics:lead_ingot", "elepower_dynamics:control_circuit", "elepower_dynamics:lead_ingot"},
		{"elepower_dynamics:wound_copper_coil", "elepower_machines:machine_block", "elepower_dynamics:wound_copper_coil"},
		{"elepower_dynamics:lead_ingot", "elepower_dynamics:battery", "elepower_dynamics:lead_ingot"},
	}
})

-- Water Accumulator
minetest.register_craft({
	output = "elepower_machines:accumulator",
	recipe = {
		{"", "fluid_transfer:fluid_duct", ""},
		{epi.glass, "elepower_machines:machine_block", epi.glass},
		{"elepower_dynamics:steel_gear", "elepower_dynamics:servo_valve", "elepower_dynamics:steel_gear"},
	}
})

-- Lava Cooler
minetest.register_craft({
	output = "elepower_machines:lava_cooler",
	recipe = {
		{"bucket:bucket_water", "elepower_dynamics:control_circuit", "bucket:bucket_lava"},
		{"fluid_transfer:fluid_duct", "elepower_machines:machine_block", "fluid_transfer:fluid_duct"},
		{"elepower_dynamics:servo_valve", "elepower_dynamics:tin_gear", "elepower_dynamics:servo_valve"},
	},
	replacements = {
		{"bucket:bucket_water", "bucket:bucket_empty"},
		{"bucket:bucket_lava", "bucket:bucket_empty"},
	}
})

-- Lava Generator
minetest.register_craft({
	output = "elepower_machines:lava_generator",
	recipe = {
		{"elepower_dynamics:wound_silver_coil", "elepower_dynamics:control_circuit", "elepower_dynamics:wound_silver_coil"},
		{epi.brick, "elepower_machines:machine_block", epi.brick},
		{"elepower_dynamics:invar_gear", "elepower_dynamics:servo_valve", "elepower_dynamics:invar_gear"},
	},
})

-- Compressor Piston
minetest.register_craft({
	output = "elepower_machines:compressor_piston",
	recipe = {
		{"", epi.steel_ingot, ""},
		{"", epi.steel_ingot, ""},
		{epi.bronze_ingot, epi.bronze_ingot, epi.bronze_ingot},
	}
})

minetest.register_craft({
	output = "elepower_machines:compressor_piston",
	recipe = {
		{"", epi.steel_ingot, ""},
		{"", epi.steel_ingot, ""},
		{"", "elepower_dynamics:bronze_plate", ""},
	}
})

-- Compressor
minetest.register_craft({
	output = "elepower_machines:compressor",
	recipe = {
		{"elepower_dynamics:integrated_circuit", "elepower_machines:compressor_piston", "elepower_dynamics:wound_copper_coil"},
		{"elepower_dynamics:steel_gear", "elepower_machines:machine_block", "elepower_dynamics:steel_gear"},
		{epi.steel_ingot               , "elepower_machines:compressor_piston", epi.steel_ingot           }
	}
})

-- Turbine blades
minetest.register_craft({
	output = "elepower_machines:turbine_blades",
	recipe = {
		{"elepower_dynamics:steel_plate", "elepower_dynamics:steel_plate", "elepower_dynamics:steel_plate"},
		{"elepower_dynamics:steel_plate", epi.steel_ingot                , "elepower_dynamics:steel_plate"},
		{"elepower_dynamics:steel_plate", "elepower_dynamics:steel_plate", "elepower_dynamics:steel_plate"}
	}
})

-- Steam Turbine
minetest.register_craft({
	output = "elepower_machines:steam_turbine",
	recipe = {
		{"elepower_dynamics:induction_coil", "elepower_machines:turbine_blades", "elepower_dynamics:induction_coil"},
		{"elepower_dynamics:steel_plate", "elepower_machines:machine_block", "elepower_dynamics:steel_plate"},
		{"elepower_dynamics:invar_gear", "elepower_machines:turbine_blades", "elepower_dynamics:invar_gear"},
	}
})

-- Canning Machine
minetest.register_craft({
	output = "elepower_machines:canning_machine",
	recipe = {
		{"elepower_dynamics:wound_copper_coil", "elepower_machines:compressor_piston", "elepower_dynamics:wound_copper_coil"},
		{"elepower_dynamics:tin_can", "elepower_machines:machine_block", "elepower_dynamics:tin_can"},
		{"elepower_dynamics:steel_gear", "elepower_dynamics:tin_gear", "elepower_dynamics:steel_gear"},
	}
})

-- Bucketer
minetest.register_craft({
	output = "elepower_machines:bucketer",
	recipe = {
		{"", "elepower_dynamics:portable_tank", ""},
		{"elepower_dynamics:tin_can", "elepower_machines:machine_block", "elepower_dynamics:tin_can"},
		{"elepower_dynamics:servo_valve", "elepower_dynamics:tin_gear", "elepower_dynamics:servo_valve"},
	}
})

-- Electrolyzer
minetest.register_craft({
	output = "elepower_machines:electrolyzer",
	recipe = {
		{"elepower_dynamics:copper_plate", "elepower_dynamics:integrated_circuit", "elepower_dynamics:zinc_plate"},
		{"bucket:bucket_empty", "elepower_machines:machine_block", "elepower_dynamics:gas_container"},
		{"elepower_dynamics:servo_valve", "elepower_dynamics:wound_copper_coil", "elepower_dynamics:servo_valve"},
	}
})

-- Advanced Machine Block
minetest.register_craft({
	output = "elepower_machines:advanced_machine_block 4",
	recipe = {
		{"elepower_dynamics:electrum_plate", "elepower_dynamics:induction_coil_advanced", "elepower_dynamics:electrum_plate"},
		{"elepower_dynamics:brass_plate", "elepower_machines:heat_casing", "elepower_dynamics:brass_plate"},
		{"elepower_dynamics:electrum_plate", "elepower_dynamics:induction_coil_advanced", "elepower_dynamics:electrum_plate"},
	}
})

-- Pump
minetest.register_craft({
	output = "elepower_machines:pump",
	recipe = {
		{"elepower_dynamics:lead_gear", "elepower_dynamics:integrated_circuit", "elepower_dynamics:lead_gear"},
		{"bucket:bucket_empty", "elepower_machines:machine_block", "bucket:bucket_empty"},
		{"elepower_dynamics:electrum_plate", "elepower_machines:opaque_duct_roll", "elepower_dynamics:electrum_plate"},
	}
})

-- Wind Turbine
minetest.register_craft({
	output = "elepower_machines:wind_turbine",
	recipe = {
		{"elepower_dynamics:wound_copper_coil", "elepower_machines:turbine_blades", "elepower_dynamics:wound_copper_coil"},
		{"elepower_dynamics:steel_plate", "elepower_machines:machine_block", "elepower_dynamics:steel_plate"},
		{"elepower_dynamics:invar_gear", "elepower_dynamics:steel_plate", "elepower_dynamics:invar_gear"},
	}
})

-- Evaporizer
minetest.register_craft({
	output = "elepower_machines:evaporator",
	recipe = {
		{"elepower_dynamics:steel_plate", epi.steel_block, "elepower_dynamics:steel_plate"},
		{"elepower_dynamics:steel_plate", "elepower_machines:machine_block", "elepower_dynamics:steel_plate"},
		{"elepower_dynamics:induction_coil", "elepower_dynamics:zinc_plate", "elepower_dynamics:induction_coil"},
	}
})

-- PCB Plant
minetest.register_craft({
	output = "elepower_machines:pcb_plant",
	recipe = {
		{"", "elepower_dynamics:integrated_circuit", ""},
		{"elepower_dynamics:chip", "elepower_machines:machine_block", "elepower_dynamics:chip"},
		{"elepower_dynamics:servo_valve", "elepower_dynamics:uv_bulb", "elepower_dynamics:bronze_gear"},
	}
})
