Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ----------------------------------------------------------
- -- Active Cooling Big Reactor Monitor --
- -- --
- -- Minecraft HermitCraft FTB Infinity Episode 28 --
- -- https://www.youtube.com/watch?v=cIPxwZJWOiE --
- -- --
- -- YouTube Channel http://youtube.com/hypnotizd --
- ----------------------------------------------------------
- local mon = {}
- local hasMon = false
- local hasRMon = false
- local rMonName = ""
- local directions = {"top", "bottom", "front", "back", "left", "right"}
- local function findPeripherals()
- for k, v in pairs(peripheral.getNames()) do
- if string.find(v, "monitor") then
- hasMon = true
- hasRMon = true
- rMonName = v
- print("INFO: Found remote "..v)
- os.sleep(1)
- end
- end
- end
- local function findMon()
- if hasRMon then return end
- for k, v in pairs(directions) do
- local p = peripheral.wrap(v)
- if p ~= nil then
- if string.find(peripheral.getType(v), "monitor") then
- mon = p
- hasMon = true
- return
- end
- end
- end
- print("WARNING: No monitor detected!")
- os.sleep(5)
- end
- local function monClear()
- if hasMon then
- if hasRMon then
- peripheral.call(rMonName, "setCursorPos", 1, 1)
- peripheral.call(rMonName, "clear")
- else
- mon.setCursorPos(1, 1)
- mon.clear()
- end
- else
- term.clear()
- term.setCursorPos(1, 1)
- end
- end
- local function monWrite(x, y, text)
- if hasMon then
- if hasRMon then
- peripheral.call(rMonName, "setCursorPos", x, y)
- peripheral.call(rMonName, "write", text)
- else
- mon.setCursorPos(x, y)
- mon.write(text)
- end
- else
- term.setCursorPos(x, y)
- term.write(text)
- end
- end
- local function init()
- term.clear()
- term.setCursorPos(1, 1)
- findPeripherals()
- findMon()
- monClear()
- end
- init()
- while true do
- local rods = 0
- local casingTemp = 0
- local coreTemp = 0
- local rodLevel = 0
- local fuelReactivity = 0
- local fuelConsumed = 0
- local steamProduced = 0
- local active = ""
- local X = 0
- local Y = 0
- local Z = 0
- rednet.open("top")
- local id, msg = rednet.receive()
- local table = textutils.unserialize(msg)
- -- print(table[0]) == getNumberOfControlRods
- -- print(table[1]) == getCasingTemperature
- -- print(table[2]) == getFuelTemperature
- -- print(table[3]) == getControlRodLevel
- -- print(table[4]) == getFuelReactivity
- -- print(table[5]) == getFuelConsumedLastTick
- -- print(table[6]) == getHotFluidProducedLastTick
- -- print(table[7]) == active
- -- print(table[8]) == X
- -- print(table[9]) == Y
- -- print(table[10]) == Z
- rods = table[0]
- casingTemp = table[1]
- coreTemp = table[2]
- rodLevel = table[3]
- fuelReactivity = table[4]
- fuelConsumed = table[5]
- steamProduced = table[6]
- active = table[7]
- X = table[8]
- Y = table[9]
- Z = table[10]
- monClear()
- monWrite(1, 1, " Reactor Status: "..active)
- monWrite(1, 2, " Reactor Size: "..X.."x"..Y.."x"..Z)
- monWrite(1, 3, " Num Control Rods: "..rods)
- monWrite(1, 4, " Casing Temp.: "..casingTemp)
- monWrite(1, 5, " Core Temp.: "..coreTemp)
- monWrite(1, 6, "Control Rod Level: "..rodLevel)
- monWrite(1, 7, " Fuel Reactivity: "..fuelReactivity)
- monWrite(1, 8, " Fuel Usage/tick: "..fuelConsumed)
- monWrite(1, 9, " Steam Produced: "..steamProduced)
- os.sleep(3)
- end
Add Comment
Please, Sign In to add comment