44 lines
954 B
C#
44 lines
954 B
C#
using Sandbox;
|
|
|
|
namespace LuckerGame.Components.Lucker.Cameras;
|
|
|
|
public class FpsCamera : AbstractCamera
|
|
{
|
|
protected override void UpdateCameraParameters()
|
|
{
|
|
if ( Entity.Pawn is not Minigames.FpsTest.Pawn pawn)
|
|
{
|
|
return;
|
|
}
|
|
|
|
CameraRotation = pawn.ViewAngles.ToRotation();
|
|
FieldOfView = Screen.CreateVerticalFieldOfView( Game.Preferences.FieldOfView );
|
|
FirstPersonViewer = pawn;
|
|
CameraPosition = pawn.EyePosition;
|
|
}
|
|
|
|
public override void BuildInput()
|
|
{
|
|
if ( Input.StopProcessing )
|
|
return;
|
|
|
|
if ( Entity.Pawn is not Minigames.FpsTest.Pawn pawn )
|
|
{
|
|
return;
|
|
}
|
|
|
|
var look = Input.AnalogLook;
|
|
|
|
if ( pawn.ViewAngles.pitch is > 90f or < -90f )
|
|
{
|
|
look = look.WithYaw( look.yaw * -1f );
|
|
}
|
|
|
|
var viewAngles = pawn.ViewAngles;
|
|
viewAngles += look;
|
|
viewAngles.pitch = viewAngles.pitch.Clamp( -89f, 89f );
|
|
viewAngles.roll = 0f;
|
|
pawn.ViewAngles = viewAngles.Normal;
|
|
}
|
|
}
|