From 2682bc24b93f41807458dffdc7f3af5435b991c6 Mon Sep 17 00:00:00 2001 From: ghostlyzsh Date: Thu, 4 Apr 2024 19:09:14 -0500 Subject: [PATCH] a few bug fixes --- server/src/main.rs | 29 ++++++++++--------- server/src/ws.rs | 8 ++--- starkingdoms-client/src/hub.ts | 2 +- starkingdoms-client/src/pages/Play.svelte | 2 +- .../src/pages/ShipEditor.svelte | 5 ++-- 5 files changed, 25 insertions(+), 21 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index eb9f4e18809a10702b76ff1a3c0af252b799dfbc..23cb8c45b049cf64601715d645205696e2e1b938 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -691,7 +691,7 @@ fn on_message( } break; } - for (entity, part_type, transform, _m_attach, _velocity, _, _, _) in + for (m_entity, part_type, transform, m_attach, _velocity, _, _, _) in &attached_query { if *part_type == PartType::LandingThrusterSuspension { @@ -709,8 +709,10 @@ fn on_message( } if bound[0] < x && x < bound[1] && bound[2] < y && y < bound[3] { - q_player.selected = Some(entity); - break; + if m_attach.associated_player.unwrap() == entity { + q_player.selected = Some(m_entity); + break; + } } } for (entity, part_type, transform, _, _, _) in &part_query { @@ -1897,7 +1899,6 @@ fn search_thrusters( Without, >, ) { - let mut lose_energy = 0; let p_angle = p_transform.rotation.to_euler(EulerRot::ZYX).0; for child in attach.children.iter().flatten() { let (attach, part_type, mut force, transform) = attached_query.get_mut(*child).unwrap(); @@ -1914,8 +1915,10 @@ fn search_thrusters( ); let mut force_mult = 0.; + let mut energy_lose_by = 0; if *part_type == PartType::LandingThruster { force_mult = part::LANDING_THRUSTER_FORCE; + energy_lose_by = LANDING_THRUSTER_ENERGY; } if input.up && 3. * PI / 4. < relative_angle && relative_angle < 5. * PI / 4. { let thruster_force = ExternalForce::at_point( @@ -1925,7 +1928,7 @@ fn search_thrusters( ); force.force += thruster_force.force; force.torque += thruster_force.torque; - *energy -= LANDING_THRUSTER_ENERGY; + *energy -= energy_lose_by; } if input.down && ((0. < relative_angle && relative_angle < PI / 4.) @@ -1938,7 +1941,7 @@ fn search_thrusters( ); force.force += thruster_force.force; force.torque += thruster_force.torque; - *energy -= LANDING_THRUSTER_ENERGY; + *energy -= energy_lose_by; } if input.left { if 3. * PI / 4. < relative_angle @@ -1952,7 +1955,7 @@ fn search_thrusters( ); force.force += thruster_force.force; force.torque += thruster_force.torque; - *energy -= LANDING_THRUSTER_ENERGY; + *energy -= energy_lose_by; } if ((0. < relative_angle && relative_angle < PI / 4.) || (7. * PI / 4. < relative_angle && relative_angle < 2. * PI)) @@ -1965,7 +1968,7 @@ fn search_thrusters( ); force.force += thruster_force.force; force.torque += thruster_force.torque; - *energy -= LANDING_THRUSTER_ENERGY; + *energy -= energy_lose_by; } if PI / 4. < relative_angle && relative_angle < 3. * PI / 4. { if relative_pos.y < -0.48 { @@ -1976,7 +1979,7 @@ fn search_thrusters( ); force.force += thruster_force.force; force.torque += thruster_force.torque; - *energy -= LANDING_THRUSTER_ENERGY; + *energy -= energy_lose_by; } if -0.48 < relative_pos.y && relative_pos.y < 0.48 { let thruster_force = ExternalForce::at_point( @@ -1986,7 +1989,7 @@ fn search_thrusters( ); force.force += thruster_force.force; force.torque += thruster_force.torque; - *energy -= LANDING_THRUSTER_ENERGY; + *energy -= energy_lose_by; } } if 5. * PI / 4. < relative_angle && relative_angle < 7. * PI / 4. { @@ -1998,7 +2001,7 @@ fn search_thrusters( ); force.force += thruster_force.force; force.torque += thruster_force.torque; - *energy -= LANDING_THRUSTER_ENERGY; + *energy -= energy_lose_by; } if -0.48 < relative_pos.y && relative_pos.y < 0.48 { let thruster_force = ExternalForce::at_point( @@ -2008,13 +2011,13 @@ fn search_thrusters( ); force.force += thruster_force.force; force.torque += thruster_force.torque; - *energy -= LANDING_THRUSTER_ENERGY; + *energy -= energy_lose_by; } } } if *part_type != PartType::LandingThruster { - if *energy >= LANDING_THRUSTER_ENERGY { + if *energy >= energy_lose_by { search_thrusters(input, attach.clone(), p_transform, energy, attached_query); } } diff --git a/server/src/ws.rs b/server/src/ws.rs index a9e062be7aa10ed619f5c6e6336ec46be38f2db1..346eb8e5f6d58966de6c86121c622c78946f23be 100644 --- a/server/src/ws.rs +++ b/server/src/ws.rs @@ -133,7 +133,6 @@ impl StkTungsteniteServerPlugin { } WsEvent::Close { addr } => { if addr == this_addr { - println!("send close"); match l_stream.close(None) { Ok(_) => (), Err(e) => { @@ -163,14 +162,12 @@ impl StkTungsteniteServerPlugin { Ok(m) => m, Err(e) => { error!("error reading from stream: {}", e); - println!("read close"); break; } }; if let Message::Close(_) = msg { let _ = l_stream.close(None); l_gtx.send(WsEvent::Close { addr: this_addr }).unwrap(); - println!("read close"); break; } l_gtx @@ -201,7 +198,10 @@ impl StkTungsteniteServerPlugin { } WsEvent::Close { addr } => { if let Some(client) = clients.get_mut(addr) { - client.send(event.clone()).expect("failed to forward event"); + match client.send(event.clone()) { + Ok(_) => (), + Err(e) => error!("failed to forward event: {}", e) + } } clients.remove(addr); } diff --git a/starkingdoms-client/src/hub.ts b/starkingdoms-client/src/hub.ts index 03156b22f8f18701556a9d9486579079aabf2821..7d057a220198cf8a147a5bac33113f56a6fa09e4 100644 --- a/starkingdoms-client/src/hub.ts +++ b/starkingdoms-client/src/hub.ts @@ -336,7 +336,7 @@ export async function hub_connect( chatbox.addMessage("server-message", "[Save] Game saved successfully!"); if (global.leaving) { - window.location.href = "/" + window.location.href = "/"; } } else if (packet.t == PacketType.EnergyUpdate) { let p = packet.c; diff --git a/starkingdoms-client/src/pages/Play.svelte b/starkingdoms-client/src/pages/Play.svelte index cd14c495bcc2be5243d6cb1a482689500267072a..cc99252d89be29827a8e2cc636ca6a656a92bccc 100644 --- a/starkingdoms-client/src/pages/Play.svelte +++ b/starkingdoms-client/src/pages/Play.svelte @@ -42,7 +42,7 @@ if (!global.saveEligible) { chatbox.addMessage( "server-message", - "[Save] Not eligible to beam out, please get closer to a planet" + "[Save] Not eligible to beam out, please get closer to a planet", ); return; } diff --git a/starkingdoms-client/src/pages/ShipEditor.svelte b/starkingdoms-client/src/pages/ShipEditor.svelte index 592052df79df12f5638412025ef8028580be8297..100480108a5a93433d2e8ff1e2261912ecacf835 100644 --- a/starkingdoms-client/src/pages/ShipEditor.svelte +++ b/starkingdoms-client/src/pages/ShipEditor.svelte @@ -270,7 +270,7 @@ confirm_save = false; }, 5000); } - + function quit_btn() { if (confirm_quit) { window.location.href = "/"; @@ -394,7 +394,8 @@ variant="danger" style="min-width: 16em; margin-top: 5px;"> {#if confirm_quit} - Are you sure you want to quit without saving? (again to confirm, resets in 5s) + Are you sure you want to quit without saving? (again to confirm, resets in + 5s) {:else} Quit without Save {/if}