Advertisement
makmoud98

Untitled

Feb 28th, 2017
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.14 KB | None | 0 0
  1. ITEMS = {"IC2:itemUran235small", "IC2:itemUran238"}
  2.  
  3. CRAFT = {ITEMS[2], ITEMS[2], ITEMS[2], 0,
  4. ITEMS[1], ITEMS[1], ITEMS[1], 0,
  5. ITEMS[2], ITEMS[2], ITEMS[2], 0,
  6. 0, 0, 0, 0}
  7.  
  8. function craft()
  9. for j=1,16 do
  10. print('fixing slot ' .. j)
  11. turtle.select(j)
  12. local name = CRAFT[j]
  13. if name ~= 0 then
  14. local sum = 0
  15. local matches = {}
  16. for i=1,16 do
  17. local data = turtle.getItemDetail(i)
  18. if data and data.name == CRAFT[j] then
  19. sum = sum + data.count
  20. matches[#matches+1] = i
  21. end
  22. end
  23. local slots = 0
  24. for i=1,16 do
  25. if CRAFT[i] == ITEMS[j] then
  26. slots = slots + 1
  27. end
  28. end
  29. if slots ~= 0 and sum >= slots then
  30. local req = math.floor(sum/slots)
  31. if req > 64 then
  32. req = 64
  33. end
  34. data = turtle.getItemDetail(j)
  35. if data and data.name ~= name then
  36. local success = false
  37. for k=j+1, 16 do
  38. if turtle.transferTo(k) then
  39. success = true
  40. break
  41. end
  42. data = turtle.getItemDetail(j)
  43. end
  44. if not success then
  45. return false
  46. end
  47. end
  48. if data and data.name == name and data.count > req then
  49. local success = false
  50. for k=j+1, 16 do
  51. if turtle.transferTo(k,data.count - req) then
  52. success = true
  53. break
  54. end
  55. data = turtle.getItemDetail(j)
  56. end
  57. if not success then
  58. return false
  59. end
  60. end
  61. for i=1,#matches do
  62. local slot = matches[i]
  63. local quantity = turtle.getItemCount(slot)
  64. turtle.select(slot)
  65. print('getting from slot ' .. slot)
  66. if CRAFT[slot] == name and quantity > req and turtle.transferTo(j, quantity - req) then
  67. data = turtle.getItemDetail(j)
  68. if data and data.count >= req then
  69. break
  70. end
  71. elseif CRAFT[slot] == 0 and turtle.transferTo(j) then
  72. data = turtle.getItemDetail(j)
  73. if data and data.count >= req then
  74. break
  75. end
  76. end
  77. data = turtle.getItemDetail(j)
  78. end
  79. else
  80. return false
  81. end
  82. end
  83. end
  84. return true
  85. end
  86.  
  87. while true do
  88. turtle.suck()
  89. if craft() then
  90. turtle.craft()
  91. end
  92. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement