-- 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 findFirstItem(target) for i=1,16 do turtle.select(i) if compareItemName(target) then print('Found an target item (' .. target .. ') in slot ' .. i) return i end end return nil end local function findFirstEmptyBucket() return findFirstItem("minecraft:bucket") end local function findFirstLavaBucket() return findFirstItem("minecraft:lava_bucket") end local function returnToBase() print('returing to base') for _ = 1, ForwardCounter do turtle.back() end 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() < ForwardCounter then print('not enough fuel to return. trying to refuel') if not refuel() then print('refulling failed. probably the end of the lava lake. returning to base') returnToBase() break end end if findFirstEmptyBucket() == nil then print('could not find any empty buckets. returning and refilling') returnToBase() despositRefill() else -- try to fill it turtle.placeDown() if compareItemName("minecraft:bucket") then if turtle.forward() then ForwardCounter = ForwardCounter + 1 else returnToBase() end end end end