public sealed partial class Dedugan { private void RotateCamera() { if (RagdollController.Enabled) { var offset = RagdollController.WorldRotation.Up * 20f - Camera.WorldRotation.Forward * 200f; Camera.WorldPosition = Vector3.Lerp(Camera.WorldPosition, RagdollController.WorldPosition + offset, Time.Delta * 5f); Camera.LocalRotation = Rotation.Lerp(Camera.LocalRotation, EyeAngles.ToRotation(), Time.Delta * 2f); } else { // Camera.LocalRotation = EyeAngles.ToRotation(); // var offset = CameraPivot.LocalPosition + CameraPivot.LocalRotation.Backward * CamOffsetX; // Camera.LocalPosition = offset * Camera.LocalRotation; Camera.LocalRotation = EyeAngles.ToRotation(); var pivotOffset = CameraPivot.LocalRotation.Backward * CamOffsetX; var localPitchOffset = Camera.LocalRotation.Down * MathF.Max( 0f, EyeAngles.pitch ) * 0.32f + Camera.LocalRotation.Backward * MathF.Max( 0f, EyeAngles.pitch ) * 0.7f + Camera.LocalRotation.Up * MathF.Min( 0f, EyeAngles.pitch ) * 0.5f + Camera.LocalRotation.Backward * MathF.Min( 0f, EyeAngles.pitch ) * 0.8f; var offset = (CameraPivot.LocalPosition + pivotOffset ) * EyeAngles.ToRotation() + localPitchOffset; Camera.LocalPosition = offset; } } }