Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --http//pastebin get sf4q7wkk test0 / redstone.setBundledOutput("bottom", 0 )
- --Boiler feeder 1 : colors.red ,Boiler feeder 2 : colors.orange ,Boiler feeder 3 : colors.grey
- --Boiler Stock 1 : colors.blue ,Boiler Stock 2 : colors.lightBlue ,Boiler Stock 3 : colors.black
- --Tank 1 Max: colors.purple Min: colors.cyan ,Tank 2 Max: colors.green Min: colors.lime
- --Variables
- dev = true
- local printer = peripheral.wrap("left")
- local modem = peripheral.wrap("right")
- local tchannel = 619
- local rchannel = 858
- rsBuSide = "bottom"
- rsBuSideInfo = "top"
- RsBout = 0
- RsBsignal = 0
- x, y = term.getSize()
- boilerFeeder1 = colors.red
- boilerFeeder2 = colors.orange
- boilerFeeder3 = colors.gray
- boilerStock1 = colors.blue
- boilerStock2 = colors.lightBlue
- boilerStock3 = colors.black
- tank1max = colors.purple
- tank1min = colors.cyan
- tank2max = colors.green
- tank2min = colors.lime
- coal1 = false
- coal2 = false
- coal3 = false
- alarm = colors.orange
- signal = colors.red
- boiler1On = false
- boiler2On = false
- boiler3On = false
- tank1 = 0
- tank2 = 0
- status = "on"
- problem = false
- eventNum = 0
- eventDesc = "StandBy"
- if dev then
- redstone.setBundledOutput(rsBuSide, RsBout )
- redstone.setBundledOutput(rsBuSideInfo, RsBsignal )
- sleep (3)
- end
- --Functions
- function drawAcross(line, char)
- term.setCursorPos(1, line)
- for i = 1, x do
- term.write(char)
- end
- end
- function drawCentered(line, text)
- term.setCursorPos((x - string.len(text))/ 2, line)
- term.write(text)
- end
- function printReport ()
- printer.newPage()
- local time = os.time()
- local day = os.day()
- local formattedTime = textutils.formatTime(time, false)
- printer.setCursorPos(1, 1)
- printer.write("Report Day :"..day)
- printer.setCursorPos(1, 2)
- printer.write("Time :".. formattedTime)
- printer.setCursorPos(1, 3)
- printer.write(""..printerLine1)
- printer.setCursorPos(1, 4)
- printer.write(""..printerLine2)
- printer.setCursorPos(1, 5)
- printer.write(""..printerLine3)
- printer.setCursorPos(1, 6)
- printer.write(""..printerLine4)
- printer.setCursorPos(1, 7)
- printer.write(""..printerLine5)
- printer.setCursorPos(1, 8)
- printer.write(""..printerLine6)
- printer.setCursorPos(1, 9)
- printer.write(""..printerLine7)
- printer.setCursorPos(1, 10)
- printer.write(""..printerLine8)
- printer.setCursorPos(1, 11)
- printer.write(""..printerLine9)
- printer.setCursorPos(1, 12)
- printer.write(""..printerLine10)
- printer.endPage()
- end
- function cleanPrintReport ()
- printerLine1 = ""
- printerLine2 = ""
- printerLine3 = ""
- printerLine4 = ""
- printerLine5 = ""
- printerLine6 = ""
- printerLine7 = ""
- printerLine8 = ""
- printerLine9 = ""
- printerLine10 = ""
- end
- function checkTanks ()
- test = redstone.testBundledInput (rsBuSide, tank1max )
- if test == true then
- tank1 = 100
- else
- test = redstone.testBundledInput (rsBuSide, tank1min )
- if test == true then
- tank1 = 50
- else
- tank1 = 0
- end
- end
- test = redstone.testBundledInput (rsBuSide, tank2max )
- if test == true then
- tank2 = 100
- else
- test = redstone.testBundledInput (rsBuSide, tank1min )
- if test == true then
- tank2 = 50
- else
- tank2 = 0
- end
- end
- end
- function checkCoal ()
- test = redstone.testBundledInput (rsBuSide, boilerStock1 )
- if test == true then
- coal1 = true
- problem = false
- else
- coal1 = false
- problem = true
- end
- test = redstone.testBundledInput (rsBuSide, boilerStock2 )
- if test == true then
- coal2 = true
- problem = false
- else
- coal2 = false
- problem = true
- end
- test = redstone.testBundledInput (rsBuSide, boilerStock3 )
- if test == true then
- coal3 = true
- problem = false
- else
- coal3 = false
- problem = true
- end
- end
- --Checks
- --Hoppers--
- if printer.getPaperLevel() == 0 then -- If there is no paper in the printer
- drawCentered(8, "There is no paper in the printer!")
- end
- if printer.getInkLevel() == 0 then -- If there is no ink in the printer
- drawCentered(8, "There is no ink in the printer!")
- end
- term.clear()
- drawAcross(1, "-")
- drawCentered(2, "Start up")
- drawCentered(4,"---")
- drawCentered(5, "configuration Boiler feed .")
- RsBout = colors.combine(RsBout, boilerFeeder1, boilerFeeder2, boilerFeeder3 )
- redstone.setBundledOutput(rsBuSide, RsBout )
- sleep (1)
- drawCentered(5, " ")
- drawCentered(5, "Check Boiler feed.")
- test = redstone.testBundledInput (rsBuSide, RsBout )
- if test == false then
- drawCentered(5, " ")
- drawCentered(5, "Error in feeding system .")
- drawCentered(6, "Press E to exit")
- local event, key = os.pullEvent( "key" )
- if key == keys.e then -- if the key pressed was 'e'
- print( "You pressed [E]. Exiting program..." )
- os.reboot()
- end
- else
- drawCentered(5, " ")
- drawCentered(5, "Verified.")
- printerLine1 = "Feeders status:StandBy"
- end
- sleep (2)
- drawCentered(5, " ")
- --Coal reserves--
- drawCentered(5, "Get status.")
- drawCentered(6, "Stocks :")
- drawCentered(7, " ")
- stock = 0
- test = redstone.testBundledInput (rsBuSide, boilerStock1 )
- if test == true then
- stock = stock + 1
- drawCentered(7, "Boiler 1 ok")
- printerLine2 = "Boiler 1 stock : ok"
- else
- drawCentered(7, "Boiler 1 notok")
- printerLine2 = "Boiler 1 stock : empty"
- end
- sleep (1)
- drawCentered(7, " ")
- test = redstone.testBundledInput (rsBuSide, boilerStock2 )
- if test == true then
- stock = stock + 1
- drawCentered(7, "Boiler 2 ok")
- printerLine3 = "Boiler 2 stock : ok"
- else
- drawCentered(7, "Boiler 2 notok")
- printerLine3 = "Boiler 2 stock : empty"
- end
- sleep (1)
- drawCentered(7, " ")
- test = redstone.testBundledInput (rsBuSide, boilerStock3 )
- if test == true then
- stock = stock + 1
- drawCentered(7, "Boiler 3 ok")
- printerLine4 = "Boiler 3 stock : ok"
- else
- drawCentered(7, "Boiler 3 notok")
- printerLine4 = "Boiler 3 stock : empty"
- end
- if stock ~= 3 then
- drawCentered(7, "Verify coal")
- end
- sleep (2)
- drawCentered(7, " ")
- --Tanks (steam)--
- test = redstone.testBundledInput (rsBuSide, tank1max )
- if test == true then
- tank1 = 100
- drawCentered(7, "Tank 1 : Full")
- printerLine5 = "Steam tank 1 : Full"
- else
- test = redstone.testBundledInput (rsBuSide, tank1min )
- if test == true then
- tank1 = 50
- drawCentered(7, "Tank 1 : Over 50%")
- printerLine5 = "Steam tank 1 : 50%"
- else
- tank1 = 0
- drawCentered(7, "Tank 1 : Under 50%")
- printerLine5 = "Steam tank 1 : 0%"
- end
- end
- test = redstone.testBundledInput (rsBuSide, tank2max )
- if test == true then
- tank2 = 100
- drawCentered(7, "Tank 2 : Full")
- printerLine6 = "Steam tank 2 : Full"
- else
- test = redstone.testBundledInput (rsBuSide, tank1min )
- if test == true then
- tank2 = 50
- drawCentered(7, "Tank 2 : Over 50%")
- printerLine6 = "Steam tank 2 : 50%"
- else
- tank2 = 0
- drawCentered(7, "Tank 2 : Under 50%")
- printerLine6 = "Steam tank 2 : 0%"
- end
- end
- sleep (2)
- printReport ()
- --In operation
- term.clear()
- drawAcross(1, "-")
- drawCentered(2, "In operation")
- drawCentered(4,"---")
- drawCentered(5, "init.")
- drawCentered(5, " ")
- drawCentered(5, "Events since last reboot")
- drawCentered(6, "Num:"..eventNum)
- drawCentered(7, "Type:"..eventNum)
- while true do
- event = os.pullEvent("redstone")
- checkTanks ()
- checkCoal ()
- eventNum = eventNum + 1
- drawCentered(6, " ")
- drawCentered(6, "Num:"..eventNum)
- drawCentered(7, " ")
- drawCentered(7, "Type:"..problem)
- test = redstone.testBundledInput (rsBuSideInfo, signal )
- if problem == true then
- if test ~= true then
- RsBsignal = colors.combine(RsBsignal, signal )
- redstone.setBundledOutput(rsBuSideInfo, RsBsignal )
- end
- else
- if test == true then
- RsBsignal = colors.subtract(colors.combine(RsBsignal), signal)
- redstone.setBundledOutput(rsBuSideInfo, RsBsignal )
- end
- end
- end
Add Comment
Please, Sign In to add comment