/* * This file is part of sdbclient * Copyright (C) 2022 Jonni Liljamo * * Licensed under GPL-3.0-only. * See LICENSE for licensing information. */ use bevy::{ prelude::*, ui::{JustifyContent, Size, Style, Val}, }; use crate::{cfg::CfgUser, constants::TEXT_COLOR}; use super::{MenuButtonAction, NORMAL_BUTTON}; /// Tag component for tagging entities on settings menu screen #[derive(Component)] pub struct OnAccountLoggedInScreen; pub fn account_loggedin_setup( mut commands: Commands, asset_server: Res, cfg_user: ResMut, ) { let font = asset_server.load("fonts/FiraMono-Regular.ttf"); let font_bold = asset_server.load("fonts/FiraMono-Bold.ttf"); let button_style = Style { size: Size::new(Val::Px(200.0), Val::Px(65.0)), margin: UiRect::all(Val::Px(20.0)), justify_content: JustifyContent::Center, align_items: AlignItems::Center, ..default() }; let button_text_style = TextStyle { font: font.clone(), font_size: 40.0, color: TEXT_COLOR, }; commands .spawn(( NodeBundle { style: Style { size: Size::new(Val::Percent(100.0), Val::Percent(100.0)), align_items: AlignItems::Center, justify_content: JustifyContent::Center, flex_direction: FlexDirection::Column, ..default() }, ..default() }, OnAccountLoggedInScreen, )) .with_children(|parent| { parent.spawn( TextBundle::from_section( "Account", TextStyle { font: font.clone(), font_size: 60.0, color: TEXT_COLOR, }, ) .with_style(Style { margin: UiRect::all(Val::Px(50.)), ..Default::default() }), ); parent.spawn( TextBundle::from_section( "Logged in as: ", TextStyle { font: font.clone(), font_size: 25.0, color: TEXT_COLOR, }, ) .with_style(Style { ..Default::default() }), ); parent.spawn( TextBundle::from_section( cfg_user.username.clone(), TextStyle { font: font_bold.clone(), font_size: 40.0, color: TEXT_COLOR, }, ) .with_style(Style { margin: UiRect::bottom(Val::Px(25.)), ..Default::default() }), ); parent .spawn(NodeBundle { style: Style { flex_direction: FlexDirection::Column, align_items: AlignItems::Center, ..default() }, background_color: Color::GRAY.into(), ..default() }) .with_children(|parent| { for (action, text) in [ (MenuButtonAction::AccountLogout, "Logout"), (MenuButtonAction::BackToMainMenu, "Back"), ] { parent .spawn(( ButtonBundle { style: button_style.clone(), background_color: NORMAL_BUTTON.into(), ..default() }, action, )) .with_children(|parent| { parent.spawn(TextBundle::from_section( text, button_text_style.clone(), )); }); } }); }); }