91 lines
2.0 KiB
Lua
91 lines
2.0 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
|
|
print('item name: ' .. itemDetail.name)
|
|
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
|
|
print('Testing slot for empty bucket: ' .. i)
|
|
if isEmptyBucket() then
|
|
print('Found an empty bucket in slot ' .. i)
|
|
return i
|
|
end
|
|
end
|
|
return nil
|
|
end
|
|
|
|
local function findFirstLavaBucket()
|
|
for i=1,16 do
|
|
turtle.select(i)
|
|
print('Testing slot for lava bucket: ' .. i)
|
|
if isLavaBucket() then
|
|
print('Found a lava bucket in slot ' .. i)
|
|
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 false
|
|
end
|
|
|
|
turtle.select(lava_bucket)
|
|
turtle.refuel()
|
|
return true
|
|
end
|
|
|
|
|
|
ForwardCounter = 0
|
|
|
|
while true do
|
|
if turtle.getFuelLevel() < 1000 then
|
|
if not refuel() 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
|