M sdbclient/src/main.rs => sdbclient/src/main.rs +11 -2
@@ 49,9 49,12 @@ pub struct CfgHidden {
}
// Input structs
-/// Login username inputs
+/// Login inputs
#[derive(Resource, Debug, Component, PartialEq, Eq, Clone)]
pub struct InputsUserLogin(String, String);
+/// Register inputs
+#[derive(Resource, Debug, Component, PartialEq, Eq, Clone)]
+pub struct InputsUserRegister(String, String, String, String);
fn main() {
let mut app = App::new();
@@ 97,7 100,13 @@ fn main() {
logged_in: false,
user_token: "".to_string(),
})
- .insert_resource(InputsUserLogin("".to_string(), "".to_string()));
+ .insert_resource(InputsUserLogin("".to_string(), "".to_string()))
+ .insert_resource(InputsUserRegister(
+ "".to_string(),
+ "".to_string(),
+ "".to_string(),
+ "".to_string(),
+ ));
app.add_startup_system(setup).add_state(GameState::Splash);
M => +1 -1
@@ 22,7 22,7 @@ pub fn account_login_ui(
.collapsible(false)
.show(egui_context.ctx_mut(), |ui| {
ui.horizontal(|ui| {
ui.label("Username: ");
ui.label("Email: ");
ui.text_edit_singleline(&mut inputs.0);
});
A => +53 -0
@@ 0,0 1,53 @@
/*
* This file is part of sdbclient
* Copyright (C) 2022 Jonni Liljamo <jonni@liljamo.com>
*
* Licensed under GPL-3.0-only.
* See LICENSE for licensing information.
*/
use bevy::prelude::*;
use bevy_egui::{egui, EguiContext};
use crate::{util::eguipwd, InputsUserRegister};
use super::MenuState;
pub fn account_register_ui(
mut egui_context: ResMut<EguiContext>,
mut menu_state: ResMut<State<MenuState>>,
mut inputs: ResMut<InputsUserRegister>,
) {
egui::Window::new("Register")
.collapsible(false)
.show(egui_context.ctx_mut(), |ui| {
ui.horizontal(|ui| {
ui.label("Username: ");
ui.text_edit_singleline(&mut inputs.0);
});
ui.horizontal(|ui| {
ui.label("Email: ");
ui.text_edit_singleline(&mut inputs.1);
});
ui.horizontal(|ui| {
ui.label("Password: ");
ui.add(eguipwd::password(&mut inputs.2));
});
ui.horizontal(|ui| {
ui.label("Confirm password: ");
ui.add(eguipwd::password(&mut inputs.3));
});
ui.with_layout(egui::Layout::right_to_left(egui::Align::Min), |ui| {
if ui.button("Cancel").clicked() {
menu_state.set(MenuState::Main).unwrap();
}
if ui.button("Register").clicked() {
info!("todo");
}
})
});
}
M => +4 -0
@@ 36,6 36,9 @@ use accountscreenloggedin::*;
mod accountloginui;
use accountloginui::*;
mod accountregisterui;
use accountregisterui::*;
const TEXT_COLOR: Color = Color::rgb(0.9, 0.9, 0.9);
pub struct MenuPlugin;
@@ 69,6 72,7 @@ impl Plugin for MenuPlugin {
.add_system_set(SystemSet::on_exit(MenuState::AccountLoggedIn).with_system(despawn_screen::<OnAccountLoggedInScreen>))
// Account login and register systems
.add_system_set(SystemSet::on_update(MenuState::AccountLogin).with_system(account_login_ui))
.add_system_set(SystemSet::on_update(MenuState::AccountRegister).with_system(account_register_ui))
// Common systems
.add_system_set(SystemSet::on_update(GameState::MainMenu).with_system(menu_action).with_system(button_system));
}