-- 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() return compareItemName("minecraft:bucket") end local function isLavaBucket() return compareItemName("minecraft:lava_bucket") end local function findFirstEmptyBucket() for i=1,16 do 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) 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() else turtle.select(bucket) -- try to fill it turtle.placeDown() if isEmptyBucket() then if turtle.forward() then ForwardCounter = ForwardCounter + 1 end end end end