viscosity/modules/behaviour_nodes/behaviour_action.cpp
Sara 5c8fb517a0 Add 'modules/behaviour_nodes/' from commit 'd51f4da2a9'
git-subtree-dir: modules/behaviour_nodes
git-subtree-mainline: 07d69bf55e
git-subtree-split: d51f4da2a9
2026-04-25 19:07:05 +02:00

34 lines
896 B
C++

#include "behaviour_action.h"
#include "core/object/class_db.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() {
Status out_status{ get_status() };
GDVIRTUAL_CALL(_enter, out_status);
set_status(out_status);
}
void BehaviourAction::execute() {
Status out_status{ get_status() };
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());
}
}