-- general improvements to and abstractions over crafting system
sorcery.craft = {}

-- TODO: extend crafting system prediction &c functions for liquid mixing
-- (this will be a huge amount of work)
local newgrid = function(w,h,zero) 
	local grid = {}
	if zero ~= nil then zero = {} end
	for y=1,h do
		grid[y] = {}
		for x=1,w do grid[y][x] = zero end
	end
end
local dimgrid = function(grid)
	local w = 0
	for i=1,#grid do
		w = math.max(#(grid[i]), w)
	end
	return w, #grid
end
sorcery.craft.register_ingredient_class = function(cl)

end
sorcery.craft.recipes_static = {}
sorcery.craft.recipes_dynamic = {}

sorcery.craft.register_simple = function(spec)
	-- handles only static classes, uses the builtin crafting registry

end

sorcery.craft.register = function(spec)
	-- handles dynamic classes as wel
end
