Advertisement
makmoud98

Untitled

Feb 28th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.68 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] == name then
  26. slots = slots + 1
  27. end
  28. end
  29. if slots ~= 0 and sum >= slots then
  30. print('sum= ' .. slots)
  31. print('slots= ' .. slots)
  32. req = math.floor(sum/slots)
  33. if req > 64 then
  34. req = 64
  35. end
  36. print('req= ' .. req)
  37. data = turtle.getItemDetail(j)
  38.  
  39. if data and data.name ~= name then
  40. turtle.select(j)
  41. for i=j+1,16 do
  42. local d = turtle.getItemDetail(i)
  43. if not d then
  44. turtle.transferTo(i)
  45. break
  46. elseif d and d.name == name and d.count + data.count <= 64 then
  47. turtle.transferTo(i)
  48. break
  49. end
  50. end
  51. elseif data and data.name == name and data.count < req then
  52. local success = false
  53. for i=1,16 do
  54. local d = turtle.getItemDetail(i)
  55. if d and d.name == name then
  56. if d.name == CRAFT[i] and d.count > req then
  57. turtle.select(i)
  58. turtle.transferTo(j, d.count - req)
  59. elseif d.name ~= CRAFT[i] then
  60. turtle.select(i)
  61. turtle.transferTo(j)
  62. end
  63. end
  64. data = turtle.getItemDetail(j)
  65. if data.count >= req then
  66. success = true
  67. break
  68. end
  69. end
  70. if not success then
  71. print('a, could not transfer enough loot to slot: ' .. j)
  72. return false
  73. end
  74. elseif not data then
  75. local success = false
  76. for i=1,16 do
  77. local d = turtle.getItemDetail(i)
  78. if d and d.name == name then
  79. if d.name == CRAFT[i] and d.count > req then
  80. turtle.select(i)
  81. turtle.transferTo(j, d.count - req)
  82. elseif d.name ~= CRAFT[i] then
  83. turtle.select(i)
  84. turtle.transferTo(j)
  85. end
  86. end
  87. data = turtle.getItemDetail(j)
  88. if data.count >= req then
  89. success = true
  90. break
  91. end
  92. end
  93. if not success then
  94. print('b, could not transfer enough loot to slot: ' .. j)
  95. return false
  96. end
  97. end
  98. else
  99. return false
  100. end
  101. end
  102. end
  103. return true
  104. end
  105.  
  106. while true do
  107. turtle.suck()
  108. if craft() then
  109. print('true!!!!')
  110. turtle.craft()
  111. end
  112. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement