Advertisement
Guest User

Untitled

a guest
Sep 26th, 2016
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.99 KB | None | 0 0
  1. local c = require('component')
  2.  
  3. -- Javascript-style modules? Okay, why not.
  4. local exports = {}
  5.  
  6. -- Retrieve a handle to the AE2 network
  7. local function me()
  8. if (c.isAvailable('upgrade_me')) then
  9. return c.getPrimary('upgrade_me')
  10. end
  11. if (c.isAvailable('me_controller')) then
  12. return c.getPrimary('me_controller')
  13. end
  14. if (c.isAvailable('me_interface')) then
  15. return c.getPrimary('me_interface')
  16. end
  17. return nil
  18. end
  19. exports.me = me
  20.  
  21. local function getCraftables()
  22. return me().getCraftables()
  23. end
  24. exports.getCraftables = getCraftables
  25.  
  26. local function getCraftablesFiltered(filter)
  27. return me().getCraftables(filter)
  28. end
  29. exports.getCraftablesFiltered = getCraftablesFiltered
  30.  
  31. local function getCraftablesByName(name)
  32. return me().getCraftablesFiltered({name = name})
  33. end
  34. exports.getCraftablesByName = getCraftablesByName
  35.  
  36. local function getCraftableNamesByRegex(nameSelector)
  37. local craftables = getCraftables()
  38. local matches = {}; local n = 0
  39. for k,v in pairs(craftables) do
  40. if type(v) == "table" then
  41. local stack = v.getItemStack()
  42. if string.match(stack.label, nameSelector)
  43. or string.match(stack.name, nameSelector)
  44. then
  45. matches[k] = v
  46. n = n + 1
  47. end
  48. end
  49. end
  50. matches.n = n
  51. return matches
  52. end
  53. exports.getCraftableNameByRegex = getCraftableNameByRegex
  54.  
  55. local function getSingleCraftableNameByRegex(nameSelector)
  56. local matches = getCraftableNamesByRegex(nameSelector)
  57. if matches.n ~= 1 then
  58. local errstring = "More than one craftable item matched your filters."
  59. print(errstring)
  60. print(string.format("SELECTOR: %s", nameSelector))
  61. print("-- MATCHES --")
  62. for k,v in pairs(matches) do
  63. print(string.format(" %s : %s"), tostring(k), tostring(v))
  64. end
  65. error(errstring)
  66. end
  67. return matches[1]
  68. end
  69.  
  70. return exports
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement