Index: disassembly.lua ================================================================== --- disassembly.lua +++ disassembly.lua @@ -37,16 +37,23 @@ local ink_count = ink:get_count() local maxrecs = math.min(ink_count, paper:get_count(), item:get_count()) if pen:is_empty() then maxrecs = 0 end - - if maxrecs > 0 and sorcery.cookbook.classes.craft.find(item:get_name()) then - local rec = ItemStack{name = 'sorcery:recipe', count = maxrecs} - sorcery.cookbook.setrecipe(rec, 'craft', item:get_name()) - i:set_stack('output',1,rec) - else + local found = false + if maxrecs > 0 then + for _, meth in pairs {'craft','lathe','grind'} do + if sorcery.cookbook.classes[meth].find(item:get_name()) then + local rec = ItemStack{name = 'sorcery:recipe', count = maxrecs} + sorcery.cookbook.setrecipe(rec, meth, item:get_name()) + i:set_stack('output',1,rec) + found = true + break + end + end + end + if not found then i:set_stack('output',1,ItemStack()) end disassembler_formspec(pos) end local dsbox = {