Advertisement
Guest User

reactor.lua

a guest
May 24th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.22 KB | None | 0 0
  1. local term = require("term")
  2. local component = require("component")
  3. local os = require("os")
  4. local event = require("event")
  5.  
  6. local reactor = component.br_reactor
  7. local rods = reactor.getNumberOfControlRods()
  8. local cellPerRod = 100 / rods
  9. local gpu = component.gpu
  10. local cell = component.energy_device
  11. local cellState = 1 -- 1 for increasing, -1 for decreasing
  12. local cellLastEnergy = 0
  13. local reactorBuffer = 10000000
  14. local version = "1.2"
  15. local updater = "https://dvd604.pw/shite/reactor.lua"
  16.  
  17.  
  18. function clear()
  19.   gpu.fill(1,1,132,38, " ")
  20.   term.setCursor(1,1)
  21. end
  22.  
  23. function checkUpdates()
  24.   local wm
  25.  
  26.   for address, componentType in component.list("modem") do
  27.     if component.proxy(address).isWireless() then
  28.        wm = component.proxy(address)
  29.     end
  30.   end
  31.  
  32.   print(wm.isWireless())
  33.   wm.open(255)  
  34.   wm.setStrength(20)
  35.   print("Waiting for server response...")
  36.   wm.broadcast(255, version)
  37.   local _,_, from, port, _, message = event.pull("modem_message")
  38.   print("Got message from update server.")
  39.  
  40.   if(message == "true") then
  41.     print("We are up to date")
  42.   else
  43.     print("We are not up to date")
  44.     os.execute("wget " .. updater .. " /home/reactorUpdate.lua")
  45.     os.execute("rm /etc/rc.d/reactor.lua")
  46.     os.execute("mv /home/reactorUpdate.lua /etc/rc.d/reactor.lua")
  47.     os.execute("reboot")
  48.   end
  49.  
  50. end
  51.  
  52.  
  53. function start()
  54.   clear()
  55.   checkUpdates()
  56.   while(1)
  57.   do
  58.     clear()
  59.     print("Reactor Manager v" .. version)
  60.     print("Reactor: " .. reactor.address)
  61.     print("Rods: ".. rods)
  62.  
  63.     for i = 0, rods-1, 1
  64.     do
  65.       print("Rod ".. (i+1).." "..reactor.getControlRodLevel(i))
  66.     end
  67.  
  68.     print("Current Output:" .. math.floor(reactor.getEnergyProducedLastTick()) .. " RF/t")
  69.  
  70.  
  71.     local cellPercentage = ((cell.getEnergyStored() + reactor.getEnergyStored()) /(cell.getMaxEnergyStored() + reactorBuffer) * 100)
  72.  
  73.     print(" ")
  74.     print(" ")
  75.     print("Cell: " .. cell.address)
  76.     print("Cell energy:" .. math.ceil(cellPercentage).. "%")
  77.  
  78.     if cellLastEnergy < cell.getEnergyStored() then
  79.       cellState = -1
  80.       print("Cell State: Discharging")
  81.     else
  82.       cellState = 1
  83.       print("Cell State: Charging")
  84.     end
  85.  
  86.     cellLastEnergy = cell.getEnergyStored()
  87.     reactor.setAllControlRodLevels(cellPercentage)
  88.     os.sleep(2)
  89.   end
  90. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement