Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- Constants
- local MAX_FUEL = 60000
- local function cleanNonBuckets()
- for slot = 1, 16 do
- turtle.select(slot)
- local item = turtle.getItemDetail()
- if item and item.name ~= "minecraft:lava_bucket" and item.name ~= "minecraft:bucket" then
- print("Dropping non-bucket item: " .. item.name)
- turtle.drop()
- end
- end
- end
- local function refuelFromLavaBuckets()
- local gained = 0
- for slot = 1, 16 do
- if turtle.getFuelLevel() >= MAX_FUEL then break end
- turtle.select(slot)
- local item = turtle.getItemDetail()
- if item and item.name == "minecraft:lava_bucket" then
- local before = turtle.getFuelLevel()
- if turtle.refuel() then
- local after = turtle.getFuelLevel()
- gained = gained + (after - before)
- print("Slot " .. slot .. ": +" .. (after - before) .. " fuel (Total: " .. after .. ")")
- end
- end
- end
- return gained
- end
- local function returnEmptyBuckets()
- -- Stack all empty buckets into slot 16
- for slot = 1, 15 do
- turtle.select(slot)
- local item = turtle.getItemDetail()
- if item and item.name == "minecraft:bucket" then
- turtle.transferTo(16)
- turtle.suck()
- end
- end
- -- Drop stacked empty buckets
- turtle.select(16)
- local toDrop = turtle.getItemCount(16)
- if toDrop > 0 then
- print("Trying to return " .. toDrop .. " empty bucket(s)...")
- while not turtle.drop() do
- print("❌ Basin full or blocked. Retrying in 5 seconds...")
- sleep(5)
- end
- print("✅ Dropped " .. toDrop .. " empty bucket(s).")
- end
- end
- -- Main loop
- print("Beginning continuous refuel from basin...")
- while turtle.getFuelLevel() < MAX_FUEL do
- local currentFuel = turtle.getFuelLevel()
- -- Delay before checking basin again
- print("Waiting 30 seconds for lava supply...")
- sleep(30)
- -- Step 1: Suck lava & buckets from front
- local sucked = turtle.suck()
- if not sucked then
- print("No items pulled. Waiting...")
- sleep(2)
- end
- -- Step 2: Clean inventory
- cleanNonBuckets()
- -- Step 3: Refuel
- local added = refuelFromLavaBuckets()
- -- Step 4: Return empty buckets
- returnEmptyBuckets()
- if added == 0 and not sucked then
- print("No fuel gained and nothing to pull. Sleeping longer...")
- sleep(5)
- end
- print("Current fuel: " .. turtle.getFuelLevel() .. " / " .. MAX_FUEL)
- end
- turtle.select(1)
- print("✅ Turtle fully refueled to " .. MAX_FUEL .. ". Done.")
Add Comment
Please, Sign In to add comment