MuChT007

obsidian factory

Jul 14th, 2016
181
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Lua 0.57 KB | None | 0 0
  1. --http//pastebin get sf4q7wkk test0 / redstone.setBundledOutput("bottom", 0 )
  2. --Boiler feeder 1 : colors.red ,Boiler feeder 2 : colors.orange ,Boiler feeder 3 : colors.grey
  3. --Boiler Stock 1 : colors.blue ,Boiler Stock 2 : colors.lightBlue ,Boiler Stock 3 : colors.black
  4. --Tank 1 Max: colors.purple Min: colors.cyan ,Tank 2 Max: colors.green Min: colors.lime
  5. --Variables
  6.  
  7. dev = true
  8.  
  9. local printer = peripheral.wrap("left")
  10. local modem = peripheral.wrap("right")
  11. local tchannel = 619
  12. local rchannel = 858
  13. rsBuSide = "bottom"
  14. rsBuSideInfo = "top"
  15. RsBout = 0
  16. RsBsignal = 0
  17. x, y = term.getSize()
  18.  
  19. boilerFeeder1 = colors.red
  20. boilerFeeder2 = colors.orange
  21. boilerFeeder3 = colors.gray
  22. boilerStock1 = colors.blue
  23. boilerStock2 = colors.lightBlue
  24. boilerStock3 = colors.black
  25. tank1max = colors.purple
  26. tank1min = colors.cyan
  27. tank2max = colors.green
  28. tank2min = colors.lime
  29. coal1 = false
  30. coal2 = false
  31. coal3 = false
  32. alarm = colors.orange
  33. signal = colors.red
  34. boiler1On = false
  35. boiler2On = false
  36. boiler3On = false
  37. tank1 = 0
  38. tank2 = 0
  39. status = "on"
  40. problem = false
  41. eventNum = 0
  42. eventDesc = "StandBy"
  43.  
  44. if dev then
  45.     redstone.setBundledOutput(rsBuSide, RsBout )
  46.     redstone.setBundledOutput(rsBuSideInfo, RsBsignal )
  47.     sleep (3)
  48. end
  49.  
  50. --Functions
  51. function drawAcross(line, char)
  52.     term.setCursorPos(1, line)
  53.     for i = 1,  x do
  54.         term.write(char)
  55.     end
  56. end
  57.  
  58. function drawCentered(line, text)
  59.     term.setCursorPos((x - string.len(text))/ 2, line)
  60.     term.write(text)
  61. end
  62.  
  63. function printReport ()
  64.     printer.newPage()
  65.          local time = os.time()
  66.          local day = os.day()
  67.          local formattedTime = textutils.formatTime(time, false)
  68.          printer.setCursorPos(1, 1)
  69.          printer.write("Report Day :"..day)
  70.          printer.setCursorPos(1, 2)
  71.          printer.write("Time :".. formattedTime)
  72.          printer.setCursorPos(1, 3)
  73.          printer.write(""..printerLine1)
  74.          printer.setCursorPos(1, 4)
  75.          printer.write(""..printerLine2)
  76.          printer.setCursorPos(1, 5)
  77.          printer.write(""..printerLine3)
  78.          printer.setCursorPos(1, 6)
  79.          printer.write(""..printerLine4)
  80.          printer.setCursorPos(1, 7)
  81.          printer.write(""..printerLine5)
  82.          printer.setCursorPos(1, 8)
  83.          printer.write(""..printerLine6)
  84.          printer.setCursorPos(1, 9)
  85.          printer.write(""..printerLine7)
  86.          printer.setCursorPos(1, 10)
  87.          printer.write(""..printerLine8)
  88.          printer.setCursorPos(1, 11)
  89.          printer.write(""..printerLine9)
  90.          printer.setCursorPos(1, 12)
  91.          printer.write(""..printerLine10)
  92.     printer.endPage()
  93.    
  94. end
  95.  
  96. function cleanPrintReport ()
  97.     printerLine1 = ""
  98.     printerLine2 = ""
  99.     printerLine3 = ""
  100.     printerLine4 = ""
  101.     printerLine5 = ""
  102.     printerLine6 = ""
  103.     printerLine7 = ""
  104.     printerLine8 = ""
  105.     printerLine9 = ""
  106.     printerLine10 = ""
  107. end
  108.  
  109. function checkTanks ()
  110.     test = redstone.testBundledInput (rsBuSide, tank1max )
  111.     if test == true then
  112.         tank1 = 100
  113.     else
  114.         test = redstone.testBundledInput (rsBuSide, tank1min )
  115.         if test == true then
  116.             tank1 = 50
  117.         else
  118.             tank1 = 0
  119.         end
  120.     end
  121.    
  122.     test = redstone.testBundledInput (rsBuSide, tank2max )
  123.     if test == true then
  124.         tank2 = 100
  125.     else
  126.         test = redstone.testBundledInput (rsBuSide, tank1min )
  127.         if test == true then
  128.             tank2 = 50
  129.         else
  130.             tank2 = 0
  131.         end
  132.     end
  133. end
  134.  
  135. function checkCoal ()
  136.     test = redstone.testBundledInput (rsBuSide, boilerStock1 )
  137.     if test == true then
  138.         coal1 = true
  139.         problem = false
  140.     else
  141.         coal1 = false
  142.         problem = true
  143.     end
  144.     test = redstone.testBundledInput (rsBuSide, boilerStock2 )
  145.     if test == true then
  146.         coal2 = true
  147.         problem = false
  148.     else
  149.         coal2 = false
  150.         problem = true
  151.     end
  152.     test = redstone.testBundledInput (rsBuSide, boilerStock3 )
  153.     if test == true then
  154.         coal3 = true
  155.         problem = false
  156.     else
  157.         coal3 = false
  158.         problem = true
  159.     end
  160. end
  161.    
  162. --Checks
  163.     --Hoppers--
  164. if printer.getPaperLevel() == 0 then -- If there is no paper in the printer
  165.     drawCentered(8, "There is no paper in the printer!")
  166. end
  167.    
  168. if printer.getInkLevel() == 0 then -- If there is no ink in the printer
  169.     drawCentered(8, "There is no ink in the printer!")
  170. end
  171. term.clear()
  172. drawAcross(1, "-")
  173. drawCentered(2, "Start up")
  174. drawCentered(4,"---")
  175. drawCentered(5, "configuration Boiler feed .")
  176. RsBout = colors.combine(RsBout, boilerFeeder1, boilerFeeder2, boilerFeeder3 )
  177. redstone.setBundledOutput(rsBuSide, RsBout )
  178. sleep (1)
  179. drawCentered(5, "                           ")
  180.  
  181. drawCentered(5, "Check Boiler feed.")
  182. test = redstone.testBundledInput (rsBuSide, RsBout )
  183. if test == false then
  184.     drawCentered(5, "                           ")
  185.     drawCentered(5, "Error in feeding system .")
  186.     drawCentered(6, "Press E to exit")
  187.     local event, key = os.pullEvent( "key" )
  188.     if key == keys.e then -- if the key pressed was 'e'
  189.         print( "You pressed [E]. Exiting program..." )
  190.     os.reboot()
  191.   end
  192. else
  193.     drawCentered(5, "                           ")
  194.     drawCentered(5, "Verified.")
  195.     printerLine1 = "Feeders status:StandBy"
  196. end
  197. sleep (2)
  198. drawCentered(5, "                           ")
  199.    
  200.     --Coal reserves--
  201. drawCentered(5, "Get status.")
  202. drawCentered(6, "Stocks :")
  203. drawCentered(7, "                           ")
  204. stock = 0
  205. test = redstone.testBundledInput (rsBuSide, boilerStock1 )
  206. if test == true then
  207.     stock = stock + 1  
  208.     drawCentered(7, "Boiler 1 ok")
  209.     printerLine2 = "Boiler 1 stock : ok"
  210.    
  211. else
  212.     drawCentered(7, "Boiler 1 notok")
  213.     printerLine2 = "Boiler 1 stock : empty"
  214. end
  215. sleep (1)
  216. drawCentered(7, "                           ")
  217. test = redstone.testBundledInput (rsBuSide, boilerStock2 )
  218. if test == true then
  219.     stock = stock + 1  
  220.     drawCentered(7, "Boiler 2 ok")
  221.     printerLine3 = "Boiler 2 stock : ok"
  222.    
  223. else
  224.     drawCentered(7, "Boiler 2 notok")
  225.     printerLine3 = "Boiler 2 stock : empty"
  226. end
  227. sleep (1)
  228. drawCentered(7, "                           ")
  229. test = redstone.testBundledInput (rsBuSide, boilerStock3 )
  230. if test == true then
  231.     stock = stock + 1  
  232.     drawCentered(7, "Boiler 3 ok")
  233.     printerLine4 = "Boiler 3 stock : ok"
  234.    
  235. else
  236.     drawCentered(7, "Boiler 3 notok")
  237.     printerLine4 = "Boiler 3 stock : empty"
  238. end
  239. if stock ~= 3 then
  240.     drawCentered(7, "Verify coal")
  241. end
  242. sleep (2)
  243. drawCentered(7, "                           ")
  244.  
  245.     --Tanks (steam)--
  246. test = redstone.testBundledInput (rsBuSide, tank1max )
  247.     if test == true then
  248.         tank1 = 100
  249.         drawCentered(7, "Tank 1 : Full")
  250.         printerLine5 = "Steam tank 1 : Full"
  251.     else
  252.         test = redstone.testBundledInput (rsBuSide, tank1min )
  253.         if test == true then
  254.             tank1 = 50
  255.             drawCentered(7, "Tank 1 : Over 50%")
  256.             printerLine5 = "Steam tank 1 : 50%"
  257.         else
  258.             tank1 = 0
  259.             drawCentered(7, "Tank 1 : Under 50%")
  260.             printerLine5 = "Steam tank 1 : 0%"
  261.         end
  262.     end
  263.  
  264. test = redstone.testBundledInput (rsBuSide, tank2max )
  265.     if test == true then
  266.         tank2 = 100
  267.         drawCentered(7, "Tank 2 : Full")
  268.         printerLine6 = "Steam tank 2 : Full"
  269.     else
  270.         test = redstone.testBundledInput (rsBuSide, tank1min )
  271.         if test == true then
  272.             tank2 = 50
  273.             drawCentered(7, "Tank 2 : Over 50%")
  274.             printerLine6 = "Steam tank 2 : 50%"
  275.         else
  276.             tank2 = 0
  277.             drawCentered(7, "Tank 2 : Under 50%")
  278.             printerLine6 = "Steam tank 2 : 0%"
  279.         end
  280.     end
  281. sleep (2)
  282. printReport ()
  283.  
  284. --In operation
  285. term.clear()
  286. drawAcross(1, "-")
  287. drawCentered(2, "In operation")
  288. drawCentered(4,"---")
  289. drawCentered(5, "init.")
  290. drawCentered(5, "                       ")
  291. drawCentered(5, "Events since last reboot")
  292. drawCentered(6, "Num:"..eventNum)
  293. drawCentered(7, "Type:"..eventNum)
  294.  
  295.  
  296.  
  297. while true do
  298. event = os.pullEvent("redstone")
  299. checkTanks ()
  300. checkCoal ()
  301. eventNum = eventNum + 1
  302. drawCentered(6, "                           ")
  303. drawCentered(6, "Num:"..eventNum)
  304. drawCentered(7, "                          ")
  305. drawCentered(7, "Type:"..problem)
  306.  
  307. test = redstone.testBundledInput (rsBuSideInfo, signal )
  308.     if problem == true then
  309.         if test ~= true then
  310.             RsBsignal = colors.combine(RsBsignal, signal )
  311.             redstone.setBundledOutput(rsBuSideInfo, RsBsignal )
  312.         end
  313.     else   
  314.         if test == true then
  315.         RsBsignal = colors.subtract(colors.combine(RsBsignal), signal)
  316.         redstone.setBundledOutput(rsBuSideInfo, RsBsignal )
  317.         end
  318.     end
  319. end
Add Comment
Please, Sign In to add comment