/* * This file is part of sdbclient * Copyright (C) 2022 Jonni Liljamo * * Licensed under GPL-3.0-only. * See LICENSE for licensing information. */ use bevy::prelude::*; use serde::{Deserialize, Serialize}; // Constants for file names pub const FILE_CFG_SETTINGS: &str = "cfgsettings.json"; pub const FILE_CFG_USER: &str = "cfguser.json"; pub const FILE_CFG_DEV: &str = ".cfgdev.json"; /// Stores a directories::ProjectDirs for easy access #[derive(Resource, Debug, Component, Clone)] pub struct CfgDirs(pub directories::ProjectDirs); /// Various settings that can be changed from the... Settings. #[derive(Serialize, Deserialize, Resource, Debug, Component, PartialEq, Clone)] pub struct CfgSettings { /// Master Volume pub volume_master: u32, /// Fullscreen pub fullscreen: bool, /// Resolution pub resolution: (f32, f32), } impl Default for CfgSettings { fn default() -> Self { CfgSettings { volume_master: 7, fullscreen: false, resolution: (1280., 720.), } } } /// User details and status #[derive(Serialize, Deserialize, Resource, Debug, Component, PartialEq, Clone)] pub struct CfgUser { /// User logged in status pub logged_in: bool, /// User Token pub user_token: String, /// User ID pub id: String, /// Username pub username: String, /// User email pub email: String, } impl Default for CfgUser { fn default() -> Self { CfgUser { logged_in: false, user_token: "".to_string(), id: "".to_string(), username: "".to_string(), email: "".to_string(), } } } /// Settings that the user has no access to, or can only access through developer settings #[derive(Serialize, Deserialize, Resource, Debug, Component, PartialEq, Clone)] pub struct CfgDev { /// API Server pub api_server: String, } impl Default for CfgDev { fn default() -> Self { CfgDev { api_server: "http://localhost:8080/api".to_string(), } } }