local S = minetest.get_translator("mcl_brewing_stand")

local function active_brewing_formspec(fuel_percent, brew_percent)

	return "size[9,8.75]"..
	"background[-0.19,-0.25;9.5,9.5;mcl_brewing_inventory.png]"..
	-- "background[-0.19,-0.25;9.5,9.5;mcl_brewing_inventory_active.png]"..
	"label[4,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Brewing Stand"))).."]"..
	"label[0,4.0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]"..
	"list[current_player;main;0,4.5;9,3;9]"..
	mcl_formspec.get_itemslot_bg(0,4.5,9,3)..
	"list[current_player;main;0,7.75;9,1;]"..
	mcl_formspec.get_itemslot_bg(0,7.75,9,1)..
	"list[current_name;fuel;0.5,1.75;1,1;]"..
	mcl_formspec.get_itemslot_bg(0.5,1.75,1,1).."image[0.5,1.75;1,1;mcl_brewing_fuel_bg.png]"..
	"list[current_name;input;2.75,0.5;1,1;]"..
	mcl_formspec.get_itemslot_bg(2.75,0.5,1,1)..
	"list[context;stand;4.5,2.5;1,1;]"..
	mcl_formspec.get_itemslot_bg(4.5,2.5,1,1).."image[4.5,2.5;1,1;mcl_brewing_bottle_bg.png]"..
	"list[context;stand;6,2.8;1,1;1]"..
	mcl_formspec.get_itemslot_bg(6,2.8,1,1).."image[6,2.8;1,1;mcl_brewing_bottle_bg.png]"..
	"list[context;stand;7.5,2.5;1,1;2]"..
	mcl_formspec.get_itemslot_bg(7.5,2.5,1,1).."image[7.5,2.5;1,1;mcl_brewing_bottle_bg.png]"..

	"image[2.7,3.33;1.28,0.41;mcl_brewing_burner.png^[lowpart:"..
	(100-fuel_percent)..":mcl_brewing_burner_active.png^[transformR270]"..

	"image[2.76,1.4;1,2.15;mcl_brewing_bubbles.png^[lowpart:"..
	(brew_percent)..":mcl_brewing_bubbles_active.png]"..

	"listring[current_player;main]"..
	"listring[current_name;fuel]"..
	"listring[current_name;input]"..
	"listring[context;stand]"
end

local brewing_formspec = "size[9,8.75]"..
	"background[-0.19,-0.25;9.5,9.5;mcl_brewing_inventory.png]"..
	"label[4,0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Brewing Stand"))).."]"..
	"label[0,4.0;"..minetest.formspec_escape(minetest.colorize("#313131", S("Inventory"))).."]"..
	"list[current_player;main;0,4.5;9,3;9]"..
	mcl_formspec.get_itemslot_bg(0,4.5,9,3)..
	"list[current_player;main;0,7.75;9,1;]"..
	mcl_formspec.get_itemslot_bg(0,7.75,9,1)..
	"list[current_name;fuel;0.5,1.75;1,1;]"..
	mcl_formspec.get_itemslot_bg(0.5,1.75,1,1).."image[0.5,1.75;1,1;mcl_brewing_fuel_bg.png]"..
	"list[current_name;input;2.75,0.5;1,1;]"..
	mcl_formspec.get_itemslot_bg(2.75,0.5,1,1)..
	"list[context;stand;4.5,2.5;1,1;]"..
	mcl_formspec.get_itemslot_bg(4.5,2.5,1,1).."image[4.5,2.5;1,1;mcl_brewing_bottle_bg.png]"..
	"list[context;stand;6,2.8;1,1;1]"..
	mcl_formspec.get_itemslot_bg(6,2.8,1,1).."image[6,2.8;1,1;mcl_brewing_bottle_bg.png]"..
	"list[context;stand;7.5,2.5;1,1;2]"..
	mcl_formspec.get_itemslot_bg(7.5,2.5,1,1).."image[7.5,2.5;1,1;mcl_brewing_bottle_bg.png]"..

	"image[2.7,3.33;1.28,0.41;mcl_brewing_burner.png^[transformR270]"..
	"image[2.76,1.4;1,2.15;mcl_brewing_bubbles.png]"..

	"listring[current_player;main]"..
	"listring[current_name;fuel]"..
	"listring[current_name;input]"..
	"listring[context;stand]"


local function swap_node(pos, name)
	local node = minetest.get_node(pos)
	if node.name == name then
		return
	end
	node.name = name
	minetest.swap_node(pos, node)
end


local function brewable(inv)

	local ingredient = inv:get_stack("input",1):get_name()
	local stands = {}
	local stand_size = inv:get_size("stand")
	local was_alchemy = {false,false,false}

	for i=1,stand_size do

		local bottle = inv:get_stack("stand", i):get_name()

		local alchemy = mcl_potions.get_alchemy(ingredient, bottle)
		if alchemy then
			stands[i] = alchemy
			was_alchemy[i] = true
		else
			stands[i] = bottle
		end

	end
	-- if any stand holds a new potion, return the list of new potions
	for i=1,table.getn(was_alchemy) do
		if was_alchemy[i] then return stands end
	end

	return false
end


