~starkingdoms/starkingdoms

7baddd1c84b0cf50d49ececd97ea631725533ad3 — ghostlyzsh 1 year, 8 months ago 95472ce
squishy joints and fix thruster turning
1 files changed, 56 insertions(+), 4 deletions(-)

M server/src/main.rs
M server/src/main.rs => server/src/main.rs +56 -4
@@ 154,7 154,7 @@ fn main() {

fn setup_integration_parameters(mut context: ResMut<RapierContext>) {
    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(),