TheKojent icon

checkFuel V2

TheKojent | PRO | 12/30/14 12:54:31 AM UTC | 0 ⭐ | 328 👁️ | Never ⏰ | []
Lua |

2.52 KB

|

None

|

0 👍

/

0 👎

--[[
More advanced fuel checking program.
]]
 
local count = 0
local refueled = false
 
print("My fuel level is: " .. tostring(turtle.getFuelLevel()))
print("Press E to exit")
print("Press L to refuel using lava")
print("Press C to refuel using coal")
 
while not refueled do
    local event, key = os.pullEvent("char")
    
    if key == "e" then
        print("Exiting script...")
        sleep(.5)
        break
    elseif key == "l" then
        if turtle.getFuelLimit() ~= "unlimited" then    --Figure out how many buckets are needed
            count = (turtle.getFuelLimit() - turtle.getFuelLevel()) / 1000
            print("I need " .. tostring(count) .. " lava buckets")
        else
            print("How many buckets would you like me to collect?")
            local buckets = ""
            while true do
                local event, key = os.pullEvent("char")
                if key == "enter" then
                    if buckets ~= "" then
                        break
                    end
                elseif tonumber(key) then
                    buckets = buckets .. key
                end
            end
            count = tonumber(buckets)
        end
        
        turtle.select(1)
        while true do
            print("Place a bucket in slot 1, then press any key.")
            local event, key = os.pullEvent("char")
            if turtle.getItemCount() ~= 0 then
                local data = turtle.getItemDetail()
                if data.name == "minecraft:bucket" then    --Check if the item is a bucket.
                    if data.count == 1 then
                        break
                    else
                        print("Too many buckets!")
                    end
                else
                    print("Not a bucket!")
                end
            end
            sleep(.5)
        end
        print("Refueling...")
        for i = 1, 2 do
            for j = 1, (count/2 + 1 - math.fmod(count,2)) do    --Round to the nearest whole number
                turtle.forward()
                turtle.placeDown()
                turtle.refuel()
            end
            turtle.turnRight()
            turtle.forward()
            turtle.placeDown()
            turtle.refuel()
            turtle.turnRight()
        end
        refueled = true
    elseif key == "c" then
        if turtle.getFuelLimit() ~= "unlimited" then
            local a = turtle.getFuelLimit() - turtle.getFuelLevel()
            print("I need " .. tostring(a / 80) .. " pieces of coal")
        end
        print("Place fuel in my inventory, then press any key.")
        local event, key = os.pullEvent("char")
        for i = 1,16 do
            turtle.select(i)
            turtle.refuel()
        end
        turtle.select(1)
        refueled = true
    else
        sleep(.5)
    end
end
 
if refueled then
    print("Done refueling!")
    if (turtle.getFuelLimit() ~= "unlimited") and (turtle.getFuelLevel() ~= turtle.getFuelLimit()) then
        print("My new fuel level is: " .. tostring(turtle.getFuelLevel()))
    else
        print("Fuel limit of " .. tostring(turtle.getFuelLimit()) .. " reached!")
    end
end

Comments