#ifndef PLAYER_CAMERA_H
#define PLAYER_CAMERA_H

#include "scene/3d/camera_3d.h"

class PlayerCamera : public Camera3D {
	GDCLASS(PlayerCamera, Camera3D);
	static void _bind_methods();
	void on_look_input(Vector2 input);
	void update_fov();
	void ready();
	void process(double delta);

protected:
	void _notification(int what);

public:
	void set_fov_factor(float value);
	float get_fov_factor() const;

	void recoil(float r);

private:
	float base_fov{ 60.f };
	float fov_factor{ 1.0f };
};

#endif // !PLAYER_CAMERA_H
