Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- MonitorSide = "bottom"
- Monitor = peripheral.wrap(MonitorSide)
- cell1 = peripheral.wrap("cofh_thermalexpansion_energycell_77")
- cell2 = peripheral.wrap("cofh_thermalexpansion_energycell_78")
- cell3 = peripheral.wrap("cofh_thermalexpansion_energycell_79")
- cell4 = peripheral.wrap("cofh_thermalexpansion_energycell_80")
- cell5 = peripheral.wrap("cofh_thermalexpansion_energycell_81")
- cell6 = peripheral.wrap("cofh_thermalexpansion_energycell_82")
- cell7 = peripheral.wrap("cofh_thermalexpansion_energycell_83")
- cell8 = peripheral.wrap("cofh_thermalexpansion_energycell_84")
- cell9 = peripheral.wrap("cofh_thermalexpansion_energycell_85")
- function ClearMonitor()
- Monitor.setTextColor(colours.black)
- Monitor.setBackgroundColor(colours.black)
- Monitor.clear()
- Monitor.setCursorPos(1,1)
- end
- function DrawText(xPos, yPos, text, textColour, backgroundColour)
- Monitor.setBackgroundColor(backgroundColour)
- Monitor.setTextColor(textColour)
- Monitor.setCursorPos(xPos,yPos)
- Monitor.write(text)
- end
- function DrawLine(xPos, yPos, lineLength, colour)
- Monitor.setBackgroundColor(colour)
- Monitor.setTextColor(colour)
- Monitor.setCursorPos(xPos,yPos)
- Monitor.write(string.rep(" ", lineLength))
- end
- function ProgressBar(xPos, yPos, barLength, value, maxValue, backgroundColour, progressColour)
- DrawLine(xPos, yPos, barLength, backgroundColour) --backgoround bar
- local barSize = math.floor((value/maxValue) * barLength)
- DrawLine(xPos, yPos, barSize, progressColour) --progress so far
- end
- function GroupBox(xPos, yPos, height, header, textColour, headerBackgroundColour, rightPadding)
- GroupBoxHeader(xPos, yPos, header, textColour, headerBackgroundColour, rightPadding)
- GroupBoxFooter(xPos, yPos + height + 1, textColour, headerBackgroundColour, rightPadding)
- end
- function GroupBoxHeader(xPos, yPos, header, textColour, backgroundColour, rightPadding)
- local repeatChars
- local headerLength = string.len(header)
- local monX, monY = Monitor.getSize()
- repeatChars = monX - 4 - headerLength - rightPadding
- if (repeatChars < 0) then
- repeatChars = 0
- end
- local head = "--- " .. header .. " " .. string.rep("-", repeatChars - rightPadding)
- DrawText(xPos, yPos, head, textColour, backgroundColour)
- end
- function GroupBoxFooter(xPos, yPos, textColour, backgroundColour, rightPadding)
- local repeatChars
- local monX, monY = Monitor.getSize()
- repeatChars = monX - rightPadding
- if (repeatChars < 0) then
- repeatChars = 0
- end
- local head = string.rep("-", repeatChars)
- DrawText(xPos, yPos, head, textColour, backgroundColour)
- end
- function GetColourFromPercent(percentage)
- local colourOut = colours.red
- if (percentage > 15) then colourOut = colours.orange end
- if (percentage > 45) then colourOut = colours.yellow end
- if (percentage > 70) then colourOut = colours.green end
- if (percentage > 90) then colourOut = colours.cyan end
- return colourOut
- end
- function Main()
- Monitor.setTextScale(1)
- while (true) do
- local monX, monY = Monitor.getSize()
- local cell1Energy = cell1.getEnergyStored("unknown")
- local cell2Energy = cell2.getEnergyStored("unknown")
- local cell3Energy = cell3.getEnergyStored("unknown")
- local cell4Energy = cell4.getEnergyStored("unknown")
- local cell5Energy = cell5.getEnergyStored("unknown")
- local cell6Energy = cell6.getEnergyStored("unknown")
- local cell7Energy = cell7.getEnergyStored("unknown")
- local cell8Energy = cell8.getEnergyStored("unknown")
- local cell9Energy = cell9.getEnergyStored("unknown")
- local cell1MaxEnergy = cell1.getMaxEnergyStored("unknown")
- local cell2MaxEnergy = cell2.getMaxEnergyStored("unknown")
- local cell3MaxEnergy = cell3.getMaxEnergyStored("unknown")
- local cell4MaxEnergy = cell4.getMaxEnergyStored("unknown")
- local cell5MaxEnergy = cell5.getMaxEnergyStored("unknown")
- local cell6MaxEnergy = cell6.getMaxEnergyStored("unknown")
- local cell7MaxEnergy = cell7.getMaxEnergyStored("unknown")
- local cell8MaxEnergy = cell8.getMaxEnergyStored("unknown")
- local cell9MaxEnergy = cell9.getMaxEnergyStored("unknown")
- local cell1Percent = math.floor((cell1Energy / cell1MaxEnergy) * 100)
- local cell2Percent = math.floor((cell2Energy / cell2MaxEnergy) * 100)
- local cell3Percent = math.floor((cell3Energy / cell3MaxEnergy) * 100)
- local cell4Percent = math.floor((cell4Energy / cell4MaxEnergy) * 100)
- local cell5Percent = math.floor((cell5Energy / cell5MaxEnergy) * 100)
- local cell6Percent = math.floor((cell6Energy / cell6MaxEnergy) * 100)
- local cell7Percent = math.floor((cell7Energy / cell7MaxEnergy) * 100)
- local cell8Percent = math.floor((cell8Energy / cell8MaxEnergy) * 100)
- local cell9Percent = math.floor((cell9Energy / cell9MaxEnergy) * 100)
- local c1c
- local c2c
- local c3c
- local c4c
- local c5c
- local c6c
- local c7c
- local c8c
- local c9c
- if (cell1Percent == 0) then c1c = colours.red else c1c = colours.grey end
- if (cell2Percent == 0) then c2c = colours.red else c2c = colours.grey end
- if (cell3Percent == 0) then c3c = colours.red else c3c = colours.grey end
- if (cell4Percent == 0) then c4c = colours.red else c4c = colours.grey end
- if (cell5Percent == 0) then c5c = colours.red else c5c = colours.grey end
- if (cell6Percent == 0) then c6c = colours.red else c6c = colours.grey end
- if (cell7Percent == 0) then c7c = colours.red else c7c = colours.grey end
- if (cell8Percent == 0) then c8c = colours.red else c8c = colours.grey end
- if (cell9Percent == 0) then c9c = colours.red else c9c = colours.grey end
- ClearMonitor()
- GroupBox(2, 2, 19, "ME Backup Cells Power", colours.orange, colours.black, 0)
- DrawText(3, 4, "Cell 1", colours.white, colours.black)
- ProgressBar(10, 4, monX - 15, cell1Energy, cell1MaxEnergy, c1c, GetColourFromPercent(cell1Percent))
- DrawText(monX - 4, 4, cell1Percent .. "%", colours.white, colours.black)
- DrawText(3, 6, "Cell 2", colours.white, colours.black)
- ProgressBar(10, 6, monX - 15, cell2Energy, cell2MaxEnergy, c2c, GetColourFromPercent(cell2Percent))
- DrawText(monX - 4, 6, cell2Percent .. "%", colours.white, colours.black)
- DrawText(3, 8, "Cell 3", colours.white, colours.black)
- ProgressBar(10, 8, monX - 15, cell3Energy, cell3MaxEnergy, c3c, GetColourFromPercent(cell3Percent))
- DrawText(monX - 4, 8, cell3Percent .. "%", colours.white, colours.black)
- DrawText(3, 10, "Cell 4", colours.white, colours.black)
- ProgressBar(10, 10, monX - 15, cell4Energy, cell4MaxEnergy, c4c, GetColourFromPercent(cell4Percent))
- DrawText(monX - 4, 10, cell4Percent .. "%", colours.white, colours.black)
- DrawText(3, 12, "Cell 5", colours.white, colours.black)
- ProgressBar(10, 12, monX - 15, cell5Energy, cell5MaxEnergy, c5c, GetColourFromPercent(cell5Percent))
- DrawText(monX - 4, 12, cell5Percent .. "%", colours.white, colours.black)
- DrawText(3, 14, "Cell 6", colours.white, colours.black)
- ProgressBar(10, 14, monX - 15, cell6Energy, cell6MaxEnergy, c6c, GetColourFromPercent(cell6Percent))
- DrawText(monX - 4, 14, cell6Percent .. "%", colours.white, colours.black)
- DrawText(3, 16, "Cell 7", colours.white, colours.black)
- ProgressBar(10, 16, monX - 15, cell7Energy, cell7MaxEnergy, c7c, GetColourFromPercent(cell7Percent))
- DrawText(monX - 4, 16, cell7Percent .. "%", colours.white, colours.black)
- DrawText(3, 18, "Cell 8", colours.white, colours.black)
- ProgressBar(10, 18, monX - 15, cell8Energy, cell8MaxEnergy, c8c, GetColourFromPercent(cell8Percent))
- DrawText(monX - 4, 18, cell8Percent .. "%", colours.white, colours.black)
- DrawText(3, 20, "Cell 9", colours.white, colours.black)
- ProgressBar(10, 20, monX - 15, cell9Energy, cell9MaxEnergy, c9c, GetColourFromPercent(cell9Percent))
- DrawText(monX - 4, 20, cell9Percent .. "%", colours.white, colours.black)
- sleep(1)
- end
- end
- Main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement