~starkingdoms/starkingdoms

1362477b192d79a34503613c7331332aa6b4f37c — core 1 year, 11 months ago 4d45eca
change one thingy
2 files changed, 81 insertions(+), 32 deletions(-)

M server/src/main.rs
M starkingdoms-backplane/src/main.rs
M server/src/main.rs => server/src/main.rs +79 -30
@@ 23,8 23,8 @@ use bevy::math::{vec2, vec3};
use bevy::{ecs::event::ManualEventReader, prelude::*};
use bevy_rapier2d::prelude::*;
use bevy_twite::{twite::frame::MessageType, ServerEvent, TwiteServerConfig, TwiteServerPlugin};
use component::*;
use component::Input;
use component::*;
use packet::*;
use rand::Rng;



@@ 1274,8 1274,17 @@ fn on_position_change(
}

fn player_input_update(
    mut player_and_body_query: Query<(Entity, &mut Player, &Attach, &mut ExternalForce, &Transform)>,
    mut attached_query: Query<(&Attach, &PartType, &mut ExternalForce, &Transform), Without<Player>>
    mut player_and_body_query: Query<(
        Entity,
        &mut Player,
        &Attach,
        &mut ExternalForce,
        &Transform,
    )>,
    mut attached_query: Query<
        (&Attach, &PartType, &mut ExternalForce, &Transform),
        Without<Player>,
    >,
) {
    for (_, player, attach, mut forces, transform) in &mut player_and_body_query {
        //forces.torque = 0.0;


@@ 1345,14 1354,22 @@ fn player_input_update(
                forces.torque += thruster_force.torque;
            }
        }
        search_thrusters(player.input, attach.clone(), *transform, &mut attached_query);
        search_thrusters(
            player.input,
            attach.clone(),
            *transform,
            &mut attached_query,
        );
    }
}
fn search_thrusters(
    input: Input,
    attach: Attach,
    p_transform: Transform,
    attached_query: &mut Query<(&Attach, &PartType, &mut ExternalForce, &Transform), Without<Player>>
    attached_query: &mut Query<
        (&Attach, &PartType, &mut ExternalForce, &Transform),
        Without<Player>,
    >,
) {
    let p_angle = p_transform.rotation.to_euler(EulerRot::ZYX).0;
    for child in attach.children {


@@ 1362,8 1379,12 @@ fn search_thrusters(
            let relative_angle = (p_angle - angle).abs();
            let relative_pos = transform.translation - p_transform.translation;
            let relative_pos = Vec2::new(
                relative_pos.x.mul_add((-p_angle).cos(), -relative_pos.y * (-p_angle).sin()),
                relative_pos.x.mul_add((-p_angle).sin(), relative_pos.y * (-p_angle).cos()),
                relative_pos
                    .x
                    .mul_add((-p_angle).cos(), -relative_pos.y * (-p_angle).sin()),
                relative_pos
                    .x
                    .mul_add((-p_angle).sin(), relative_pos.y * (-p_angle).cos()),
            );

            let mut force_mult = 0.;


@@ 1371,10 1392,12 @@ fn search_thrusters(
                force_mult = LANDING_THRUSTER_FORCE;
            }
            if input.up {
                if 3.*PI/4. < relative_angle && relative_angle < 5.*PI/4. {
                if 3. * PI / 4. < relative_angle && relative_angle < 5. * PI / 4. {
                    let thruster_force = ExternalForce::at_point(
                        Vec2::new(-force_mult / SCALE * angle.sin(),
                                   force_mult / SCALE * angle.cos()),
                        Vec2::new(
                            -force_mult / SCALE * angle.sin(),
                            force_mult / SCALE * angle.cos(),
                        ),
                        transform.translation.xy(),
                        transform.translation.xy(),
                    );


@@ 1383,10 1406,14 @@ fn search_thrusters(
                }
            }
            if input.down {
                if (0. < relative_angle && relative_angle < PI/4.)||(7.*PI/4. < relative_angle && relative_angle < 2.*PI) {
                if (0. < relative_angle && relative_angle < PI / 4.)
                    || (7. * PI / 4. < relative_angle && relative_angle < 2. * PI)
                {
                    let thruster_force = ExternalForce::at_point(
                        Vec2::new(-force_mult / SCALE * angle.sin(),
                                   force_mult / SCALE * angle.cos()),
                        Vec2::new(
                            -force_mult / SCALE * angle.sin(),
                            force_mult / SCALE * angle.cos(),
                        ),
                        transform.translation.xy(),
                        transform.translation.xy(),
                    );


@@ 1395,11 1422,13 @@ fn search_thrusters(
                }
            }
            if input.left {
                if 3.*PI/4. < relative_angle && relative_angle < 5.*PI/4. {
                if 3. * PI / 4. < relative_angle && relative_angle < 5. * PI / 4. {
                    if relative_pos.x > 24. / SCALE {
                        let thruster_force = ExternalForce::at_point(
                            Vec2::new(-force_mult / SCALE * angle.sin(),
                                       force_mult / SCALE * angle.cos()),
                            Vec2::new(
                                -force_mult / SCALE * angle.sin(),
                                force_mult / SCALE * angle.cos(),
                            ),
                            transform.translation.xy(),
                            transform.translation.xy(),
                        );


@@ 1407,11 1436,15 @@ fn search_thrusters(
                        force.torque += thruster_force.torque;
                    }
                }
                if (0. < relative_angle && relative_angle < PI/4.)||(7.*PI/4. < relative_angle && relative_angle < 2.*PI) {
                if (0. < relative_angle && relative_angle < PI / 4.)
                    || (7. * PI / 4. < relative_angle && relative_angle < 2. * PI)
                {
                    if relative_pos.x < -24. / SCALE {
                        let thruster_force = ExternalForce::at_point(
                            Vec2::new(-force_mult / SCALE * angle.sin(),
                                       force_mult / SCALE * angle.cos()),
                            Vec2::new(
                                -force_mult / SCALE * angle.sin(),
                                force_mult / SCALE * angle.cos(),
                            ),
                            transform.translation.xy(),
                            transform.translation.xy(),
                        );


@@ 1419,11 1452,13 @@ fn search_thrusters(
                        force.torque += thruster_force.torque;
                    }
                }
                if PI/4. < relative_angle && relative_angle < 3.*PI/4. {
                if PI / 4. < relative_angle && relative_angle < 3. * PI / 4. {
                    if relative_pos.y < -24. / SCALE {
                        let thruster_force = ExternalForce::at_point(
                            Vec2::new(-force_mult / SCALE * angle.sin(),
                                       force_mult / SCALE * angle.cos()),
                            Vec2::new(
                                -force_mult / SCALE * angle.sin(),
                                force_mult / SCALE * angle.cos(),
                            ),
                            transform.translation.xy(),
                            transform.translation.xy(),
                        );


@@ 1432,8 1467,10 @@ fn search_thrusters(
                    }
                    if -24. / SCALE < relative_pos.y && relative_pos.y < 24. / SCALE {
                        let thruster_force = ExternalForce::at_point(
                            Vec2::new(-force_mult / SCALE * angle.sin(),
                                       force_mult / SCALE * angle.cos()),
                            Vec2::new(
                                -force_mult / SCALE * angle.sin(),
                                force_mult / SCALE * angle.cos(),
                            ),
                            transform.translation.xy(),
                            transform.translation.xy(),
                        );


@@ 1441,11 1478,13 @@ fn search_thrusters(
                        force.torque += thruster_force.torque;
                    }
                }
                if 5.*PI/4. < relative_angle && relative_angle < 7.*PI/4. {
                if 5. * PI / 4. < relative_angle && relative_angle < 7. * PI / 4. {
                    if relative_pos.y > 24. / SCALE {
                        let thruster_force = ExternalForce::at_point(
                            Vec2::new(-force_mult / SCALE * angle.sin(),
                                       force_mult / SCALE * angle.cos()),
                            Vec2::new(
                                -force_mult / SCALE * angle.sin(),
                                force_mult / SCALE * angle.cos(),
                            ),
                            transform.translation.xy(),
                            transform.translation.xy(),
                        );


@@ 1454,8 1493,10 @@ fn search_thrusters(
                    }
                    if -24. / SCALE < relative_pos.y && relative_pos.y < 24. / SCALE {
                        let thruster_force = ExternalForce::at_point(
                            Vec2::new(-force_mult / SCALE * angle.sin(),
                                       force_mult / SCALE * angle.cos()),
                            Vec2::new(
                                -force_mult / SCALE * angle.sin(),
                                force_mult / SCALE * angle.cos(),
                            ),
                            transform.translation.xy(),
                            transform.translation.xy(),
                        );


@@ 1473,7 1514,15 @@ fn search_thrusters(
}

fn gravity_update(
    mut part_query: Query<(&Transform, &ReadMassProperties, &mut ExternalForce, &mut ExternalImpulse), With<PartType>>,
    mut part_query: Query<
        (
            &Transform,
            &ReadMassProperties,
            &mut ExternalForce,
            &mut ExternalImpulse,
        ),
        With<PartType>,
    >,
    planet_query: Query<(&Transform, &ReadMassProperties), With<PlanetType>>,
) {
    for (part_transform, part_mp, mut forces, mut impulses) in &mut part_query {

M starkingdoms-backplane/src/main.rs => starkingdoms-backplane/src/main.rs +2 -2
@@ 59,7 59,7 @@ pub const MIGRATIONS: EmbeddedMigrations = embed_migrations!("migrations");
async fn main() {
    env_logger::init();
    info!(
        "StarKingdoms API v{} starting up",
        "StarKingdoms Backplane v{} starting up",
        env!("CARGO_PKG_VERSION")
    );



@@ 67,7 67,7 @@ async fn main() {
    let config_path = match args.nth(1) {
        Some(path) => path,
        None => {
            eprintln!("usage: starkingdoms-api <config_path>");
            eprintln!("usage: starkingdoms-backplane <config_path>");
            std::process::exit(1);
        }
    };