1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
/*
Hurry Curry! - a game about cooking
Copyright (C) 2025 Hurry Curry! Contributors
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 <https://www.gnu.org/licenses/>.
*/
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
}
}
|