Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- local numbers = {}
- numbers[0] = {1, 1, 1, 0, 1, 1, 1}
- numbers[1] = {0, 0, 1, 0, 0, 1, 0}
- numbers[2] = {1, 0, 1, 1, 1, 0, 1}
- numbers[3] = {1, 0, 1, 1, 0, 1, 1}
- numbers[4] = {0, 1, 1, 1, 0, 1, 0}
- numbers[5] = {1, 1, 0, 1, 0, 1, 1}
- numbers[6] = {1, 1, 0, 1, 1, 1, 1}
- numbers[7] = {1, 0, 1, 0, 0, 1, 0}
- numbers[8] = {1, 1, 1, 1, 1, 1, 1}
- numbers[9] = {1, 1, 1, 1, 0, 1, 1}
- function initSevenSeg(startX, startY, nSize, nInactiveColor)
- startX, startY, nSize, nInactiveColor = tonumber(startX), tonumber(startY), tonumber(nSize), tonumber(nInactiveColor)
- if not nSize or type(startX) ~= "number" or type(startY) ~= "number" or type(nSize) ~= "number" then
- return false, "initSevenSeg(startX, startY, nSize[, nInactiveColor])"
- end
- local oldBgColor = term.getBackgroundColor()
- nInactiveColor = nInactiveColor or colors.lightGray
- paintutils.drawLine(startX + 1, startY, startX + nSize, startY, nInactiveColor)
- paintutils.drawLine(startX, startY + 1, startX, startY + nSize, nInactiveColor)
- paintutils.drawLine((startX + 1) + nSize, startY + 1, (startX + 1) + nSize, startY + nSize, nInactiveColor)
- paintutils.drawLine(startX + 1, (startY + 1) + nSize, startX + nSize, (startY + 1) + nSize, nInactiveColor)
- paintutils.drawLine(startX, (startY + 2) + nSize, startX, (startY + 1) + nSize * 2, nInactiveColor)
- paintutils.drawLine((startX + 1) + nSize, (startY + 2) + nSize, (startX + 1) + nSize, (startY + 1) + nSize * 2, nInactiveColor)
- paintutils.drawLine(startX + 1, (startY + 2) + nSize * 2, startX + nSize, (startY + 2) + nSize * 2, nInactiveColor)
- term.setBackgroundColor(oldBgColor)
- return true
- end
- function drawSevenSeg(nNumber, startX, startY, nSize, nActiveColor, nInactiveColor)
- nNumber, startX, startY, nSize, nActiveColor, nInactiveColor = tonumber(nNumber), tonumber(startX), tonumber(startY), tonumber(nSize), tonumber(nActiveColor), tonumber(nInactiveColor)
- if not nSize or type(nNumber) ~= "number" or type(startX) ~= "number" or type(startY) ~= "number" or type(nSize) ~= "number" then
- return false, "drawSevenSeg(nNumber, startX, startY, nSize[, nActiveColor, nInactiveColor])"
- end
- local oldBgColor = term.getBackgroundColor()
- nActiveColor = nActiveColor or colors.red
- nInactiveColor = nInactiveColor or colors.lightGray
- if nNumber > 9 then
- if nNumber % 9 == 0 then
- nNumber = 9
- else
- nNumber = nNumber % 9
- end
- end
- initSevenSeg(startX, startY, nSize, nInactiveColor)
- if numbers[nNumber][1] == 1 then
- paintutils.drawLine(startX + 1, startY, startX + nSize, startY, nActiveColor)
- end
- if numbers[nNumber][2] == 1 then
- paintutils.drawLine(startX, startY + 1, startX, startY + nSize, nActiveColor)
- end
- if numbers[nNumber][3] == 1 then
- paintutils.drawLine((startX + 1) + nSize, startY + 1, (startX + 1) + nSize, startY + nSize, nActiveColor)
- end
- if numbers[nNumber][4] == 1 then
- paintutils.drawLine(startX + 1, (startY + 1) + nSize, startX + nSize, (startY + 1) + nSize, nActiveColor)
- end
- if numbers[nNumber][5] == 1 then
- paintutils.drawLine(startX, (startY + 2) + nSize, startX, (startY + 1) + nSize * 2, nActiveColor)
- end
- if numbers[nNumber][6] == 1 then
- paintutils.drawLine((startX + 1) + nSize, (startY + 2) + nSize, (startX + 1) + nSize, (startY + 1) + nSize * 2, nActiveColor)
- end
- if numbers[nNumber][7] == 1 then
- paintutils.drawLine(startX + 1, (startY + 2) + nSize * 2, startX + nSize, (startY + 2) + nSize * 2, nActiveColor)
- end
- term.setBackgroundColor(oldBgColor)
- return true, numbers[nNumber]
- end
- function drawMultipleNumbers(nNumber, startX, startY, nSize, nActiveColor, nInactiveColor)
- nNumber, startX, startY, nSize, nActiveColor, nInactiveColor = tonumber(nNumber), tonumber(startX), tonumber(startY), tonumber(nSize), tonumber(nActiveColor), tonumber(nInactiveColor)
- if not nSize or type(nNumber) ~= "number" or type(startX) ~= "number" or type(startY) ~= "number" or type(nSize) ~= "number" then
- return false, "drawMultipleNumbers(nNumber, startX, startY, nSize[, nActiveColor, nInactiveColor])"
- end
- local oldBgColor = term.getBackgroundColor()
- local sNumber = tostring(nNumber)
- for i = 1, string.len(sNumber) do
- if i == 1 then
- drawSevenSeg(tonumber(sNumber:sub(1, 1)), startX, startY, nSize, nActiveColor, nInactiveColor)
- else
- drawSevenSeg(tonumber(sNumber:sub(i, i)), (((nSize + 2) + startX - 1) + (2 + (((nSize + 2) + startX - 1)) * (i - 2))), startY, nSize, nActiveColor, nInactiveColor)
- end
- end
- term.setBackgroundColor(oldBgColor)
- return true, nNumber
- end
Advertisement
Add Comment
Please, Sign In to add comment