mirror of
https://github.com/IntQuant/noita_entangled_worlds.git
synced 2025-10-19 15:13:16 +00:00
Make my_id not return an Option
This commit is contained in:
parent
17103adc97
commit
959e7fc88e
3 changed files with 18 additions and 28 deletions
|
@ -1233,7 +1233,7 @@ fn add_per_status_ui(
|
||||||
fn peer_role(peer: net::omni::OmniPeerId, netman: &Arc<net::NetManager>) -> String {
|
fn peer_role(peer: net::omni::OmniPeerId, netman: &Arc<net::NetManager>) -> String {
|
||||||
if peer == netman.peer.host_id() {
|
if peer == netman.peer.host_id() {
|
||||||
tr("player_host")
|
tr("player_host")
|
||||||
} else if Some(peer) == netman.peer.my_id() {
|
} else if peer == netman.peer.my_id() {
|
||||||
tr("player_me")
|
tr("player_me")
|
||||||
} else {
|
} else {
|
||||||
tr("player_player")
|
tr("player_player")
|
||||||
|
|
|
@ -209,17 +209,7 @@ impl NetManager {
|
||||||
socket.listen(1)?;
|
socket.listen(1)?;
|
||||||
socket.set_nonblocking(true)?;
|
socket.set_nonblocking(true)?;
|
||||||
let local_server: TcpListener = socket.into();
|
let local_server: TcpListener = socket.into();
|
||||||
for _ in 1..3 {
|
|
||||||
if self.peer.my_id().is_none() {
|
|
||||||
info!("Waiting on my_id...");
|
|
||||||
thread::sleep(Duration::from_millis(100));
|
|
||||||
} else {
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if self.peer.my_id().is_none() {
|
|
||||||
std::process::exit(1)
|
|
||||||
}
|
|
||||||
let is_host = self.is_host();
|
let is_host = self.is_host();
|
||||||
info!("Is host: {is_host}");
|
info!("Is host: {is_host}");
|
||||||
let mut state = NetInnerState {
|
let mut state = NetInnerState {
|
||||||
|
@ -227,14 +217,14 @@ impl NetManager {
|
||||||
recorder: None,
|
recorder: None,
|
||||||
world: WorldManager::new(
|
world: WorldManager::new(
|
||||||
is_host,
|
is_host,
|
||||||
self.peer.my_id().unwrap(),
|
self.peer.my_id(),
|
||||||
self.init_settings.save_state.clone(),
|
self.init_settings.save_state.clone(),
|
||||||
),
|
),
|
||||||
};
|
};
|
||||||
let mut last_iter = Instant::now();
|
let mut last_iter = Instant::now();
|
||||||
// Create appearance files for local player.
|
// Create appearance files for local player.
|
||||||
create_player_png(
|
create_player_png(
|
||||||
self.peer.my_id().unwrap(),
|
self.peer.my_id(),
|
||||||
&self.init_settings.mod_path,
|
&self.init_settings.mod_path,
|
||||||
&self.init_settings.player_path,
|
&self.init_settings.player_path,
|
||||||
&self.init_settings.player_png_desc,
|
&self.init_settings.player_png_desc,
|
||||||
|
@ -251,10 +241,7 @@ impl NetManager {
|
||||||
for id in self.peer.iter_peer_ids() {
|
for id in self.peer.iter_peer_ids() {
|
||||||
self.send(id, &NetMsg::EndRun, Reliability::Reliable);
|
self.send(id, &NetMsg::EndRun, Reliability::Reliable);
|
||||||
}
|
}
|
||||||
state.try_ws_write(ws_encode_proxy(
|
state.try_ws_write(ws_encode_proxy("end_run", self.peer.my_id().to_string()));
|
||||||
"end_run",
|
|
||||||
self.peer.my_id().unwrap().to_string(),
|
|
||||||
));
|
|
||||||
self.end_run(&mut state);
|
self.end_run(&mut state);
|
||||||
self.end_run.store(false, atomic::Ordering::Relaxed);
|
self.end_run.store(false, atomic::Ordering::Relaxed);
|
||||||
}
|
}
|
||||||
|
@ -287,7 +274,7 @@ impl NetManager {
|
||||||
omni::OmniNetworkEvent::PeerConnected(id) => {
|
omni::OmniNetworkEvent::PeerConnected(id) => {
|
||||||
self.broadcast(&NetMsg::Welcome, Reliability::Reliable);
|
self.broadcast(&NetMsg::Welcome, Reliability::Reliable);
|
||||||
info!("Peer connected {id}");
|
info!("Peer connected {id}");
|
||||||
if self.peer.my_id() == Some(self.peer.host_id()) {
|
if self.peer.my_id() == self.peer.host_id() {
|
||||||
info!("Sending start game message");
|
info!("Sending start game message");
|
||||||
self.send(
|
self.send(
|
||||||
id,
|
id,
|
||||||
|
@ -297,7 +284,7 @@ impl NetManager {
|
||||||
Reliability::Reliable,
|
Reliability::Reliable,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
if id != self.peer.my_id().unwrap() {
|
if id != self.peer.my_id() {
|
||||||
// Create temporary appearance files for new player.
|
// Create temporary appearance files for new player.
|
||||||
create_player_png(
|
create_player_png(
|
||||||
id,
|
id,
|
||||||
|
@ -332,7 +319,7 @@ impl NetManager {
|
||||||
NetMsg::Welcome => {}
|
NetMsg::Welcome => {}
|
||||||
NetMsg::EndRun => state.try_ws_write(ws_encode_proxy(
|
NetMsg::EndRun => state.try_ws_write(ws_encode_proxy(
|
||||||
"end_run",
|
"end_run",
|
||||||
self.peer.my_id().unwrap().to_string(),
|
self.peer.my_id().to_string(),
|
||||||
)),
|
)),
|
||||||
NetMsg::StartGame { settings } => {
|
NetMsg::StartGame { settings } => {
|
||||||
*self.settings.lock().unwrap() = settings;
|
*self.settings.lock().unwrap() = settings;
|
||||||
|
@ -436,8 +423,8 @@ impl NetManager {
|
||||||
|
|
||||||
let settings = self.settings.lock().unwrap();
|
let settings = self.settings.lock().unwrap();
|
||||||
state.try_ws_write(ws_encode_proxy("seed", settings.seed));
|
state.try_ws_write(ws_encode_proxy("seed", settings.seed));
|
||||||
let value = self.peer.my_id().expect("Has peer id at this point");
|
let my_id = self.peer.my_id();
|
||||||
state.try_ws_write(ws_encode_proxy("peer_id", format!("{:016x}", value.0)));
|
state.try_ws_write(ws_encode_proxy("peer_id", format!("{:016x}", my_id.0)));
|
||||||
state.try_ws_write(ws_encode_proxy(
|
state.try_ws_write(ws_encode_proxy(
|
||||||
"host_id",
|
"host_id",
|
||||||
format!("{:016x}", self.peer.host_id().0),
|
format!("{:016x}", self.peer.host_id().0),
|
||||||
|
|
|
@ -92,7 +92,7 @@ impl PeerVariant {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn flush(&self) {
|
pub(crate) fn flush(&self) {
|
||||||
if let PeerVariant::Steam(p) = self {
|
if let PeerVariant::Steam(p) = self {
|
||||||
p.flush()
|
p.flush()
|
||||||
|
@ -113,10 +113,13 @@ impl PeerVariant {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
pub(crate) fn my_id(&self) -> Option<OmniPeerId> {
|
pub(crate) fn my_id(&self) -> OmniPeerId {
|
||||||
match self {
|
match self {
|
||||||
PeerVariant::Tangled(p) => p.my_id().map(OmniPeerId::from),
|
PeerVariant::Tangled(p) => p
|
||||||
PeerVariant::Steam(p) => Some(p.my_id().into()),
|
.my_id()
|
||||||
|
.map(OmniPeerId::from)
|
||||||
|
.expect("Peer id to be available"),
|
||||||
|
PeerVariant::Steam(p) => p.my_id().into(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -161,7 +164,7 @@ impl PeerVariant {
|
||||||
|
|
||||||
pub fn is_host(&self) -> bool {
|
pub fn is_host(&self) -> bool {
|
||||||
match self {
|
match self {
|
||||||
PeerVariant::Tangled(_) => Some(self.host_id()) == self.my_id(),
|
PeerVariant::Tangled(_) => self.host_id() == self.my_id(),
|
||||||
PeerVariant::Steam(p) => p.is_host(),
|
PeerVariant::Steam(p) => p.is_host(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue