Advertisement
nikita2007558

Untitled

Feb 4th, 2023 (edited)
1,060
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.51 KB | None | 0 0
  1. local term = require("term")
  2. local component = require("component")
  3. local gpu = component.gpu
  4.  
  5. local itm = {
  6. ["draconium"] = {["tp"] = 4,["tpc"] = 0,["tpi"] = 1},
  7. ["tnt"] = {["tp"] = 1,["tpc"] = 0,["tpi"] = 2},
  8. ["dragonHeart"] = {["tp"] = 1,["tpc"] = 0,["tpi"] = 3},
  9. ["draconicCore"] = {["tp"] = 16,["tpc"] = 0,["tpi"] = 4},
  10.  
  11. }
  12.  
  13. local side
  14.  
  15. local sides = {}
  16. sides[1] = {["name"] = "NORTH", ["ru"] = "СЕВЕР"}
  17. sides[2] = {["name"] = "SOUTH", ["ru"] = "ЮГ"}
  18. sides[3] = {["name"] = "WEST", ["ru"] = "ЗАПАД"}
  19. sides[4] = {["name"] = "EAST", ["ru"] = "ВОСТОК"}
  20.  
  21. local chests = {}
  22. chests[1] = "chest"
  23. chests[2] = "diamond"
  24. chests[3] = "crystal"
  25. chests[4] = "gold"
  26. chests[5] = "iron"
  27. chests[6] = "obsidian"
  28.  
  29. local function getChest()
  30. local ch = 0
  31. for i=1,#chests do
  32. if pcall(com.getPrimary,chests[i]) then
  33. ch = chests[i]
  34. return ch
  35. end
  36. end
  37. if ch == 0 then
  38. print("Ошибка: Сундук не подключен адаптером, либо выбранный сундук не поддерживается программой :(")
  39. end
  40. end
  41.  
  42. local chest = com.getPrimary(getChest())
  43. local maxslot = chest.getInventorySize()
  44.  
  45. local w8 = false
  46. local function sidesCheck()
  47. local incount = 0
  48. local ilast
  49. if not w8 then print("Идет автоматическая настройка") end
  50. for i=1,#sides do
  51. b,n,_ = pcall(chest.pullItem,sides[i].name,1,1,1)
  52. if b == true and n ~= nil then
  53. incount = incount + 1
  54. ilast = i
  55.  
  56. end
  57. end
  58. if incount == 1 then
  59. w8 = false
  60. side = sides[ilast].name
  61. print("Автонастройка успешно завершена, предметы будут отправляться на "..sides[ilast].ru)
  62. return sides[ilast]
  63. elseif incount > 1 then
  64. if not w8 then print("Автоастройка не выполнена (вплотную к сундуку стоят посторонние механизмы)") end
  65. w8 = true
  66. else
  67. if not w8 then print('Автонастройка не выполнена (подключите "принимающий" мэ интерфейс к одной из сторон сундука)') end
  68. w8 = true
  69. end
  70. end
  71.  
  72. local function check()
  73. for k,v in pairs(itm) do
  74. itm[k].tpc = 0
  75. end
  76. local can = false
  77. for i=1,maxslot do
  78. local s = chest.getStackInSlot(i)
  79. if s ~= nil then
  80. if itm[s.name].tpc < itm[s.name].tp then
  81. itm[s.name].i = i
  82. itm[s.name].tpc = itm[s.name].tp
  83. end
  84. end
  85.  
  86. end
  87. if itm.draconium.tpc == 4 and itm.tnt.tpc == 1 and itm.dragonHeart.tpc == 1 and itm.draconicCore.tpc == 16 then
  88. can = true
  89. end
  90. return can
  91. end
  92.  
  93. local function push(it)
  94. while it.tpc > 0 do
  95. it.tpc = it.tpc - chest.pushItem(side, it.i, it.tpc, it.tpi)
  96. os.sleep(0)
  97. end
  98. end
  99.  
  100. local function extract()
  101. local exd = 0
  102. repeat
  103. for i=1,maxslot do
  104. local s = chest.getStackInSlot(i)
  105. if s ~= nil then
  106. if s.name == "draconicBlock" and s.qty >= 4 then
  107. exd = exd + chest.pushItem("UP",i,4,1)
  108. break
  109. end
  110. end
  111. end
  112. until exd == 4
  113. end
  114.  
  115. local function craft()
  116. if check() then
  117. print(gpu.setForeground(0xFF00FF) .. "крафт запущен")
  118. push(itm.draconium)
  119. push(itm.tnt)
  120. push(itm.dragonHeart)
  121. os.sleep(8)
  122. push(itm.draconicCore)
  123. print(gpu.setForeground(0x2E86C1) .. "ожидаю появления пробужденных блоков в сундуке")
  124. extract()
  125. print(gpu.setForeground(0x00FF00) .. "блоки успешно экспортированы")
  126. end
  127. end
  128.  
  129. while sidesCheck() == nil do
  130. os.sleep(0)
  131. end
  132. print("Программа готова к использованию")
  133. while true do
  134. os.sleep(0)
  135. craft()
  136. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement