require("inventory") require("pathfinding") function mill(extra_items) go_to(vector.new(-4,0,0),"south") item_count = 0 if turtle.getItemCount() ~= 0 then item_count = 1 end insertForward(1, 1) for _,item in pairs(extra_items) do item_count = item_count + item.count selectItem(item.name) insertForward(1, item.count) end print(item_count,"items") while peripheral.call("front", "getItemDetail", 1) do sleep(0.1) end for i = 2, 10 do takeForward(i) end end function deploy(extra_items, nbt) -- extra_items should only be one item go_to(vector.new(2,0,0), "south") insertDepot(1) goUp() goUp() selectItem(extra_items[1].name, nbt) turtle.dropUp(1) peripheral.call("front", "pullItem", "top") goDown() goDown() takeDepot() end function deploy_tool(extra_items) deploy(extra_items, true) goUp() goUp() peripheral.call("front", "pushItem", "top") turtle.suckUp() end function furnace(extra_items) go_to(vector.new(1,0,0), "south") item_count = 0 if turtle.getItemCount() ~= 0 then item_count = 1 end insertForward(1, 1) for _,item in pairs(extra_items) do item_count = item_count + item.count selectItem(item.name) insertForward(1, item.count) end wait_time = 10 * item_count -- peripheral.call("front", "") -- TODO refuel sleep(wait_time) takeForward(3) end function press(_) go_to(vector.new(-1,0,0), "south") insertDepot(1) sleep(1) takeDepot() end function compact(extra_items) end function mix(extra_items) go_to(vector.new(-3,0,0), "south") insertForward(1, 1) for _, item in pairs(extra_items) do selectItem(item.name) insertForward(nil, item.count) end goUp() goUp() goDown() goDown() sleep(10) -- todo wait until ingredients are gone takeForward(10) end function craft(extra_items) -- for i = 1, 16 do -- if turtle.getItemCount(i) ~= 0 then -- turtle.select(i) -- turtle.drop() -- end -- end local slot = 0 print(len(extra_items), "extra items") for _, item in pairs(extra_items) do slot = slot + 1 if slot == 4 then slot = 5 elseif slot == 8 then slot = 9 end if item.name ~= "nil" then turtle.select(slot) takeItems(item.name, item.count) end end turtle.craft() end return { mill = mill, deploy = deploy, deploy_tool = deploy_tool, furnace = furnace, press = press, compact = compact, mix = mix, craft = craft }