From 23766168b82c5246d70d4028f7fd2251c9290dc8 Mon Sep 17 00:00:00 2001 From: lukas Date: Sun, 2 Aug 2026 14:44:29 +0200 Subject: [PATCH] Moved color palettes into dedicated file --- src/bin/main.rs | 213 +--------------------------------------- src/display/palette.rs | 216 ++++++++++++++++++++++++++++++++++++++++- 2 files changed, 216 insertions(+), 213 deletions(-) diff --git a/src/bin/main.rs b/src/bin/main.rs index cf30ac9..c118785 100644 --- a/src/bin/main.rs +++ b/src/bin/main.rs @@ -13,6 +13,7 @@ use alloc::{ }; use base64::{Engine as _, engine::general_purpose}; use creaturedex::card::mock::{MOCK_PAYLOAD, MOCK_PAYLOAD2}; +use creaturedex::display::palette::{PALETTES, Rgb, TYPE_STYLES}; use display_interface_spi::SPIInterface; use embassy_executor::Spawner; use embassy_time::Timer; @@ -54,219 +55,7 @@ esp_bootloader_esp_idf::esp_app_desc!(); -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -struct Rgb(pub u8, pub u8, pub u8); -impl Rgb { - fn into_rgb565(self) -> Rgb565 { - Rgb565::new(self.0, self.1, self.2) - } -} - -#[derive(Debug, Clone, Copy, PartialEq, Eq)] -struct TypeStyle { - pub name: &'static str, - pub primary: Rgb, - pub text: Rgb, -} - -const PALETTES: [[Rgb; 16]; 8] = [ - // Palette Default - [ - Rgb(31, 23, 35), - Rgb(60, 47, 82), - Rgb(178, 39, 65), - Rgb(70, 86, 165), - Rgb(245, 70, 76), - Rgb(216, 104, 48), - Rgb(140, 127, 144), - Rgb(73, 149, 243), - Rgb(62, 197, 75), - Rgb(240, 149, 72), - Rgb(188, 176, 179), - Rgb(247, 156, 136), - Rgb(114, 222, 235), - Rgb(180, 230, 86), - Rgb(239, 208, 129), - Rgb(255, 255, 255), - ], - // Palette Blueprint - [ - Rgb(83, 67, 127), - Rgb(44, 111, 153), - Rgb(142, 88, 111), - Rgb(0, 188, 170), - Rgb(153, 104, 226), - Rgb(109, 129, 255), - Rgb(255, 84, 112), - Rgb(196, 143, 158), - Rgb(168, 159, 204), - Rgb(190, 155, 255), - Rgb(255, 155, 113), - Rgb(127, 206, 255), - Rgb(255, 155, 182), - Rgb(255, 217, 174), - Rgb(255, 217, 232), - Rgb(255, 255, 255), - ], - // Palette CYBER - [ - Rgb(0, 0, 0), - Rgb(0, 0, 126), - Rgb(0, 0, 255), - Rgb(126, 0, 0), - Rgb(126, 0, 126), - Rgb(4, 126, 0), - Rgb(254, 0, 0), - Rgb(4, 126, 126), - Rgb(254, 0, 255), - Rgb(126, 126, 0), - Rgb(126, 126, 126), - Rgb(6, 255, 4), - Rgb(6, 255, 255), - Rgb(190, 190, 190), - Rgb(255, 255, 4), - Rgb(255, 255, 255), - ], - // Palette Nature - [ - Rgb(35, 34, 40), - Rgb(40, 66, 97), - Rgb(30, 116, 83), - Rgb(117, 77, 69), - Rgb(95, 88, 84), - Rgb(36, 133, 166), - Rgb(198, 80, 70), - Rgb(85, 160, 88), - Rgb(135, 133, 115), - Rgb(84, 186, 210), - Rgb(161, 191, 65), - Rgb(230, 146, 138), - Rgb(184, 176, 149), - Rgb(227, 192, 84), - Rgb(195, 213, 199), - Rgb(255, 255, 255), - ], - // Palette Fossil - [ - Rgb(75, 61, 68), - Rgb(119, 66, 81), - Rgb(78, 84, 99), - Rgb(100, 83, 85), - Rgb(156, 82, 78), - Rgb(132, 109, 89), - Rgb(91, 125, 115), - Rgb(125, 123, 98), - Rgb(140, 124, 121), - Rgb(185, 122, 96), - Rgb(168, 138, 94), - Rgb(142, 159, 125), - Rgb(170, 162, 93), - Rgb(169, 156, 141), - Rgb(204, 168, 123), - Rgb(255, 255, 255), - ], - // Palette Ghost - [ - Rgb(0, 0, 0), - Rgb(24, 24, 24), - Rgb(40, 40, 40), - Rgb(56, 56, 56), - Rgb(71, 71, 71), - Rgb(86, 86, 86), - Rgb(100, 100, 100), - Rgb(113, 113, 113), - Rgb(126, 126, 126), - Rgb(140, 140, 140), - Rgb(155, 155, 155), - Rgb(171, 171, 171), - Rgb(189, 189, 189), - Rgb(209, 209, 209), - Rgb(231, 231, 231), - Rgb(255, 255, 255), - ], - // Palette Daemon - [ - Rgb(0, 3, 60), - Rgb(96, 0, 136), - Rgb(0, 56, 132), - Rgb(42, 46, 121), - Rgb(0, 82, 96), - Rgb(177, 5, 133), - Rgb(255, 0, 78), - Rgb(172, 41, 206), - Rgb(0, 157, 74), - Rgb(0, 138, 197), - Rgb(78, 110, 168), - Rgb(255, 92, 255), - Rgb(10, 255, 82), - Rgb(0, 247, 255), - Rgb(173, 212, 250), - Rgb(255, 255, 255), - ], - // Palette Fairy - [ - Rgb(40, 40, 46), - Rgb(108, 86, 113), - Rgb(135, 168, 137), - Rgb(249, 130, 132), - Rgb(176, 169, 228), - Rgb(222, 163, 139), - Rgb(172, 204, 228), - Rgb(254, 170, 228), - Rgb(217, 200, 191), - Rgb(255, 195, 132), - Rgb(176, 235, 147), - Rgb(179, 227, 218), - Rgb(233, 245, 157), - Rgb(255, 230, 198), - Rgb(255, 247, 160), - Rgb(255, 255, 255), - ], -]; - -const TYPE_STYLES: [TypeStyle; 8] = [ - TypeStyle { - name: "Default", - primary: Rgb(0xD8, 0x68, 0x30), - text: Rgb(0xFF, 0xFF, 0xFF), - }, - TypeStyle { - name: "Blueprint", - primary: Rgb(0x6D, 0x81, 0xFF), - text: Rgb(0xFF, 0xFF, 0xFF), - }, - TypeStyle { - name: "CYBER", - primary: Rgb(0xFF, 0xFF, 0x04), - text: Rgb(0x00, 0x00, 0x00), - }, - TypeStyle { - name: "Nature", - primary: Rgb(0x55, 0xA0, 0x58), - text: Rgb(0xFF, 0xFF, 0xFF), - }, - TypeStyle { - name: "Fossil", - primary: Rgb(0xB9, 0x7A, 0x60), - text: Rgb(0xFF, 0xFF, 0xFF), - }, - TypeStyle { - name: "Ghost", - primary: Rgb(0xAB, 0xAB, 0xAB), - text: Rgb(0xFF, 0xFF, 0xFF), - }, - TypeStyle { - name: "Daemon", - primary: Rgb(0x60, 0x00, 0x88), - text: Rgb(0xFF, 0xFF, 0xFF), - }, - TypeStyle { - name: "Fairy", - primary: Rgb(0xB0, 0xA9, 0xE4), - text: Rgb(0xFF, 0xFF, 0xFF), - }, -]; #[derive(Debug, Clone, Copy)] struct NfcPayload<'a> { diff --git a/src/display/palette.rs b/src/display/palette.rs index c645e81..b79330b 100644 --- a/src/display/palette.rs +++ b/src/display/palette.rs @@ -1 +1,215 @@ -// Display palette module +use embedded_graphics::pixelcolor::Rgb565; + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct Rgb(pub u8, pub u8, pub u8); + +impl Rgb { + pub fn into_rgb565(self) -> Rgb565 { + Rgb565::new(self.0, self.1, self.2) + } +} + +#[derive(Debug, Clone, Copy, PartialEq, Eq)] +pub struct TypeStyle { + pub name: &'static str, + pub primary: Rgb, + pub text: Rgb, +} + +pub const PALETTES: [[Rgb; 16]; 8] = [ + // Palette Default + [ + Rgb(31, 23, 35), + Rgb(60, 47, 82), + Rgb(178, 39, 65), + Rgb(70, 86, 165), + Rgb(245, 70, 76), + Rgb(216, 104, 48), + Rgb(140, 127, 144), + Rgb(73, 149, 243), + Rgb(62, 197, 75), + Rgb(240, 149, 72), + Rgb(188, 176, 179), + Rgb(247, 156, 136), + Rgb(114, 222, 235), + Rgb(180, 230, 86), + Rgb(239, 208, 129), + Rgb(255, 255, 255), + ], + // Palette Blueprint + [ + Rgb(83, 67, 127), + Rgb(44, 111, 153), + Rgb(142, 88, 111), + Rgb(0, 188, 170), + Rgb(153, 104, 226), + Rgb(109, 129, 255), + Rgb(255, 84, 112), + Rgb(196, 143, 158), + Rgb(168, 159, 204), + Rgb(190, 155, 255), + Rgb(255, 155, 113), + Rgb(127, 206, 255), + Rgb(255, 155, 182), + Rgb(255, 217, 174), + Rgb(255, 217, 232), + Rgb(255, 255, 255), + ], + // Palette CYBER + [ + Rgb(0, 0, 0), + Rgb(0, 0, 126), + Rgb(0, 0, 255), + Rgb(126, 0, 0), + Rgb(126, 0, 126), + Rgb(4, 126, 0), + Rgb(254, 0, 0), + Rgb(4, 126, 126), + Rgb(254, 0, 255), + Rgb(126, 126, 0), + Rgb(126, 126, 126), + Rgb(6, 255, 4), + Rgb(6, 255, 255), + Rgb(190, 190, 190), + Rgb(255, 255, 4), + Rgb(255, 255, 255), + ], + // Palette Nature + [ + Rgb(35, 34, 40), + Rgb(40, 66, 97), + Rgb(30, 116, 83), + Rgb(117, 77, 69), + Rgb(95, 88, 84), + Rgb(36, 133, 166), + Rgb(198, 80, 70), + Rgb(85, 160, 88), + Rgb(135, 133, 115), + Rgb(84, 186, 210), + Rgb(161, 191, 65), + Rgb(230, 146, 138), + Rgb(184, 176, 149), + Rgb(227, 192, 84), + Rgb(195, 213, 199), + Rgb(255, 255, 255), + ], + // Palette Fossil + [ + Rgb(75, 61, 68), + Rgb(119, 66, 81), + Rgb(78, 84, 99), + Rgb(100, 83, 85), + Rgb(156, 82, 78), + Rgb(132, 109, 89), + Rgb(91, 125, 115), + Rgb(125, 123, 98), + Rgb(140, 124, 121), + Rgb(185, 122, 96), + Rgb(168, 138, 94), + Rgb(142, 159, 125), + Rgb(170, 162, 93), + Rgb(169, 156, 141), + Rgb(204, 168, 123), + Rgb(255, 255, 255), + ], + // Palette Ghost + [ + Rgb(0, 0, 0), + Rgb(24, 24, 24), + Rgb(40, 40, 40), + Rgb(56, 56, 56), + Rgb(71, 71, 71), + Rgb(86, 86, 86), + Rgb(100, 100, 100), + Rgb(113, 113, 113), + Rgb(126, 126, 126), + Rgb(140, 140, 140), + Rgb(155, 155, 155), + Rgb(171, 171, 171), + Rgb(189, 189, 189), + Rgb(209, 209, 209), + Rgb(231, 231, 231), + Rgb(255, 255, 255), + ], + // Palette Daemon + [ + Rgb(0, 3, 60), + Rgb(96, 0, 136), + Rgb(0, 56, 132), + Rgb(42, 46, 121), + Rgb(0, 82, 96), + Rgb(177, 5, 133), + Rgb(255, 0, 78), + Rgb(172, 41, 206), + Rgb(0, 157, 74), + Rgb(0, 138, 197), + Rgb(78, 110, 168), + Rgb(255, 92, 255), + Rgb(10, 255, 82), + Rgb(0, 247, 255), + Rgb(173, 212, 250), + Rgb(255, 255, 255), + ], + // Palette Fairy + [ + Rgb(40, 40, 46), + Rgb(108, 86, 113), + Rgb(135, 168, 137), + Rgb(249, 130, 132), + Rgb(176, 169, 228), + Rgb(222, 163, 139), + Rgb(172, 204, 228), + Rgb(254, 170, 228), + Rgb(217, 200, 191), + Rgb(255, 195, 132), + Rgb(176, 235, 147), + Rgb(179, 227, 218), + Rgb(233, 245, 157), + Rgb(255, 230, 198), + Rgb(255, 247, 160), + Rgb(255, 255, 255), + ], +]; + +pub const TYPE_STYLES: [TypeStyle; 8] = [ + TypeStyle { + name: "Default", + primary: Rgb(0xD8, 0x68, 0x30), + text: Rgb(0xFF, 0xFF, 0xFF), + }, + TypeStyle { + name: "Blueprint", + primary: Rgb(0x6D, 0x81, 0xFF), + text: Rgb(0xFF, 0xFF, 0xFF), + }, + TypeStyle { + name: "CYBER", + primary: Rgb(0xFF, 0xFF, 0x04), + text: Rgb(0x00, 0x00, 0x00), + }, + TypeStyle { + name: "Nature", + primary: Rgb(0x55, 0xA0, 0x58), + text: Rgb(0xFF, 0xFF, 0xFF), + }, + TypeStyle { + name: "Fossil", + primary: Rgb(0xB9, 0x7A, 0x60), + text: Rgb(0xFF, 0xFF, 0xFF), + }, + TypeStyle { + name: "Ghost", + primary: Rgb(0xAB, 0xAB, 0xAB), + text: Rgb(0xFF, 0xFF, 0xFF), + }, + TypeStyle { + name: "Daemon", + primary: Rgb(0x60, 0x00, 0x88), + text: Rgb(0xFF, 0xFF, 0xFF), + }, + TypeStyle { + name: "Fairy", + primary: Rgb(0xB0, 0xA9, 0xE4), + text: Rgb(0xFF, 0xFF, 0xFF), + }, +];