Refactor a bit
This commit is contained in:
parent
11b6691a4e
commit
d251973dd3
@ -5,7 +5,7 @@ use serde::{Deserialize, Serialize};
|
|||||||
|
|
||||||
use crate::{
|
use crate::{
|
||||||
map_resource::Map,
|
map_resource::Map,
|
||||||
net::network_manager::{NetworkManager, PeerKind},
|
net::network_manager::{NetworkManager, Package, PeerKind},
|
||||||
};
|
};
|
||||||
|
|
||||||
pub const GAME_MANAGER_GLOBAL: &str = "GameManagerGlobal";
|
pub const GAME_MANAGER_GLOBAL: &str = "GameManagerGlobal";
|
||||||
@ -116,6 +116,15 @@ impl Game {
|
|||||||
self.base().get_tree().change_scene_to_packed(scene);
|
self.base().get_tree().change_scene_to_packed(scene);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
self.run_deferred(|_| {
|
||||||
|
if let Some(peer) = &mut NetworkManager::singleton().bind_mut().peer {
|
||||||
|
if let PeerKind::Server(peer, _) = peer {
|
||||||
|
peer.broadcast_reliable(Package::GameStarted);
|
||||||
|
peer.set_accepting_connections(false);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn set_self(&mut self, id: u16) {
|
pub fn set_self(&mut self, id: u16) {
|
||||||
|
|||||||
@ -203,7 +203,6 @@ impl INode for NetworkManager {
|
|||||||
}
|
}
|
||||||
Package::GameStarted => {
|
Package::GameStarted => {
|
||||||
if let Some(game) = &mut Game::singleton() {
|
if let Some(game) = &mut Game::singleton() {
|
||||||
godot_print!("Game started");
|
|
||||||
game.bind_mut().start_game();
|
game.bind_mut().start_game();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -160,28 +160,30 @@ impl LobbyPanel {
|
|||||||
}
|
}
|
||||||
|
|
||||||
pub fn on_ready(&mut self) {
|
pub fn on_ready(&mut self) {
|
||||||
if let Some(peer) = &mut NetworkManager::singleton().bind_mut().peer {
|
let is_host = if let Some(peer) = &NetworkManager::singleton().bind().peer {
|
||||||
match peer {
|
peer.is_host()
|
||||||
PeerKind::Client(peer, socket_addr) => {
|
} else {
|
||||||
self.is_ready = !self.is_ready;
|
false
|
||||||
if let Some(button) = &mut self.ready_button {
|
};
|
||||||
if self.is_ready {
|
if !is_host {
|
||||||
button.set_text("Ready");
|
self.is_ready = !self.is_ready;
|
||||||
} else {
|
if let Some(button) = &mut self.ready_button {
|
||||||
button.set_text("Not Ready");
|
if self.is_ready {
|
||||||
}
|
button.set_text("Ready");
|
||||||
}
|
} else {
|
||||||
|
button.set_text("Not Ready");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
peer.send_reliable(socket_addr, Package::SetReady(0, self.is_ready));
|
if let Some(peer) = &mut NetworkManager::singleton().bind_mut().peer {
|
||||||
}
|
if let PeerKind::Client(peer, socket_addr) = peer {
|
||||||
PeerKind::Server(peer, _) => {
|
peer.send_reliable(&socket_addr, Package::SetReady(0, self.is_ready));
|
||||||
if let Some(game) = &mut Game::singleton() {
|
|
||||||
game.bind_mut().start_game();
|
|
||||||
}
|
|
||||||
peer.broadcast_reliable(Package::GameStarted);
|
|
||||||
peer.set_accepting_connections(false);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
if let Some(game) = &mut Game::singleton() {
|
||||||
|
game.bind_mut().start_game();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user