Stawlie0

Untitled

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