blob: 5ec9f7b3ffce44100846de52ebc2f778c3acc48e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
using Sandbox;
namespace MurderGame;
public class PlayerCameraComponent : BaseCameraComponent
{
protected override void OnActivate()
{
base.OnActivate();
// Set field of view to whatever the user chose in options
Camera.FieldOfView = Screen.CreateVerticalFieldOfView( Game.Preferences.FieldOfView );
}
public override void FrameSimulate( IClient cl )
{
var pl = Entity as Player;
// Update rotation every frame, to keep things smooth
if (pl.PlayerRagdoll != null && pl.LifeState == LifeState.Dead)
{
Camera.Position = pl.PlayerRagdoll.Position;
Camera.FirstPersonViewer = pl.PlayerRagdoll;
return;
}
pl.EyeRotation = pl.ViewAngles.ToRotation();
Camera.Position = pl.EyePosition;
Camera.Rotation = pl.ViewAngles.ToRotation();
Camera.Main.SetViewModelCamera( Screen.CreateVerticalFieldOfView( Game.Preferences.FieldOfView ) );
// Set the first person viewer to this, so it won't render our model
Camera.FirstPersonViewer = Entity;
Camera.ZNear = 8 * pl.Scale;
}
public override void BuildInput()
{
if ( Game.LocalClient.Components.TryGet<DevCamera>( out var _ ) )
return;
var pl = Entity as Player;
var viewAngles = (pl.ViewAngles + Input.AnalogLook).Normal;
pl.ViewAngles = viewAngles.WithPitch( viewAngles.pitch.Clamp( -89f, 89f ) );
}
}
|