Advertisement
mycosis

Computercraft - Light control

May 29th, 2015
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.23 KB | None | 0 0
  1. -- Vars
  2. rednetSide = "top"
  3. rednetReactor = "BigReactors-Reactor_0"
  4. rednetTurbine = "BigReactors-Turbine_0"
  5. reactorSide = "left" -- Red
  6. turbineSide = "right" -- Orange
  7. greenLight = "bottom"
  8.  
  9. -- Reactor Temperatures
  10. reactorFuelMinTemp = 1025
  11. reactorFuelMaxTemp = 1125
  12. reactorCasingMinTemp = 900
  13. reactorCasingMaxTemp = 1000
  14.  
  15. -- Turbine factors
  16. turbineMinRPM = 1775
  17. turbineMaxRPM = 1825
  18. turbineMaxStoredRF = 50000
  19.  
  20. -- Make sure rednet is open
  21. rednet.close(rednetSide)
  22. rednet.open(rednetSide)
  23.  
  24. -- Initial reactor and turbine status
  25. reactor = peripheral.wrap(rednetReactor)
  26. turbine = peripheral.wrap(rednetTurbine)
  27.  
  28. -- Term status
  29. term.setCursorPos(1,1)
  30. term.clear()
  31. term.write("Light control is running")
  32.  
  33. while true do
  34.     -- Reactor check
  35.     if(reactor.getActive() == true) then
  36.         if(reactor.getFuelTemperature() < reactorFuelMinTemp or reactor.getFuelTemperature() > reactorFuelMaxTemp) then
  37.             reactorOK = false
  38.             if(redstone.getOutput(reactorSide) == false) then
  39.                 redstone.setOutput(reactorSide,true)
  40.             end
  41.         else
  42.             reactorOK = true
  43.             if(redstone.getOutput(reactorSide) == true) then
  44.                 redstone.setOutput(reactorSide,false)
  45.             end
  46.         end
  47.     else
  48.         if(redstone.getOutput(reactorSide) == true) then -- Disable output if its on and reactor is off
  49.             redstone.setOutput(reactorSide,false)
  50.         end
  51.     end
  52.  
  53.     -- Turbine check
  54.     if(turbine.getActive() == true) then
  55.         if(turbine.getEnergyStored() > turbineMaxStoredRF or turbine.getRotorSpeed() < turbineMinRPM or turbine.getRotorSpeed() > turbineMaxRPM) then
  56.             turbineOK = false
  57.             if(redstone.getOutput(turbineSide) == false) then
  58.                 redstone.setOutput(turbineSide,true)
  59.             end
  60.         else
  61.             turbineOK = true
  62.             if(redstone.getOutput(turbineSide) == true) then
  63.                 redstone.setOutput(turbineSide,false)
  64.             end
  65.         end
  66.     else
  67.         if(redstone.getOutput(turbineSide) == true) then -- Disable output if its on and reactor is off
  68.             redstone.setOutput(turbineSide,false)
  69.         end
  70.     end
  71.  
  72.     -- Green light check
  73.     if(reactorOK == true and turbineOK == true) then
  74.         if(redstone.getOutput(greenLight) == false) then
  75.             redstone.setOutput(greenLight,true)
  76.         end
  77.     else
  78.         if(redstone.getOutput(greenLight) == true) then
  79.             redstone.setOutput(greenLight,false)
  80.         end
  81.     end
  82.    
  83.     sleep(5)
  84. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement