From a42d76993b6aa2c9925bb197166a5b989d5c0ea7 Mon Sep 17 00:00:00 2001 From: ghostlyzsh Date: Wed, 19 Apr 2023 18:02:33 -0500 Subject: [PATCH] random player position --- Cargo.lock | 1 + server/Cargo.toml | 1 + server/src/handler.rs | 9 ++++++++- 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/Cargo.lock b/Cargo.lock index adc0a457df96acafaf6841329d4b3964bd66f52d..f0cf7b89d21f3e66935086b73621e7bd45644fae 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3310,6 +3310,7 @@ dependencies = [ "lazy_static", "log", "nalgebra", + "rand", "rapier2d-f64", "serde", "serde_json", diff --git a/server/Cargo.toml b/server/Cargo.toml index 1bddb2ade25bfce78393c9d94792937cdecc1077..e11b94a074c58ffccf9b2762169d812a059accbf 100644 --- a/server/Cargo.toml +++ b/server/Cargo.toml @@ -25,6 +25,7 @@ starkingdoms-protocol = { version = "0.1.0", path = "../protocol" } lazy_static = "1.4.0" rapier2d-f64 = { version = "0.17.2", features = [ "simd-stable" ] } nalgebra = "0.32.2" +rand = "0.8.5" [build-dependencies] cargo_metadata = "0.15" diff --git a/server/src/handler.rs b/server/src/handler.rs index 84664424e737bad7845c2a0843dddcb07ff2ba2a..b16b06a42d43c7705208455f869c360cee892001 100644 --- a/server/src/handler.rs +++ b/server/src/handler.rs @@ -1,4 +1,5 @@ use std::error::Error; +use std::f64::consts::PI; use std::net::SocketAddr; use std::sync::Arc; use std::time::{Duration, SystemTime}; @@ -6,6 +7,7 @@ use futures::stream::{SplitSink, SplitStream}; use futures::{FutureExt, SinkExt, StreamExt}; use log::{error, info, debug}; use nalgebra::{vector, point}; +use rand::Rng; use rapier2d_f64::prelude::{RigidBodyBuilder, RigidBodyType, ColliderBuilder, MassProperties, Collider}; use tungstenite::Message; use starkingdoms_protocol::goodbye_reason::GoodbyeReason; @@ -139,8 +141,13 @@ pub async fn handle_client(mgr: ClientManager, entities: Arc() * PI * 2. + }; let player_body = RigidBodyBuilder::new(RigidBodyType::Dynamic) - .translation(vector![0.0, 2100.0/SCALE]) + .translation(vector![angle.cos() * 2050. / SCALE, angle.sin() * 2050.0/SCALE]) + .rotation(angle + PI / 2.) .build(); let player_collider: Collider = ColliderBuilder::cuboid(25.0 / SCALE, 25.0 / SCALE) .mass_properties(MassProperties::new(point![0.0, 0.0], 120.0, 122500.0))