From 7baddd1c84b0cf50d49ececd97ea631725533ad3 Mon Sep 17 00:00:00 2001 From: ghostlyzsh Date: Mon, 8 Apr 2024 01:33:44 -0500 Subject: [PATCH] squishy joints and fix thruster turning --- server/src/main.rs | 60 ++++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 56 insertions(+), 4 deletions(-) diff --git a/server/src/main.rs b/server/src/main.rs index e288effb48c1b78372272e5a84dbdc5740af8e0c..5c478769cb7728bcc8796aa79ccb0621cd898781 100644 --- a/server/src/main.rs +++ b/server/src/main.rs @@ -154,7 +154,7 @@ fn main() { fn setup_integration_parameters(mut context: ResMut) { context.integration_parameters.dt = 1.0 / 20.0; - context.integration_parameters.joint_erp = 0.2; + context.integration_parameters.joint_erp = 0.01; context.integration_parameters.erp = 0.1; //context.integration_parameters.num_solver_iterations = NonZeroUsize::new(1).unwrap(); //context.integration_parameters.num_internal_pgs_iterations = 1; @@ -2017,7 +2017,7 @@ fn search_thrusters( force.torque += thruster_force.torque; *energy -= energy_lose_by; } - if -0.48 < relative_pos.y && relative_pos.y < 0.48 { + /*if -0.48 < relative_pos.y && relative_pos.y < 0.48 { let thruster_force = ExternalForce::at_point( Vec2::new(-force_mult * angle.sin(), force_mult * angle.cos()), transform.translation.xy(), @@ -2026,7 +2026,7 @@ fn search_thrusters( force.force += thruster_force.force; force.torque += thruster_force.torque; *energy -= energy_lose_by; - } + }*/ } if 5. * PI / 4. < relative_angle && relative_angle < 7. * PI / 4. { if relative_pos.y > 0.48 { @@ -2039,7 +2039,59 @@ fn search_thrusters( force.torque += thruster_force.torque; *energy -= energy_lose_by; } - if -0.48 < relative_pos.y && relative_pos.y < 0.48 { + /*if -0.48 < relative_pos.y && relative_pos.y < 0.48 { + let thruster_force = ExternalForce::at_point( + Vec2::new(-force_mult * angle.sin(), force_mult * angle.cos()), + transform.translation.xy(), + transform.translation.xy(), + ); + force.force += thruster_force.force; + force.torque += thruster_force.torque; + *energy -= energy_lose_by; + }*/ + } + } + if input.right { + if ((0. < relative_angle && relative_angle < PI / 4.) + || (7. * PI / 4. < relative_angle && relative_angle < 2. * PI)) + && relative_pos.x > 0.48 + { + let thruster_force = ExternalForce::at_point( + Vec2::new(-force_mult * angle.sin(), force_mult * angle.cos()), + transform.translation.xy(), + transform.translation.xy(), + ); + force.force += thruster_force.force; + force.torque += thruster_force.torque; + *energy -= energy_lose_by; + } + if 3. * PI / 4. < relative_angle + && relative_angle < 5. * PI / 4. + && relative_pos.x < -0.48 + { + let thruster_force = ExternalForce::at_point( + Vec2::new(-force_mult * angle.sin(), force_mult * angle.cos()), + transform.translation.xy(), + transform.translation.xy(), + ); + force.force += thruster_force.force; + force.torque += thruster_force.torque; + *energy -= energy_lose_by; + } + if PI / 4. < relative_angle && relative_angle < 3. * PI / 4. { + if relative_pos.y > 0.48 { + let thruster_force = ExternalForce::at_point( + Vec2::new(-force_mult * angle.sin(), force_mult * angle.cos()), + transform.translation.xy(), + transform.translation.xy(), + ); + force.force += thruster_force.force; + force.torque += thruster_force.torque; + *energy -= energy_lose_by; + } + } + if 5. * PI / 4. < relative_angle && relative_angle < 7. * PI / 4. { + if relative_pos.y < -0.48 { let thruster_force = ExternalForce::at_point( Vec2::new(-force_mult * angle.sin(), force_mult * angle.cos()), transform.translation.xy(),