Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- -- by ther xd
- -- Monitor is required, but you could set it to term
- -- if you want it to draw stuff to the terminal screen
- -- so... Monitor = term
- MonitorSide = "left"
- Monitor = peripheral.wrap(MonitorSide)
- 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 DrawCenteredHorizontal(yPos, width, text, textColour, backgroundColour)
- local textLength = string.len(text)
- local centerX = (width / 2) - (textLength / 2)
- DrawText(centerX, yPos, text, textColour, backgroundColour)
- end
- function DrawLineH(xPos, yPos, lineLength, colour)
- Monitor.setBackgroundColor(colour)
- Monitor.setTextColor(colour)
- Monitor.setCursorPos(xPos,yPos)
- Monitor.write(string.rep(" ", lineLength))
- end
- function DrawLineV(xPos, yPos, width, lineHeight, colour)
- Monitor.setBackgroundColor(colour)
- for i = 1, lineHeight, 1 do
- Monitor.setCursorPos(xPos, yPos + (i - 1))
- Monitor.write(string.rep(" ", width))
- end
- end
- function DrawSquare(xPos, yPos, nWidth, nHeight, backgroundColour)
- Monitor.setBackgroundColor(backgroundColour)
- for i = 1, math.ceil(nHeight / 1.5), 1 do
- Monitor.setCursorPos(xPos, yPos + (i - 1))
- Monitor.write(string.rep(" ", nWidth))
- end
- end
- function ProgressBar(xPos, yPos, width, value, maxValue, backgroundColour, progressColour)
- DrawLineH(xPos, yPos, width, backgroundColour) --backgoround bar
- local barSize = math.floor((value/maxValue) * width)
- DrawLineH(xPos, yPos, barSize, progressColour) --progress so far
- end
- function GroupBoxHeader(xPos, yPos, width, header, textColour, backgroundColour)
- local headerLength = string.len(header)
- local repeatChars = width - 4 - headerLength
- if (repeatChars < 0) then
- repeatChars = 0
- end
- local head = "--- " .. header .. " " .. string.rep("-", repeatChars)
- DrawText(xPos, yPos, head, textColour, backgroundColour)
- end
- function GroupBoxFooter(xPos, yPos, width, textColour, backgroundColour)
- if (width < 0) then
- width = 0
- end
- local head = string.rep("-", width)
- DrawText(xPos, yPos, head, textColour, backgroundColour)
- end
- function GroupBox(xPos, yPos, width, height, header, textColour, headerBackgroundColour)
- GroupBoxHeader(xPos, yPos, width, header, textColour, headerBackgroundColour)
- GroupBoxFooter(xPos, yPos + height + 1, width, textColour, headerBackgroundColour)
- end
- function Between(value, betweenthis, andthis)
- if (value >= betweenthis) then
- if (value <= andthis) then
- return true
- end
- end
- return false
- end
- function ColourFromTemp(tempK)
- if (tempK <= 410) then return colours.blue end
- if (tempK <= 550) then return colours.cyan end
- if (tempK <= 720) then return colours.yellow end
- if (tempK <= 850) then return colours.orange end
- if (tempK <= 1000) then return colours.red end
- return colours.black
- end
- T1 = 0
- T2 = 0
- T3 = 0
- T4 = 0
- T5 = 0
- T6 = 0
- T7 = 0
- T8 = 0
- T9 = 0
- T10 = 0
- T11 = 0
- T12 = 0
- T13 = 0
- T14 = 0
- T15 = 0
- T16 = 0
- T17 = 0
- T18 = 0
- T19 = 0
- T20 = 0
- T21 = 0
- T22 = 0
- T23 = 0
- T24 = 0
- T25 = 0
- function DrawControlRods(xPos, yPos)
- local startX = xPos + 2
- local startY = yPos + 2
- local sqrW = 4
- local sqrH = 4
- -- top
- DrawLineH(startX - 1, startY - 1, (sqrW * 7) + 2, colours.grey)
- -- bottom
- DrawLineH(startX - 1, startY + (sqrH * 7) - 1, (sqrW * 7) + 2, colours.grey)
- -- left
- DrawLineV(startX - 1, startY - 1, 1, (sqrH * 7), colours.grey)
- -- right
- DrawLineV(startX + (sqrW * 7), startY - 1, 1, (sqrH * 7), colours.grey)
- DrawSquare(startX + (sqrW * 0), startY + (sqrH * 0), sqrW, sqrH, ColourFromTemp(T1))
- DrawSquare(startX + (sqrW * 2), startY + (sqrH * 0), sqrW, sqrH, ColourFromTemp(T2))
- DrawSquare(startX + (sqrW * 4), startY + (sqrH * 0), sqrW, sqrH, ColourFromTemp(T3))
- DrawSquare(startX + (sqrW * 6), startY + (sqrH * 0), sqrW, sqrH, ColourFromTemp(T4))
- DrawSquare(startX + (sqrW * 1), startY + (sqrH * 1), sqrW, sqrH, ColourFromTemp(T4))
- DrawSquare(startX + (sqrW * 3), startY + (sqrH * 1), sqrW, sqrH, ColourFromTemp(T4))
- DrawSquare(startX + (sqrW * 5), startY + (sqrH * 1), sqrW, sqrH, ColourFromTemp(T4))
- DrawSquare(startX + (sqrW * 0), startY + (sqrH * 2), sqrW, sqrH, ColourFromTemp(T1))
- DrawSquare(startX + (sqrW * 2), startY + (sqrH * 2), sqrW, sqrH, ColourFromTemp(T2))
- DrawSquare(startX + (sqrW * 4), startY + (sqrH * 2), sqrW, sqrH, ColourFromTemp(T3))
- DrawSquare(startX + (sqrW * 6), startY + (sqrH * 2), sqrW, sqrH, ColourFromTemp(T4))
- DrawSquare(startX + (sqrW * 1), startY + (sqrH * 3), sqrW, sqrH, ColourFromTemp(T4))
- DrawSquare(startX + (sqrW * 3), startY + (sqrH * 3), sqrW, sqrH, ColourFromTemp(T4))
- DrawSquare(startX + (sqrW * 5), startY + (sqrH * 3), sqrW, sqrH, ColourFromTemp(T4))
- DrawSquare(startX + (sqrW * 0), startY + (sqrH * 4), sqrW, sqrH, ColourFromTemp(T1))
- DrawSquare(startX + (sqrW * 2), startY + (sqrH * 4), sqrW, sqrH, ColourFromTemp(T2))
- DrawSquare(startX + (sqrW * 4), startY + (sqrH * 4), sqrW, sqrH, ColourFromTemp(T3))
- DrawSquare(startX + (sqrW * 6), startY + (sqrH * 4), sqrW, sqrH, ColourFromTemp(T4))
- DrawSquare(startX + (sqrW * 1), startY + (sqrH * 5), sqrW, sqrH, ColourFromTemp(T4))
- DrawSquare(startX + (sqrW * 3), startY + (sqrH * 5), sqrW, sqrH, ColourFromTemp(T4))
- DrawSquare(startX + (sqrW * 5), startY + (sqrH * 5), sqrW, sqrH, ColourFromTemp(T4))
- DrawSquare(startX + (sqrW * 0), startY + (sqrH * 6), sqrW, sqrH, ColourFromTemp(T1))
- DrawSquare(startX + (sqrW * 2), startY + (sqrH * 6), sqrW, sqrH, ColourFromTemp(T2))
- DrawSquare(startX + (sqrW * 4), startY + (sqrH * 6), sqrW, sqrH, ColourFromTemp(T3))
- DrawSquare(startX + (sqrW * 6), startY + (sqrH * 6), sqrW, sqrH, ColourFromTemp(T4))
- end
- function Main()
- while true do
- -- width = 82
- -- height = 40
- -- start X = 37
- -- start Y = 16
- ClearMonitor()
- DrawText(3, 2, "Control Rods", colours.orange, colours.black)
- DrawControlRods(2, 4)
- os.sleep(1)
- end
- end
- Main()
Advertisement
Add Comment
Please, Sign In to add comment