save
All checks were successful
Rust Checks / checks (push) Successful in 2m30s
Rust Checks / checks (pull_request) Successful in 2m28s

This commit is contained in:
CoCo_Sol 2024-03-30 23:54:21 +01:00
parent 0b5aa1d90e
commit 4faf8b781d
3 changed files with 18 additions and 13 deletions

1
Cargo.lock generated
View file

@ -1319,6 +1319,7 @@ dependencies = [
"bevy_egui",
"noise",
"paste",
"rand 0.8.5",
"serde",
]

View file

@ -17,3 +17,4 @@ noise = "0.8.2"
paste = "1.0.14"
bevnet = { path = "../bevnet" }
serde = "1.0.197"
rand = "0.8.5"

View file

@ -3,6 +3,7 @@
use bevnet::{Connection, SendTo};
use bevy::prelude::*;
use bevy_egui::{egui, EguiContexts};
use rand::Rng;
use crate::map::generation::StartMapGeneration;
use crate::networking::connection::RemovePlayer;
@ -70,24 +71,26 @@ fn lobby_ui(
ui.add(egui::Slider::new(&mut (*map_size), 0..=5).text("map size"));
if ui.button("Run the game").clicked() {
for player in all_players_query.iter() {
start_game_event.send(SendTo(
player.uuid,
StartGame(StartMapGeneration {
seed: 0,
radius: get_map_sizes(all_players_query.iter().count() as u64)
[*map_size as usize] as u16
* 2,
}),
));
}
if !ui.button("Run the game").clicked() {
return;
}
let seed = rand::thread_rng().gen::<u32>();
let radius =
get_map_sizes(all_players_query.iter().count() as u32)[*map_size as usize] as u16;
// Start the game.
for player in all_players_query.iter() {
start_game_event.send(SendTo(
player.uuid,
StartGame(StartMapGeneration { seed, radius }),
));
}
});
}
/// Get the map sizes form a given number of players.
fn get_map_sizes(number_of_players: u64) -> Vec<u64> {
fn get_map_sizes(number_of_players: u32) -> Vec<u32> {
let mut result = Vec::with_capacity(6);
let mut current = 0;