Advertisement
balloonanimal

Big reactor controller (reactor)

Dec 30th, 2014
176
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.48 KB | None | 0 0
  1.  
  2.  
  3. -- Remote Wireless Big Reactor Control(reactor) by Disappearer
  4. -- This program need wireless modem ,normal or advanced computer
  5. -- and computer port in reactor. If you have different setup than
  6. -- one shown on screens edit these four variables below.
  7.  
  8. rednet.open("left") -- side of wireless modem
  9. local reactor = peripheral.wrap("back") -- side or name of computer port
  10. local dataprotocol = "data" -- protocol used to send informations
  11. local powerprotocol = "power" -- protocol used to receive informations
  12.  
  13.  
  14. function reacreceive()
  15. works = reactor.getConnected()
  16. if works == false then
  17. rednet.broadcast(works,dataprotocol)
  18. sleep(0.1)
  19. else
  20. local mytable = {
  21. active = reactor.getActive(),
  22. casingtemp = reactor.getCasingTemperature(),
  23. energylasttick = reactor.getEnergyProducedLastTick(),
  24. energystored = reactor.getEnergyStored(),
  25. fuelamount = reactor.getFuelAmount(),
  26. fuelmax = reactor.getFuelAmountMax(),
  27. fueleatlasttick = reactor.getFuelConsumedLastTick(),
  28. fueltemp = reactor.getFuelTemperature(),
  29. fuelreact = reactor.getFuelReactivity(),
  30. wasteamount = reactor.getWasteAmount(),
  31. rodlevel = reactor.getControlRodLevel(0)
  32. }
  33. rednet.broadcast(mytable,dataprotocol)
  34. sleep(0.1)
  35. end
  36. end
  37.  
  38.  
  39. function reacsend()
  40.  
  41. local id, mes, pro = rednet.receive(powerprotocol,0.1)
  42.  
  43. if mes == "poweron" then
  44.  
  45. if reactor.getActive() == true then
  46. reactor.setActive(false)
  47. elseif reactor.getActive() == false then
  48. reactor.setActive(true)
  49. end
  50.  
  51. end
  52.  
  53. end
  54.  
  55. function reacrod()
  56. local e = reactor.getControlRodLevel(0)
  57. local id, mes, pro = rednet.receive(powerprotocol,0.1)
  58.  
  59. if mes == "minus" then
  60. local e = e+1
  61. reactor.setAllControlRodLevels(e)
  62.  
  63.  
  64. elseif mes == "minusten" then
  65. local e = e+10
  66. reactor.setAllControlRodLevels(e)
  67.  
  68.  
  69. elseif mes == "plusten" then
  70. local e = e-10
  71. reactor.setAllControlRodLevels(e)
  72.  
  73.  
  74. elseif mes == "plus" then
  75. local e = e-1
  76. reactor.setAllControlRodLevels(e)
  77.  
  78. elseif mes == "zero" then
  79. local e = 100
  80. reactor.setAllControlRodLevels(e)
  81.  
  82. elseif mes == "sto" then
  83. local e = 0
  84. reactor.setAllControlRodLevels(e)
  85. end
  86. end
  87.  
  88. while true do
  89. parallel.waitForAll(reacreceive, reacsend,reacrod)
  90. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement