/* Hurry Curry! - a game about cooking Copyright 2024 metamuffin This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, version 3 of the License only. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see . */ use crate::{config::Config, render::sprite::SpriteDraw, strings::tr, ui::Ui}; use hurrycurry_protocol::glam::Vec2; use log::warn; pub struct Settings { pub username: String, } #[derive(Default)] pub struct SettingsMenu {} impl SettingsMenu { pub fn draw(&mut self, ui: &mut Ui, config: &mut Config) -> bool { ui.renderer.draw_ui(SpriteDraw::overlay( ui.renderer.misc_textures.solid, Vec2::ZERO, ui.renderer.ui_size, Some([0, 0, 0, 150]), )); let mut back = false; ui.horizontal(|ui| { ui.advance(Vec2::splat(20.)); ui.vertical(|ui| { ui.advance(Vec2::splat(10.)); ui.text(tr("c.menu.settings")); ui.horizontal(|ui| { ui.text(tr("c.settings.username")); ui.advance(Vec2::X * 20.); ui.textedit(100., &mut config.username); }); ui.advance(ui.get_remaining() - Vec2::Y * 30.); if ui.button(80., tr("c.menu.back")) { if let Err(e) = config.save() { warn!("cannot save config: {e}"); } else { back = true } } }); }); back } }