Advertisement
praetorianer777

ReactorControl - BigReactors

Nov 8th, 2014
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 4.81 KB | None | 0 0
  1. function round(num, idp)
  2.   local mult = 10^(idp or 0)
  3.   return math.floor(num * mult + 0.5) / mult
  4. end
  5.  
  6. local reactor = peripheral.wrap("BigReactors-Reactor_0")
  7. local monitor = peripheral.wrap("top")
  8. local energystored = 0
  9. local puffer = 0
  10. local max = 10000000
  11. local maxtemp = 2000
  12. local i = 0
  13. local zeile = 1
  14. local timeout = os.startTimer(1)
  15. local x = 0
  16. local y = 0
  17.  
  18. monitor.clear()
  19. monitor.setTextScale(1)
  20. if reactor.getConnected() == true then
  21.   while true do
  22.     zeile = 1
  23.     sleep(0.5)
  24.     monitor.clear()
  25.     monitor.setCursorPos(1,zeile)
  26.     zeile = zeile + 1
  27.     if reactor.getActive() then
  28.       monitor.setTextColor(colors.green)
  29.       monitor.write("Reaktor aktiv     RF/Tick: ")
  30.       monitor.write(reactor.getEnergyProducedLastTick())
  31.     else
  32.       monitor.setTextColor(colors.red)
  33.       monitor.write("Reaktor inaktiv")
  34.     end
  35.    
  36.     monitor.setTextColor(colors.white)
  37.    
  38.     monitor.setCursorPos(1,zeile)
  39.     zeile = zeile + 1
  40.     monitor.write("Energiepuffer: [")
  41.     puffer = reactor.getEnergyStored()
  42.    
  43.     if energystored > puffer then
  44.       monitor.setTextColor(colors.red)
  45.     else
  46.       monitor.setTextColor(colors.green)  
  47.     end
  48.    
  49.     energystored = puffer
  50.    
  51.     for i = 0,(energystored / max * 10),1 do
  52.       monitor.write(":")
  53.     end
  54.    
  55.     for i = i,10 - (energystored / max * 10),1 do
  56.       monitor.write(" ")
  57.     end    
  58.    
  59.     monitor.setTextColor(colors.white)
  60.     monitor.write("] - ")
  61.     monitor.write(round(energystored / max * 100),2)
  62.    
  63.     if (energystored / max * 10) > 7 then
  64.       reactor.setActive(false)
  65.     end
  66.    
  67.     if (energystored / max * 10) < 2 then
  68.       reactor.setActive(true)
  69.     end
  70.    
  71.     if (reactor.getCasingTemperature() / maxtemp * 10) > 9 then
  72.       reactor.setActive(false)
  73.     end
  74.  
  75.     monitor.setCursorPos(1,zeile)
  76.     monitor.write("C-Temp:        [")
  77.     for i = 0,(reactor.getCasingTemperature() / maxtemp * 10),1 do
  78.       monitor.write(":")
  79.     end
  80.    
  81.     for i = i,10 - (reactor.getCasingTemperature() / maxtemp * 10),1 do
  82.       monitor.write(" ")
  83.     end  
  84.     monitor.write("] - ")
  85.     monitor.write(round(reactor.getCasingTemperature() / maxtemp * 100),2)
  86.     zeile = zeile + 1
  87.  
  88.     monitor.setCursorPos(1,zeile)
  89.     monitor.write("F-Temp:        [")
  90.     for i = 0,(reactor.getFuelTemperature() / maxtemp * 10),1 do
  91.       monitor.write(":")
  92.     end
  93.    
  94.     for i = i,10 - (reactor.getFuelTemperature() / maxtemp * 10),1 do
  95.       monitor.write(" ")
  96.     end
  97.     monitor.write("] - ")
  98.     monitor.write(round(reactor.getFuelTemperature() / maxtemp * 100),2)
  99.     zeile = zeile + 1
  100.    
  101.     monitor.setCursorPos(1,zeile)
  102.     monitor.write("STAB-1 + -   ")
  103.     monitor.write(reactor.getControlRodLevel(1))
  104.     zeile = zeile + 1
  105.     monitor.setCursorPos(1,zeile)
  106.     monitor.write("STAB-2 + -   ")
  107.     monitor.write(reactor.getControlRodLevel(0))
  108.     zeile = zeile + 1    
  109.     monitor.setCursorPos(1,zeile)
  110.     monitor.write("STAB-3 + -   ")
  111.     monitor.write(reactor.getControlRodLevel(2))
  112.     zeile = zeile + 1
  113.     monitor.setCursorPos(1,zeile)
  114.     monitor.write("STAB-4 + -   ")
  115.     monitor.write(reactor.getControlRodLevel(3))
  116.     zeile = zeile + 1
  117.     monitor.setCursorPos(1,zeile)
  118.     monitor.write("STAB-5 + -   ")
  119.     monitor.write(reactor.getControlRodLevel(4))
  120.     zeile = zeile + 1
  121.  
  122.  
  123.     timeout = os.startTimer(1)
  124.     local event = {os.pullEvent()}
  125.     if event[1] == "monitor_touch" then
  126.       x = event[3]
  127.       y = event[4]
  128.     elseif event[1] == "timer" and event[2] == timeout then
  129.      
  130.     end
  131.    
  132.     if y == 5 and x == 8 then
  133.       reactor.setControlRodLevel(1,reactor.getControlRodLevel(1)+5)
  134.     end
  135.     if y == 5 and x == 10 then
  136.       reactor.setControlRodLevel(1,reactor.getControlRodLevel(1)-5)
  137.     end
  138.  
  139.     if y == 6 and x == 8 then
  140.       reactor.setControlRodLevel(0,reactor.getControlRodLevel(0)+5)
  141.     end
  142.     if y == 6 and x == 10 then
  143.       reactor.setControlRodLevel(0,reactor.getControlRodLevel(0)-5)
  144.     end
  145.  
  146.     if y == 7 and x == 8 then
  147.       reactor.setControlRodLevel(2,reactor.getControlRodLevel(2)+5)
  148.     end
  149.     if y == 7 and x == 10 then
  150.       reactor.setControlRodLevel(2,reactor.getControlRodLevel(2)-5)
  151.     end
  152.  
  153.     if y == 8 and x == 8 then
  154.       reactor.setControlRodLevel(3,reactor.getControlRodLevel(3)+5)
  155.     end
  156.     if y == 8 and x == 10 then
  157.       reactor.setControlRodLevel(3,reactor.getControlRodLevel(3)-5)
  158.     end
  159.  
  160.     if y == 9 and x == 8 then
  161.       reactor.setControlRodLevel(4,reactor.getControlRodLevel(4)+5)
  162.     end
  163.     if y == 9 and x == 10 then
  164.       reactor.setControlRodLevel(4,reactor.getControlRodLevel(4)-5)
  165.     end
  166.    
  167.     x = 0
  168.     y = 0    
  169.     if redstone.getInput("bottom") then
  170.       reactor.setAllControlRodLevels(100)
  171.       reactor.setActive(false)
  172.     end
  173.    
  174.   end
  175. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement