Moved color palettes into dedicated file
This commit is contained in:
+1
-212
@@ -13,6 +13,7 @@ use alloc::{
|
|||||||
};
|
};
|
||||||
use base64::{Engine as _, engine::general_purpose};
|
use base64::{Engine as _, engine::general_purpose};
|
||||||
use creaturedex::card::mock::{MOCK_PAYLOAD, MOCK_PAYLOAD2};
|
use creaturedex::card::mock::{MOCK_PAYLOAD, MOCK_PAYLOAD2};
|
||||||
|
use creaturedex::display::palette::{PALETTES, Rgb, TYPE_STYLES};
|
||||||
use display_interface_spi::SPIInterface;
|
use display_interface_spi::SPIInterface;
|
||||||
use embassy_executor::Spawner;
|
use embassy_executor::Spawner;
|
||||||
use embassy_time::Timer;
|
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)]
|
#[derive(Debug, Clone, Copy)]
|
||||||
struct NfcPayload<'a> {
|
struct NfcPayload<'a> {
|
||||||
|
|||||||
+215
-1
@@ -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),
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|||||||
Reference in New Issue
Block a user