trenches/src/player.hpp

31 lines
973 B
C++
Raw Normal View History

2024-11-26 23:41:39 +00:00
#ifndef TR_PLAYER_HPP
#define TR_PLAYER_HPP
#include "utils/player_input.hpp"
#include <godot_cpp/classes/animation_tree.hpp>
#include <godot_cpp/classes/character_body3d.hpp>
#include <godot_cpp/classes/animation_node_state_machine_playback.hpp>
2024-11-26 23:41:39 +00:00
namespace gd = godot;
class Player : public gd::CharacterBody3D {
GDCLASS(Player, gd::CharacterBody3D);
static void _bind_methods();
public:
virtual void _ready() override;
virtual void _process(double delta) override;
2024-11-26 23:41:39 +00:00
virtual void _physics_process(double delta) override;
void _on_dir_horizontal(gd::Ref<gd::InputEvent>, float value);
void _on_dir_vertical(gd::Ref<gd::InputEvent>, float value);
gd::Vector2 get_input_directions() const;
2024-11-26 23:41:39 +00:00
private:
gd::AnimationTree *anim_tree{nullptr};
gd::AnimationNodeStateMachinePlayback *sfm{nullptr};
2024-11-26 23:41:39 +00:00
utils::PlayerInput *input{nullptr};
gd::Node3D *model_node{nullptr};
gd::Vector2 input_directions{};
2024-11-26 23:41:39 +00:00
};
#endif // !TR_PLAYER_HPP