rollton

[OLD] Авто выставление схемы [x2]

Oct 10th, 2017
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.73 KB | None | 0 0
  1. local computer, component = computer or require"computer", component or require"component"
  2.  
  3. if not print then print=function()end end
  4.  
  5. function chekDatabase() for _ in component.list("database") do return false end return true end
  6. while chekDatabase() do print("Отсутствует база данных") computer.beep(600,0.4) computer.pullSignal(2) end
  7.  
  8. local inv = component.proxy(component.list("inventory_controller")())
  9. local db = component.proxy(component.list("database")())
  10.  
  11. local maxSlot = inv.getInventorySize(1)
  12. if not maxSlot then print("Сундук сверху не найден") computer.beep(1000,0.4) os.exit() end
  13.  
  14. function itemsChest()
  15.     local items = {}
  16.     for j = 1, maxSlot do
  17.         slot = inv.getStackInSlot(1,j)
  18.         if slot then
  19.             if not items[slot.name] then items[slot.name] = {} end
  20.             items[slot.name][#items[slot.name]+1] = j
  21.         end
  22.     end
  23.     return items
  24. end
  25.  
  26. local slots = itemsChest()
  27.  
  28. local size = inv.getInventorySize(3)-4 -- Размер реактора. ( -4 , потому что есть скрытые слоты по углам )
  29.  
  30. for i = 1, size do
  31.     if not inv.getStackInSlot(3,i) then
  32.         local itemDB = db.get( i + ( math.ceil( i / (size/6) ) - 1 ) * ( 9 - (size/6) ) ) -- для случая если слоты реактора не совпадают со слотами бд
  33.         if itemDB then
  34.             repeat
  35.                 local item = slots[itemDB.name]
  36.                 if item and #item ~= 0 then
  37.                     inv.suckFromSlot(1,item[#item])
  38.                     item[#item] = nil
  39.                     break
  40.                 else
  41.                     print(itemDB.label.." не найден") computer.pullSignal(1)
  42.                     computer.beep(800,0.4)
  43.                     slots = itemsChest()
  44.                 end
  45.             until false
  46.         end
  47.         inv.dropIntoSlot(3,i)
  48.     end
  49. end
  50.  
  51. print(" Mission Completed! \n    respect +")
Add Comment
Please, Sign In to add comment