diff --git a/.gitignore b/.gitignore index b1b9ce0..83eed86 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ Output/ examples/Out/* tests/Out/*.xml tests/TemplateRootTemp/* +.DS_Store diff --git a/Plaster/Private/Show-Logo.ps1 b/Plaster/Private/Show-Logo.ps1 new file mode 100644 index 0000000..055a412 --- /dev/null +++ b/Plaster/Private/Show-Logo.ps1 @@ -0,0 +1,884 @@ +function Show-Logo { + + if ($env:NO_COLOR) { + @' + ▄▄▄▄▄▄ ▄▄▄ ▄ ██▀▀▀▀▀█████▀▀▀███ + ██ ██ ██ ██ █▄▄███ ██▀ ▄█▄ ▀█ + ██▄▄█▀ ██ ▀▀▀█▄ ▄█▀▀▀█▄▀██▀▀ ▄█▀▀▀█▄▀█▄█▀█▄ ████▀ ▄███ █▀█ █ + ██ ██ ▄█▀▀██ ▀█▄▄ ██ ██▀▀▀▀▀ ██ ▀▀ ██▀ ▄█████ █▄█ █ + ██ ██ ██ ██ ▄▄ ▀█▄ ██ ▄██ ▄▄ ██ █ ███▀▀██▄ ▀█▀ ▄█ + ▀▀▀▀ ▀▀▀▀ ▀▀▀▀ ▀ ▀▀▀▀▀ ▀▀▀ ▀▀▀▀▀ ▀▀▀▀ █▄▄▄▄▄▄▄█▄██▄▄▄███ +'@ + } else { + #!/usr/bin/env pwsh + # Auto-generated by PX2PS 2025.12.29 + # Source: Plaster2.px (65x12) + # Generated: 2026-04-13 12:45:59 + + # Enable Virtual Terminal Processing for ANSI colors (Windows PowerShell 5.1 compatibility) + if ($PSVersionTable.PSVersion.Major -le 5 -and $env:OS -eq 'Windows_NT') { + try { + Add-Type -TypeDefinition @' +using System; +using System.Runtime.InteropServices; +public class VTConsole { + [DllImport("kernel32.dll", SetLastError = true)] + public static extern IntPtr GetStdHandle(int nStdHandle); + [DllImport("kernel32.dll", SetLastError = true)] + public static extern bool GetConsoleMode(IntPtr hConsoleHandle, out uint lpMode); + [DllImport("kernel32.dll", SetLastError = true)] + public static extern bool SetConsoleMode(IntPtr hConsoleHandle, uint dwMode); + public static void EnableVT() { + IntPtr handle = GetStdHandle(-11); + uint mode; + GetConsoleMode(handle, out mode); + SetConsoleMode(handle, mode | 0x4); + } +} +'@ -ErrorAction SilentlyContinue + [VTConsole]::EnableVT() + } catch { + # VT processing may already be enabled or not available + } + } + + $ESC = [char]27 + $LowerHalfBlock = [char]0x2584 + + function Get-TrueColorFg { + param([int]$R, [int]$G, [int]$B) + return "$ESC[38;2;${R};${G};${B}m" + } + + function Get-TrueColorBg { + param([int]$R, [int]$G, [int]$B) + return "$ESC[48;2;${R};${G};${B}m" + } + + $width = 65 + $height = 12 + $pixels = @( + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(255, 255, 255, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(30, 30, 30, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255), + @(35, 188, 238, 255) + ) + + $oddHeight = ($height % 2) -eq 1 + $startY = if ($oddHeight) { -1 } else { 0 } + $endY = if ($oddHeight) { $height - 1 } else { $height } + + for ($y = $startY; $y -lt $endY; $y += 2) { + $line = '' + for ($x = 0; $x -lt $width; $x++) { + $topY = $y + $bottomY = $y + 1 + + if ($topY -lt 0) { + $topPixel = $null + } else { + $topIdx = ($topY * $width) + $x + $topPixel = if ($topIdx -lt $pixels.Count) { $pixels[$topIdx] } else { @(0, 0, 0, 0) } + } + + $bottomIdx = ($bottomY * $width) + $x + $bottomPixel = if ($bottomIdx -lt $pixels.Count) { $pixels[$bottomIdx] } else { @(0, 0, 0, 0) } + + $botR = if ($bottomPixel[3] -lt 32) { 0 } else { $bottomPixel[0] } + $botG = if ($bottomPixel[3] -lt 32) { 0 } else { $bottomPixel[1] } + $botB = if ($bottomPixel[3] -lt 32) { 0 } else { $bottomPixel[2] } + + if ($null -eq $topPixel) { + $fg = Get-TrueColorFg -R $botR -G $botG -B $botB + $line += "${fg}$LowerHalfBlock" + } else { + $topR = if ($topPixel[3] -lt 32) { 0 } else { $topPixel[0] } + $topG = if ($topPixel[3] -lt 32) { 0 } else { $topPixel[1] } + $topB = if ($topPixel[3] -lt 32) { 0 } else { $topPixel[2] } + + $bg = Get-TrueColorBg -R $topR -G $topG -B $topB + $fg = Get-TrueColorFg -R $botR -G $botG -B $botB + $line += "${bg}${fg}$LowerHalfBlock" + } + } + $line += "$ESC[0m$ESC[K" + Write-Host $line + } + } +} \ No newline at end of file diff --git a/Plaster/Public/Invoke-Plaster.ps1 b/Plaster/Public/Invoke-Plaster.ps1 index 574487e..c3394cc 100644 --- a/Plaster/Public/Invoke-Plaster.ps1 +++ b/Plaster/Public/Invoke-Plaster.ps1 @@ -165,17 +165,10 @@ function Invoke-Plaster { begin { # Enhanced logo with JSON support indicator - $plasterLogo = @' - ____ _ _ ____ ___ - | _ \| | __ _ ___| |_ ___ _ __ |___ \ / _ \ - | |_) | |/ _` / __| __/ _ \ '__| __) | | | | | - | __/| | (_| \__ \ || __/ | / __/|_| |_| | - |_| |_|\__,_|___/\__\___|_| |_____|_|\___/ -'@ if (!$NoLogo) { $versionString = "v$PlasterVersion (JSON Enhanced)" - Write-Host $plasterLogo -ForegroundColor Blue + Show-Logo Write-Host ((" " * (50 - $versionString.Length)) + $versionString) -ForegroundColor Cyan Write-Host ("=" * 50) -ForegroundColor Blue }