Add simple tunnel script

This commit is contained in:
Gabriel Tofvesson 2024-10-03 16:32:19 +02:00
parent 25244a9355
commit 585ad38334

69
tunnel.lua Normal file
View File

@ -0,0 +1,69 @@
local function dig(up)
while up and turtle.inspectUp() do
turtle.digUp()
end
while turtle.inspect() do
turtle.dig()
end
end
local function forward()
while not turtle.forward() do
dig(false)
end
end
local function line(length)
for _=2,length do
forward()
end
end
local function fuelCheck(lineWidth)
return turtle.getFuelLevel() >= (lineWidth * 4)
end
local function awaitRefuel(lineWidth)
repeat
for i=1,16 do
if turtle.getItemCount(i) > 0 then
turtle.select(i)
turtle.refuel()
end
end
until fuelCheck(lineWidth)
end
local args = {...}
local width = #args > 0 and tonumber(args[1])
local startLeft = #args > 1 and #args[2] > 0 and string.lower(args[2]):sub(1,1) == 'l'
local turn, otherTurn = turtle.turnLeft, turtle.turnRight
if not startLeft then
turn, otherTurn = otherTurn, turn
end
-- Width 1 means we're just digging a line
if width == 1 then
turn = function() end
otherTurn = function() end
end
if width < 1 then
error("Width must be at least 1")
end
while true do
if not fuelCheck(width) then
print("I need more fuel")
awaitRefuel()
end
forward()
turn()
line(width)
otherTurn()
turn, otherTurn = otherTurn, turn
end