#pragma once #include #include namespace blitz { class NetworkInterface; class PlayerController : public godot::Node { GDCLASS(PlayerController, godot::Node) protected: static void _bind_methods(); public: PlayerController(); ~PlayerController(); // Godot overrides void _unhandled_input(const godot::Ref&); void _process(float delta); void _ready(); private: godot::Camera3D* m_Camera; float m_BobTime; float m_Speed; Player* m_Player; godot::Node3D* m_Head; NetworkInterface* m_NetworkInterface; void UpdateBobbing(float delta); void UpdateFOV(float delta); void UpdateCamera(const godot::InputEventMouseMotion&); void UpdateVelocity(float delta); void Shoot(); }; } // namespace blitz