Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local rValue = math.random(1000, 9999) --has no actual effect on the operation of the program
- while true do --enter our loop
- local pList = peripheral.getNames()
- local i, name
- --get the full device names
- function getMonitorName()
- for i, name in pairs(pList) do
- if peripheral.getType(name) == "monitor" then
- return peripheral.wrap(name)
- end
- end
- end
- function getMatrixName()
- for i, name in pairs(pList) do
- if peripheral.getType(name) == "Induction Matrix" then
- return peripheral.wrap(name)
- end
- end
- end
- function getbCubeName()
- for i, name in pairs(pList) do
- if peripheral.getType(name) == "Basic Energy Cube" then
- return peripheral.wrap(name)
- end
- end
- end
- function getaCubeName()
- for i, name in pairs(pList) do
- if peripheral.getType(name) == "Advanced Energy Cube" then
- return peripheral.wrap(name)
- end
- end
- end
- function geteCubeName()
- for i, name in pairs(pList) do
- if peripheral.getType(name) == "Elite Energy Cube" then
- return peripheral.wrap(name)
- end
- end
- end
- function getuCubeName()
- for i, name in pairs(pList) do
- if peripheral.getType(name) == "Ultimate Energy Cube" then
- return peripheral.wrap(name)
- end
- end
- end
- --set the short name aliases
- local mon = getMonitorName()
- local matrix = getMatrixName()
- local bCube = getbCubeName()
- local aCube = getaCubeName()
- local eCube = geteCubeName()
- local uCube = getuCubeName()
- local sType = 0 --storage type counter
- --quick formatting aliases
- function mCursor(x,y) --monitor cursor alias
- mon.setCursorPos(x,y)
- end
- function tCursor(x,y) --terminal cursor alias
- term.setCursorPos(x,y)
- end
- function nText() --nominal text (need to rework later)
- mon.setTextColor(colors.lime)
- end
- function hText() --header text
- mon.setTextColor(colors.white)
- end
- function iText() --info text
- mon.setTextColor(colors.yellow)
- end
- function cText() --caution text
- mon.setTextColor(colors.orange)
- end
- function wText() --warning text
- mon.setTextColor(colors.red)
- end
- function tReset() --reset terminal to initial state
- term.clear()
- tCursor(1,1)
- end
- function mReset() --reset monitor to initial state
- mon.clear()
- mCursor(1,1)
- end
- if mon == nil then --detect if a monitor exists, error if it doesn't
- tReset()
- print("Error -1\n")
- print("This system was designed to output to a",
- "monitor, but one couldn't be found. Please",
- "attach a monitor to any side of the terminal",
- "or with a wired modem.")
- else
- tReset()
- print("Process ID:", rValue)
- print("Status: Running...")
- end
- if matrix ~= nil then --detect if an Induction Matrix exists, set method aliases if it does
- mEnergy = matrix.getEnergy()
- mMaxEnergy = matrix.getMaxEnergy()
- mInput = matrix.getInput()
- mOutput = matrix.getOutput()
- mXFerCap = matrix.getTransferCap()
- sType = sType+1
- end
- if bCube ~= nil then --detect if a Basic Energy Cube exists, set method aliases if it does
- bEnergy = bCube.getEnergy()
- bMaxEnergy = bCube.getMaxEnergy()
- bEnergyNeeded = bCube.getEnergyNeeded()
- bOutput = bCube.getOutput()
- sType = sType+1
- end
- if aCube ~= nil then --detect if an Advanced Energy Cube exists, set method aliases if it does
- aEnergy = aCube.getEnergy()
- aMaxEnergy = aCube.getMaxEnergy()
- aEnergyNeeded = aCube.getEnergyNeeded()
- aOutput = aCube.getOutput()
- sType = sType+1
- end
- if eCube ~= nil then --detect if an Elite Energy Cube exists, set method aliases if it does
- eEnergy = eCube.getEnergy()
- eMaxEnergy = eCube.getMaxEnergy()
- eEnergyNeeded = eCube.getEnergyNeeded()
- eOutput = eCube.getOutput()
- sType = sType+1
- end
- if uCube ~= nil then --detect if an Ultimate Energy Cube exists, set method aliases if it does
- uEnergy = uCube.getEnergy()
- uMaxEnergy = uCube.getMaxEnergy()
- uEnergyNeeded = uCube.getEnergyNeeded()
- uOutput = uCube.getOutput()
- sType = sType+1
- end
- function putNumber (number) --round numbers and make them into human readable format
- local round = 0
- local texts = ""
- if number >= 1000000000000000000 then
- round = (number / 1000000000000000000)
- texts = string.sub(round, 0, 5) .. " EJ"
- elseif number >= 1000000000000000 then
- round = (number / 1000000000000000)
- texts = string.sub(round, 0, 5) .. " PJ"
- elseif number >= 1000000000000 then
- round = (number / 1000000000000)
- texts = string.sub(round, 0, 5) .. " TJ"
- elseif number >= 1000000000 then
- round = (number / 1000000000)
- texts = string.sub(round, 0, 5) .. " GJ"
- elseif number >= 1000000 then
- round = (number / 1000000)
- texts = string.sub(round, 0, 5) .. " MJ"
- elseif number >= 1000 then
- round = (number / 1000)
- texts = string.sub(round, 0, 5) .. " kJ"
- else
- round = (number)
- texts = string.sub(number, 0, 5) .. " J"
- end
- return texts
- end
- mReset()
- mon.write(putNumber(bEnergy))
- mCursor(1,2)
- mon.write(putNumber(aEnergy))
- mCursor(1,3)
- mon.write(putNumber(eEnergy))
- mCursor(1,4)
- mon.write(putNumber(uEnergy))
- mCursor(1,5)
- mon.write(putNumber(mEnergy)) mon.write(putNumber(mMaxEnergy))
- --[[
- if sType == 0 then
- mReset()
- mon.write("ERROR: No power storage detected.")
- mCursor(1,3)
- mon.write("System TERMINATED.")
- mCursor(1,5)
- mon.write("Please connect power storage")
- tReset()
- break
- elseif sType > 1 then
- mReset()
- mon.write("ERROR: Multi-Type Storage Detected")
- mCursor(1,3)
- mon.write("System TERMINATED")
- tReset()
- break
- end
- --]]
- sleep(1) --wait for 1sec
- end --exit our loop
Advertisement
Add Comment
Please, Sign In to add comment