diff options
| author | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-08-25 12:36:37 +0200 |
|---|---|---|
| committer | Ruben Beltran del Rio <git@r.bdr.sh> | 2025-08-25 12:36:37 +0200 |
| commit | e5de70f2c1dcac767bd34a6b90ac1797a7acb433 (patch) | |
| tree | 25a8c8f339fb5b496b460391ee06a9effeb64855 /lib/screens | |
| parent | 6b909d95ec07848136a6f337db28318c1cd46c60 (diff) | |
| parent | d7bc21d19e168f3a99f54e5ba4866ed49f1187f1 (diff) | |
Merge branch 'rust'
Diffstat (limited to 'lib/screens')
| -rw-r--r-- | lib/screens/circle.js | 36 | ||||
| -rw-r--r-- | lib/screens/gradients.js | 29 | ||||
| -rw-r--r-- | lib/screens/mirrors.js | 40 | ||||
| -rw-r--r-- | lib/screens/random.js | 29 | ||||
| -rw-r--r-- | lib/screens/sprinkles.js | 32 |
5 files changed, 0 insertions, 166 deletions
diff --git a/lib/screens/circle.js b/lib/screens/circle.js deleted file mode 100644 index f5d37e3..0000000 --- a/lib/screens/circle.js +++ /dev/null @@ -1,36 +0,0 @@ -'use strict'; - -/** - * Draws concentric circles. Each ring has its own color. - * - * @function CircleScreen - * @implements IScreen - */ -module.exports = function (modulation, width, height, renderer) { - - let response = []; - - const circles = width > height ? height : width; - - for (let i = 0; i < circles; ++i) { - const centerX = Math.round(width / 2) + 1; - const centerY = Math.round(height / 2) + 1; - - const red = Math.floor(Math.random() * 255); - const blue = Math.floor(Math.random() * 255); - const green = Math.floor(Math.random() * 255); - - for (let j = 0; j < 180; ++j) { - const angle = 2 * j * (Math.PI / 180); - const x = Math.round(centerX + Math.sin(angle) * i); - const y = Math.round(centerY + Math.cos(angle) * i); - - if (x <= width && x > 0 && y <= height && y > 0) { - const position = `\x1B[${y};${x}H`; // Move cursor to y,x (CSI y;x H) - response += `${position}${renderer(red, blue, green)} `; - } - } - } - - return response; -}; diff --git a/lib/screens/gradients.js b/lib/screens/gradients.js deleted file mode 100644 index 2d4a2f0..0000000 --- a/lib/screens/gradients.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -/** - * Draws moving gradient boxes - * - * @function GradientsScreen - * @implements IScreen - */ -module.exports = function (modulation, width, height, renderer) { - - let response = ''; - - for (let i = 0; i < height; ++i) { - for (let j = 0; j < width; ++j) { - const red = ((modulation + i) * 255 / height) % 255; - const blue = ((modulation + j) * 255 / width) % 255; - const green = ((modulation + i * j) * 255 / (width * height)) % 255; - - response = response + renderer(red, blue, green); - response = response + ' '; - } - - if (i < height - 1) { - response = response + '\n'; - } - } - - return response; -}; diff --git a/lib/screens/mirrors.js b/lib/screens/mirrors.js deleted file mode 100644 index e842217..0000000 --- a/lib/screens/mirrors.js +++ /dev/null @@ -1,40 +0,0 @@ -'use strict'; - -/** - * Draws small moving gradient boxes and repeats them. - * - * @function MirrorsScreen - * @implements IScreen - */ -module.exports = function (modulation, width, height, renderer) { - - const response = []; - - const scale = 2 + Math.round(Math.random() * 4); - const scaledHeight = Math.floor(height / scale); - const scaledWidth = Math.floor(width / scale); - - for (let i = 0; i < scaledHeight; ++i) { - const row = []; - for (let j = 0; j < scaledWidth; ++j) { - const red = ((modulation + i) * 255 / height) % 255; - const blue = ((modulation + j) * 255 / width) % 255; - const green = ((modulation + i * j) * 255 / (width * height)) % 255; - - const cell = [renderer(red, blue, green), ' ']; - row.push(cell.join('')); - } - - let rowText = ''; - for (let j = 0; j < scale; ++j) { - rowText += row.reverse().join(''); - } - - for (let j = 1; j < scale; ++j) { - response[j * i] = rowText; - response[(height - 1 - (j * i))] = rowText; - } - } - - return response.join('\n'); -}; diff --git a/lib/screens/random.js b/lib/screens/random.js deleted file mode 100644 index 0cacea7..0000000 --- a/lib/screens/random.js +++ /dev/null @@ -1,29 +0,0 @@ -'use strict'; - -/** - * Draws random colors - * - * @function RandomScreen - * @implements IScreen - */ -module.exports = function (modulation, width, height, renderer) { - - let response = ''; - - for (let i = 0; i < height; ++i) { - for (let j = 0; j < width; ++j) { - const red = Math.floor(Math.random() * 255); - const blue = Math.floor(Math.random() * 255); - const green = Math.floor(Math.random() * 255); - - response = response + renderer(red, blue, green); - response = response + ' '; - } - - if (i < height - 1) { - response = response + '\n'; - } - } - - return response; -}; diff --git a/lib/screens/sprinkles.js b/lib/screens/sprinkles.js deleted file mode 100644 index f12200e..0000000 --- a/lib/screens/sprinkles.js +++ /dev/null @@ -1,32 +0,0 @@ -'use strict'; - -/** - * Draws random sprinkles in the screen each frame. Same color per - * frame. - * - * @function SprinklesScreen - * @implements IScreen - */ -module.exports = function (modulation, width, height, renderer) { - - let response = ''; - - const maxSprinkleCount = (width * height) / 2; - const minSprinkleCount = (width * height) / 8; - const sprinkleCount = Math.round(Math.random() * (maxSprinkleCount - minSprinkleCount)) + minSprinkleCount; - - const red = Math.floor(Math.random() * 255); - const blue = Math.floor(Math.random() * 255); - const green = Math.floor(Math.random() * 255); - - for (let i = 0; i < sprinkleCount; ++i) { - const x = Math.round(Math.random() * (width - 1)) + 1; - const y = Math.round(Math.random() * (height - 1)) + 1; - - const position = `\x1B[${y};${x}H`; // Move cursor to y,x (CSI y;x H) - - response += `${position}${renderer(red, blue, green)} `; - } - - return response; -}; |