Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local lampName = "projectred-illumination:lamp"
- local minFuel = 10 -- Minimum fuel threshold
- local validFuel = {
- ["minecraft:coal"] = true,
- ["minecraft:charcoal"] = true,
- ["minecraft:blaze_rod"] = true,
- ["minecraft:coal_block"] = true,
- ["minecraft:lava_bucket"] = true,
- ["minecraft:stick"] = true
- }
- local function findLampSlot()
- for i = 1, 16 do
- local item = turtle.getItemDetail(i)
- if item and item.name == lampName then
- return i
- end
- end
- return nil
- end
- local function autoRefuel()
- if turtle.getFuelLevel() == "unlimited" or turtle.getFuelLevel() >= minFuel then
- return true
- end
- for i = 1, 16 do
- local item = turtle.getItemDetail(i)
- if item and validFuel[item.name] then
- turtle.select(i)
- if turtle.refuel(1) then
- print("Refueled using", item.name)
- return true
- end
- end
- end
- print("No fuel found! Halting.")
- return false
- end
- local function smartForward()
- if turtle.detect() then
- print("Wall detected. Stopping.")
- return false
- end
- if not turtle.forward() then
- print("Failed to move forward. Possibly an entity or world edge.")
- return false
- end
- return true
- end
- -- Main loop
- while true do
- if not autoRefuel() then break end
- if not turtle.detectDown() then
- local slot = findLampSlot()
- if slot then
- turtle.select(slot)
- turtle.placeDown()
- else
- print("No lamps left. Stopping.")
- break
- end
- end
- if not smartForward() then break end
- sleep(0.25)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement