Advertisement
RandomRedMage

Nanomachine Control

Apr 24th, 2017
3,520
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 10.78 KB | None | 0 0
  1. --Requirements
  2. local component = require("component")
  3. local gpu = component.gpu
  4. local gui = require("gui")
  5. --Configuration junk
  6. local args = {...}
  7. local prgName = "Nanomachine Control v0.01a"
  8. local version = gui.Version()
  9. local port = 14 --port to communicate to your nanomachines on.
  10.  
  11. if args[1] == "-h" then
  12.   print("Useage: -h : See this help text.")
  13.   print("        -s : Skip Nanomachine innitializationn")
  14.   os.exit()
  15. end
  16.  
  17. --Initialize modem and speak to the nanomachines.
  18. local modem = component.modem
  19.     modem.open(port)
  20.     modem.broadcast(port, "nanomachines", "setResponsePort", port)
  21.  
  22. local function send(command, ...)
  23.   component.modem.broadcast(port, "nanomachines", command, ...)
  24. end
  25.  
  26. --Button Callbacks from myGui
  27.  
  28. function exitCallback(guiID, id)
  29.   local result = gui.getYesNo("", "Do you really want to exit?", "")
  30.   if result == true then
  31.     gui.exit()
  32.   end
  33.   gui.displayGui(myGui)
  34. end
  35.  
  36. function i01_OnCallback(guiID, id)
  37.     gui.setEnable(guiID, id, false)
  38.     gui.setEnable(guiID, i01_Off, true)
  39.     send("setInput", 1, true)
  40. end
  41.  
  42. function i01_OffCallback(guiID, id)
  43.     gui.setEnable(guiID, id, false)
  44.     gui.setEnable(guiID, i01_On, true)
  45.     send("setInput", 1, false)
  46. end
  47.  
  48. function i02_OnCallback(guiID, id)
  49.     gui.setEnable(guiID, id, false)
  50.     gui.setEnable(guiID, i02_Off, true)
  51.     send("setInput", 2, true)
  52. end
  53.  
  54. function i02_OffCallback(guiID, id)
  55.     gui.setEnable(guiID, id, false)
  56.     gui.setEnable(guiID, i02_On, true)
  57.     send("setInput", 2, false)
  58. end
  59.  
  60. function i03_OnCallback(guiID, id)
  61.     gui.setEnable(guiID, id, false)
  62.     gui.setEnable(guiID, i03_Off, true)
  63.     send("setInput", 3, true)
  64. end
  65.  
  66. function i03_OffCallback(guiID, id)
  67.     gui.setEnable(guiID, id, false)
  68.     gui.setEnable(guiID, i03_On, true)
  69.     send("setInput", 3, false)
  70. end
  71.  
  72. function i04_OnCallback(guiID, id)
  73.     gui.setEnable(guiID, id, false)
  74.     gui.setEnable(guiID, i04_Off, true)
  75.     send("setInput", 4, true)
  76. end
  77.  
  78. function i04_OffCallback(guiID, id)
  79.     gui.setEnable(guiID, id, false)
  80.     gui.setEnable(guiID, i04_On, true)
  81.     send("setInput", 4, false)
  82. end
  83.  
  84. function i05_OnCallback(guiID, id)
  85.     gui.setEnable(guiID, id, false)
  86.     gui.setEnable(guiID, i05_Off, true)
  87.     send("setInput", 5, true)
  88. end
  89.  
  90. function i05_OffCallback(guiID, id)
  91.     gui.setEnable(guiID, id, false)
  92.     gui.setEnable(guiID, i05_On, true)
  93.     send("setInput", 5, false)
  94. end
  95.  
  96. function i06_OnCallback(guiID, id)
  97.     gui.setEnable(guiID, id, false)
  98.     gui.setEnable(guiID, i06_Off, true)
  99.     send("setInput", 6, true)
  100. end
  101.  
  102. function i06_OffCallback(guiID, id)
  103.     gui.setEnable(guiID, id, false)
  104.     gui.setEnable(guiID, i06_On, true)
  105.     send("setInput", 6, false)
  106. end
  107.  
  108. function i07_OnCallback(guiID, id)
  109.     gui.setEnable(guiID, id, false)
  110.     gui.setEnable(guiID, i07_Off, true)
  111.     send("setInput", 7, true)
  112. end
  113.  
  114. function i07_OffCallback(guiID, id)
  115.     gui.setEnable(guiID, id, false)
  116.     gui.setEnable(guiID, i07_On, true)
  117.     send("setInput", 7, false)
  118. end
  119.  
  120. function i08_OnCallback(guiID, id)
  121.     gui.setEnable(guiID, id, false)
  122.     gui.setEnable(guiID, i08_Off, true)
  123.     send("setInput", 8, true)
  124. end
  125.  
  126. function i08_OffCallback(guiID, id)
  127.     gui.setEnable(guiID, id, false)
  128.     gui.setEnable(guiID, i08_On, true)
  129.     send("setInput", 8, false)
  130. end
  131.  
  132. function i09_OnCallback(guiID, id)
  133.     gui.setEnable(guiID, id, false)
  134.     gui.setEnable(guiID, i09_Off, true)
  135.     send("setInput", 9, true)
  136. end
  137.  
  138. function i09_OffCallback(guiID, id)
  139.     gui.setEnable(guiID, id, false)
  140.     gui.setEnable(guiID, i09_On, true)
  141.     send("setInput", 9, false)
  142. end
  143.  
  144. function i10_OnCallback(guiID, id)
  145.     gui.setEnable(guiID, id, false)
  146.     gui.setEnable(guiID, i10_Off, true)
  147.     send("setInput", 10, true)
  148. end
  149.  
  150. function i10_OffCallback(guiID, id)
  151.     gui.setEnable(guiID, id, false)
  152.     gui.setEnable(guiID, i10_On, true)
  153.     send("setInput", 10, false)
  154. end
  155.  
  156. function i11_OnCallback(guiID, id)
  157.     gui.setEnable(guiID, id, false)
  158.     gui.setEnable(guiID, i11_Off, true)
  159.     send("setInput", 11, true)
  160. end
  161.  
  162. function i11_OffCallback(guiID, id)
  163.     gui.setEnable(guiID, id, false)
  164.     gui.setEnable(guiID, i11_On, true)
  165.     send("setInput", 11, false)
  166. end
  167.  
  168. function i12_OnCallback(guiID, id)
  169.     gui.setEnable(guiID, id, false)
  170.     gui.setEnable(guiID, i12_Off, true)
  171.     send("setInput", 12, true)
  172. end
  173.  
  174. function i12_OffCallback(guiID, id)
  175.     gui.setEnable(guiID, id, false)
  176.     gui.setEnable(guiID, i12_On, true)
  177.     send("setInput", 12, false)
  178. end
  179.  
  180. function i13_OnCallback(guiID, id)
  181.     gui.setEnable(guiID, id, false)
  182.     gui.setEnable(guiID, i13_Off, true)
  183.     send("setInput", 13, true)
  184. end
  185.  
  186. function i13_OffCallback(guiID, id)
  187.     gui.setEnable(guiID, id, false)
  188.     gui.setEnable(guiID, i13_On, true)
  189.     send("setInput", 13, false)
  190. end
  191.  
  192. function i14_OnCallback(guiID, id)
  193.     gui.setEnable(guiID, id, false)
  194.     gui.setEnable(guiID, i14_Off, true)
  195.     send("setInput", 14, true)
  196. end
  197.  
  198. function i14_OffCallback(guiID, id)
  199.     gui.setEnable(guiID, id, false)
  200.     gui.setEnable(guiID, i14_On, true)
  201.     send("setInput", 14, false)
  202. end
  203.  
  204. function i15_OnCallback(guiID, id)
  205.     gui.setEnable(guiID, id, false)
  206.     gui.setEnable(guiID, i15_Off, true)
  207.     send("setInput", 15, true)
  208. end
  209.  
  210. function i15_OffCallback(guiID, id)
  211.     gui.setEnable(guiID, id, false)
  212.     gui.setEnable(guiID, i15_On, true)
  213.     send("setInput", 15, false)
  214. end
  215.  
  216. function i16_OnCallback(guiID, id)
  217.     gui.setEnable(guiID, id, false)
  218.     gui.setEnable(guiID, i16_Off, true)
  219.     send("setInput", 16, true)
  220. end
  221.  
  222. function i16_OffCallback(guiID, id)
  223.     gui.setEnable(guiID, id, false)
  224.     gui.setEnable(guiID, i16_On, true)
  225.     send("setInput", 16, false)
  226. end
  227.  
  228. function i17_OnCallback(guiID, id)
  229.     gui.setEnable(guiID, id, false)
  230.     gui.setEnable(guiID, i17_Off, true)
  231.     send("setInput", 17, true)
  232. end
  233.  
  234. function i17_OffCallback(guiID, id)
  235.     gui.setEnable(guiID, id, false)
  236.     gui.setEnable(guiID, i17_On, true)
  237.     send("setInput", 17, false)
  238. end
  239.  
  240. function i18_OnCallback(guiID, id)
  241.     gui.setEnable(guiID, id, false)
  242.     gui.setEnable(guiID, i18_Off, true)
  243.     send("setInput", 18, true)
  244. end
  245.  
  246. function i18_OffCallback(guiID, id)
  247.     gui.setEnable(guiID, id, false)
  248.     gui.setEnable(guiID, i18_On, true)
  249.     send("setInput", 18, false)
  250. end
  251.  
  252. function aboutCallback(guiID, id)
  253.     local msg1 = "Nanomachine Control"
  254.     local msg2 = "Version 0.01a"
  255.     local msg3 = "By RandomRedMage"
  256.     gui.showMsg(msg1, msg2, msg3)
  257.     gui.displayGui(myGui)
  258. end
  259.  
  260. function initOver(guiID, id)
  261.     gui.clearScreen()
  262.     gui.displayGui(myGui)
  263.     gui.setTop(prgName)
  264.     gui.setBottom("libGui v" .. version)
  265.     while true do
  266.         gui.runGui(myGui)
  267.     end
  268. end
  269.  
  270. --GUI features.
  271.  
  272. myGui = gui.newGui(2, 2, 78, 23, true, "Main")
  273.  
  274. nanoInfo = gui.newFrame(myGui, 2, 1, 31, 11, "Information.")
  275. label1 = gui.newLabel(myGui, 4, 3, "  Nanomachines son, you can")
  276. label2 = gui.newLabel(myGui, 4, 4, "activate and deactivate the")
  277. label3 = gui.newLabel(myGui, 4, 5, "different  index  positions")
  278. label4 = gui.newLabel(myGui, 4, 6, "to aquire different effects")
  279. label5 = gui.newLabel(myGui, 4, 7, "ranging from Night Vision, ")
  280. label6 = gui.newLabel(myGui, 4, 8, "to fire resistence and more")
  281. label7 = gui.newLabel(myGui, 4, 9, " use at own risk.")
  282.  
  283. i01_On = gui.newButton(myGui, 46, 1, "Input 01 ON", i01_OnCallback)
  284. i01_Off = gui.newButton(myGui, 60, 1, "Input 01 OFF", i01_OffCallback)
  285. gui.setEnable(myGui, i01_Off, false)
  286.  
  287. i02_On = gui.newButton(myGui, 46, 2, "Input 02 ON", i02_OnCallback)
  288. i02_Off = gui.newButton(myGui, 60, 2, "Input 02 OFF", i02_OffCallback)
  289. gui.setEnable(myGui, i02_Off, false)
  290.  
  291. i03_On = gui.newButton(myGui, 46, 3, "Input 03 ON", i03_OnCallback)
  292. i03_Off = gui.newButton(myGui, 60, 3, "Input 03 OFF", i03_OffCallback)
  293. gui.setEnable(myGui, i03_Off, false)
  294.  
  295. i04_On = gui.newButton(myGui, 46, 4, "Input 04 ON", i04_OnCallback)
  296. i04_Off = gui.newButton(myGui, 60, 4, "Input 04 OFF", i04_OffCallback)
  297. gui.setEnable(myGui, i04_Off, false)
  298.  
  299. i05_On = gui.newButton(myGui, 46, 5, "Input 05 ON", i05_OnCallback)
  300. i05_Off = gui.newButton(myGui, 60, 5, "Input 05 OFF", i05_OffCallback)
  301. gui.setEnable(myGui, i05_Off, false)
  302.  
  303. i06_On = gui.newButton(myGui, 46, 6, "Input 06 ON", i06_OnCallback)
  304. i06_Off = gui.newButton(myGui, 60, 6, "Input 06 OFF", i06_OffCallback)
  305. gui.setEnable(myGui, i06_Off, false)
  306.  
  307. i07_On = gui.newButton(myGui, 46, 7, "Input 07 ON", i07_OnCallback)
  308. i07_Off = gui.newButton(myGui, 60, 7, "Input 07 OFF", i07_OffCallback)
  309. gui.setEnable(myGui, i07_Off, false)
  310.  
  311. i08_On = gui.newButton(myGui, 46, 8, "Input 08 ON", i08_OnCallback)
  312. i08_Off = gui.newButton(myGui, 60, 8, "Input 08 OFF", i08_OffCallback)
  313. gui.setEnable(myGui, i08_Off, false)
  314.  
  315. i09_On = gui.newButton(myGui, 46, 9, "Input 09 ON", i09_OnCallback)
  316. i09_Off = gui.newButton(myGui, 60, 9, "Input 09 OFF", i09_OffCallback)
  317. gui.setEnable(myGui, i09_Off, false)
  318.  
  319. i10_On = gui.newButton(myGui, 46, 10, "Input 10 ON", i10_OnCallback)
  320. i10_Off = gui.newButton(myGui, 60, 10, "Input 10 OFF", i10_OffCallback)
  321. gui.setEnable(myGui, i10_Off, false)
  322.  
  323. i11_On = gui.newButton(myGui, 46, 11, "Input 11 ON", i11_OnCallback)
  324. i11_Off = gui.newButton(myGui, 60, 11, "Input 11 OFF", i11_OffCallback)
  325. gui.setEnable(myGui, i11_Off, false)
  326.  
  327. i12_On = gui.newButton(myGui, 46, 12, "Input 12 ON", i12_OnCallback)
  328. i12_Off = gui.newButton(myGui, 60, 12, "Input 12 OFF", i12_OffCallback)
  329. gui.setEnable(myGui, i12_Off, false)
  330.  
  331. i13_On = gui.newButton(myGui, 46, 13, "Input 13 ON", i13_OnCallback)
  332. i13_Off = gui.newButton(myGui, 60, 13, "Input 13 OFF", i13_OffCallback)
  333. gui.setEnable(myGui, i13_Off, false)
  334.  
  335. i14_On = gui.newButton(myGui, 46, 14, "Input 14 ON", i14_OnCallback)
  336. i14_Off = gui.newButton(myGui, 60, 14, "Input 14 OFF", i14_OffCallback)
  337. gui.setEnable(myGui, i14_Off, false)
  338.  
  339. i15_On = gui.newButton(myGui, 46, 15, "Input 15 ON", i15_OnCallback)
  340. i15_Off = gui.newButton(myGui, 60, 15, "Input 15 OFF", i15_OffCallback)
  341. gui.setEnable(myGui, i15_Off, false)
  342.  
  343. i16_On = gui.newButton(myGui, 46, 16, "Input 16 ON", i16_OnCallback)
  344. i16_Off = gui.newButton(myGui, 60, 16, "Input 16 OFF", i16_OffCallback)
  345. gui.setEnable(myGui, i16_Off, false)
  346.  
  347. i17_On = gui.newButton(myGui, 46, 17, "Input 17 ON", i17_OnCallback)
  348. i17_Off = gui.newButton(myGui, 60, 17, "Input 17 OFF", i17_OffCallback)
  349. gui.setEnable(myGui, i17_Off, false)
  350.  
  351. i18_On = gui.newButton(myGui, 46, 18, "Input 18 ON", i18_OnCallback)
  352. i18_Off = gui.newButton(myGui, 60, 18, "Input 18 OFF", i18_OffCallback)
  353. gui.setEnable(myGui, i18_Off, false)
  354.  
  355.  
  356. aboutButton = gui.newButton(myGui, 56, 21, "About", aboutCallback)
  357. exitButton = gui.newButton(myGui, 65, 21, "Exit", exitCallback)
  358.  
  359. initGui = gui.newGui(2, 2, 78, 23, true)
  360. initInfo = gui.newFrame(initGui, 28, 9, 22, 5, "Loading...")
  361. initProgress = gui.newProgress(initGui, "center", 11, 18, 18, 0, initOver, true)
  362.  
  363. -- Starting Point
  364.  
  365. gui.clearScreen()
  366. gui.setTop(prgName)
  367. gui.setBottom("libGui v" .. version)
  368. local counter = 0
  369.  
  370. if args[1] == "-s" then
  371.   counter = 18
  372. end
  373.  
  374. while counter <=18 do
  375.     gui.runGui(initGui)
  376.     counter = counter + 1
  377.     send("setInput", counter, false)
  378.     gui.setValue(initGui, initProgress, counter)
  379.     os.sleep(1)
  380. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement