/* * This file is part of laurelin/client * Copyright (C) 2023 Jonni Liljamo * * Licensed under GPL-3.0-only. * See LICENSE for licensing information. */ use bevy::ecs::system::Resource; mod ui; pub use ui::*; #[derive(Default, Resource)] pub struct PlayScreenData { pub state: PlayScreenState, pub browse_state: PlayScreenBrowseState, } #[derive(Default, PartialEq, Clone)] pub enum PlayScreenState { #[default] Main, CreateGame, InLobbyHost, InLobbyGuest, } impl PlayScreenState { pub fn display(&self) -> &str { match self { PlayScreenState::Main => "Play", PlayScreenState::CreateGame => "Create", PlayScreenState::InLobbyHost => "Lobby (Host)", PlayScreenState::InLobbyGuest => "Lobby (Guest)", } } } #[derive(Default, PartialEq)] pub enum PlayScreenBrowseState { #[default] Forming, InProgress, Finished, }