Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ugui = {}
- local gpu = require("component").gpu
- local unicode = require("unicode")
- local bit32 = require("bit32")
- ugui.colors = {
- ["0"] = 0x333333,
- ["1"] = 0x0000ff,
- ["2"] = 0x00ff00,
- ["3"] = 0x24b3a7,
- ["4"] = 0xff0000,
- ["5"] = 0x8b00ff,
- ["6"] = 0xffa500,
- ["7"] = 0xbbbbbb,
- ["8"] = 0x808080,
- ["9"] = 0x0000ff,
- ["a"] = 0x66ff66,
- ["b"] = 0x00ffff,
- ["c"] = 0xff6347,
- ["d"] = 0xff00ff,
- ["e"] = 0xffff00,
- ["f"] = 0xffffff,
- ["g"] = 0x00ff00,
- ["border"] = 0x525FE1,
- }
- function ugui.setColor(index)
- local back = gpu.getForeground()
- local newColor = ugui.colors[index]
- if newColor then
- gpu.setForeground(newColor)
- elseif index == "r" then
- gpu.setForeground(back)
- end
- end
- function ugui.text(x, y, text)
- local n = 0
- local isColorCode = false
- for i = 1, unicode.len(text) do
- local char = unicode.sub(text, i, i)
- if char == "&" then
- isColorCode = true
- elseif isColorCode then
- isColorCode = false
- if ugui.colors[char] then
- ugui.setColor(char) -- Исправлен вызов функции
- end
- else
- n = n + 1
- gpu.set(x + n, y, char)
- end
- end
- end
- function ugui.drawCube(x, y, w, h, c1, c2)
- local r = function(c) return bit32.band(bit32.rshift(c, 16), 0xFF) end local g = function(c) return bit32.band(bit32.rshift(c, 8), 0xFF) end local b = function(c) return bit32.band(c, 0xFF) end
- for i = 0, h - 1 do
- local mix = i / (h - 1)
- local rM = math.floor(r(c1) * (1 - mix) + r(c2) * mix)
- local gM = math.floor(g(c1) * (1 - mix) + g(c2) * mix)
- local bM = math.floor(b(c1) * (1 - mix) + b(c2) * mix)
- gpu.setForeground(bit32.bor(bit32.lshift(rM, 16), bit32.lshift(gM, 8), bM))
- if i == 0 then gpu.set(x, y, "╭" .. string.rep("⎯", w - 2) .. "╮")
- elseif i == h - 1 then gpu.set(x, y + i, "╰" .. string.rep("⎯", w - 2) .. "╯")
- else gpu.set(x, y + i, "│") gpu.set(x + w - 1, y + i, "│") end
- end
- end
- function ugui.drawMain(nameTable, version, c1, c2)
- local width, height = gpu.getResolution()
- ugui.drawCube(1, 1, width, height, c1, c2) -- Исправлен вызов функции
- ugui.text(math.floor((width/2)-unicode.len(nameTable)/2), 1, nameTable) -- Исправлен вызов функции
- ugui.text(5, height, "&d[Author: Stawlie]")
- vers = "&d[v" .. version .. " beta]"
- ugui.text(width-#vers-5, height, vers) -- Исправлен вызов функции
- end
- function ugui.drawFrame(x, y, width, height, nameTitle, color)
- ugui.drawCube(x, y, width, height, color)
- ugui.text(x+1, y, "[" ..nameTitle .. "]")
- end
- return ugui
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement