Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- A replacement refuelling function, it can be passed two arguments.
- -- "silentVar" is boolean to determine if you want it to tell you what it is doing default true.
- -- "check" can be any non nil/false value that will have it only check fuel without actually refuelling.
- -- All iterations will set global fuel level variable, working on making it turtle specific.
- function refuel(silentVar, check)
- local limit = 1000
- local level = tonumber(turtle.getFuelLevel())
- local doCheck = check
- local silent = silentVar
- local fuelNeeded = math.ceil((limit - turtle.getFuelLevel()) / 80) -- Does some math to determine number of fuel items it needs, expects fuel value of 80 gained via mining.
- if (silent == "false") then silent = false; else silent = true; end
- if (doCheck) then -- If you are just checking fuel level wont refuel
- if (not silent) then print("Fuel Level : "..level) end
- fuelLevel = turtle.getFuelLevel() --first set of global fuelLevel variable
- return
- else
- if (level >= limit) then -- If you are already over the limit of fuel will not attempt to get more.
- if (not silent) then print("Fuel level : "..level) end
- fuelLevel = turtle.getFuelLevel()
- return true
- end
- if (not silent) then print("Standby : Beginning refuelling process.") end -- Begins refuelling process.
- for i=1, 16 do
- turtle.select(i)
- if (turtle.refuel(0)) then -- Determines if item in slot is fuel.
- local slotCount = tonumber(turtle.getItemCount(i)) -- If it is fuel counts how many there are.
- if (fuelNeeded > slotCount) then -- If it needs more fuel than is in that slot will just consume all fuel available
- turtle.refuel()
- if (not silent) then print("Consuming "..slotCount.." fuel.") end
- fuelNeeded = math.ceil((limit - turtle.getFuelLevel()) / 80)
- level = turtle.getFuelLevel()
- elseif (fuelNeeded < slotCount) then -- If there is more fuel in the slot than is needed will only consume needed ammount
- turtle.refuel(fuelNeeded)
- if (not silent) then print("Consuming "..fuelNeeded.." fuel.") end
- level = turtle.getFuelLevel()
- end
- end
- if (level >= limit) then -- Checks to see if it has reached its limit if so breaks for loop
- turtle.select(1)
- if (not silent) then print("Refuelling finished.") end
- if (not silent) then print("Fuel level : "..level) end
- fuelLevel = turtle.getFuelLevel()
- return true
- end
- if (i == 16 and level < limit and not turtle.refuel(0)) then
- if (not silent) then print("Not enough fuel available.") end
- if (not silent) then print("Fuel level : "..level) end
- turtle.select(1)
- return false
- end
- end
- end
- end
- local args = {...};
- refuel(args[1],args[2])
Advertisement
Add Comment
Please, Sign In to add comment