Advertisement
Stawlie0

Untitled

Oct 11th, 2023
765
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.82 KB | None | 0 0
  1. ugui = {}
  2. local gpu = require("component").gpu
  3. local unicode = require("unicode")
  4. local bit32 = require("bit32")
  5.  
  6. ugui.colors = {
  7.     ["0"] = 0x333333,
  8.     ["1"] = 0x0000ff,
  9.     ["2"] = 0x00ff00,
  10.     ["3"] = 0x24b3a7,
  11.     ["4"] = 0xff0000,
  12.     ["5"] = 0x8b00ff,
  13.     ["6"] = 0xffa500,
  14.     ["7"] = 0xbbbbbb,
  15.     ["8"] = 0x808080,
  16.     ["9"] = 0x0000ff,
  17.     ["a"] = 0x66ff66,
  18.     ["b"] = 0x00ffff,
  19.     ["c"] = 0xff6347,
  20.     ["d"] = 0xff00ff,
  21.     ["e"] = 0xffff00,
  22.     ["f"] = 0xffffff,
  23.     ["g"] = 0x00ff00,
  24.     ["border"] = 0x525FE1,
  25. }
  26.  
  27. function ugui.setColor(index)
  28.     local back = gpu.getForeground()
  29.     local newColor = ugui.colors[index]
  30.     if newColor then
  31.         gpu.setForeground(newColor)
  32.     elseif index == "r" then
  33.         gpu.setForeground(back)
  34.     end
  35. end
  36.  
  37. function ugui.text(x, y, text)
  38.     local n = 0
  39.     local isColorCode = false
  40.  
  41.     for i = 1, unicode.len(text) do
  42.         local char = unicode.sub(text, i, i)
  43.  
  44.         if char == "&" then
  45.             isColorCode = true
  46.         elseif isColorCode then
  47.             isColorCode = false
  48.             if ugui.colors[char] then
  49.                 ugui.setColor(char)  -- Исправлен вызов функции
  50.             end
  51.         else
  52.             n = n + 1
  53.             gpu.set(x + n, y, char)
  54.         end
  55.     end
  56. end
  57.  
  58. function ugui.drawCube(x, y, w, h, c1, c2)
  59.     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
  60.     for i = 0, h - 1 do
  61.         local mix = i / (h - 1)
  62.         local rM = math.floor(r(c1) * (1 - mix) + r(c2) * mix)
  63.         local gM = math.floor(g(c1) * (1 - mix) + g(c2) * mix)
  64.         local bM = math.floor(b(c1) * (1 - mix) + b(c2) * mix)
  65.         gpu.setForeground(bit32.bor(bit32.lshift(rM, 16), bit32.lshift(gM, 8), bM))
  66.         if i == 0 then gpu.set(x, y, "╭" .. string.rep("⎯", w - 2) .. "╮")
  67.         elseif i == h - 1 then gpu.set(x, y + i, "╰" .. string.rep("⎯", w - 2) .. "╯")
  68.         else gpu.set(x, y + i, "│") gpu.set(x + w - 1, y + i, "│") end
  69.     end
  70. end
  71.  
  72. function ugui.drawMain(nameTable, version, c1, c2)
  73.     local width, height = gpu.getResolution()
  74.     ugui.drawCube(1, 1, width, height, c1, c2)  -- Исправлен вызов функции
  75.     ugui.text(math.floor((width/2)-unicode.len(nameTable)/2), 1,  nameTable)  -- Исправлен вызов функции
  76.     ugui.text(5, height, "&d[Author: Stawlie]")
  77.     vers = "&d[v" .. version .. " beta]"
  78.     ugui.text(width-#vers-5, height, vers)  -- Исправлен вызов функции
  79. end
  80.  
  81. function ugui.drawFrame(x, y, width, height, nameTitle, color)
  82.     ugui.drawCube(x, y, width, height, color)
  83.     ugui.text(x+1, y, "[" ..nameTitle .. "]")
  84. end
  85.  
  86. return ugui
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement