allow true color for matrix and rain
This commit is contained in:
@@ -42,21 +42,48 @@ _rain_build_colors()
|
|||||||
local base_color="$1"
|
local base_color="$1"
|
||||||
RAIN_ENGINE_COLORS=()
|
RAIN_ENGINE_COLORS=()
|
||||||
|
|
||||||
case $base_color in
|
local use_truecolor=0
|
||||||
green)
|
_rainbow_supports_truecolor && use_truecolor=1
|
||||||
for i in {22..28} {34..40} {46..48}; do RAIN_ENGINE_COLORS+=("\e[38;5;${i}m"); done ;;
|
|
||||||
blue)
|
if (( use_truecolor )); then
|
||||||
for i in {17..21} {27..33} {39..45}; do RAIN_ENGINE_COLORS+=("\e[38;5;${i}m"); done ;;
|
# 24-bit gradient from a near-black shade to a vivid hue.
|
||||||
red)
|
# 20 steps provide smooth depth variation across simultaneous drops.
|
||||||
for i in {52..52} {88..88} {124..124} {160..160} {196..201}; do RAIN_ENGINE_COLORS+=("\e[38;5;${i}m"); done ;;
|
local steps=20
|
||||||
yellow)
|
local r1 g1 b1 r2 g2 b2
|
||||||
for i in {58..58} {100..100} {142..142} {184..184} {226..229}; do RAIN_ENGINE_COLORS+=("\e[38;5;${i}m"); done ;;
|
case "${base_color}" in
|
||||||
cyan)
|
green) r1=0; g1=12; b1=2; r2=50; g2=255; b2=90 ;;
|
||||||
for i in {30..31} {37..38} {44..45} {50..51}; do RAIN_ENGINE_COLORS+=("\e[38;5;${i}m"); done ;;
|
blue) r1=0; g1=5; b1=25; r2=60; g2=140; b2=255 ;;
|
||||||
*)
|
red) r1=15; g1=0; b1=0; r2=255; g2=40; b2=40 ;;
|
||||||
RAIN_ENGINE_COLORS=("\e[37m" "\e[37;1m")
|
yellow) r1=25; g1=18; b1=0; r2=255; g2=240; b2=50 ;;
|
||||||
for i in {244..255}; do RAIN_ENGINE_COLORS+=("\e[38;5;${i}m"); done ;;
|
cyan) r1=0; g1=18; b1=18; r2=50; g2=255; b2=240 ;;
|
||||||
esac
|
*) r1=40; g1=40; b1=45; r2=220; g2=220; b2=255 ;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
local i r g b
|
||||||
|
for ((i = 0; i < steps; i++)); do
|
||||||
|
r=$(( r1 + (r2 - r1) * i / (steps - 1) ))
|
||||||
|
g=$(( g1 + (g2 - g1) * i / (steps - 1) ))
|
||||||
|
b=$(( b1 + (b2 - b1) * i / (steps - 1) ))
|
||||||
|
RAIN_ENGINE_COLORS+=("\e[38;2;${r};${g};${b}m")
|
||||||
|
done
|
||||||
|
else
|
||||||
|
# Fallback: 256-colour palettes.
|
||||||
|
case $base_color in
|
||||||
|
green)
|
||||||
|
for i in {22..28} {34..40} {46..48}; do RAIN_ENGINE_COLORS+=("\e[38;5;${i}m"); done ;;
|
||||||
|
blue)
|
||||||
|
for i in {17..21} {27..33} {39..45}; do RAIN_ENGINE_COLORS+=("\e[38;5;${i}m"); done ;;
|
||||||
|
red)
|
||||||
|
for i in {52..52} {88..88} {124..124} {160..160} {196..201}; do RAIN_ENGINE_COLORS+=("\e[38;5;${i}m"); done ;;
|
||||||
|
yellow)
|
||||||
|
for i in {58..58} {100..100} {142..142} {184..184} {226..229}; do RAIN_ENGINE_COLORS+=("\e[38;5;${i}m"); done ;;
|
||||||
|
cyan)
|
||||||
|
for i in {30..31} {37..38} {44..45} {50..51}; do RAIN_ENGINE_COLORS+=("\e[38;5;${i}m"); done ;;
|
||||||
|
*)
|
||||||
|
RAIN_ENGINE_COLORS=("\e[37m" "\e[37;1m")
|
||||||
|
for i in {244..255}; do RAIN_ENGINE_COLORS+=("\e[38;5;${i}m"); done ;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
_rain_build_chars()
|
_rain_build_chars()
|
||||||
|
|||||||
Reference in New Issue
Block a user