diff --git a/MineOS/OS.lua b/MineOS/OS.lua index 14c0a497..dfca3f40 100644 --- a/MineOS/OS.lua +++ b/MineOS/OS.lua @@ -152,13 +152,20 @@ local function drawDock() --Рассчитываем размер и позицию дока на основе размера local widthOfDock = (currentCountOfIconsInDock * (sizes.widthOfIcon + sizes.xSpaceBetweenIcons) - sizes.xSpaceBetweenIcons) + sizes.heightOfDock * 2 + 2 - local xDock, yDock = math.floor(sizes.xSize / 2 - widthOfDock / 2) + 1, sizes.ySize - sizes.heightOfDock + local xDock, yDock = math.floor(sizes.xSize / 2 - widthOfDock / 2), sizes.ySize - sizes.heightOfDock --Рисуем сам док local transparency = colors.dockBaseTransparency + local currentDockWidth = widthOfDock - 2 for i = 1, sizes.heightOfDock do - buffer.square(xDock + i, sizes.ySize - i + 1, widthOfDock - i * 2, 1, 0xFFFFFF, 0xFFFFFF, " ", transparency) + buffer.text(xDock, yDock, 0xFFFFFF, "▟", transparency) + buffer.square(xDock, yDock, currentDockWidth, 1, 0xFFFFFF, 0xFFFFFF, " ", transparency) + buffer.text(xDock + currentDockWidth, yDock, 0xFFFFFF, "▙", transparency) + transparency = transparency + colors.dockTransparencyAdder + currentDockWidth = currentDockWidth - 4 + xDock = xDock + 2 + yDock = yDock - 1 end --Рисуем ярлыки на доке diff --git a/lib/doubleBuffering.lua b/lib/doubleBuffering.lua index 137062f6..34f34fb1 100644 --- a/lib/doubleBuffering.lua +++ b/lib/doubleBuffering.lua @@ -280,13 +280,13 @@ function buffer.line(x1, y1, x2, y2, background, foreground, symbol) end -- Отрисовка текста, подстраивающегося под текущий фон -function buffer.text(x, y, color, text) +function buffer.text(x, y, color, text, transparency) local index local sText = unicode.len(text) for i = 1, sText do if (x + i - 1) >= buffer.drawLimit.x1 and y >= buffer.drawLimit.y1 and (x + i - 1) <= buffer.drawLimit.x2 and y <= buffer.drawLimit.y2 then index = convertCoordsToIndex(x + i - 1, y) - buffer.screen.new[index + 1] = color + buffer.screen.new[index + 1] = not transparency and color or colorlib.alphaBlend(buffer.screen.new[index + 1], color, transparency) buffer.screen.new[index + 2] = unicode.sub(text, i, i) end end