local function brewing_stand_timer(pos, elapsed)
	-- Inizialize metadata
	local meta = minetest.get_meta(pos)

	local fuel_timer = meta:get_float("fuel_timer") or 0
	local BREW_TIME = 20 -- all brews brew the same
	local BURN_TIME = BREW_TIME * 10

	local input_item = meta:get_string("input_item") or ""
	local stand_timer = meta:get_float("stand_timer") or 0
	local fuel = meta:get_float("fuel") or 0
	local inv = meta:get_inventory()

	local input_list, stand_list, fuel_list

	local update = true

	while update do

		update = false

		input_list = inv:get_list("input")
		stand_list = inv:get_list("stand")
		fuel_list = inv:get_list("fuel")

		-- TODO ... fix this.  Goal is to reset the process if the stand changes
		-- for i=1, inv:get_size("stand", i) do -- reset the process due to change
		-- 	local _name = inv:get_stack("stand", i):get_name()
		-- 	if  _name ~= stand_items[i] then
		-- 		stand_timer = 0
		-- 		stand_items[i] = _name
		-- 		update = true -- need to update the stand with new data
		--    return 1
		-- 	end
		-- end

		local brew_output = brewable(inv)
		if fuel ~= 0 and brew_output then

			fuel_timer = fuel_timer + elapsed
			stand_timer = stand_timer + elapsed

			if fuel_timer >= BURN_TIME then --replace with more fuel
				fuel = 0 --force a new fuel grab
				fuel_timer = 0
			end

			local d = 0.5
			minetest.add_particlespawner({
											amount = 4,
											time = 1,
											minpos = {x=pos.x-d, y=pos.y+0.5, z=pos.z-d},
											maxpos = {x=pos.x+d, y=pos.y+2, z=pos.z+d},
											minvel = {x=-0.1, y=0, z=-0.1},
											maxvel = {x=0.1, y=0.5, z=0.1},
											minacc = {x=-0.05, y=0, z=-0.05},
											maxacc = {x=0.05, y=.1, z=0.05},
											minexptime = 1,
											maxexptime = 2,
											minsize = 0.5,
											maxsize = 2,
											collisiondetection = true,
											vertical = false,
											texture = "mcl_brewing_bubble_sprite.png",
										})

			-- Replace the stand item with the brew result
			if stand_timer >= BREW_TIME then

				local input_count = inv:get_stack("input",1):get_count()
				if (input_count-1) ~= 0 then
					inv:set_stack("input",1,inv:get_stack("input",1):get_name().." "..(input_count-1))
				else
					inv:set_stack("input",1,"")
				end

				for i=1, inv:get_size("stand") do
					if brew_output[i] then
						minetest.sound_play("mcl_brewing_complete", {pos=pos, gain=0.4, max_hear_range=6}, true)
						inv:set_stack("stand", i, brew_output[i])
						minetest.sound_play("mcl_potions_bottle_pour", {pos=pos, gain=0.6, max_hear_range=6}, true)
					end
				end
				stand_timer = 0
				update = false -- stop the update if brew is complete
			end

		elseif fuel == 0 then  --get more fuel from fuel_list

			-- only allow blaze powder fuel
			local fuel_name = inv:get_stack("fuel",1):get_name()
			local fuel_count = inv:get_stack("fuel",1):get_count()

			if fuel_name == "mcl_mobitems:blaze_powder" then -- Grab another fuel

				if (fuel_count-1) ~= 0 then
					inv:set_stack("fuel",1,fuel_name.." "..(fuel_count-1))
				else
					inv:set_stack("fuel",1,"")
				end
				update = true
				fuel = 1
			else -- no fuel available
				update = false
			end

		end

		elapsed = 0
	end

	--update formspec
	local formspec = brewing_formspec

	local result = false

	if fuel_timer ~= 0 then
		local fuel_percent = math.floor(fuel_timer/BURN_TIME*100 % BURN_TIME)
		local brew_percent = math.floor(stand_timer/BREW_TIME*100)
		formspec = active_brewing_formspec(fuel_percent, brew_percent*1 % 100)
		result = true
	else
		minetest.get_node_timer(pos):stop()
	end

	meta:set_float("fuel_timer", fuel_timer)
	meta:set_float("stand_timer", stand_timer)
	meta:set_float("fuel", fuel)
	-- meta:set_list("stand_items", stand_list)
	meta:set_string("formspec", formspec)

	return result
end


local function allow_metadata_inventory_put(pos, listname, index, stack, player)
	local name = player:get_player_name()
	if minetest.is_protected(pos, name) then
		minetest.record_protection_violation(pos, name)
		return 0
	end
	local meta = minetest.get_meta(pos)
	local inv = meta:get_inventory()
	if listname == "fuel" then

		-- Test stack with size 1 because we burn one fuel at a time
		local teststack = ItemStack(stack)
		teststack:set_count(1)
		local output, decremented_input = minetest.get_craft_result({method="fuel", width=1, items={teststack}})
		if output.time ~= 0 then
			-- Only allow to place 1 item if fuel get replaced by recipe.
			-- This is the case for lava buckets.
			local replace_item = decremented_input.items[1]
			if replace_item:is_empty() then
				-- For most fuels, just allow to place everything
				return stack:get_count()
			else
				if inv:get_stack(listname, index):get_count() == 0 then
					return 1
				else
					return 0
				end
			end
		else
			return 0
		end
	elseif listname == "input" then
		return stack:get_count()
	elseif listname == "stand" then
		return 0
	end
end


-- Drop input items of brewing_stand at pos with metadata meta
local function drop_brewing_stand_items(pos, meta)

	local inv = meta:get_inventory()

	local stack = inv:get_stack("fuel", 1)
	if not stack:is_empty() then
		local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
		minetest.add_item(p, stack)
	end

	local stack = inv:get_stack("input", 1)
	if not stack:is_empty() then
		local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
		minetest.add_item(p, stack)
	end

	for i=1, inv:get_size("stand") do
		local stack = inv:get_stack("stand", i)
		if not stack:is_empty() then
			local p = {x=pos.x+math.random(0, 10)/10-0.5, y=pos.y, z=pos.z+math.random(0, 10)/10-0.5}
			minetest.add_item(p, stack)
		end
	end
end


local on_rotate
if minetest.get_modpath("screwdriver") then
	on_rotate = screwdriver.rotate_simple
end

local doc_string =
		S("To use an brewing_stand, rightclick it.").."\n"
		S("To brew, place fuel first and/or your ingredient last!")

local tiles = {"mcl_brewing_top.png", 	--top
				 "mcl_brewing_base.png", 	--bottom
				 "mcl_brewing_side.png", 	--right
				 "mcl_brewing_side.png", 	--left
				 "mcl_brewing_side.png", 	--back
				 "mcl_brewing_side.png^[transformFX"} --front

local allow_put = function(pos, listname, index, stack, player)
	local name = player:get_player_name()
	if minetest.is_protected(pos, name) then
		minetest.record_protection_violation(pos, name)
		return 0
	else
		return stack:get_count()
	end
end

local on_put = function(pos, listname, index, stack, player)
	local meta = minetest.get_meta(pos)
	local inv = meta:get_inventory()
	local str = ""
	for i=1, inv:get_size("stand") do
		local stack = inv:get_stack("stand", i)
		if not stack:is_empty() then
			str = str.."1"
		else str = str.."0"
		end
	end
	minetest.swap_node(pos, {name = "mcl_brewing:stand_"..str})
	minetest.get_node_timer(pos):start(1.0)
	--some code here to enforce only potions getting placed on stands
