#include "coin/CoinCollected.h" #include "Event.h" #include #include void alai::CoinCollected::_register_methods() { godot::register_method("_state_enter", &CoinCollected::_state_enter); godot::register_method("_state_exit", &CoinCollected::_state_exit); godot::register_method("_on_animation_finished", &CoinCollected::_on_animation_finished); } alai::CoinCollected::CoinCollected() { } alai::CoinCollected::~CoinCollected() { } void alai::CoinCollected::_init() { } void alai::CoinCollected::_state_enter() { auto node = get_parent()->find_node("AnimationPlayer"); if (node != nullptr) { auto animation_player = Object::cast_to(node); animation_player->play("jump"); } auto coin_collected_sound = get_parent()->get_node("CoinCollectedSound"); coin_collected_sound->play(); } void alai::CoinCollected::_state_exit() { } void alai::CoinCollected::_on_animation_finished(godot::String anim_name) { auto event = get_node("/root/Event"); event->emit_signal("coin_collected", 1); this->get_parent()->queue_free(); }