UpZone

CC - Fuel

Jun 29th, 2016
67
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.64 KB | None | 0 0
  1. ---------------
  2. -- BY UPZONE --
  3. ---------------
  4.  
  5. os.loadAPI("builder\\apis\\Colors")
  6.  
  7. UNLIMITED_FUEL = -1
  8.  
  9. function getFuelLevel()
  10.     level = turtle.getFuelLevel()
  11.     if level == "unlimited" then
  12.         return UNLIMITED_FUEL
  13.     else
  14.         return level
  15.     end
  16. end
  17.  
  18. function getFuelLimit()
  19.     limit = turtle.getFuelLimit()
  20.     if limit == "unlimited" then
  21.         return UNLIMITED_FUEL
  22.     else
  23.         return limit
  24.     end
  25. end
  26.  
  27. function requestFuel(to, startX, startY)
  28.     -- already enough fuel
  29.     if getFuelLevel() > to then
  30.         return
  31.     end
  32.    
  33.     -- over limit
  34.     if getFuelLimit() ~= UNLIMITED_FUEL and getFuelLimit() < to then
  35.         to = getFuelLimit()
  36.     end
  37.    
  38.     term.setCursorPos(startX, startY)
  39.     term.write("You need to refuel your turtle.")
  40.     term.setCursorPos(startX, startY + 1)
  41.     term.write("Place any fuel source into")
  42.     term.setCursorPos(startX, startY + 2)
  43.     term.write("the inventory to refuel ...")
  44.    
  45.     -- for string formatting
  46.     toFuelStringSize = string.len(tostring(to))
  47.    
  48.     while getFuelLevel() < to do
  49.         term.setCursorPos(startX, startY + 4)
  50.         text = string.format("Fuel: [%0" .. toFuelStringSize .. "d/" .. to .. "]", getFuelLevel())
  51.         term.blit(text, string.rep(Colors.red, string.len(text)), string.rep(Colors.black, string.len(text)))
  52.  
  53.         for i = 1, 16 do
  54.             if turtle.getItemCount(i) > 0 then
  55.                 turtle.select(i)
  56.                 if turtle.refuel(0) then
  57.                     turtle.refuel()
  58.                     break
  59.                 end
  60.             end
  61.         end
  62.     end
  63.     term.setCursorPos(startX, startY + 4)
  64.     text = string.format("Fuel: [%0" .. toFuelStringSize .. "d/" .. to .. "]", getFuelLevel())
  65.     term.blit(text, string.rep(Colors.lime, string.len(text)), string.rep(Colors.black, string.len(text)))
  66.     print("")
  67. end
Advertisement
Add Comment
Please, Sign In to add comment