Advertisement
Tacnuke

reactor control for OC

Sep 16th, 2016
103
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 3.34 KB | None | 0 0
  1. --Big Reactors Control Program for Opencomputers
  2. --By Tacnuke2011
  3. --Thx to MalkContent for helping figure out my recursive nightmare!
  4. --requires
  5.  
  6. local component = require("component")
  7. local term = require("term")
  8. local event = require("event")
  9. local serialization = require("serialization")
  10. local colors = require("colors")
  11. local keyboard = require("keyboard")
  12. --vars
  13.  
  14. local br = component.br_reactor
  15. local gpu = component.gpu
  16. local enMax = 9500000
  17. local enMin = 2000000
  18. local temEn = br.getEnergyStored()
  19. local w, h = gpu.getResolution()
  20.  
  21. --energy check
  22.  
  23. local function power()
  24.     local temEn = br.getEnergyStored()
  25.     if temEn <= enMin then br.setActive(true)
  26.       elseif temEn >= enMax then br.setActive(false)    
  27.     end
  28.    
  29.  
  30.  
  31.  
  32. end
  33.  
  34. --display settings and output
  35.  
  36. local function display()  
  37.  
  38.  
  39.   gpu.setResolution(90, 40)
  40.   gpu.setForeground(0x0040ff)
  41.   gpu.setBackground(0x000000)
  42.  
  43.  
  44.   power()  
  45.  
  46. end
  47.  
  48.  function info()
  49.  
  50.  
  51.   if br.getActive() then
  52.       term.setCursor(54, 10)
  53.       gpu.setForeground(0x000000)
  54.       gpu.setBackground(0x00a500)
  55.       gpu.fill(54, 10, 6, 1, " ")
  56.       term.write("Online")
  57.       term.setCursor(44, 10)
  58.       gpu.setForeground(0x000000)
  59.       gpu.setBackground(0xff0000)
  60.       gpu.fill(44, 10, 7, 1, " ")
  61.       term.write("Offline")
  62.  
  63.     elseif not br.getActive() then
  64.       term.setCursor(54, 10)
  65.       gpu.setForeground(0x0040ff)
  66.       gpu.setBackground(0xff0000)
  67.       gpu.fill(54, 10, 6, 1, " ")
  68.       term.write("Online")
  69.       term.setCursor(44, 10)
  70.       gpu.setForeground(0x0040ff)
  71.       gpu.setBackground(0x00a500)
  72.       gpu.fill(44, 10, 7, 1, " ")
  73.       term.write("Offline")
  74.        
  75.   end
  76.  
  77.   local enStor =  math.floor(br.getEnergyStored()/10^5)
  78.   gpu.setForeground(0x0040ff)
  79.   gpu.setBackground(0x000000)
  80.   term.setCursor(29, 10)
  81.   term.write("Reactor Status:")
  82.   term.setCursor(32, 12)
  83.   term.write("Fuel Amount: "..br.getFuelAmount().." mB")
  84.   term.setCursor(31, 13)
  85.   term.write("Waste Amount: "..br.getWasteAmount().. " mB")
  86.   term.setCursor(34, 14)
  87.   term.clearLine()
  88.   term.setCursor(34, 14)
  89.   term.write("RF Stored: "..enStor.."%")
  90.   term.setCursor(30, 15)
  91.   term.clearLine()
  92.   term.setCursor(30, 15)
  93.   term.write("RF Production: " ..math.floor(br.getEnergyProducedLastTick()).. " RF/t")
  94.   term.setCursor(31, 16)
  95.   term.clearLine()
  96.   term.setCursor(31, 16)
  97.   term.write("Casing Temp.: "..math.floor(br.getCasingTemperature()).." C")
  98.   term.setCursor(33, 17)
  99.   term.clearLine()
  100.   term.setCursor(33, 17)
  101.   term.write("Fuel Temp.: "..math.floor(br.getFuelTemperature()).." C")
  102.   term.setCursor(28, 18)
  103.   term.clearLine()
  104.   term.setCursor(28, 18)
  105.   term.write("Fuel Reactivity: "..math.floor(br.getFuelReactivity()).." %")
  106.   term.setCursor(36, 20)
  107.   gpu.setBackground(0x808000)
  108.   gpu.fill(35, 20, 6, 1, " ")
  109.   term.write("Exit")
  110.   display()
  111.    
  112. end
  113.  
  114. --event listener
  115. -- x keypress
  116.  
  117. local run = true
  118.  
  119. local function quitKey(_, _, _, keyCode)
  120.   if keyCode == 45 then
  121.     run = false
  122. else run = true
  123. end
  124. end
  125.  
  126. local function quitTouch(_, _, x, y)
  127.   if x >= 36 and x <= 40 and y == 20 then
  128.     run = false
  129.   end
  130. end
  131.  
  132. --main loop
  133.  
  134. event.listen("key_down", quitKey)
  135. event.listen("touch", quitTouch)
  136. term.clear()
  137. while run do
  138.   os.sleep(.5)
  139.   info()
  140. end
  141.  
  142. event.ignore("key_down", quitKey)
  143. event.ignore("touch", quitTouch)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement