Gallent

Untitled

Mar 18th, 2025
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. local target = peripheral.find("ars_nouveau:imbuement_chamber")
  2. local suck = turtle.suck
  3. local drop = turtle.drop
  4.  
  5. local materials = {
  6. --insert valid ingredients here
  7. ["ars_nouveau:source_gem"]=true
  8. }
  9. local desiredResults = {
  10. --Insert desired results here
  11. ["ars_nouveau:abjuration_essence"] = true,
  12. ["ars_nouveau:conjuration_essence"] = true,
  13. ["ars_nouveau:water_essence"] = true,
  14. ["ars_nouveau:air_essence"] = true,
  15. ["ars_nouveau:earth_essence"] = true,
  16. ["ars_nouveau:fire_essence"] = true,
  17. ["ars_nouveau:manipulation_essence"] = true,
  18. ["ars_elemental:anima_essence"] = true
  19. }
  20.  
  21. local initTable = {
  22. front=function() end,
  23. left=function() turtle.turnLeft() end,
  24. right=function() turtle.turnRight() end,
  25. back=function ()
  26. turtle.turnLeft()
  27. turtle.turnLeft()
  28. end,
  29. top=function ()
  30. suck=turtle.suckUp
  31. drop=turtle.dropUp
  32. end,
  33. bottom=function ()
  34. suck=turtle.suckDown
  35. drop=turtle.dropDown
  36. end
  37. }
  38.  
  39. initTable[peripheral.getName(target)]()
  40.  
  41. local matSlots = {}
  42. for i=1,16 do
  43. if turtle.getItemDetail(i) ~= nil and
  44. (materials[turtle.getItemDetail(i).name])
  45. then
  46. table.insert(matSlots,i)
  47. end
  48. end
  49.  
  50. local resultCell=0
  51. local function emptyCheck()
  52. for i=1,16 do
  53. if turtle.getItemDetail(i) == nil then
  54. if resultCell == 0 then resultCell=i end
  55. elseif (desiredResults[turtle.getItemDetail(i).name] and turtle.getItemDetail(i).count < turtle.getItemDetail(i,true).maxCount) then
  56. resultCell=i
  57. break
  58. end
  59. end
  60. return resultCell
  61. end
  62.  
  63. local function makeItem(currentSlot)
  64. turtle.select(currentSlot)
  65. emptyCheck()
  66.  
  67. while turtle.getItemDetail(currentSlot).count > 0 or target.getItemDetail(1) ~= nil do
  68. if target.getItemDetail(1) ~= nil and not materials[target.getItemDetail(1).name] then
  69. turtle.select(resultCell)
  70. suck(1)
  71. local detail = turtle.getItemDetail(resultCell,true)
  72. if not desiredResults[detail.name] or detail.count==detail.maxCount then emptyCheck() end
  73. turtle.select(currentSlot)
  74. end
  75.  
  76. if target.getItemDetail(1) == nil and turtle.getItemCount(currentSlot) > 0 then drop(1) end
  77. end
  78. end
  79.  
  80. for _,v in pairs(matSlots) do
  81. makeItem(v)
  82. end
Advertisement
Add Comment
Please, Sign In to add comment