trainworld_computercraft/computer/13/machines.lua
2025-05-22 20:51:25 +02:00

111 lines
No EOL
2.1 KiB
Lua

require("inventory")
require("pathfinding")
function mill(extra_items)
-- 0.4 second/item
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")
sleep(0.5)
sleep(0.4 * item_count)
for i = 1, 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")
insertForwardDepot(1)
goUp()
goUp()
selectItem(extra_items[1].name, nbt)
turtle.dropUp(1)
peripheral.call("front", "pullItem", "top")
goDown()
goDown()
takeForwardDepot()
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")
insertForwardDepot(1)
sleep(1)
takeForwardDepot()
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)
slot = 5
for _, item in pairs(extra_items) do
slot = slot + 1
if slot == 9 then
slot = 10
elseif slot == 13 then
slot = 14
end
if item.name ~= "nil" then
selectItem(item.name)
turtle.transferTo(slot, 1)
end
end
turtle.craft()
end
return {
mill = mill,
deploy = deploy,
deploy_tool = deploy_tool,
furnace = furnace,
press = press,
compact = compact,
mix = mix,
craft = craft
}