red2211

ic_reactor_oc

Apr 8th, 2021 (edited)
147
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 15.70 KB | None | 0 0
  1. --components
  2. local component = require("component")
  3. local event = require("event")
  4. local term = require("term")
  5. local fs = require("filesystem")
  6. local sides = require("sides")
  7. local colors = require("colors")
  8. local computer = require("computer")
  9.  
  10. local gpu = component.gpu
  11. local reactor = component.reactor_chamber
  12. local rs = component.redstone
  13. local w,h = gpu.getResolution()
  14. --components
  15.  
  16. --colors
  17. local black = 0x000000
  18. local red = 0xFF0000
  19. local yellow = 0xFFFF00
  20. local white = 0xffffff
  21. --colors
  22.  
  23. --functions
  24. --centre text
  25. local function centerF(row, msg, ...)
  26.     local mLen = string.len(msg)
  27.     w, h = gpu.getResolution()
  28.     term.setCursor((w - mLen)/2,row)
  29.     print(msg:format(...))
  30. end
  31. --centre text
  32.  
  33. --reactor status
  34. local function status()
  35.     if reactor.getReactorEUOutput() == 0 then
  36.         return "OffLine"
  37.     else
  38.         return "OnLine"
  39.     end
  40. end
  41. --reactor status
  42.  
  43. --reactor max heat
  44. local function maxHeat()
  45.     max_heat = reactor.getMaxHeat() / 100
  46.     max_heat_r = math.floor(max_heat + .5)
  47.     return max_heat_r
  48. end
  49. --reactor max heat
  50.  
  51. --reactor get heat
  52. local function getHeat()
  53.     curr_heat = reactor.getHeat() / 100
  54.     curr_heat_r = math.floor(curr_heat + .5)
  55.     return curr_heat_r
  56. end
  57. --reactor get heat
  58.  
  59. --reactor EU  
  60. local function getEU()
  61.     euout = reactor.getReactorEUOutput()
  62.     euout_r = math.floor(euout + .5)
  63.     return euout_r
  64. end
  65. --reactor EU
  66. --functions
  67.  
  68. term.clear()
  69. term.setCursor(1, 160)
  70.  
  71. centerF(4, "                      -omNMy`                                          `yNd+.                       ")
  72. centerF(5, "                   `+dNMMMMMh`                                        `hMMMMNh/`                    ")
  73. centerF(6, "                 .smMMMMMMMMMd.                                      .dMMMMMMMMmo`                  ")
  74. centerF(7, "               .sNMMMMMMMMMMMMm-                                    -mMMMMMMMMMMMmo`                ")
  75. centerF(8, "             `oNMMMMMMMMMMMMMMMN/                                  :mMMMMMMMMMMMMMMm+`              ")
  76. centerF(9, "            :dMMMMMMMMMMMMMMMMMMN+                                /NMMMMMMMMMMMMMMMMMh-             ")
  77. centerF(10, "          `sNMMMMMMMMMMMMMMMMMMMMMo`                             +NMMMMMMMMMMMMMMMMMMMN+            ")
  78. centerF(11, "         .hMMMMMMMMMMMMMMMMMMMMMMMMy`                           oNMMMMMMMMMMMMMMMMMMMMMMy`          ")
  79. centerF(12, "        -mMMMMMMMMMMMMMMMMMMMMMMMMMMh.                        `sMMMMMMMMMMMMMMMMMMMMMMMMMh.         ")
  80. centerF(13, "       -mMMMMMMMMMMMMMMMMMMMMMMMMMMMMd.                      `yMMMMMMMMMMMMMMMMMMMMMMMMMMMd.        ")
  81. centerF(14, "      .mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm:                    `hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMh`       ")
  82. centerF(15, "     `dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN/                  .dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy       ")
  83. centerF(16, "     sMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN+                -dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM/      ")
  84. centerF(17, "    -NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNh.      `       .dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm`     ")
  85. centerF(18, "    yMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmo.  `-+syhhhys/-`  -sNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMo     ")
  86. centerF(19, "   .NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs.  -smMMMMMMMMMMMdo.  -hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMm`    ")
  87. centerF(20, "   oMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM+  `sMMMMMMMMMMMMMMMMNo   sMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM:    ")
  88. centerF(21, "   hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMo  `dMMMMMMMMMMMMMMMMMMMy   hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMo    ")
  89. centerF(22, "   mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN`  yMMMMMMMMMMMMMMMMMMMMM+  -MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy    ")
  90. centerF(23, "   NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy  `NMMMMMMMMMMMMMMMMMMMMMd   mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMd    ")
  91. centerF(24, "   +oooooooooooooooooooooooooooooo:  `NMMMMMMMMMMMMMMMMMMMMMd   ................................    ")
  92. centerF(25, "                                      hMMMMMMMMMMMMMMMMMMMMMo                                       ")
  93. centerF(26, "                                      .mMMMMMMMMMMMMMMMMMMMh`                                       ")
  94. centerF(27, "                                       .hMMMMMMMMMMMMMMMMMs`                                        ")
  95. centerF(28, "                                         :hNMMMMMMMMMMMNy-                                          ")
  96. centerF(29, "                                           `/sydmmdhyo:`                                            ")
  97. centerF(30, "                                         //.   ````    ./+                                          ")
  98. centerF(31, "                                       `sMMNmhso+++oshmNMMy`                                        ")
  99. centerF(32, "                                      `yMMMMMMMMMMMMMMMMMMMy`                                       ")
  100. centerF(33, "                                     .dMMMMMMMMMMMMMMMMMMMMMh`                                      ")
  101. centerF(34, "                                    -mMMMMMMMMMMMMMMMMMMMMMMMd.                                     ")
  102. centerF(35, "                                   :NMMMMMMMMMMMMMMMMMMMMMMMMMd.                                    ")
  103. centerF(36, "                                  +NMMMMMMMMMMMMMMMMMMMMMMMMMMMm-                                   ")
  104. centerF(37, "                                 oNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN:                                  ")
  105. centerF(38, "                               `sMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN/                                 ")
  106. centerF(39, "                              `hMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMN+                                ")
  107. centerF(40, "                             .dMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM+                               ")
  108. centerF(41, "                            -mMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMo                              ")
  109. centerF(42, "                           :NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMs`                            ")
  110. centerF(43, "                          +NMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMy`                           ")
  111. centerF(44, "                         `smNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNd:                           ")
  112. centerF(45, "                            -/ymNMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMNNds/.                             ")
  113. centerF(46, "                                .:+shmNNMMMMMMMMMMMMMMMMMMMNNmhs/-`                                 ")
  114. centerF(47, "                                      `.:/++osyyyyyyyso+/:-.`                                       ")
  115. gpu.setForeground(red)
  116. centerF(49, "IC2 Reactor Controller")
  117. centerF(50, "by red2211")
  118.  
  119. os.sleep(2)
  120.  
  121. while true do
  122.     if getHeat() <= 50 then
  123.         term.clear()
  124.         term.setCursor(1, 1)
  125.         gpu.setForeground(white)
  126.         rs.setOutput(sides.top, 15)
  127.         centerF(11, "d888888b  .o88b. .d888b.      d8888b. d88888b  .d8b.   .o88b. d888888b  .d88b.  d8888b.")
  128.         centerF(12, "  `88'   d8P  Y8 VP  `8D      88  `8D 88'     d8' `8b d8P  Y8 `~~88~~' .8P  Y8. 88  `8D")
  129.         centerF(13, "   88    8P         odD'      88oobY' 88ooooo 88ooo88 8P         88    88    88 88oobY'")
  130.         centerF(14, "   88    8b       .88'        88`8b   88~~~~~ 88~~~88 8b         88    88    88 88`8b  ")
  131.         centerF(15, "  .88.   Y8b  d8 j88.         88 `88. 88.     88   88 Y8b  d8    88    `8b  d8' 88 `88.")
  132.         centerF(16, "Y888888P  `Y88P' 888888D      88   YD Y88888P YP   YP  `Y88P'    YP     `Y88P'  88   YD")
  133.        
  134.         centerF(18, " .o88b.  .d88b.  d8b   db d888888b d8888b.  .d88b.  db      db      d88888b d8888b.")
  135.         centerF(19, "d8P  Y8 .8P  Y8. 888o  88 `~~88~~' 88  `8D .8P  Y8. 88      88      88'     88  `8D")
  136.         centerF(20, "8P      88    88 88V8o 88    88    88oobY' 88    88 88      88      88ooooo 88oobY'")
  137.         centerF(21, "8b      88    88 88 V8o88    88    88`8b   88    88 88      88      88~~~~~ 88`8b  ")
  138.         centerF(22, "Y8b  d8 `8b  d8' 88  V888    88    88 `88. `8b  d8' 88booo. 88booo. 88.     88 `88.")
  139.         centerF(23, " `Y88P'  `Y88P'  VP   V8P    YP    88   YD  `Y88P'  Y88888P Y88888P Y88888P 88   YD")
  140.        
  141.         centerF(28, string.format("Reactor is: %s", status()))
  142.         centerF(29, string.format("Reactor maxheat: %s", maxHeat()))
  143.         centerF(30, string.format("Reactor heat: %s", getHeat()))
  144.         centerF(31, string.format("Reactor EU Output: %s", getEU()))
  145.    
  146.         gpu.setForeground(white)      
  147.    
  148.         os.sleep(1)
  149.            
  150.     elseif getHeat() >= 50 then
  151.         rs.setOutput(sides.top, 0)
  152.         term.clear()
  153.         term.setCursor(1, 1)
  154.         gpu.setForeground(white)
  155.         while getHeat() >= 50 do
  156.            
  157.             gpu.setForeground(red)
  158.    
  159.             centerF(4, "                                            `:oydddhs/`                                             ")
  160.             centerF(5, "                                          `oNMMMMMMMMMMy                                            ")
  161.             centerF(6, "                                         :NMMMms///ohMMMMo`                                         ")
  162.             centerF(7, "                                        /MMMMo       :mMMMh`                                        ")
  163.             centerF(8, "                                      `oMMMN/          hMMMm.                                       ")
  164.             centerF(9, "                                     `yMMMm:            sMMMN:                                      ")
  165.             centerF(10, "                                    .dMMMh               +MMMM/                                     ")
  166.             centerF(11, "                                    mMMMy                 /NMMMo`                                   ")
  167.             centerF(12, "                                  :NMMMo                   :mMMMy`                                  ")
  168.             centerF(13, "                                 +MMMN+                      dMMMd.                                 ")
  169.             centerF(14, "                               `sMMMm:                        yMMMm                                 ")
  170.             centerF(15, "                              `hMMMd                           oMMMN:                               ")
  171.             centerF(16, "                             .mMMMh                             +NMMM+                              ")
  172.             centerF(17, "                             NMMMs                               /NMMMs`                            ")
  173.             centerF(18, "                           /MMMM+                                 :mMMMy`                           ")
  174.             centerF(19, "                          oMMMN/                                    hMMMd.                          ")
  175.             centerF(20, "                        `yMMMm:                                      yMMMm                          ")
  176.             centerF(21, "                       `dMMMd                                         oMMMN:                        ")
  177.             centerF(22, "                       mMMMy                                           +NMMM+                       ")
  178.             centerF(23, "                     :NMMMo                                             /NMMMs`                     ")
  179.             centerF(24, "                    +MMMN+                                               :mMMMh`                    ")
  180.             centerF(25, "                  `sMMMm:                                                  hMMMd.                   ")
  181.             centerF(26, "                 `hMMMd                                                     yMMMm                   ")
  182.             centerF(27, "                .dMMMh                                                       oMMMN:                 ")
  183.             centerF(28, "                NMMMs                                                         +NMMM+                ")
  184.             centerF(29, "              /NMMM+                                                           /NMMMs`              ")
  185.             centerF(30, "             oMMMN/                                                             :mMMMh`             ")
  186.             centerF(31, "           `yMMMm:                                                                hMMMd.            ")
  187.             centerF(32, "          `hMMMd                                                                   yMMMm            ")
  188.             centerF(33, "         .mMMMy                                                                     oMMMN:          ")
  189.             centerF(34, "        :NMMMo                                                                       +NMMM+         ")
  190.             centerF(35, "       /MMMN+                                                                         /NMMMs`       ")
  191.             centerF(36, "      oMMMm:                                                                           :mMMMy`      ")
  192.             centerF(37, "      MMMN:                                                                              hMMMh`     ")
  193.             centerF(38, "     +MMMy                                                                                dMMM/     ")
  194.             centerF(39, "     .NMMN/                                                                               hMMM+     ")
  195.             centerF(40, "      /NMMMy:                                                                           :sMMMN.     ")
  196.             centerF(41, "        dMMMMNdddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddddmMMMMd       ")
  197.             centerF(42, "         :smMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMmy:        ")
  198.            
  199.             gpu.setForeground(yellow)
  200.            
  201.             centerF(15, "     /d         ")
  202.             centerF(16, "     yMo        ")
  203.             centerF(17, "     hMMy       ")
  204.             centerF(18, "      y:  dMMMm/          ")
  205.             centerF(19, "      NMo NMMMMMo  h:     ")
  206.             centerF(20, "      mMMmMMMMMMM/+MN:    ")
  207.             centerF(21, "      MMMMMMMMMMMmmMMd    ")
  208.             centerF(22, " :   +MMMMMMMMMMMMMMMMo   ")
  209.             centerF(23, "    dh  dMMMMMMMMMMMMMMMMN   /  ")
  210.             centerF(24, "    dMm+MMMMMMMMMMMMMMMMMMo yM/ ")
  211.             centerF(25, "    mMMMMMMMMMMMMhNMMMMMMMmhMMd ")
  212.             centerF(26, "    MMMMMMMMMMMMMo:NMMMMMMMMMMN ")
  213.             centerF(27, " o +MMMMMMMMMMMMMs /MMMMMMMMMMN ")
  214.             centerF(28, " NNmMMMMmMMMmMMMMo  mMMmMMMMMMd ")
  215.             centerF(29, " MMMMMMm NMd mMMM   dMy:MMMMMM: ")
  216.             centerF(30, ":MMMMMMy yMs :mMo   s/  NMMMMm:h")
  217.             centerF(31, ":MMMMyh+  Ns   /       :omMMMMMM")
  218.             centerF(32, " MMMM+    :d             NMMMMMm")
  219.             centerF(33, " hMMMd      :           hMMMMMM/")
  220.             centerF(34, "  mMMMy               :dMMMMMN/ ")
  221.             centerF(35, "   yMMMh:           /yMMMMMms   ")
  222.             centerF(36, "    :ymMMh+      +ymMMNmhs/     ")
  223.             centerF(37, "    :++osssso+++++oooo+++++     ")
  224.             centerF(38, "     //////////////////////     ")
  225.             centerF(44, "Reactor Overheated")
  226.             centerF(45, "Explosion risk")
  227.             centerF(46, "Turning off reactor...")
  228.             computer.beep(500)
  229.             os.sleep(1)
  230.            
  231.             gpu.setForeground(red)
  232.            
  233.             centerF(15, "     /d         ")
  234.             centerF(16, "     yMo        ")
  235.             centerF(17, "     hMMy       ")
  236.             centerF(18, "      y:  dMMMm/          ")
  237.             centerF(19, "      NMo NMMMMMo  h:     ")
  238.             centerF(20, "      mMMmMMMMMMM/+MN:    ")
  239.             centerF(21, "      MMMMMMMMMMMmmMMd    ")
  240.             centerF(22, " :   +MMMMMMMMMMMMMMMMo   ")
  241.             centerF(23, "    dh  dMMMMMMMMMMMMMMMMN   /  ")
  242.             centerF(24, "    dMm+MMMMMMMMMMMMMMMMMMo yM/ ")
  243.             centerF(25, "    mMMMMMMMMMMMMhNMMMMMMMmhMMd ")
  244.             centerF(26, "    MMMMMMMMMMMMMo:NMMMMMMMMMMN ")
  245.             centerF(27, " o +MMMMMMMMMMMMMs /MMMMMMMMMMN ")
  246.             centerF(28, " NNmMMMMmMMMmMMMMo  mMMmMMMMMMd ")
  247.             centerF(29, " MMMMMMm NMd mMMM   dMy:MMMMMM: ")
  248.             centerF(30, ":MMMMMMy yMs :mMo   s/  NMMMMm:h")
  249.             centerF(31, ":MMMMyh+  Ns   /       :omMMMMMM")
  250.             centerF(32, " MMMM+    :d             NMMMMMm")
  251.             centerF(33, " hMMMd      :           hMMMMMM/")
  252.             centerF(34, "  mMMMy               :dMMMMMN/ ")
  253.             centerF(35, "   yMMMh:           /yMMMMMms   ")
  254.             centerF(36, "    :ymMMh+      +ymMMNmhs/     ")
  255.             centerF(37, "    :++osssso+++++oooo+++++     ")
  256.             centerF(38, "     //////////////////////     ")
  257.             centerF(44, "Reactor Overheated")
  258.             centerF(45, "Explosion risk")
  259.             centerF(46, "Turning off reactor...")
  260.             computer.beep(500)
  261.             os.sleep(1)
  262.         end
  263.     end    
  264.     gpu.setForeground(white)
  265.     os.sleep(1)
  266. end
Advertisement
Add Comment
Please, Sign In to add comment