MigasRocha

MainScreen SecondPage /Reactor Regulator/Computer ID:43

Dec 26th, 2024
10
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 6.75 KB | Gaming | 0 0
  1. modem = peripheral.find("modem")
  2.  
  3. mon = peripheral.find("monitor")
  4.  
  5. mon.clear()
  6.  
  7. ---Next Page---
  8.  
  9. mon.setCursorPos(29,12)
  10. mon.setTextColor(colors.white)
  11. mon.write(">")
  12.  
  13. ---General Title--
  14.  
  15. mon.setCursorPos(8,1)
  16. mon.setTextColor(colors.purple)
  17. mon.write("Reactor Status")
  18.  
  19. --Stats--
  20.  
  21. mon.setCursorPos(1,3)
  22. mon.setTextColor(colors.lightBlue)
  23. mon.write("Reactor Levels")
  24.  
  25. modem.open(3)
  26. modem.open(4)
  27. modem.open(5)
  28. modem.open(6)
  29. modem.open(50)
  30.  
  31.  
  32. function handleModemMessages()
  33.  
  34.     while true do
  35.        
  36.                 local event, _, channel, _, message = os.pullEvent("modem_message")
  37.                    
  38.                 if event == "modem_message" then
  39.                         if  channel == 3 then
  40.                             mon.setCursorPos(3,5)
  41.                             mon.clearLine()
  42.                            
  43.                             local success, decoded = pcall(textutils.unserializeJSON, message)
  44.                            
  45.                             if success and decoded.command == "Coolant" and decoded.value then
  46.                                 local value = tonumber(decoded.value)
  47.                                 if value <= 30 then
  48.                                     mon.setTextColor(colors.red)    -- Critical (0-30)
  49.                                     modem.transmit(50, 50, CoolantCritical)
  50.                                     print("Message Sent to Speaker")
  51.                                 elseif value <= 50 then
  52.                                     mon.setTextColor(colors.orange) -- Low (30-50)
  53.                                 elseif value <= 80 then
  54.                                     mon.setTextColor(colors.yellow) -- Medium (50-80)
  55.                                 else
  56.                                     mon.setTextColor(colors.green)  -- High (80-100)
  57.                                 end
  58.                                
  59.                                 mon.write("Coolant " .. value .. "% (" ..
  60.                                     (value <= 30 and "Critical" or (value <= 50 and "Low" or (value <= 80 and "Medium" or "High"))) .. ")")
  61.                             end
  62.                            
  63.                         elseif channel == 4 then
  64.                             mon.setCursorPos(3,6)
  65.                             mon.clearLine()
  66.                            
  67.                             local success, decoded = pcall(textutils.unserializeJSON, message)
  68.                            
  69.                             if success and decoded.command == "Steam" and decoded.value then
  70.                                 local value = tonumber(decoded.value)
  71.                                 if value <= 30 then
  72.                                     mon.setTextColor(colors.green)    -- Critical (0-30)
  73.                                 elseif value <= 50 then
  74.                                     mon.setTextColor(colors.yellow) -- Low (30-50)
  75.                                 elseif value <= 80 then
  76.                                     mon.setTextColor(colors.orange) -- Medium (50-80)
  77.                                 else
  78.                                     mon.setTextColor(colors.red)  -- High (80-100)
  79.                                 end
  80.                                
  81.                                 mon.write("Steam " .. value .. "% (" ..
  82.                                     (value <= 30 and "Stable" or (value <= 50 and "Slight Increase" or (value <= 80 and "Dangerous" or "CRITICAL"))) .. ")")
  83.                             end
  84.                        
  85.                         elseif channel == 5 then
  86.                             mon.setCursorPos(3,7)
  87.                             mon.clearLine()
  88.                            
  89.                             local success, decoded = pcall(textutils.unserializeJSON, message)
  90.                            
  91.                             if success and decoded.command == "Fuel" and decoded.value then
  92.                                 local value = tonumber(decoded.value)
  93.                                 if value <= 30 then
  94.                                     mon.setTextColor(colors.red)    -- Critical (0-30)
  95.                                 elseif value <= 50 then
  96.                                     mon.setTextColor(colors.orange) -- Low (30-50)
  97.                                 elseif value <= 80 then
  98.                                     mon.setTextColor(colors.yellow) -- Medium (50-80)
  99.                                 else
  100.                                     mon.setTextColor(colors.green)  -- High (80-100)
  101.                                 end
  102.                                
  103.                                 mon.write("Fuel " .. value .. "% (" ..
  104.                                     (value <= 30 and "Critical" or (value <= 50 and "Low" or (value <= 80 and "Medium" or "High"))) .. ")")
  105.                             end
  106.                        
  107.                         elseif channel == 6 then
  108.                             mon.setCursorPos(3,8)
  109.                             mon.clearLine()
  110.                            
  111.                             local success, decoded = pcall(textutils.unserializeJSON, message)
  112.                            
  113.                             if success and decoded.command == "Waste" and decoded.value then
  114.                                 local value = tonumber(decoded.value)
  115.                                 if value <= 30 then
  116.                                     mon.setTextColor(colors.green)    -- Critical (0-30)
  117.                                 elseif value <= 50 then
  118.                                     mon.setTextColor(colors.yellow) -- Low (30-50)
  119.                                 elseif value <= 80 then
  120.                                     mon.setTextColor(colors.orange) -- Medium (50-80)
  121.                                 else
  122.                                     mon.setTextColor(colors.red)  -- High (80-100)
  123.                                 end
  124.                                
  125.                                 mon.write("Nuclear Waste " .. value .. "% (" ..
  126.                                     (value <= 30 and "Stable" or (value <= 50 and "Slight Increase" or (value <= 80 and "Dangerous" or "CRITICAL"))) .. ")")
  127.                             end
  128.                        
  129.                         end
  130.                 end
  131.     end
  132. end
  133.  
  134. function handleMonitorTouch()
  135.  
  136.     while true do
  137.         local touchEvent, touchSide, x, y = os.pullEvent("monitor_touch")
  138.         if touchEvent == "monitor_touch" and x == 29 and y == 12 then
  139.            mon.clear()
  140.            modem.close(3)
  141.            modem.close(4)
  142.            modem.close(5)
  143.            modem.close(6)
  144.            modem.close(50)
  145.            shell.run("teste")
  146.            return
  147.         end      
  148.     end
  149.    
  150. end
  151.  
  152. parallel.waitForAll(handleModemMessages, handleMonitorTouch)
  153.  
Add Comment
Please, Sign In to add comment