/* * 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::prelude::*; use bevy_egui::{EguiContexts, egui}; use crate::{plugins::{LoginCallEvent, RegisterCallEvent, GameCreateCallEvent, GameFormingCallEvent, GameMyGamesCallEvent, GameJoinCallEvent}, Global}; pub use super::{MenuData, MenuUIState}; mod login; mod register; mod browse; pub fn ui( mut commands: Commands, mut contexts: EguiContexts, mut global: ResMut, mut data: ResMut, mut login_ev_w: EventWriter, mut register_ev_w: EventWriter, mut create_ev_w: EventWriter, mut forming_ev_w: EventWriter, mut mygames_ev_w: EventWriter, mut join_ev_w: EventWriter, ) { egui::Window::new(format!("{:?}", data.ui_state)) .collapsible(false) .resizable(false) .anchor(egui::Align2::CENTER_CENTER, egui::Vec2::ZERO) .show(contexts.ctx_mut(), |ui| { match &data.ui_state { MenuUIState::Loading => { ui.horizontal(|ui| { ui.spinner(); ui.label("something may or may not be happening"); }); } MenuUIState::Login => login::view(ui, &mut data, &mut login_ev_w), MenuUIState::Register => register::view(ui, &mut data, &mut register_ev_w), MenuUIState::Main => { if ui.button("Play").clicked() { data.ui_state = MenuUIState::Browse; } } MenuUIState::Browse => browse::view( &mut commands, ui, &mut global, &mut data, &mut create_ev_w, &mut forming_ev_w, &mut mygames_ev_w, &mut join_ev_w, ), } }); }