29 lines
1.3 KiB
C#
29 lines
1.3 KiB
C#
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;
|
|
}
|
|
}
|
|
}
|