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
use crate::gui::*;

pub fn draw_character_window() {
    if let Some(game_state) = scene::find_node_by_type::<GameState>() {
        if game_state.gui_state.should_draw_character_window {
            if let Some(player) = get_player_actor() {
                let gui_skins = storage::get::<GuiSkins>();

                let size = vec2(300.0, 300.0);
                let position = vec2(50.0, 150.0);

                root_ui().push_skin(&gui_skins.default);

                WindowBuilder::new(hash!(), size)
                    .with_pos(position, false)
                    .build(&mut *root_ui(), |ui| {
                        ui.label(None, &format!("STR: {}", player.stats.strength));
                        ui.label(None, &format!("DEX: {}", player.stats.dexterity));
                        ui.label(None, &format!("CON: {}", player.stats.constitution));
                        ui.label(None, &format!("INT: {}", player.stats.intelligence));
                        ui.label(None, &format!("WIL: {}", player.stats.willpower));
                        ui.label(None, &format!("PER: {}", player.stats.perception));
                        ui.label(None, &format!("CHA: {}", player.stats.charisma));

                        ui.separator();

                        ui.tree_node(hash!(), "Regeneration", |ui| {
                            ui.label(None, &format!("Health:  {}", player.stats.health_regen));
                            ui.label(None, &format!("Stamina: {}", player.stats.stamina_regen));
                            ui.label(None, &format!("Energy:  {}", player.stats.energy_regen));
                        });

                        ui.separator();

                        ui.label(None, &format!("XP: {}", player.experience));
                    });

                root_ui().pop_skin();
            }
        }
    }
}