1use gled_model::{asset::palette::Palette, asset_id::AssetId};
6use serde::{Deserialize, Serialize};
7
8pub const STORAGE_KEY: &str = "gled_client_settings";
10
11#[derive(Debug, Clone, PartialEq, Serialize, Deserialize)]
12#[serde(default)]
13pub struct ClientSettings {
14 effects_size: f32,
15 preview_palette: Option<AssetId<Palette>>,
16}
17
18impl Default for ClientSettings {
19 fn default() -> Self {
20 Self {
21 effects_size: 100.0,
22 preview_palette: None,
23 }
24 }
25}
26
27impl ClientSettings {
28 pub fn new(effects_size: f32, preview_palette: Option<AssetId<Palette>>) -> Self {
29 Self {
30 effects_size,
31 preview_palette,
32 }
33 }
34
35 pub(crate) fn effects_size(&self) -> f32 {
36 self.effects_size
37 }
38
39 pub(crate) fn effects_size_mut(&mut self) -> &mut f32 {
40 &mut self.effects_size
41 }
42
43 pub(crate) fn preview_palette(&self) -> Option<AssetId<Palette>> {
44 self.preview_palette
45 }
46
47 pub(crate) fn preview_palette_mut(&mut self) -> &mut Option<AssetId<Palette>> {
48 &mut self.preview_palette
49 }
50}