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
use bevy::prelude::Component;

#[derive(Component)]
pub struct MainMenu;

#[derive(Component, Clone)]
pub struct MainMenuUi;

// #=====================#
// #=== INTERACTIVITY ===#

/// Good practice is to use custom component for buttons, so we can easily know what type of button was pressed
#[derive(Component, Debug, Default, Clone, PartialEq)]
pub enum MainMenuButton {
    Continue,
    #[default]
    NewGame,
    LoadGame,
    Settings,
    AdditionalContent,
    Credits,
    QuitGame,
}
impl MainMenuButton {
    pub fn str(&self) -> String {
        match self {
            MainMenuButton::Continue => "CONTINUE".into(),
            MainMenuButton::NewGame => "New Game".into(),
            MainMenuButton::LoadGame => "LOAD GAME".into(),
            MainMenuButton::Settings => "Settings".into(),
            MainMenuButton::AdditionalContent => "ADDITIONAL CONTENT".into(),
            MainMenuButton::Credits => "CREDITS".into(),
            MainMenuButton::QuitGame => "Quit".into(),
        }
    }
}