sc3-rom-dump/rom/programs/turtle/refuel.lua

51 lines
1.3 KiB
Lua

-- SPDX-FileCopyrightText: 2017 Daniel Ratcliffe
--
-- SPDX-License-Identifier: LicenseRef-CCPL
if not turtle then
printError("Requires a Turtle")
return
end
local tArgs = { ... }
local nLimit = 1
if #tArgs > 1 then
local programName = arg[0] or fs.getName(shell.getRunningProgram())
print("Usage: " .. programName .. " [number]")
return
elseif #tArgs > 0 then
if tArgs[1] == "all" then
nLimit = nil
else
nLimit = tonumber(tArgs[1])
if not nLimit then
print("Invalid limit, expected a number or \"all\"")
return
end
end
end
if turtle.getFuelLevel() ~= "unlimited" then
for n = 1, 16 do
-- Stop if we've reached the limit, or are fully refuelled.
if nLimit and nLimit <= 0 or turtle.getFuelLevel() >= turtle.getFuelLimit() then
break
end
local nCount = turtle.getItemCount(n)
if nCount > 0 then
turtle.select(n)
if turtle.refuel(nLimit) and nLimit then
local nNewCount = turtle.getItemCount(n)
nLimit = nLimit - (nCount - nNewCount)
end
end
end
print("Fuel level is " .. turtle.getFuelLevel())
if turtle.getFuelLevel() == turtle.getFuelLimit() then
print("Fuel limit reached")
end
else
print("Fuel level is unlimited")
end