alai/src/player/states/PlayerIdle.cpp

64 lines
1.3 KiB
C++
Raw Normal View History

#include "player/states/PlayerIdle.h"
2022-08-28 01:08:04 -04:00
#include "player/Player.h"
2022-08-26 19:27:57 -04:00
void alai::player::PlayerIdle::_register_methods()
{
godot::register_method("_state_enter", &PlayerIdle::_state_enter);
godot::register_method("_state_exit", &PlayerIdle::_state_exit);
godot::register_method("_physics_process", &PlayerIdle::_physics_process);
}
2022-08-26 19:27:57 -04:00
alai::player::PlayerIdle::PlayerIdle()
{
}
2022-08-26 19:27:57 -04:00
alai::player::PlayerIdle::~PlayerIdle()
{
}
2022-08-26 19:27:57 -04:00
void alai::player::PlayerIdle::_init()
{
2022-08-26 19:27:57 -04:00
_input = godot::Input::get_singleton();
}
2022-08-26 19:27:57 -04:00
void alai::player::PlayerIdle::_state_enter()
{
2022-08-26 19:27:57 -04:00
animated_sprite = get_parent()->get_node<godot::AnimatedSprite>("AnimatedSprite");
animated_sprite->stop();
animated_sprite->set_animation("idle");
}
2022-08-26 19:27:57 -04:00
void alai::player::PlayerIdle::_state_exit()
{
}
2022-08-26 19:27:57 -04:00
void alai::player::PlayerIdle::_physics_process(float delta)
{
2022-08-26 19:27:57 -04:00
auto parent = Object::cast_to<Player>(get_parent());
if (_input->is_action_pressed("right"))
{
get_state_machine()->change("Move");
return;
}
if (_input->is_action_pressed("left"))
{
get_state_machine()->change("Move");
return;
}
if (_input->is_action_just_pressed("jump"))
{
get_state_machine()->change("Jump");
return;
}
if (!parent->is_on_floor())
{
get_state_machine()->change("Fall");
return;
}
}