From 91035d9a3f780e3264a289b6d66dc403a20fa92c Mon Sep 17 00:00:00 2001 From: Sardelka Date: Sat, 30 Jul 2022 21:37:15 +0800 Subject: [PATCH] Squared --- RageCoop.Client/Sync/Entities/SyncedVehicle.cs | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/RageCoop.Client/Sync/Entities/SyncedVehicle.cs b/RageCoop.Client/Sync/Entities/SyncedVehicle.cs index 43ed50d..73bba5d 100644 --- a/RageCoop.Client/Sync/Entities/SyncedVehicle.cs +++ b/RageCoop.Client/Sync/Entities/SyncedVehicle.cs @@ -141,11 +141,11 @@ namespace RageCoop.Client var v = Main.P.CurrentVehicle; if (v!= null && MainVehicle.IsTouching(v)) { - DisplayVehicle(00.1f); + DisplayVehicle(true); } else { - DisplayVehicle(1); + DisplayVehicle(false); } #region FLAGS if (IsDead) @@ -352,15 +352,18 @@ namespace RageCoop.Client } LastUpdated=Main.Ticked; } - void DisplayVehicle(float calibrationMultiplier=1) + void DisplayVehicle(bool touching) { var current = MainVehicle.ReadPosition(); var predicted = Position+Velocity*(Networking.Latency+0.001f*LastSyncedStopWatch.ElapsedMilliseconds); var dist = current.DistanceTo(Position); if (dist<8) { - MainVehicle.Velocity = Velocity; - MainVehicle.ApplyForce(calibrationMultiplier*dist*(predicted - current)); + if (!touching) + { + MainVehicle.Velocity = Velocity; + } + MainVehicle.ApplyForce((touching? 0.001f:1) *dist*dist*(predicted - current)); if (IsFlipped) { MainVehicle.Quaternion=Quaternion.Slerp(MainVehicle.ReadQuaternion(), Quaternion, 0.5f); @@ -371,7 +374,7 @@ namespace RageCoop.Client Vector3 cali = GetCalibrationRotation(); if (cali.Length()<50) { - MainVehicle.RotationVelocity = calibrationMultiplier*(RotationVelocity+cali*0.2f); + MainVehicle.RotationVelocity = (touching ? 0.001f : 1)*(RotationVelocity+cali*0.2f); } else {