Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- #########################################
- -- auto refuel
- -- version 0.2
- -- http://hevohevo.hatenablog.com/
- -- You should prepare many many fuel items for the lovely turtle.
- -- By default setting (in CC1.6):
- -- Turtle FuelLimit is 10000 (e.g., 125 charcoal)
- -- Advanced Turtle FuelLimit is 100000 (e.g., 1250 charcoal)
- -- #############################
- -- Config
- local suck = turtle.suckDown
- local drop = turtle.dropDown
- -- #############################
- -- Functions
- function myRefuel(goal_level)
- local old_level = turtle.getFuelLevel()
- turtle.refuel(1)
- local new_level = turtle.getFuelLevel()
- if new_level < goal_level then
- local goal_num = (goal_level - new_level)/(new_level - old_level)
- if goal_num > 0 and goal_num <= turtle.getItemCount(turtle.getSelectedSlot()) then
- turtle.refuel(math.floor(goal_num))
- if turtle.getFuelLevel() < goal_level then turtle.refuel(1) end
- else
- turtle.refuel()
- end
- end
- end
- function dropAll()
- for i=1,16 do
- if turtle.getItemCount(i) > 0 then
- turtle.select(i)
- drop()
- end
- end
- end
- -- include({1,2,3}, 2) => true
- function include(tbl, elem)
- for k,v in pairs(tbl) do
- if elem == v then return true end
- end
- return false
- end
- -- #############################
- -- main
- local limit_level = turtle.getFuelLimit()
- -- see ComputerCraft.cfg
- if not limit_level or limit_level == 0 then
- error("no FuelLimit")
- end
- local args = {...}
- local goal_level = limit_level
- if #args == 0 then
- print("FuelLimit is ",limit_level)
- print(turtle.getFuelLevel(),'/',limit_level)
- while true do
- write("\nReally? (y/n): ")
- local str = read()
- if include({"n", "N","no","No","NO"}, str)then
- error("terminated")
- elseif include({"y", "Y","yes","YES","Yes"}, str) then
- break
- end
- end
- else
- goal_level = tonumber(args[1])
- if goal_level > limit_level then
- error("Fuel Limit is "..limit_level)
- end
- end
- turtle.select(1)
- while (goal_level > turtle.getFuelLevel()) and suck() do
- myRefuel(goal_level)
- print(turtle.getFuelLevel(), '/' , goal_level)
- end
- print(turtle.getFuelLevel(), '/' , goal_level)
- dropAll()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement