#pragma once #include #include namespace blitz { class FirstPersonPlayer : public Player { GDCLASS(FirstPersonPlayer, godot::Node) protected: static void _bind_methods(); public: FirstPersonPlayer(); ~FirstPersonPlayer(); // Godot overrides void _unhandled_input(const godot::Ref&); void _physics_process(float delta) override; void _ready(); private: godot::Camera3D* m_Camera; float m_BobTime; float m_Speed; void UpdateBobbing(float delta); void UpdateFOV(float delta); void UpdateCamera(const godot::InputEventMouseMotion&); void UpdatePosition(float delta); void Shoot(); }; } // namespace blitz