Moved color palettes into dedicated file

This commit is contained in:
2026-08-02 14:44:29 +02:00
parent 07f26b6568
commit f2a2bf7d5f
2 changed files with 216 additions and 213 deletions
+1 -212
View File
@@ -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> {
+215 -1
View File
@@ -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),
},
];