#pragma once

#include <godot_cpp/classes/animation_tree.hpp>
#include <godot_cpp/classes/character_body3d.hpp>
#include <godot_cpp/classes/node3d.hpp>

namespace blitz {
class Player : public godot::CharacterBody3D {

	GDCLASS(Player, godot::CharacterBody3D);

  protected:
	static void _bind_methods();

  public:
	Player();
	~Player();

	void _ready();
	void _physics_process(float delta);
	void animate(float delta);

  private:
	godot::Node3D* m_PlayerMesh;
	godot::Node3D* m_SpringArmPivot;
	godot::AnimationTree* m_AnimationTree;

	godot::Vector3 m_SnapVector;
	float m_Speed;
	/*
	@onready var player_mesh : Node3D = $Mesh
@onready var spring_arm_pivot : Node3D = $SpringArmPivot
@onready var animator : AnimationTree = $AnimationTree

	*/
};
}  // namespace blitz
