This commit is contained in:
Oscar 2025-05-25 19:36:34 +03:00
parent 4d212f2ff8
commit 40df9e5735

View File

@ -87,6 +87,8 @@ public sealed class Dedugan : Component
{
base.OnFixedUpdate();
if ( OverrideGravity == Vector3.Zero )
{
_directionToAxis = Vector3.VectorPlaneProject(WorldPosition, Vector3.Right).Normal;
@ -97,6 +99,8 @@ public sealed class Dedugan : Component
_directionToAxis = OverrideGravity;
}
_up = -_directionToAxis;
_forward = Vector3.Right;
_right = Vector3.Cross(_up, _forward).Normal;
@ -129,7 +133,14 @@ public sealed class Dedugan : Component
}
Controller.Move();
if ( !RagdollController.Enabled )
{
Controller.Move();
}
else
{
Controller.Velocity = 0;
}
if (!AnimationHelper.IsValid()) return;
AnimationHelper.DuckLevel = IsDucking;
@ -186,9 +197,18 @@ public sealed class Dedugan : Component
void RotateCamera()
{
var cameraOffset = CameraPivot.LocalPosition + CameraPivot.LocalRotation.Backward * (CamOffsetX + EyeAngles.pitch * .5f);
Camera.LocalRotation = EyeAngles.ToRotation();
Camera.LocalPosition = cameraOffset * Camera.LocalRotation;
if ( RagdollController.Enabled )
{
var cameraOffset = RagdollController.WorldRotation.Up * 20f - Camera.WorldRotation.Forward * 200f;//RagdollController.LocalPosition + RagdollController.LocalRotation.Backward * (CamOffsetX + EyeAngles.pitch * .5f);
Camera.WorldPosition = Vector3.Lerp( Camera.WorldPosition, RagdollController.WorldPosition + cameraOffset, Time.Delta * 5f);
Camera.LocalRotation = Rotation.Lerp(Camera.LocalRotation, EyeAngles.ToRotation(), Time.Delta * 2f);
}
else
{
Camera.LocalRotation = EyeAngles.ToRotation();
var cameraOffset = CameraPivot.LocalPosition + CameraPivot.LocalRotation.Backward * (CamOffsetX + EyeAngles.pitch * .5f);
Camera.LocalPosition = cameraOffset * Camera.LocalRotation;
}
}