Advertisement
guitarplayer616

[Refill] schem turtle

Nov 25th, 2016
267
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.53 KB | None | 0 0
  1. function checkIfEnderchest()
  2.     local slot = turtle.getSelectedSlot()
  3.     for i=15,16 do
  4.         turtle.select(i)
  5.         local item = turtle.getItemDetail()
  6.         if item then
  7.             if item.name == "EnderStorage:enderChest" then
  8.                 return true
  9.             end
  10.         end
  11.     end
  12.     turtle.select(slot)
  13. end
  14.  
  15. function scanInv()
  16.         local invList = {}
  17.         for i = 1,16 do
  18.                 turtle.select(i)
  19.                 local item = turtle.getItemDetail()
  20.                 if item then
  21.                         invList[i] = {}
  22.             invList[i][item.name] = item.damage
  23.                 end
  24.         end
  25.         return invList
  26. end
  27.  
  28. function ParseInv()
  29.         turtle.select(16)
  30.         turtle.dropUp()
  31.         while turtle.suck() do
  32.             local item = turtle.getItemDetail()
  33.             if item then
  34.                 if item.name == "minecraft:lava_bucket" or item.name == "minecraft:coal" or item.name == "minecraft:coal_block" then
  35.                     turtle.refuel(64)
  36.                 else
  37.                     for i = 1,16 do
  38.                         if invList[i] then
  39.                             if invList[i][item.name] then
  40.                                 if invList[i][item.name] == item.damage then
  41.                                     turtle.transferTo(i)
  42.                                     break
  43.                                 end
  44.                             end
  45.                         end
  46.                     end
  47.                 end
  48.             end
  49.             turtle.dropUp()
  50.         end
  51. end
  52.  
  53. function refill()
  54.     local enderChest = checkIfEnderchest()
  55.     if enderChest then
  56.         local mem = turtle.getSelectedSlot()
  57.         chester("set")
  58.         ParseInv()
  59.         chester("gather")
  60.         turtle.select(mem)
  61.     end
  62. end
  63.  
  64. function chester(action)
  65.         --action = 'set' or 'gather'
  66.         if action == "set" then
  67.                 turtle.select(tonumber(enderchest1))
  68.                 turtle.place()
  69.                 turtle.select(tonumber(enderchest2))
  70.                 turtle.placeUp()
  71.         elseif action == "gather" then
  72.                 if tonumber(chestOrder) == 1 then
  73.                         turtle.digUp()
  74.                         transferTo(enderchest1)
  75.                         turtle.dig()
  76.                         transferTo(enderchest2)
  77.                         chestOrder = 2
  78.                 elseif tonumber(chestOrder) == 2 then
  79.                         turtle.dig()
  80.                         transferTo(enderchest1)
  81.                         turtle.digUp()
  82.                         transferTo(enderchest2)
  83.                         chestOrder = 1
  84.                 end
  85.         end
  86. end
  87.  
  88. function transferTo(enderchestSlot)
  89.     for i=1,16 do
  90.         turtle.select(i)
  91.         local item = turtle.getItemDetail()
  92.         if item then
  93.             if item.name == "EnderStorage:enderChest" then
  94.                 turtle.transferTo(enderchestSlot)
  95.             end
  96.         end
  97.     end
  98. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement