Advertisement
serafim7

получить все данные о предмете [OpenComputers]

Dec 7th, 2017 (edited)
509
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.92 KB | None
  1. --[[  opencomputers
  2. получить все данные о предмете, возвращаемые контроллером инвентаря в любом слоте робота
  3. тип данных: maxSize, maxCharge, label, maxDamage, size, damadge, name, charge, tier ...
  4.  
  5. требования:
  6. инвентарь, контроллер инвентаря
  7.  
  8. использование:
  9. положить предмет в любой слот робота для получения информации
  10. ]]--
  11.  
  12. local com = require('component')
  13. local term = require('term')
  14. local event = require('event')
  15.  
  16. if not com.isAvailable("robot") then
  17.   print("только роботы могут использовать эту программу")
  18.   os.exit()
  19. end
  20.  
  21. if not com.isAvailable("inventory_controller") then
  22.   print("нет контроллера инвентаря")
  23.   os.exit()
  24. end
  25. local i_c = com.inventory_controller
  26.  
  27. term.clear()
  28. print("положите предмет в инвентарь робота")
  29.  
  30. while true do
  31. local n, slot = event.pull()      
  32.   if n == "inventory_changed" and slot ~= nil then  
  33.     term.clear()
  34.     stack = i_c.getStackInInternalSlot(slot)
  35.     if stack ~= nil then
  36.       for k,v in pairs(stack) do
  37.         print(k.." "..tostring(v))
  38.       end
  39.     else
  40.       print("данных нет ...")
  41.     end
  42.   elseif n == "key_down" then
  43.     term.clear()
  44.     os.exit()
  45.   end
  46. end
  47.  
  48. --[[ ПРИМЕР ИСПОЛЬЗОВАНИЯ :
  49. --определим может ли заряжаться инструмент ( .charge )
  50.  
  51. local r = require("robot")
  52. local com = require('component')
  53. local i_c = com.inventory_controller
  54.  
  55. local function isElectric(slot)
  56.   local device = i_c.getStackInInternalSlot(slot)
  57.   if device.charge ~= nil then
  58.     print("заряжаемый")
  59.   else
  60.     print("не заряжаемый")
  61.   end
  62. end
  63.  
  64. isElectric(1) -- слот номер 1
  65.  
  66. ]]--
Advertisement
RAW Paste Data Copied
Advertisement