Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --BigReactors Reactor and Turbine Monitor/Control
- --Created By: scorpionfien
- --requires CC os 1.5
- --Variables--
- --Modify as needed
- --Timer
- local timer = os.startTimer(0.5)
- --Reactor/Turbine--
- --Enter side if connected directly
- --Enter BigReactors-Reactor/Turbine_## if connected using modem
- reactor = peripheral.wrap("BigReactors-Reactor_1")
- turbine = peripheral.wrap("BigReactors-Turbine_1")
- --Dispay--
- --Designed for a 5 x 7 monitor
- --Enter side if connected directly
- --Enter monitor_## if connected using modem
- m = peripheral.wrap("top")
- xMax = m.getSize()
- yMax = 33
- --Functions
- --Yes I know some are quite long and messy :)
- function clearScreen() --completely resets screen
- m.clear()
- m.setBackgroundColor(colors.black)
- m.setCursorPos(1,1)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,2)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,3)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,4)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,5)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,6)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,7)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,8)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,9)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,10)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,11)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,12)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,13)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,14)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,15)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,16)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,17)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,18)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,19)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,20)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,21)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,22)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,23)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,24)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,25)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,26)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,27)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,28)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,29)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,30)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,31)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,32)
- m.write(string.rep(" ", xMax))
- m.setCursorPos(1,33)
- m.write(string.rep(" ", xMax))
- end
- clearScreen()
- m.setCursorPos(1,1)
- --Constant
- --Monitor Setup--
- --Reactor Status
- m.setBackgroundColor(colors.black)
- m.setCursorPos(2,2)
- m.write("Reactor Status: ")
- m.setCursorPos(2,3)
- m.write("[Power]")
- r4 = m.getCursorPos()
- --Energy Stored
- m.setCursorPos(2,5)
- m.write("Stored Energy: ")
- r1 = m.getCursorPos()
- --Energy Produced
- m.setBackgroundColor(colors.black)
- m.setCursorPos(2,9)
- m.write("Energy Production: ")
- --Fuel Reactivity
- m.setCursorPos(2,11)
- m.write("Fuel Reactivity: ")
- --Fuel Level
- m.setCursorPos(2,14)
- m.write("Fuel Level: ")
- r2 = m.getCursorPos()
- --Fuel Consumed
- m.setCursorPos(2,18)
- m.write("Fuel Consumption: ")
- --Control Rod Level
- m.setCursorPos(2,21)
- m.write("Control Rod Level: ")
- r3 = m.getCursorPos()
- --Controls Rod Control
- m.setCursorPos(2,22)
- m.write("[Increase] [Decrease]")
- m.setCursorPos(2,23)
- m.write("[Zero] [Half] [Max]")
- --Waste
- m.setCursorPos(2,25)
- m.write("Reactor Waste: ")
- --Case and Fuel Temp
- m.setCursorPos(2,28)
- m.write("Case Temperature: ")
- m.setCursorPos(2,31)
- m.write("Fuel Temperature: ")
- --Main Program--
- while true do
- local event, a, x, y = os.pullEvent()
- if (event == "monitor_touch") then
- --Reactor Status
- if x > 2 and x < r4 and y == 3 then
- power = reactor.getActive()
- if power == true then
- reactor.setActive(false)
- end
- if pwer == false then
- reactor.setActive(true)
- end
- end
- --Control Rods--
- --Increase
- if x > 2 and x < 12 and y == 22 then
- reactor.setAllControlRodLevels(reactor.getControlRodLevel(1) + 1)
- end
- --Decrease
- if x > 15 and x < 25 and y == 22 then
- reactor.setAllControlRodLevels(reactor.getControlRodLevel(1) - 1)
- end
- --Zero
- if x > 2 and x < 7 and y == 23 then
- reactor.setAllControlRodLevels(0)
- end
- --Half
- if x > 10 and x < 16 and y == 23 then
- levelRod = reactor.getControlRodLevel(1)
- if levelRod == 0 or test == 100 then
- reactor.setAllControlRodLevels(50)
- end
- if levelRod > 1 and text < 100 then
- reactor.setAllControlRodLevels((reactor.getControlRodLevel(1) / 50) +0.5)
- end
- end
- --Max
- if x > 19 and x < 24 and y == 23 then
- reactor.setAllControlRodLevels(100)
- end
- elseif (event == "timer" and a == timer) then
- rActive = reactor.getActive()
- reactorEnergy = reactor.getEnergyStored()
- rawStored= reactorEnergy/10000000
- reactorStored = math.floor((rawStored*100)+0.5)
- rEbar = math.floor((rawStored*30)+0.5)
- rProduced = reactor.getEnergyProducedLastTick()
- energyProduced = math.floor((rProduced*10)*0.1)
- reactivity = reactor.getFuelReactivity()
- fuelReactivity = math.floor((reactivity*1)+0.5)
- currFuel = reactor.getFuelAmount()
- maxFuel = reactor.getFuelAmountMax()
- rawFuel = currFuel/maxFuel
- fuelLevel = math.floor((rawFuel*100)+0.5)
- rFbar = math.floor((rawFuel*30)+0.5)
- consumedFuel = reactor.getFuelConsumedLastTick()
- reactorWaste = reactor.getWasteAmount
- degreeCaseTemp = reactor.getCasingTemperature()
- caseTemp = math.floor((degreeCaseTemp*10)*0.1)
- degreeFuelTemp = reactor.getFuelTemperature()
- fuelTemp = math.floor((degreeFuelTemp*10)*0.1)
- --Reactor Status
- m.setBackgroundColor(colors.black)
- if rActive == true then
- m.setCursorPos(2,3)
- m.write(string.rep(" ", 11)
- m.setCursorPos(2,3)
- m.setTextColor(colors.lime)
- m.write("Active")
- end
- if rActive == false then
- m.setCursorPos(2,3)
- m.write(string.rep(" ", 11)
- m.setCursorPos(2,3)
- m.setTextColor(colors.red)
- m.write("Inactive")
- end
- m.setTextColor(colors.white)
- --Energy Stored & Loading Bar
- m.setCursorPos(r1,5)
- m.write(string.rep(" ",30))
- m.setCursorPos(r1,5)
- m.write(reactorStored.."%")
- m.setCursorPos(2,6)
- m.setBackgroundColor(colors.gray)
- m.write(string.rep(" ",30))
- m.setCursorPos(2,6)
- m.setBackgroundColor(colors.green)
- m.write(string.rep(" ",rEbar))
- m.setCursorPos(2,7)
- m.setBackgroundColor(colors.gray)
- m.write(string.rep(" ",30))
- m.setCursorPos(2,7)
- m.setBackgroundColor(colors.green)
- m.write(string.rep(" ",rEbar))
- m.setBackgroundColor(colors.black)
- --Energy Produced
- m.setCursorPos(2,10)
- m.write(string.rep(" ",30))
- m.setCursorPos(2,10)
- m.write(energyProduced.." RF / t)
- --Fuel Reactivity
- m.setCursorPos(2,12)
- m.write(string.rep(" ",30))
- m.setCursorPos(2,12)
- m.write(fuelReactivity.."%")
- --Fuel Level & Loading Bar
- m.setCursorPos(r2,14)
- m.write(string.rep(" ",30))
- m.setCursorPos(r2,14)
- m.write(fuelLevel.."%")
- m.setCursorPos(2,15)
- m.setBackgroundColor(colors.gray)
- m.write(string.rep(" ",30))
- m.setCursorPos(2,15)
- m.setBackgroundColor(colors.yellow)
- m.write(string.rep(" ",rFbar))
- m.setCursorPos(2,16)
- m.setBackgroundColor(colors.gray)
- m.write(string.rep(" ",30))
- m.setCursorPos(2,16)
- m.setBackgroundColor(colors.yellow)
- m.write(string.rep(" ",rFbar))
- m.setBackgroundColor(colors.black)
- --Fuel Consumption
- m.setCursorPos(2,19)
- m.write(string.rep(" ",30)
- m.setCursorPos(2,19)
- m.write(comsumedFuel)
- m.setCursorPos(8,19)
- m.write(string.rep(" ",30)
- m.setCursorPos(8,19)
- m.write(" mB/t")
- --Control Rod Level
- m.setCursorPos(r3,21)
- m.write(string.rep(" ",30))
- m.setCursorPos(r3,21)
- m.write(levelRod)
- --Waste
- m.setCursorPos(2,26)
- m.write(string.rep(" ",30))
- m.setCursorPos(2,26)
- m.write(reactorWaste.." mB/t")
- --CaseTemp
- m.setCursorPos(2,28)
- m.write(string.rep(" ",30))
- m.setCursorPos(2,28)
- m.write(caseTemp.."*C")
- --Fuel Temp
- m.setCursorPos(2,31)
- m.write(string.rep(" ",30))
- m.setCursorPos(2,32)
- m.write(fuelTemp.."*C")
- timer = os.startTimer(0.5)
- end
- end
Advertisement
Add Comment
Please, Sign In to add comment