hunter3216

inscriber.lua

Mar 13th, 2023 (edited)
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.10 KB | None | 0 0
  1. os.loadAPI("APIs/storage.lua")
  2.  
  3. -- I have to do this nonsense so that VSCode knows about storage.lua
  4. pcall(function()
  5. storage = require("storage.lua")
  6. end)
  7.  
  8. local inscriberSide = "left"
  9. local inputSide = "right"
  10. local outputSide = "top"
  11.  
  12. local inscriber = peripheral.wrap(inscriberSide)
  13. local inputChest = peripheral.wrap(inputSide)
  14. local outputChest = peripheral.wrap(outputSide)
  15.  
  16. local inscriberSlots = {1, 3, 2}
  17.  
  18. items = {
  19. ["au"] = "minecraft:gold_ingot",
  20. ["di"] = "minecraft:diamond",
  21. ["si"] = "emendatusenigmatica:silicon_gem",
  22. ["cp"] = "appliedenergistics2:calculation_processor_press",
  23. ["ep"] = "appliedenergistics2:engineering_processor_press",
  24. ["lp"] = "appliedenergistics2:logic_processor_press",
  25. ["pq"] = "appliedenergistics2:purified_certus_quartz_crystal",
  26. ["pc"] = "appliedenergistics2:printed_calculation_processor",
  27. ["pe"] = "appliedenergistics2:printed_engineering_processor",
  28. ["pl"] = "appliedenergistics2:printed_logic_processor",
  29. ["rs"] = "extendedcrafting:redstone_component"
  30. }
  31.  
  32. recipes = {
  33. {"pe", "rs", "si"},
  34. {"ep", "di"},
  35. {"pl", "rs", "si"},
  36. {"lp", "au"},
  37. {"pc", "rs", "si"},
  38. {"cp", "pq"}
  39. }
  40.  
  41.  
  42. function craft(v)
  43. local slots = {}
  44. local num = #v
  45. for i = 1, num do
  46. slots[i] = storage.searchInv(inputChest, items[v[i]])
  47. if slots[i] == nil then
  48. return false
  49. end
  50. end
  51.  
  52.  
  53. for i = 1, num do
  54. inputChest.pushItems(inscriberSide, slots[i][1], 1, inscriberSlots[i])
  55. end
  56.  
  57. while inscriber.getItemDetail(4) == nil do sleep(0) end
  58. if num == 2 then
  59. inputChest.pullItems(inscriberSide, inscriberSlots[1])
  60. end
  61. outputChest.pullItems(inscriberSide, 4)
  62. return true
  63.  
  64. end
  65.  
  66.  
  67.  
  68. function cleanUp()
  69. inputChest.pullItems(inscriberSide, 4)
  70. inputChest.pullItems(inscriberSide,1)
  71. inputChest.pullItems(inscriberSide,2)
  72. inputChest.pullItems(inscriberSide,3)
  73. end
  74.  
  75. cleanUp()
  76. while true do
  77. for k,v in pairs(recipes) do
  78. while(craft(v)) do
  79.  
  80. end
  81. end
  82. os.sleep(1)
  83. end
Add Comment
Please, Sign In to add comment