end

local after_dig = function(pos, oldnode, oldmetadata, digger)
	local meta = minetest.get_meta(pos)
	meta:from_table(oldmetadata)
	drop_brewing_stand_items(pos, meta)
end

local on_destruct = function(pos)
	local meta = minetest.get_meta(pos)
	drop_brewing_stand_items(pos, meta)
end

local allow_take = function(pos, listname, index, stack, player)
	local name = player:get_player_name()
	if minetest.is_protected(pos, name) then
		minetest.record_protection_violation(pos, name)
		return 0
	else
		return stack:get_count()
	end
end

local on_take = function(pos, listname, index, stack, player)
	local meta = minetest.get_meta(pos)
	local inv = meta:get_inventory()
	local str = ""
	for i=1, inv:get_size("stand") do
		local stack = inv:get_stack("stand", i)
		if not stack:is_empty() then
			str = str.."1"
		else str = str.."0"
		end
	end
	minetest.swap_node(pos, {name = "mcl_brewing:stand_"..str})
	minetest.get_node_timer(pos):start(1.0)
	--some code here to enforce only potions getting placed on stands
end

minetest.register_node("mcl_brewing:stand_000", {
	description = S("Brewing Stand"),
	_doc_items_longdesc = S("The stand allows you to brew potions!"),
	_doc_items_usagehelp = doc_string,
	_tt_help = S("Brew Potions"),
	groups = {pickaxey=1, falling_node=1,  brewitem=1, not_in_creative_inventory = 0, not_in_craft_guide = 0},
	tiles = tiles,
	drop = "mcl_brewing:stand",
	paramtype = "light",
	sunlight_propagates = true,
	is_ground_content = false,
	paramtype2 = "facedir",
	drawtype = "nodebox",
	node_box = {
		type = "fixed",
		fixed = {

			{-1/16, -5/16, -1/16, 1/16, 8/16, 1/16}, -- heat plume
			{ 2/16, -8/16, -8/16, 8/16, -6/16, -2/16}, -- base
			{-8/16, -8/16, -8/16, -2/16, -6/16, -2/16}, -- base
			{-3/16, -8/16, 2/16, 3/16, -6/16, 8/16}, -- base

			-- {-7/16, -6/16 ,-7/16 , -6/16,  1/16, -6/16 }, -- bottle 1
			-- {-6/16, -6/16 ,-6/16 , -5/16,  3/16, -5/16 }, -- bottle 1
			-- {-5/16, -6/16 ,-5/16 , -4/16,  3/16, -4/16 }, -- bottle 1
			-- {-4/16, -6/16 ,-4/16 , -3/16,  3/16, -3/16 }, -- bottle 1
			-- {-3/16, -6/16 ,-3/16 , -2/16,  1/16, -2/16 }, -- bottle 1

			{-5/16, 3/16 ,-5/16 , -4/16,  7/16, -4/16 }, -- line 1
			{-4/16, 6/16 ,-4/16 , -3/16,  8/16, -3/16 }, -- line 1
			{-3/16, 7/16 ,-3/16 , -2/16,  8/16, -2/16 }, -- line 1
			{-2/16, 7/16 ,-2/16 , -1/16,  8/16, -1/16 }, -- line 1


			-- {7/16, -6/16 ,-7/16 , 6/16,  1/16, -6/16 }, -- bottle 2
			-- {6/16, -6/16 ,-6/16 , 5/16,  3/16, -5/16 }, -- bottle 2
			-- {5/16, -6/16 ,-5/16 , 4/16,  3/16, -4/16 }, -- bottle 2
			-- {4/16, -6/16 ,-4/16 , 3/16,  3/16, -3/16 }, -- bottle 2
			-- {3/16, -6/16 ,-3/16 , 2/16,  1/16, -2/16 }, -- bottle 2

			{5/16, 3/16 ,-5/16 ,4/16,  7/16, -4/16 }, -- line 2
			{4/16, 6/16 ,-4/16 ,3/16,  8/16, -3/16 }, -- line 2
			{3/16, 7/16 ,-3/16 ,2/16,  8/16, -2/16 }, -- line 2
			{2/16, 7/16 ,-2/16 ,1/16,  8/16, -1/16 }, -- line 2

			-- {0/16, -6/16 , 2/16 , 1/16, 1/16, 7/16 }, -- bottle 3
			-- {0/16, 1/16 , 3/16 , 1/16,  3/16, 6/16 }, -- bottle 3

			{0/16, 7/16 , 1/16 , 1/16, 8/16, 3/16 }, -- line 3
			{0/16, 6/16 , 3/16 , 1/16, 7/16, 5/16 }, -- line 3
			{0/16, 3/16 , 4/16 , 1/16, 6/16, 5/16 }, -- line 3
		}
	},
	sounds = mcl_sounds.node_sound_glass_defaults(),
	_mcl_blast_resistance = 1,
	_mcl_hardness = 1,
	on_destruct = on_destruct,
	after_dig_node = after_dig,
	allow_metadata_inventory_take = allow_take,
	allow_metadata_inventory_put = allow_put,
	on_metadata_inventory_put = on_put,
	on_metadata_inventory_take = on_take,

	on_construct = function(pos)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		inv:set_size("input", 1)
		inv:set_size("fuel", 1)
		inv:set_size("stand", 3)
		local form = brewing_formspec
		meta:set_string("formspec", form)
	end,

	on_receive_fields = function(pos, formname, fields, sender)
		local sender_name = sender:get_player_name()
		if minetest.is_protected(pos, sender_name) then
			minetest.record_protection_violation(pos, sender_name)
			return
		end
	end,

	on_timer = brewing_stand_timer,
	on_rotate = on_rotate,
})
minetest.register_alias("mcl_brewing:stand", "mcl_brewing:stand_000")
minetest.register_node("mcl_brewing:stand_100", {
	description = S("Brewing Stand"),
	_doc_items_longdesc = S("The stand allows you to brew potions!"),
	_doc_items_usagehelp = doc_string,
	_tt_help = S("Brew Potions"),
	groups = {pickaxey=1, falling_node=1, brewitem=0, not_in_creative_inventory = 1, not_in_craft_guide = 1},
	tiles = tiles,
	drop = "mcl_brewing:stand",
	paramtype = "light",
	sunlight_propagates = true,
	is_ground_content = false,
	paramtype2 = "facedir",
	drawtype = "nodebox",
	node_box = {
		type = "fixed",
		fixed = {

			{-1/16, -5/16, -1/16, 1/16, 8/16, 1/16}, -- heat plume
			{ 2/16, -8/16, -8/16, 8/16, -6/16, -2/16}, -- base
			{-8/16, -8/16, -8/16, -2/16, -6/16, -2/16}, -- base
			{-3/16, -8/16, 2/16, 3/16, -6/16, 8/16}, -- base

			{-7/16, -6/16 ,-7/16 , -6/16,  1/16, -6/16 }, -- bottle 1
			{-6/16, -6/16 ,-6/16 , -5/16,  3/16, -5/16 }, -- bottle 1
			{-5/16, -6/16 ,-5/16 , -4/16,  3/16, -4/16 }, -- bottle 1
			{-4/16, -6/16 ,-4/16 , -3/16,  3/16, -3/16 }, -- bottle 1
			{-3/16, -6/16 ,-3/16 , -2/16,  1/16, -2/16 }, -- bottle 1

			{-5/16, 3/16 ,-5/16 , -4/16,  7/16, -4/16 }, -- line 1
			{-4/16, 6/16 ,-4/16 , -3/16,  8/16, -3/16 }, -- line 1
			{-3/16, 7/16 ,-3/16 , -2/16,  8/16, -2/16 }, -- line 1
			{-2/16, 7/16 ,-2/16 , -1/16,  8/16, -1/16 }, -- line 1


			-- {7/16, -6/16 ,-7/16 , 6/16,  1/16, -6/16 }, -- bottle 2
			-- {6/16, -6/16 ,-6/16 , 5/16,  3/16, -5/16 }, -- bottle 2
			-- {5/16, -6/16 ,-5/16 , 4/16,  3/16, -4/16 }, -- bottle 2
			-- {4/16, -6/16 ,-4/16 , 3/16,  3/16, -3/16 }, -- bottle 2
			-- {3/16, -6/16 ,-3/16 , 2/16,  1/16, -2/16 }, -- bottle 2

			{5/16, 3/16 ,-5/16 ,4/16,  7/16, -4/16 }, -- line 2
			{4/16, 6/16 ,-4/16 ,3/16,  8/16, -3/16 }, -- line 2
			{3/16, 7/16 ,-3/16 ,2/16,  8/16, -2/16 }, -- line 2
			{2/16, 7/16 ,-2/16 ,1/16,  8/16, -1/16 }, -- line 2

			-- {0/16, -6/16 , 2/16 , 1/16, 1/16, 7/16 }, -- bottle 3
			-- {0/16, 1/16 , 3/16 , 1/16,  3/16, 6/16 }, -- bottle 3

			{0/16, 7/16 , 1/16 , 1/16, 8/16, 3/16 }, -- line 3
			{0/16, 6/16 , 3/16 , 1/16, 7/16, 5/16 }, -- line 3
			{0/16, 3/16 , 4/16 , 1/16, 6/16, 5/16 }, -- line 3
		}
	},
	sounds = mcl_sounds.node_sound_metal_defaults(),
	_mcl_blast_resistance = 1,
	_mcl_hardness = 1,
	on_destruct = on_destruct,
	after_dig_node = after_dig,
	allow_metadata_inventory_take = allow_take,
	allow_metadata_inventory_put = allow_put,
	on_metadata_inventory_put = on_put,
	on_metadata_inventory_take = on_take,

	on_construct = function(pos)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		inv:set_size("input", 1)
		inv:set_size("fuel", 1)
		inv:set_size("stand", 3)
		local form = brewing_formspec
		meta:set_string("formspec", form)
	end,

	on_receive_fields = function(pos, formname, fields, sender)
		local sender_name = sender:get_player_name()
		if minetest.is_protected(pos, sender_name) then
			minetest.record_protection_violation(pos, sender_name)
			return
		end
	end,

	on_timer = brewing_stand_timer,
	on_rotate = on_rotate,
})
minetest.register_node("mcl_brewing:stand_010", {
	description = S("Brewing Stand"),
	_doc_items_longdesc = S("The stand allows you to brew potions!"),
	_doc_items_usagehelp = doc_string,
	_tt_help = S("Brew Potions"),
	groups = {pickaxey=1, falling_node=1, brewitem=0, not_in_creative_inventory = 1, not_in_craft_guide = 1},
	tiles = tiles,
	drop = "mcl_brewing:stand",
	paramtype = "light",
	sunlight_propagates = true,
	is_ground_content = false,
	paramtype2 = "facedir",
	drawtype = "nodebox",
	node_box = {
		type = "fixed",
		fixed = {

			{-1/16, -5/16, -1/16, 1/16, 8/16, 1/16}, -- heat plume
			{ 2/16, -8/16, -8/16, 8/16, -6/16, -2/16}, -- base
			{-8/16, -8/16, -8/16, -2/16, -6/16, -2/16}, -- base
			{-3/16, -8/16, 2/16, 3/16, -6/16, 8/16}, -- base

			-- {-7/16, -6/16 ,-7/16 , -6/16,  1/16, -6/16 }, -- bottle 1
			-- {-6/16, -6/16 ,-6/16 , -5/16,  3/16, -5/16 }, -- bottle 1
			-- {-5/16, -6/16 ,-5/16 , -4/16,  3/16, -4/16 }, -- bottle 1
			-- {-4/16, -6/16 ,-4/16 , -3/16,  3/16, -3/16 }, -- bottle 1
			-- {-3/16, -6/16 ,-3/16 , -2/16,  1/16, -2/16 }, -- bottle 1

			{-5/16, 3/16 ,-5/16 , -4/16,  7/16, -4/16 }, -- line 1
			{-4/16, 6/16 ,-4/16 , -3/16,  8/16, -3/16 }, -- line 1
			{-3/16, 7/16 ,-3/16 , -2/16,  8/16, -2/16 }, -- line 1
			{-2/16, 7/16 ,-2/16 , -1/16,  8/16, -1/16 }, -- line 1


			{7/16, -6/16 ,-7/16 , 6/16,  1/16, -6/16 }, -- bottle 2
			{6/16, -6/16 ,-6/16 , 5/16,  3/16, -5/16 }, -- bottle 2
			{5/16, -6/16 ,-5/16 , 4/16,  3/16, -4/16 }, -- bottle 2
			{4/16, -6/16 ,-4/16 , 3/16,  3/16, -3/16 }, -- bottle 2
			{3/16, -6/16 ,-3/16 , 2/16,  1/16, -2/16 }, -- bottle 2

			{5/16, 3/16 ,-5/16 ,4/16,  7/16, -4/16 }, -- line 2
			{4/16, 6/16 ,-4/16 ,3/16,  8/16, -3/16 }, -- line 2
			{3/16, 7/16 ,-3/16 ,2/16,  8/16, -2/16 }, -- line 2
			{2/16, 7/16 ,-2/16 ,1/16,  8/16, -1/16 }, -- line 2

			-- {0/16, -6/16 , 2/16 , 1/16, 1/16, 7/16 }, -- bottle 3
			-- {0/16, 1/16 , 3/16 , 1/16,  3/16, 6/16 }, -- bottle 3

			{0/16, 7/16 , 1/16 , 1/16, 8/16, 3/16 }, -- line 3
			{0/16, 6/16 , 3/16 , 1/16, 7/16, 5/16 }, -- line 3
			{0/16, 3/16 , 4/16 , 1/16, 6/16, 5/16 }, -- line 3
		}
	},
	sounds = mcl_sounds.node_sound_metal_defaults(),
	_mcl_blast_resistance = 1,
	_mcl_hardness = 1,
	on_destruct = on_destruct,
	after_dig_node = after_dig,
	allow_metadata_inventory_take = allow_take,
	allow_metadata_inventory_put = allow_put,
	on_metadata_inventory_put = on_put,
	on_metadata_inventory_take = on_take,

	on_construct = function(pos)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		inv:set_size("input", 1)
		inv:set_size("fuel", 1)
		inv:set_size("stand", 3)
		local form = brewing_formspec
		meta:set_string("formspec", form)
	end,

	on_receive_fields = function(pos, formname, fields, sender)
		local sender_name = sender:get_player_name()
		if minetest.is_protected(pos, sender_name) then
			minetest.record_protection_violation(pos, sender_name)
			return
		end
	end,

	on_timer = brewing_stand_timer,
	on_rotate = on_rotate,
})
minetest.register_node("mcl_brewing:stand_001", {
	description = S("Brewing Stand"),
	_doc_items_longdesc = S("The stand allows you to brew potions!"),
	_doc_items_usagehelp = doc_string,
	_tt_help = S("Brew Potions"),
	groups = {pickaxey=1, falling_node=1, brewitem=0, not_in_creative_inventory = 1, not_in_craft_guide = 1},
	tiles = tiles,
	drop = "mcl_brewing:stand",
	paramtype = "light",
	sunlight_propagates = true,
	is_ground_content = false,
	paramtype2 = "facedir",
	drawtype = "nodebox",
	node_box = {
		type = "fixed",
		fixed = {

			{-1/16, -5/16, -1/16, 1/16, 8/16, 1/16}, -- heat plume
			{ 2/16, -8/16, -8/16, 8/16, -6/16, -2/16}, -- base
			{-8/16, -8/16, -8/16, -2/16, -6/16, -2/16}, -- base
			{-3/16, -8/16, 2/16, 3/16, -6/16, 8/16}, -- base

			-- {-7/16, -6/16 ,-7/16 , -6/16,  1/16, -6/16 }, -- bottle 1
			-- {-6/16, -6/16 ,-6/16 , -5/16,  3/16, -5/16 }, -- bottle 1
			-- {-5/16, -6/16 ,-5/16 , -4/16,  3/16, -4/16 }, -- bottle 1
			-- {-4/16, -6/16 ,-4/16 , -3/16,  3/16, -3/16 }, -- bottle 1
			-- {-3/16, -6/16 ,-3/16 , -2/16,  1/16, -2/16 }, -- bottle 1

			{-5/16, 3/16 ,-5/16 , -4/16,  7/16, -4/16 }, -- line 1
			{-4/16, 6/16 ,-4/16 , -3/16,  8/16, -3/16 }, -- line 1
			{-3/16, 7/16 ,-3/16 , -2/16,  8/16, -2/16 }, -- line 1
			{-2/16, 7/16 ,-2/16 , -1/16,  8/16, -1/16 }, -- line 1


			-- {7/16, -6/16 ,-7/16 , 6/16,  1/16, -6/16 }, -- bottle 2
			-- {6/16, -6/16 ,-6/16 , 5/16,  3/16, -5/16 }, -- bottle 2
			-- {5/16, -6/16 ,-5/16 , 4/16,  3/16, -4/16 }, -- bottle 2
			-- {4/16, -6/16 ,-4/16 , 3/16,  3/16, -3/16 }, -- bottle 2
			-- {3/16, -6/16 ,-3/16 , 2/16,  1/16, -2/16 }, -- bottle 2

			{5/16, 3/16 ,-5/16 ,4/16,  7/16, -4/16 }, -- line 2
			{4/16, 6/16 ,-4/16 ,3/16,  8/16, -3/16 }, -- line 2
			{3/16, 7/16 ,-3/16 ,2/16,  8/16, -2/16 }, -- line 2
			{2/16, 7/16 ,-2/16 ,1/16,  8/16, -1/16 }, -- line 2

			{0/16, -6/16 , 2/16 , 1/16, 1/16, 7/16 }, -- bottle 3
			{0/16, 1/16 , 3/16 , 1/16,  3/16, 6/16 }, -- bottle 3

			{0/16, 7/16 , 1/16 , 1/16, 8/16, 3/16 }, -- line 3
			{0/16, 6/16 , 3/16 , 1/16, 7/16, 5/16 }, -- line 3
			{0/16, 3/16 , 4/16 , 1/16, 6/16, 5/16 }, -- line 3
		}
	},
	sounds = mcl_sounds.node_sound_metal_defaults(),
	_mcl_blast_resistance = 1,
	_mcl_hardness = 1,
	on_destruct = on_destruct,
	after_dig_node = after_dig,
	allow_metadata_inventory_take = allow_take,
	allow_metadata_inventory_put = allow_put,
	on_metadata_inventory_put = on_put,
	on_metadata_inventory_take = on_take,

	on_construct = function(pos)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		inv:set_size("input", 1)
		inv:set_size("fuel", 1)
		inv:set_size("stand", 3)
		local form = brewing_formspec
		meta:set_string("formspec", form)
	end,

	on_receive_fields = function(pos, formname, fields, sender)
		local sender_name = sender:get_player_name()
		if minetest.is_protected(pos, sender_name) then
			minetest.record_protection_violation(pos, sender_name)
			return
		end
	end,

	on_timer = brewing_stand_timer,
	on_rotate = on_rotate,
})
minetest.register_node("mcl_brewing:stand_110", {
	description = S("Brewing Stand"),
	_doc_items_longdesc = S("The stand allows you to brew potions!"),
	_doc_items_usagehelp = doc_string,
	_tt_help = S("Brew Potions"),
	groups = {pickaxey=1, falling_node=1, brewitem=0, not_in_creative_inventory = 1, not_in_craft_guide = 1},
	tiles = tiles,
	drop = "mcl_brewing:stand",
	paramtype = "light",
	sunlight_propagates = true,
	is_ground_content = false,
	paramtype2 = "facedir",
	drawtype = "nodebox",
	node_box = {
		type = "fixed",
		fixed = {

			{-1/16, -5/16, -1/16, 1/16, 8/16, 1/16}, -- heat plume
			{ 2/16, -8/16, -8/16, 8/16, -6/16, -2/16}, -- base
			{-8/16, -8/16, -8/16, -2/16, -6/16, -2/16}, -- base
			{-3/16, -8/16, 2/16, 3/16, -6/16, 8/16}, -- base

			{-7/16, -6/16 ,-7/16 , -6/16,  1/16, -6/16 }, -- bottle 1
			{-6/16, -6/16 ,-6/16 , -5/16,  3/16, -5/16 }, -- bottle 1
			{-5/16, -6/16 ,-5/16 , -4/16,  3/16, -4/16 }, -- bottle 1
			{-4/16, -6/16 ,-4/16 , -3/16,  3/16, -3/16 }, -- bottle 1
			{-3/16, -6/16 ,-3/16 , -2/16,  1/16, -2/16 }, -- bottle 1

			{-5/16, 3/16 ,-5/16 , -4/16,  7/16, -4/16 }, -- line 1
			{-4/16, 6/16 ,-4/16 , -3/16,  8/16, -3/16 }, -- line 1
			{-3/16, 7/16 ,-3/16 , -2/16,  8/16, -2/16 }, -- line 1
			{-2/16, 7/16 ,-2/16 , -1/16,  8/16, -1/16 }, -- line 1


			{7/16, -6/16 ,-7/16 , 6/16,  1/16, -6/16 }, -- bottle 2
			{6/16, -6/16 ,-6/16 , 5/16,  3/16, -5/16 }, -- bottle 2
			{5/16, -6/16 ,-5/16 , 4/16,  3/16, -4/16 }, -- bottle 2
			{4/16, -6/16 ,-4/16 , 3/16,  3/16, -3/16 }, -- bottle 2
			{3/16, -6/16 ,-3/16 , 2/16,  1/16, -2/16 }, -- bottle 2

			{5/16, 3/16 ,-5/16 ,4/16,  7/16, -4/16 }, -- line 2
			{4/16, 6/16 ,-4/16 ,3/16,  8/16, -3/16 }, -- line 2
			{3/16, 7/16 ,-3/16 ,2/16,  8/16, -2/16 }, -- line 2
			{2/16, 7/16 ,-2/16 ,1/16,  8/16, -1/16 }, -- line 2

			-- {0/16, -6/16 , 2/16 , 1/16, 1/16, 7/16 }, -- bottle 3
			-- {0/16, 1/16 , 3/16 , 1/16,  3/16, 6/16 }, -- bottle 3

			{0/16, 7/16 , 1/16 , 1/16, 8/16, 3/16 }, -- line 3
			{0/16, 6/16 , 3/16 , 1/16, 7/16, 5/16 }, -- line 3
			{0/16, 3/16 , 4/16 , 1/16, 6/16, 5/16 }, -- line 3
		}
	},
	sounds = mcl_sounds.node_sound_metal_defaults(),
	_mcl_blast_resistance = 1,
	_mcl_hardness = 1,
	on_destruct = on_destruct,
	after_dig_node = after_dig,
	allow_metadata_inventory_take = allow_take,
	allow_metadata_inventory_put = allow_put,
	on_metadata_inventory_put = on_put,
	on_metadata_inventory_take = on_take,

	on_construct = function(pos)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		inv:set_size("input", 1)
		inv:set_size("fuel", 1)
		inv:set_size("stand", 3)
		local form = brewing_formspec
		meta:set_string("formspec", form)
	end,

	on_receive_fields = function(pos, formname, fields, sender)
		local sender_name = sender:get_player_name()
		if minetest.is_protected(pos, sender_name) then
			minetest.record_protection_violation(pos, sender_name)
			return
		end
	end,

	on_timer = brewing_stand_timer,
	on_rotate = on_rotate,
})
minetest.register_node("mcl_brewing:stand_101", {
	description = S("Brewing Stand"),
	_doc_items_longdesc = S("The stand allows you to brew potions!"),
	_doc_items_usagehelp = doc_string,
	_tt_help = S("Brew Potions"),
	groups = {pickaxey=1, falling_node=1, brewitem=0, not_in_creative_inventory = 1, not_in_craft_guide = 1},
	tiles = tiles,
	drop = "mcl_brewing:stand",
	paramtype = "light",
	sunlight_propagates = true,
	is_ground_content = false,
	paramtype2 = "facedir",
	drawtype = "nodebox",
	node_box = {
		type = "fixed",
		fixed = {

			{-1/16, -5/16, -1/16, 1/16, 8/16, 1/16}, -- heat plume
			{ 2/16, -8/16, -8/16, 8/16, -6/16, -2/16}, -- base
			{-8/16, -8/16, -8/16, -2/16, -6/16, -2/16}, -- base
			{-3/16, -8/16, 2/16, 3/16, -6/16, 8/16}, -- base

			{-7/16, -6/16 ,-7/16 , -6/16,  1/16, -6/16 }, -- bottle 1
			{-6/16, -6/16 ,-6/16 , -5/16,  3/16, -5/16 }, -- bottle 1
			{-5/16, -6/16 ,-5/16 , -4/16,  3/16, -4/16 }, -- bottle 1
			{-4/16, -6/16 ,-4/16 , -3/16,  3/16, -3/16 }, -- bottle 1
			{-3/16, -6/16 ,-3/16 , -2/16,  1/16, -2/16 }, -- bottle 1

			{-5/16, 3/16 ,-5/16 , -4/16,  7/16, -4/16 }, -- line 1
			{-4/16, 6/16 ,-4/16 , -3/16,  8/16, -3/16 }, -- line 1
			{-3/16, 7/16 ,-3/16 , -2/16,  8/16, -2/16 }, -- line 1
			{-2/16, 7/16 ,-2/16 , -1/16,  8/16, -1/16 }, -- line 1


			-- {7/16, -6/16 ,-7/16 , 6/16,  1/16, -6/16 }, -- bottle 2
			-- {6/16, -6/16 ,-6/16 , 5/16,  3/16, -5/16 }, -- bottle 2
			-- {5/16, -6/16 ,-5/16 , 4/16,  3/16, -4/16 }, -- bottle 2
			-- {4/16, -6/16 ,-4/16 , 3/16,  3/16, -3/16 }, -- bottle 2
			-- {3/16, -6/16 ,-3/16 , 2/16,  1/16, -2/16 }, -- bottle 2

			{5/16, 3/16 ,-5/16 ,4/16,  7/16, -4/16 }, -- line 2
			{4/16, 6/16 ,-4/16 ,3/16,  8/16, -3/16 }, -- line 2
			{3/16, 7/16 ,-3/16 ,2/16,  8/16, -2/16 }, -- line 2
			{2/16, 7/16 ,-2/16 ,1/16,  8/16, -1/16 }, -- line 2

			{0/16, -6/16 , 2/16 , 1/16, 1/16, 7/16 }, -- bottle 3
			{0/16, 1/16 , 3/16 , 1/16,  3/16, 6/16 }, -- bottle 3

			{0/16, 7/16 , 1/16 , 1/16, 8/16, 3/16 }, -- line 3
			{0/16, 6/16 , 3/16 , 1/16, 7/16, 5/16 }, -- line 3
			{0/16, 3/16 , 4/16 , 1/16, 6/16, 5/16 }, -- line 3
		}
	},
	sounds = mcl_sounds.node_sound_metal_defaults(),
	_mcl_blast_resistance = 1,
	_mcl_hardness = 1,
	on_destruct = on_destruct,
	after_dig_node = after_dig,
	allow_metadata_inventory_take = allow_take,
	allow_metadata_inventory_put = allow_put,
	on_metadata_inventory_put = on_put,
	on_metadata_inventory_take = on_take,

	on_construct = function(pos)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		inv:set_size("input", 1)
		inv:set_size("fuel", 1)
		inv:set_size("stand", 3)
		local form = brewing_formspec
		meta:set_string("formspec", form)
	end,

	on_receive_fields = function(pos, formname, fields, sender)
		local sender_name = sender:get_player_name()
		if minetest.is_protected(pos, sender_name) then
			minetest.record_protection_violation(pos, sender_name)
			return
		end
	end,

	on_timer = brewing_stand_timer,
	on_rotate = on_rotate,
})
minetest.register_node("mcl_brewing:stand_011", {
	description = S("Brewing Stand"),
	_doc_items_longdesc = S("The stand allows you to brew potions!"),
	_doc_items_usagehelp = doc_string,
	_tt_help = S("Brew Potions"),
	groups = {pickaxey=1, falling_node=1, brewitem=0, not_in_creative_inventory = 1, not_in_craft_guide = 1},
	tiles = tiles,
	drop = "mcl_brewing:stand",
	paramtype = "light",
	sunlight_propagates = true,
	is_ground_content = false,
	paramtype2 = "facedir",
	drawtype = "nodebox",
	node_box = {
		type = "fixed",
		fixed = {

			{-1/16, -5/16, -1/16, 1/16, 8/16, 1/16}, -- heat plume
			{ 2/16, -8/16, -8/16, 8/16, -6/16, -2/16}, -- base
			{-8/16, -8/16, -8/16, -2/16, -6/16, -2/16}, -- base
			{-3/16, -8/16, 2/16, 3/16, -6/16, 8/16}, -- base

			-- {-7/16, -6/16 ,-7/16 , -6/16,  1/16, -6/16 }, -- bottle 1
			-- {-6/16, -6/16 ,-6/16 , -5/16,  3/16, -5/16 }, -- bottle 1
			-- {-5/16, -6/16 ,-5/16 , -4/16,  3/16, -4/16 }, -- bottle 1
			-- {-4/16, -6/16 ,-4/16 , -3/16,  3/16, -3/16 }, -- bottle 1
			-- {-3/16, -6/16 ,-3/16 , -2/16,  1/16, -2/16 }, -- bottle 1

			{-5/16, 3/16 ,-5/16 , -4/16,  7/16, -4/16 }, -- line 1
			{-4/16, 6/16 ,-4/16 , -3/16,  8/16, -3/16 }, -- line 1
			{-3/16, 7/16 ,-3/16 , -2/16,  8/16, -2/16 }, -- line 1
			{-2/16, 7/16 ,-2/16 , -1/16,  8/16, -1/16 }, -- line 1


			{7/16, -6/16 ,-7/16 , 6/16,  1/16, -6/16 }, -- bottle 2
			{6/16, -6/16 ,-6/16 , 5/16,  3/16, -5/16 }, -- bottle 2
			{5/16, -6/16 ,-5/16 , 4/16,  3/16, -4/16 }, -- bottle 2
			{4/16, -6/16 ,-4/16 , 3/16,  3/16, -3/16 }, -- bottle 2
			{3/16, -6/16 ,-3/16 , 2/16,  1/16, -2/16 }, -- bottle 2

			{5/16, 3/16 ,-5/16 ,4/16,  7/16, -4/16 }, -- line 2
			{4/16, 6/16 ,-4/16 ,3/16,  8/16, -3/16 }, -- line 2
			{3/16, 7/16 ,-3/16 ,2/16,  8/16, -2/16 }, -- line 2
			{2/16, 7/16 ,-2/16 ,1/16,  8/16, -1/16 }, -- line 2

			{0/16, -6/16 , 2/16 , 1/16, 1/16, 7/16 }, -- bottle 3
			{0/16, 1/16 , 3/16 , 1/16,  3/16, 6/16 }, -- bottle 3

			{0/16, 7/16 , 1/16 , 1/16, 8/16, 3/16 }, -- line 3
			{0/16, 6/16 , 3/16 , 1/16, 7/16, 5/16 }, -- line 3
			{0/16, 3/16 , 4/16 , 1/16, 6/16, 5/16 }, -- line 3
		}
	},
	sounds = mcl_sounds.node_sound_metal_defaults(),
	_mcl_blast_resistance = 1,
	_mcl_hardness = 1,
	on_destruct = on_destruct,
	after_dig_node = after_dig,
	allow_metadata_inventory_take = allow_take,
	allow_metadata_inventory_put = allow_put,
	on_metadata_inventory_put = on_put,
	on_metadata_inventory_take = on_take,

	on_construct = function(pos)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		inv:set_size("input", 1)
		inv:set_size("fuel", 1)
		inv:set_size("stand", 3)
		local form = brewing_formspec
		meta:set_string("formspec", form)
	end,

	on_receive_fields = function(pos, formname, fields, sender)
		local sender_name = sender:get_player_name()
		if minetest.is_protected(pos, sender_name) then
			minetest.record_protection_violation(pos, sender_name)
			return
		end
	end,

	on_timer = brewing_stand_timer,
	on_rotate = on_rotate,
})
minetest.register_node("mcl_brewing:stand_111", {
	description = S("Brewing Stand"),
	_doc_items_longdesc = S("The stand allows you to brew potions!"),
	_doc_items_usagehelp = doc_string,
	_tt_help = S("Brew Potions"),
	groups = {pickaxey=1, falling_node=1, brewitem=0, not_in_creative_inventory = 1, not_in_craft_guide = 1},
	tiles = tiles,
	drop = "mcl_brewing:stand",
	paramtype = "light",
	sunlight_propagates = true,
	is_ground_content = false,
	paramtype2 = "facedir",
	drawtype = "nodebox",
	node_box = {
		type = "fixed",
		fixed = {

			{-1/16, -5/16, -1/16, 1/16, 8/16, 1/16}, -- heat plume
			{ 2/16, -8/16, -8/16, 8/16, -6/16, -2/16}, -- base
			{-8/16, -8/16, -8/16, -2/16, -6/16, -2/16}, -- base
			{-3/16, -8/16, 2/16, 3/16, -6/16, 8/16}, -- base

			{-7/16, -6/16 ,-7/16 , -6/16,  1/16, -6/16 }, -- bottle 1
			{-6/16, -6/16 ,-6/16 , -5/16,  3/16, -5/16 }, -- bottle 1
			{-5/16, -6/16 ,-5/16 , -4/16,  3/16, -4/16 }, -- bottle 1
			{-4/16, -6/16 ,-4/16 , -3/16,  3/16, -3/16 }, -- bottle 1
			{-3/16, -6/16 ,-3/16 , -2/16,  1/16, -2/16 }, -- bottle 1

			{-5/16, 3/16 ,-5/16 , -4/16,  7/16, -4/16 }, -- line 1
			{-4/16, 6/16 ,-4/16 , -3/16,  8/16, -3/16 }, -- line 1
			{-3/16, 7/16 ,-3/16 , -2/16,  8/16, -2/16 }, -- line 1
			{-2/16, 7/16 ,-2/16 , -1/16,  8/16, -1/16 }, -- line 1


			{7/16, -6/16 ,-7/16 , 6/16,  1/16, -6/16 }, -- bottle 2
			{6/16, -6/16 ,-6/16 , 5/16,  3/16, -5/16 }, -- bottle 2
			{5/16, -6/16 ,-5/16 , 4/16,  3/16, -4/16 }, -- bottle 2
			{4/16, -6/16 ,-4/16 , 3/16,  3/16, -3/16 }, -- bottle 2
			{3/16, -6/16 ,-3/16 , 2/16,  1/16, -2/16 }, -- bottle 2

			{5/16, 3/16 ,-5/16 ,4/16,  7/16, -4/16 }, -- line 2
			{4/16, 6/16 ,-4/16 ,3/16,  8/16, -3/16 }, -- line 2
			{3/16, 7/16 ,-3/16 ,2/16,  8/16, -2/16 }, -- line 2
			{2/16, 7/16 ,-2/16 ,1/16,  8/16, -1/16 }, -- line 2

			{0/16, -6/16 , 2/16 , 1/16, 1/16, 7/16 }, -- bottle 3
			{0/16, 1/16 , 3/16 , 1/16,  3/16, 6/16 }, -- bottle 3

			{0/16, 7/16 , 1/16 , 1/16, 8/16, 3/16 }, -- line 3
			{0/16, 6/16 , 3/16 , 1/16, 7/16, 5/16 }, -- line 3
			{0/16, 3/16 , 4/16 , 1/16, 6/16, 5/16 }, -- line 3
		}
	},
	sounds = mcl_sounds.node_sound_metal_defaults(),
	_mcl_blast_resistance = 1,
	_mcl_hardness = 1,
	on_destruct = on_destruct,
	after_dig_node = after_dig,
	allow_metadata_inventory_take = allow_take,
	allow_metadata_inventory_put = allow_put,
	on_metadata_inventory_put = on_put,
	on_metadata_inventory_take = on_take,

	on_construct = function(pos)
		local meta = minetest.get_meta(pos)
		local inv = meta:get_inventory()
		inv:set_size("input", 1)
		inv:set_size("fuel", 1)
		inv:set_size("stand", 3)
		local form = brewing_formspec
		meta:set_string("formspec", form)
	end,

	on_receive_fields = function(pos, formname, fields, sender)
		local sender_name = sender:get_player_name()
		if minetest.is_protected(pos, sender_name) then
			minetest.record_protection_violation(pos, sender_name)
			return
		end
	end,

	on_timer = brewing_stand_timer,
	on_rotate = on_rotate,
})

minetest.register_craft({
	output = "mcl_brewing:stand",
	recipe = {
		{ "", "mcl_mobitems:blaze_rod", "" },
		{ "mcl_core:cobble", "mcl_core:cobble", "mcl_core:cobble" },
	}
})