From 03ae4f52d091e573b5ddaaa207deda1635619a47 Mon Sep 17 00:00:00 2001 From: ghostlyzsh Date: Tue, 16 May 2023 21:19:05 -0500 Subject: [PATCH] initial rotation bug fixed. i hate math. --- server/src/handler.rs | 1 - server/src/manager.rs | 9 +++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/server/src/handler.rs b/server/src/handler.rs index 0bfa8b7f9c9fbff9e3f0a50ab6c71209cd62ac94..5ae5c15bece2f3a6fc93521e94ba845ca19b8116 100644 --- a/server/src/handler.rs +++ b/server/src/handler.rs @@ -203,7 +203,6 @@ pub async fn handle_client( ]) .rotation(angle + PI / 2.) .build(); - debug!("rotation: {}", player_body.rotation().angle()); let player_collider: Collider = ColliderBuilder::cuboid(25.0 / SCALE, 25.0 / SCALE) .mass_properties(MassProperties::new( diff --git a/server/src/manager.rs b/server/src/manager.rs index 2f4f05185ff67e4194cb0f6aed5cce7a7e8cd2a6..7bbc107bc13f00455c549a176376981ed89bb0f5 100644 --- a/server/src/manager.rs +++ b/server/src/manager.rs @@ -220,9 +220,11 @@ impl AttachedModule { ], 0.) } }; - debug!("anchor: {}", anchor); - let module_pos = parent_pos + vector![anchor.x * -rotation.sin(), anchor.y * rotation.cos()]; + let relative_pos = + vector![anchor.y * -(rotation + parent_body.rotation().angle()).sin(), + anchor.y * (rotation + parent_body.rotation().angle()).cos()]; + let module_pos = parent_pos + relative_pos; // create attachment module let module_collider = ColliderBuilder::cuboid(25.0 / SCALE, 25.0 / SCALE) @@ -230,9 +232,8 @@ impl AttachedModule { .build(); let module_body = RigidBodyBuilder::dynamic() .translation(module_pos) - .rotation(parent_body.rotation().angle() - rotation) + .rotation(parent_body.rotation().angle() + rotation) .build(); - debug!("angle: {}", module_body.rotation().angle()); let attached_handle = data.rigid_body_set.insert(module_body); data.collider_set.insert_with_parent( module_collider,