Second_Cup

Untitled

Jul 15th, 2025 (edited)
35
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.66 KB | None | 0 0
  1. -- Constants
  2. local MAX_FUEL = 60000
  3.  
  4. local function cleanNonBuckets()
  5. for slot = 1, 16 do
  6. turtle.select(slot)
  7. local item = turtle.getItemDetail()
  8. if item and item.name ~= "minecraft:lava_bucket" and item.name ~= "minecraft:bucket" then
  9. print("Dropping non-bucket item: " .. item.name)
  10. turtle.drop()
  11. end
  12. end
  13. end
  14.  
  15. local function refuelFromLavaBuckets()
  16. local gained = 0
  17. for slot = 1, 16 do
  18. if turtle.getFuelLevel() >= MAX_FUEL then break end
  19. turtle.select(slot)
  20. local item = turtle.getItemDetail()
  21. if item and item.name == "minecraft:lava_bucket" then
  22. local before = turtle.getFuelLevel()
  23. if turtle.refuel() then
  24. local after = turtle.getFuelLevel()
  25. gained = gained + (after - before)
  26. print("Slot " .. slot .. ": +" .. (after - before) .. " fuel (Total: " .. after .. ")")
  27. end
  28. end
  29. end
  30. return gained
  31. end
  32.  
  33. local function returnEmptyBuckets()
  34. -- Stack all empty buckets into slot 16
  35. for slot = 1, 15 do
  36. turtle.select(slot)
  37. local item = turtle.getItemDetail()
  38. if item and item.name == "minecraft:bucket" then
  39. turtle.transferTo(16)
  40. turtle.suck()
  41. end
  42. end
  43.  
  44. -- Drop stacked empty buckets
  45. turtle.select(16)
  46. local toDrop = turtle.getItemCount(16)
  47. if toDrop > 0 then
  48. print("Trying to return " .. toDrop .. " empty bucket(s)...")
  49. while not turtle.drop() do
  50. print("❌ Basin full or blocked. Retrying in 5 seconds...")
  51. sleep(5)
  52. end
  53. print("✅ Dropped " .. toDrop .. " empty bucket(s).")
  54. end
  55. end
  56.  
  57.  
  58. -- Main loop
  59. print("Beginning continuous refuel from basin...")
  60. while turtle.getFuelLevel() < MAX_FUEL do
  61. local currentFuel = turtle.getFuelLevel()
  62.  
  63. -- Delay before checking basin again
  64. print("Waiting 30 seconds for lava supply...")
  65. sleep(30)
  66.  
  67. -- Step 1: Suck lava & buckets from front
  68. local sucked = turtle.suck()
  69. if not sucked then
  70. print("No items pulled. Waiting...")
  71. sleep(2)
  72. end
  73.  
  74. -- Step 2: Clean inventory
  75. cleanNonBuckets()
  76.  
  77. -- Step 3: Refuel
  78. local added = refuelFromLavaBuckets()
  79.  
  80. -- Step 4: Return empty buckets
  81. returnEmptyBuckets()
  82.  
  83. if added == 0 and not sucked then
  84. print("No fuel gained and nothing to pull. Sleeping longer...")
  85. sleep(5)
  86. end
  87.  
  88. print("Current fuel: " .. turtle.getFuelLevel() .. " / " .. MAX_FUEL)
  89. end
  90.  
  91. turtle.select(1)
  92. print("✅ Turtle fully refueled to " .. MAX_FUEL .. ". Done.")
  93.  
Add Comment
Please, Sign In to add comment