Advertisement
Guest User

new.lua

a guest
Oct 28th, 2019
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 2.47 KB | None | 0 0
  1. local c = require("component")
  2. local e = require("event")
  3. local t = require("term")
  4. local com = c.computer
  5. local m = c.modem
  6. local gpu = c.gpu
  7. local port = 123
  8. local router = "44827529-209a-4cb6-afdd-2bf536d7cb93"
  9. local running
  10. local Alert = 0
  11. local x, y = gpu.getResolution()
  12.  
  13.  
  14. function msg(_, rAdr, lAdr, _, _, message)
  15.   if message == "on" then
  16.     running = true
  17.   elseif message == "off" then
  18.     running = false
  19.   elseif message == "shutdown" then
  20.     running = false
  21.     event.ignore("modem_message",msg)
  22.     com.beep(750,1)
  23.     os.shutdown()
  24.   end
  25. end
  26.  
  27. if c.isAvailable("modem") then
  28.   print("Modem available")
  29. else
  30.   print("ERROR: NO MODEM")
  31.   os.exit()
  32. end
  33. os.sleep(0.1)
  34. print("Opening port "..port)
  35. os.sleep(0.1)
  36. local ok = m.open(port)
  37. if not ok then
  38.   print("ERROR OPENING PORT")
  39.   m.close(123)
  40.   os.exit()
  41. end
  42. os.sleep(0.1)
  43. print("starting listener")
  44. local ok = e.listen("modem_message",msg)
  45. if not ok then
  46.   print("ERROR STARTING LISTENER")
  47.   e.ignore("modem_message",msg)
  48.   os.exit()
  49. end
  50. os.sleep(0.2)
  51. t.clear()
  52.  
  53. running = true
  54. while running do
  55.   if c.isAvailable("br_reactor") then
  56.     local r = c.br_reactor
  57.     local rStatus = {}
  58.     t.clear()
  59.     rStatus.temp = {"Temp", r.getCasingTemperature()}
  60.     rStatus.fuel = {"Fuel", r.getFuelAmount()}
  61.     rStatus.fuelMax = {"Max Fuel", r.getFuelAmountMax()}
  62.     rStatus.fuelP = {"Fuel level", rStatus.fuel[2]/rStatus.fuelMax[2]*100}
  63.     rStatus.burnRate = {"Burn Rate", r.getFuelConsumedLastTick()}
  64.     rStatus.storedRF = {"Stored Power", r.getEnergyStored()}
  65.     rStatus.maxRF = {"Max RF", 10000000}
  66.     rStatus.RFP = {"Energy level", rStatus.storedRF[2]/rStatus.maxRF[2]*100}
  67.  
  68.     if rStatus.fuelP[2] <= 5 then
  69.       Alert = 3
  70.       m.send(router,port,"LowFuel")
  71.     elseif rStatus.fuelP[2] <= 10 then
  72.       Alert = 2
  73.     elseif rStatus.fuelP[2] <= 20 then
  74.       Alert = 1
  75.     end
  76.  
  77.     if rStatus.RFP[2] < 30 then
  78.       r.setActive(true)
  79.     elseif rStatus.RFP[2] > 80 then
  80.       r.setActive(False)
  81.     end
  82.  
  83.     if Alert > 0 then
  84.       com.beep(700*Alert, 0.1)
  85.       if Alert == 3 then
  86.         break
  87.       end
  88.     end
  89.  
  90.     gpu.set(x/2-8,1,"[REACTOR CONTROL]")
  91.     gpu.set(x/4,3,"Temp: "..rStatus.temp[2].."C")
  92.     gpu.set(x/4,4,"Fuel levels: "..rStatus.fuelP[2].."%")
  93.     gpu.set(x/4,5,"Energy levels: "..rStatus.RFP[2].."%")
  94.     gpu.set(x/4,6,"Burn rate: "..rStatus.burnRate[2])
  95.  
  96.     os.sleep(2)
  97.   else
  98.     t.clear()
  99.     gpu.set(x/2-5,y/2,"[NO SIGNAL]")
  100.     os.sleep(2)
  101.   end
  102. end
  103.  
  104. while not running do
  105.   t.clear()
  106.   gpu.set(x/2-4,y/2,"[OFFLINE]")
  107.   os.sleep(2)
  108. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement