authority/modules/behaviour_nodes/behaviour_action.cpp
Sara 82063632b9 Add 'modules/behaviour_nodes/' from commit '2a4e00e6f1'
git-subtree-dir: modules/behaviour_nodes
git-subtree-mainline: 4e641855b4
git-subtree-split: 2a4e00e6f1
2026-03-13 10:49:24 +01:00

31 lines
781 B
C++

#include "behaviour_action.h"
#include "core/object/object.h"
void BehaviourAction::_bind_methods() {
ClassDB::add_virtual_method(get_class_static(), _gdvirtual__execute_get_method_info());
ClassDB::add_virtual_method(get_class_static(), _gdvirtual__exit_get_method_info());
ClassDB::add_virtual_method(get_class_static(), _gdvirtual__enter_get_method_info());
}
void BehaviourAction::enter() {
GDVIRTUAL_CALL(_enter);
}
void BehaviourAction::execute() {
Status out_status{ Fail };
GDVIRTUAL_CALL(_execute, out_status);
set_status(out_status);
}
void BehaviourAction::exit() {
GDVIRTUAL_CALL(_exit);
}
BehaviourNode *BehaviourAction::get_next() {
switch (get_status()) {
case Running:
return this;
default:
return cast_to<BehaviourNode>(get_parent());
}
}