trainworld_computercraft/computer/3/mine.lua
2025-05-28 02:37:55 +02:00

79 lines
1.8 KiB
Lua

im = require("inventorymanager")
local height = 0
function mineLayer()
rednet.broadcast("i can halt now")
id, messages = rednet.receive(nil, 5)
if messages == "halt" then
print("was ordered to stop")
return false
end
if turtle.getFuelLevel() < 500 then
print("too tired to mine")
return false
end
local slots = 0
for i = 1,16 do
if turtle.getItemCount(i) == 0 then
slots = slots +1
end
end
if slots < 8 then
print("not confident i can pick it all up :(")
return false
end
status = "dropping down"
print(status)
while turtle.down() do
height = height+1
end
turtle.digDown()
turtle.down()
height = height+1
status = "mining layer:"..height
print(status)
for i = 1,16 do
for j = 1,15 do
hit, below = turtle.inspectDown()
if below.name == "minecraft:water" then
im.pull("minecraft:cobblestone")
turtle.placeDown()
end
turtle.dig()
turtle.forward()
end
if( math.mod(i,2) == 0) then
turtle.turnLeft()
turtle.dig()
turtle.placeDown()
turtle.forward()
turtle.turnLeft()
else
turtle.turnRight()
turtle.dig()
turtle.placeDown()
turtle.forward()
turtle.turnRight()
end
end
turtle.turnLeft()
for i = 1,16 do
turtle.forward()
end
turtle.turnRight()
return true
end
function gohome()
status = "resurfacing"
print(status)
for i = 1,height do
turtle.up()
end
turtle.back()
end
turtle.forward()
while mineLayer() do
end
gohome()