feat: add selfhosting for multiplayer

This commit is contained in:
2026-08-24 19:08:28 +02:00
parent ba7100083e
commit 94028a05fd

View File

@@ -1,3 +1,5 @@
use std::sync::mpsc;
use macroquad::{ use macroquad::{
color::GRAY, color::GRAY,
math::vec2, math::vec2,
@@ -11,7 +13,7 @@ use crate::ui::{
state::{ state::{
GameContext, GameContext,
GuiState::{self}, GuiState::{self},
connect_to_server, connect_to_server, run_server,
}, },
}; };
@@ -32,6 +34,15 @@ pub async fn draw_server_selection(state: &mut GuiState, context: &mut GameConte
menu_builder.label(ui, "Host"); menu_builder.label(ui, "Host");
if menu_builder.button(ui, "Start") { if menu_builder.button(ui, "Start") {
context.gamemode = crate::ui::state::GameMode::Multiplayer { is_hosting: true }; context.gamemode = crate::ui::state::GameMode::Multiplayer { is_hosting: true };
let (tx, rx) = mpsc::channel();
run_server(tx);
let result = rx.recv();
if let Ok(result) = result {
*state = GuiState::Connecting(connect_to_server());
}
} }
menu_builder.label(ui, "Server selection"); menu_builder.label(ui, "Server selection");