computercraft/lava-collector

87 lines
1.8 KiB
Lua

-- vi: ft=lua
-- Goal: collect lava using buckets in the nether, deposit the buckets into a fluid transposer that extracts the lava and sends it to a power generator
local function compareItemName(target)
local itemDetail = turtle.getItemDetail()
if itemDetail == nil then
return nil
end
return itemDetail.name == target
end
local function isEmptyBucket()
compareItemName("minecraft:bucket")
end
local function isLavaBucket()
compareItemName("minecraft:lava_bucket")
end
local function findFirstEmptyBucket()
for i=1,16 do
if isEmptyBucket() then
print('Slot' .. i .. 'is an empty bucket')
return i
end
end
return nil
end
local function findFirstLavaBucket()
for i=1,16 do
turtle.select(i)
if isLavaBucket() then
print('Slot' .. i .. 'is an lava bucket')
return i
end
end
return nil
end
local function returnToBase()
print(ForwardCounter)
end
local function despositRefill()
end
local function refuel()
local lava_bucket = findFirstLavaBucket()
if lava_bucket == nil then
return nil
end
turtle.select(lava_bucket)
turtle.refuel()
end
ForwardCounter = 0
while true do
if turtle.getFuelLevel() < 1000 then
if refuel() == nil then
print('refulling failed. probably the end of the lava lake. returning to base')
returnToBase()
break
end
end
local bucket = findFirstEmptyBucket()
if bucket == nil then
print('could not find any empty buckets. returning and refilling')
returnToBase()
despositRefill()
end
turtle.select(bucket)
-- try to fill it
turtle.placeDown()
if isEmptyBucket() then
if turtle.forward() then
ForwardCounter = ForwardCounter + 1
end
end
end