Sedrowow

Auto Item Smelter (Basic, UNDER 50 LINES)

Sep 4th, 2022
36
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. local efficiency = 8 --the amount of items each fuel item can smelt
  2. local furnaces = 6 --the amount of furnaces the chef has (MAX 8)
  3. local amounts = {}
  4. function selectNext() --selects the next non-empty slot in the turtle and returns true, else returns false
  5.     for i = 1, 16 do
  6.         if turtle.getItemCount(i) ~= 0 then
  7.             turtle.select(i)
  8.             return true
  9.         end
  10.     end
  11.     return false
  12. end
  13. while turtle.suck() do
  14.     for i = 2, furnaces do --get's the ores out of the chest, until chest is empty or has [furnaces] stacks
  15.         table.insert(amounts, 0)
  16.         if not turtle.suck() then break end
  17.     end
  18.     for k, v in pairs(amounts) do --puts the ores it has collected into the furnaces
  19.         turtle.back()
  20.         selectNext()
  21.         amounts[k] = turtle.getItemCount()
  22.         turtle.dropDown()
  23.     end
  24.     while turtle.forward() do end --resets to the chest location
  25.     turtle.select(1)
  26.     turtle.down()
  27.     for k, v in pairs(amounts) do
  28.         turtle.suck(math.ceil(v/efficiency)) --sucks out of the coal chest how much fuel it needs
  29.     end
  30.     turtle.down()
  31.     local biggestStack = 0
  32.     for k, v in pairs(amounts) do
  33.         if v > biggestStack then --calculates the size of the biggest stack
  34.             biggestStack = v
  35.         end
  36.         turtle.back()
  37.         selectNext()
  38.         turtle.dropUp(math.ceil(v/efficiency)) --puts the correct amount of fuel into each furnace
  39.     end
  40.     sleep(biggestStack*10) --waits for the biggest stack to be done
  41.     for k, v in pairs(amounts) do --collects all the items
  42.         turtle.suckUp()
  43.         turtle.forward()
  44.     end
  45.     while selectNext() do turtle.drop() end
  46.     turtle.up()
  47.     turtle.up()
  48.     turtle.select(1)
  49. end
Add Comment
Please, Sign In to add comment