Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- --HD & IPJ's KickAss Reactor Control v1.0.0
- -------------------------------------------
- -- Abbreviations
- monitor = peripheral.wrap("monitor_25")
- t1 = peripheral.wrap("BigReactors-Turbine_18")
- t2 = peripheral.wrap("BigReactors-Turbine_18")
- t3 = peripheral.wrap("BigReactors-Turbine_18")
- t4 = peripheral.wrap("BigReactors-Turbine_18")
- t5 = peripheral.wrap("BigReactors-Turbine_18")
- r = peripheral.wrap("back")
- -- Colors
- headingColor = colors.blue
- inert = colors.yellow
- positive = colors.lime
- negative = colors.red
- backgroundColor = colors.gray
- windowColor = colors.lightGray
- -- Rounding
- local function roundPercent(num, idp)
- local mult = 10^(idp or 0)
- return math.floor((num / 1782) * mult + 0.5 / mult)/10
- end
- local function round(num, idp)
- local mult = 10^(idp or 0)
- return math.floor(num * mult + 0.5) / mult
- end
- --GUI Building
- local function drawMain() --Defines Main GUI
- -- Main window Heading
- monitor.setCursorPos(1,1)
- monitor.setBackgroundColor(backgroundColor)
- monitor.clear()
- monitor.setTextScale(2)
- monitor.setTextColor(headingColor)
- monitor.write(" HD & IPJ's KickAss Reactor Control")
- monitor.setCursorPos(1,2)
- monitor.write("- - - - - - - - - - - - - - - - - - -")
- -- Windows
- -- ReactorWindow
- local reactorWindow = window.create(monitor, 2, 3, 17, 7)
- reactorWindow.setBackgroundColor(windowColor)
- reactorWindow.setVisible(true)
- --heading
- monitor.setCursorPos(2,3)
- monitor.setTextColor(headingColor)
- monitor.write("Reactor")
- monitor.setCursorPos(2,4)
- monitor.write("- - - -")
- -- outputWindow
- local outputWindow = window.create(monitor, 2, 14, 17, 3)
- outputWindow.setBackgroundColor(windowColor)
- outputWindow.setVisible(true)
- --heading
- monitor.setCursorPos(2,15)
- monitor.setTextColor(colors.lime)
- monitor.write("Total Output")
- monitor.setCursorPos(2,16)
- output = round( (t1.getEnergyProducedLastTick()
- +t2.getEnergyProducedLastTick()
- +t3.getEnergyProducedLastTick()
- +t4.getEnergyProducedLastTick()
- +t5.getEnergyProducedLastTick() )/1000 , 2)
- monitor.write(output)
- -- Turbine Window
- local turbineWindow = window.create(monitor, 21, 3, 13, 16)
- turbineWindow.setBackgroundColor(windowColor)
- turbineWindow.setVisible(true)
- --heading
- monitor.setTextColor(headingColor)
- monitor.setCursorPos(21,3)
- monitor.write("Turbine 1")
- monitor.setCursorPos(21,6)
- monitor.write("Turbine 2")
- monitor.setCursorPos(21,9)
- monitor.write("Turbine 3")
- monitor.setCursorPos(21,12)
- monitor.write("Turbine 4")
- monitor.setCursorPos(21,15)
- monitor.write("Turbine 5")
- end -- end drawMain()
- -- Reactor Functions `
- -- Reactor Steam
- local function getSteam()
- steam = r.getHotFluidProducedLastTick()
- monitor.setCursorPos(2,5)
- monitor.setTextColor(inert)
- monitor.write("Steam: ")
- if steam < 9500 then
- monitor.setTextColor(negative)
- else
- monitor.setTextColor(positive)
- end
- monitor.write(steam)
- monitor.setTextColor(inert)
- monitor.write("mB/t")
- os.sleep(1)
- end -- end Steam
- -- Reactor Core Temp
- local function getCoreTemp()
- coreTemp = r.getFuelTemperature()
- monitor.setCursorPos(2,6)
- monitor.setTextColor(inert)
- monitor.write("CoreTemp: "..math.floor(coreTemp).."C")
- getSteam()
- end
- -- Reactor Case Temp
- local function getCaseTemp()
- temp = r.getCasingTemperature()
- monitor.setCursorPos(2,7)
- monitor.setTextColor(inert)
- monitor.write("CaseTemp: "..math.floor(temp).."C")
- getCoreTemp()
- end
- -- Rounding
- local function roundPercent(num, idp)
- local mult = 10^(idp or 0)
- return math.floor((num / 1782) * mult + 0.5 / mult)/10
- end
- local function round(num, idp)
- local mult = 10^(idp or 0)
- return math.floor(num * mult + 0.5) / mult
- end
- -- Turbine Functions
- -- determines text color for speed
- local function turbineSpeedColor(amount)
- if amount < 1750 then
- return negative
- else
- return positive
- end
- end
- -- Turbine Speed
- local function getTurbine()
- drawMain()
- speed = t1.getRotorSpeed()
- rf = math.floor(t1.getEnergyProducedLastTick())
- monitor.setTextColor(inert)
- monitor.setCursorPos(21,4)
- monitor.write("Speed: ")
- monitor.setTextColor( turbineSpeedColor(speed) )
- monitor.write(roundPercent(speed,3).."%")
- monitor.setTextColor(inert)
- monitor.setCursorPos(21,5)
- monitor.write("RF/t: "..rf)
- speed = t2.getRotorSpeed()
- rf = math.floor(t2.getEnergyProducedLastTick())
- monitor.setTextColor(inert)
- monitor.setCursorPos(21,7)
- monitor.write("Speed: ")
- monitor.setTextColor( turbineSpeedColor(speed) )
- monitor.write(roundPercent(speed,3).."%")
- monitor.setTextColor(inert)
- monitor.setCursorPos(21,8)
- monitor.write("RF/t: "..rf)
- speed = t3.getRotorSpeed()
- rf = math.floor(t3.getEnergyProducedLastTick())
- monitor.setTextColor(inert)
- monitor.setCursorPos(21,10)
- monitor.write("Speed: ")
- monitor.setTextColor( turbineSpeedColor(speed) )
- monitor.write(roundPercent(speed,3).."%")
- monitor.setTextColor(inert)
- monitor.setCursorPos(21,11)
- monitor.write("RF/t: "..rf)
- speed = t4.getRotorSpeed()
- rf = math.floor(t4.getEnergyProducedLastTick())
- monitor.setTextColor(inert)
- monitor.setCursorPos(21,13)
- monitor.write("Speed: ")
- monitor.setTextColor( turbineSpeedColor(speed) )
- monitor.write(roundPercent(speed,3).."%")
- monitor.setTextColor(inert)
- monitor.setCursorPos(21,14)
- monitor.write("RF/t: "..rf)
- speed = t5.getRotorSpeed()
- rf = math.floor(t5.getEnergyProducedLastTick())
- monitor.setTextColor(inert)
- monitor.setCursorPos(21,16)
- monitor.write("Speed: ")
- monitor.setTextColor( turbineSpeedColor(speed) )
- monitor.write(roundPercent(speed,3).."%")
- monitor.setTextColor(inert)
- monitor.setCursorPos(21,17)
- monitor.write("RF/t: "..rf)
- getCaseTemp()
- end -- end turbineSpeed
- -- Start Of execution
- drawMain()
- while true do
- getTurbine()
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement