CelticCoder

turtleChest

Nov 15th, 2023 (edited)
124
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 8.20 KB | None | 0 0
  1. local storageBlocks = {
  2.     "minecraft:chest",
  3.     "minecraft:trapped_chest",
  4.     "minecraft:barrel",
  5.     "minecraft:shulker_box",
  6.     "minecraft:white_shulker_box",
  7.     "minecraft:orange_shulker_box",
  8.     "minecraft:magenta_shulker_box",
  9.     "minecraft:light_blue_shulker_box",
  10.     "minecraft:yellow_shulker_box",
  11.     "minecraft:lime_shulker_box",
  12.     "minecraft:pink_shulker_box",
  13.     "minecraft:gray_shulker_box",
  14.     "minecraft:light_gray_shulker_box",
  15.     "minecraft:cyan_shulker_box",
  16.     "minecraft:purple_shulker_box",
  17.     "minecraft:blue_shulker_box",
  18.     "minecraft:brown_shulker_box",
  19.     "minecraft:green_shulker_box",
  20.     "minecraft:red_shulker_box",
  21.     "minecraft:black_shulker_box",
  22.     "minecraft:hopper"
  23. }
  24.  
  25.  
  26. function checkList(list, thing)
  27.     for _, str in ipairs(list) do
  28.         if thing == str then
  29.             return true
  30.         end
  31.     end
  32.     return false
  33. end
  34.  
  35. function stackLimit()
  36.     if turtle.getItemCount() ~= 0 then
  37.         return turtle.getItemCount() + turtle.getItemSpace()
  38.     end
  39.     return 0
  40. end
  41.  
  42. function itemSuckUp()
  43.   local success = turtle.suckUp()
  44.   if not success then
  45.     return nil
  46.   end
  47.  
  48.   local item = turtle.getItemDetail()
  49.   if item then
  50.     return item.name, turtle.getItemCount()
  51.   else
  52.     return nil
  53.   end
  54. end
  55.  
  56. function countCheck(count)
  57.     local itemCount = 0
  58.     for slot = 1, 16 do
  59.         turtle.select(slot)
  60.         local itemQty = turtle.getItemCount()
  61.  
  62.         if itemQty > 0 then
  63.             itemCount = itemCount + itemQty
  64.         end
  65.     end
  66.     return itemCount
  67. end
  68.  
  69. function takeAll()
  70.     if turtle.detect() then
  71.         local success, data = turtle.inspect()
  72.        
  73.         if success then
  74.             if checkList(storageBlocks, data.name) then
  75.                 print("There is a chest in front of the turtle")
  76.                
  77.                 local slotsToFill = 16  
  78.                 for slot = 1, slotsToFill do
  79.                     if turtle.getItemCount(slot) == 0 then
  80.                         if turtle.suck(slot) then
  81.                             print("Took items from slot " .. slot)
  82.                         else
  83.                             print("Error")
  84.                         end
  85.                     end
  86.                 end
  87.                 turtle.select(1)
  88.             else
  89.                 print("There is a block, but it's not a chest")
  90.             end
  91.         else
  92.             print("Failed to inspect")
  93.         end
  94.     else
  95.         print("There's nothing in front of the turtle")
  96.     end
  97. end
  98.  
  99. function takeAllUp()
  100.     if turtle.detect() then
  101.         local success, data = turtle.inspect()
  102.        
  103.         if success then
  104.             if checkList(storageBlocks, data.name) then
  105.                 print("There is a chest in front of the turtle")
  106.              
  107.                 local slotsToFill = 16  -- Number of slots to attempt to fill
  108.                 for slot = 1, slotsToFill do
  109.                     if turtle.getItemCount(slot) == 0 then
  110.                         if turtle.suckUp(slot) then
  111.                             print("Took items from slot " .. slot)
  112.                         else
  113.                             print("Error")
  114.                         end
  115.                     end
  116.                 end
  117.                 turtle.select(1)
  118.             else
  119.                 print("There is a block, but it's not a chest")
  120.             end
  121.         else
  122.             print("Failed to inspect")
  123.         end
  124.     else
  125.         print("There's nothing in front of the turtle")
  126.     end
  127. end
  128.  
  129. function takeAllDown()
  130.     if turtle.detect() then
  131.         local success, data = turtle.inspect()
  132.        
  133.         if success then
  134.             if checkList(storageBlocks, data.name) then
  135.                 print("There is a chest in front of the turtle")
  136.                
  137.                 local slotsToFill = 16  
  138.                 for slot = 1, slotsToFill do
  139.                     if turtle.getItemCount(slot) == 0 then
  140.                         if turtle.suckDown(slot) then
  141.                             print("Took items from slot " .. slot)
  142.                         else
  143.                             print("Error")
  144.                         end
  145.                     end
  146.                 end
  147.                 turtle.select(1)
  148.             else
  149.                 print("There is a block, but it's not a chest")
  150.             end
  151.         else
  152.             print("Failed to inspect")
  153.         end
  154.     else
  155.         print("There's nothing in front of the turtle")
  156.     end
  157. end
  158.  
  159. function insertSome(start)
  160.     if turtle.detect() then
  161.         local success, data = turtle.inspect()
  162.  
  163.         if success then
  164.             if checkList(storageBlocks, data.name) then
  165.                 print("There is a chest in front of the turtle")
  166.                
  167.                 for slot = start, 16 do
  168.                     if slot ~= 1 and turtle.getItemCount(slot) > 0 then
  169.                         turtle.select(slot)
  170.                         turtle.drop()
  171.                         print("Deposited items from slot " .. slot)
  172.                     end
  173.                 end
  174.                 turtle.select(1)
  175.             else
  176.                 print("There is a block, but it's not a chest")
  177.             end
  178.         else
  179.             print("Failed to inspect")
  180.         end
  181.     else
  182.         print("There's nothing in front of the turtle")
  183.     end
  184. end
  185.  
  186. function insertAll()
  187.    
  188.     if turtle.detect() then
  189.         local success, data = turtle.inspect()
  190.        
  191.         if success then
  192.             if checkList(storageBlocks, data.name) then
  193.                 print("There is a chest in front of the turtle")
  194.                
  195.                 for slot = 1, 16 do
  196.                     if turtle.getItemCount(slot) > 0 then
  197.                         turtle.select(slot)
  198.                         turtle.drop()
  199.                         print("Deposited items from slot " .. slot)
  200.                     end
  201.                 end
  202.                 turtle.select(1)
  203.             else
  204.                 print("There is a block, but it's not a chest")
  205.                 return false
  206.             end
  207.         else
  208.             print("Failed to inspect")
  209.             return false
  210.         end
  211.     else
  212.         print("There's nothing in front of the turtle")
  213.         return false
  214.     end
  215. end
  216.  
  217. function insertAllUp()
  218.     if turtle.detect() then
  219.         local success, data = turtle.inspectUp()
  220.        
  221.         if success then
  222.             if checkList(storageBlocks, data.name)then
  223.                 print("There is a chest in front of the turtle")
  224.                
  225.                 for slot = 1, 16 do
  226.                     if turtle.getItemCount(slot) > 0 then
  227.                         turtle.select(slot)
  228.                         if turtle.dropUp() then
  229.                             condition = true
  230.                         else
  231.                             condition = false
  232.                             break
  233.                         end
  234.                         print("Deposited items from slot " .. slot)
  235.                     end
  236.                 end
  237.                 turtle.select(1)
  238.             else
  239.                 print("There is a block, but it's not a chest")
  240.             end
  241.         else
  242.             print("Failed to inspect")
  243.         end
  244.     else
  245.         print("There's nothing in front of the turtle")
  246.     end
  247.     return condition
  248. end
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255. -- takes a starting slot to deposit from. Using 1 deposits the entire inventory, 2 starts from slot 2 onwards
  256. function insertAllDown()
  257.     condition = 0
  258.     if turtle.detect() then
  259.         local success, data = turtle.inspectDown()
  260.        
  261.         if success then
  262.             if checkList(storageBlocks, data.name) then
  263.                 print("There is a chest in front of the turtle")
  264.                
  265.                 for slot = 1, 16 do
  266.                     if turtle.getItemCount(slot) > 0 then
  267.                         turtle.select(slot)
  268.                         if turtle.dropDown() then
  269.                             condition = 1
  270.                         else
  271.                             condition = 2
  272.                         end
  273.                         print("Deposited items from slot " .. slot)
  274.                     end
  275.                 end
  276.                 turtle.select(1)
  277.             else
  278.                 print("There is a block, but it's not a chest")
  279.             end
  280.         else
  281.             print("Failed to inspect")
  282.         end
  283.     else
  284.         print("There's nothing in front of the turtle")
  285.     end
  286.     return condition
  287. end
Add Comment
Please, Sign In to add comment