/*
* This file is part of sdbclient
* Copyright (C) 2023 Jonni Liljamo <jonni@liljamo.com>
*
* Licensed under GPL-3.0-only.
* See LICENSE for licensing information.
*/
use bevy::prelude::Resource;
/// Runtime data for use in the menu
#[derive(Resource)]
pub(crate) struct RTDMenu {
pub play_menu_ui_state: PlayMenuUIState,
pub waiting_for_create_game_call: bool,
/// Current game ID, for showing lobby data etc
pub cur_game_id: String,
}
impl Default for RTDMenu {
fn default() -> Self {
Self {
play_menu_ui_state: PlayMenuUIState::Main,
waiting_for_create_game_call: false,
cur_game_id: String::from(""),
}
}
}
pub(crate) enum PlayMenuUIState {
Main,
CreateGame,
BrowseGames,
InLobbyHost,
InLobbyGuest,
}
impl PlayMenuUIState {
pub fn display(&self) -> &str {
match self {
PlayMenuUIState::Main => "Play",
PlayMenuUIState::CreateGame => "Create",
PlayMenuUIState::BrowseGames => "Browse",
PlayMenuUIState::InLobbyHost => "Lobby (Host)",
PlayMenuUIState::InLobbyGuest => "Lobby (Guest)",
}
}
}