#pragma once #include #include #include #include namespace blitz { class World; class Player : public godot::CharacterBody3D { GDCLASS(Player, godot::CharacterBody3D); protected: static void _bind_methods(); public: Player(); ~Player(); void _ready() override; virtual void _physics_process(float delta); void animate(float delta); godot::Vector3 GetCameraRotation() const; void SetCameraRotation(const godot::Vector3& a_Rotation); PlayerID GetId() const { return m_PeerId; } protected: godot::Node3D* m_Mesh; godot::AnimationTree* m_AnimationTree; godot::Vector3 m_SnapVector; PeerID m_PeerId; friend class World; }; } // namespace blitz