Stawlie0

sgui

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