Advertisement
demon012

ReactorRegulator

Aug 7th, 2013
163
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 1.70 KB | None | 0 0
  1. -- Todo
  2. -- - Write code for alarm.
  3. -- For use with http://www.talonfiremage.pwp.blueyonder.co.uk/v3/reactorplanner.html?21p7gt721nc1rlniiwup3u8mge15p7ok6nzx3dm9lx4a017gypeys5qjxtmtrlpa5vaaiko7uk9cpa8
  4. os.loadAPI('/ocs/apis/sensor')
  5.  
  6. Reactor = {--{{{
  7.     powerOnSide = 'back',
  8.     onSignal = true,
  9. }--}}}
  10.  
  11. function Reactor:powerOn()--{{{
  12.     rs.setOutput(self.powerOnSide, self.onSignal)
  13. end--}}}
  14.  
  15. function Reactor:powerOff()--{{{
  16.     rs.setOutput(self.powerOnSide, not self.onSignal)
  17. end--}}}
  18.  
  19. function Reactor:getOn()--{{{
  20.     if rs.getOutput("back") == self.onSignal then
  21.         return true
  22.     else
  23.         return false
  24.     end
  25. end--}}}
  26.  
  27. Sensor = {--{{{
  28.     sensor = sensor.wrap("top")
  29. }--}}}
  30.  
  31. function Sensor:getMFSPerc(target)--{{{
  32.     return self.sensor.getTargetDetails(target)['StoredPercentage']
  33. end--}}}
  34.  
  35. ReactorRegulator = {--{{{
  36.     sensor = Sensor,
  37.     reactor = Reactor,
  38.     mfsCoords = "-3,-1,3",
  39.     pollTime = 10,
  40. }--}}}
  41.  
  42. function ReactorRegulator:getMFSPerc()--{{{
  43.     return self.sensor:getMFSPerc(self.mfsCoords)
  44. end--}}}
  45.  
  46. regulator = ReactorRegulator
  47.  
  48. os.startTimer(regulator.pollTime)
  49. while true do
  50.     os.pullEvent('timer')
  51.     mfsperc = regulator:getMFSPerc()
  52.     reactorOn = regulator.reactor:getOn()
  53.     if mfsperc < 10 and not reactorOn then
  54.         print("MFS at " .. tostring(mfsperc) .. "% powering on reactor.")
  55.         regulator.reactor:powerOn()
  56.     elseif mfsperc > 90 and reactorOn then
  57.         -- power off reactor
  58.         print("MFS at " .. tostring(mfsperc) .. "% powering off reactor.")
  59.         regulator.reactor:powerOff()
  60.     else
  61.         print("MFS at " .. tostring(mfsperc) .. ".")
  62.     end
  63.     os.startTimer(regulator.pollTime)
  64. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement