28 lines
625 B
C++
28 lines
625 B
C++
#include "behaviour_composite.h"
|
|
|
|
void BehaviourComposite::_bind_methods() {}
|
|
|
|
void BehaviourComposite::child_order_changed() {
|
|
this->child_behaviours.clear();
|
|
for (Variant var : get_children()) {
|
|
if (BehaviourNode * node{ cast_to<BehaviourNode>(var) }) {
|
|
this->child_behaviours.push_back(node);
|
|
}
|
|
}
|
|
}
|
|
|
|
void BehaviourComposite::_notification(int what) {
|
|
switch (what) {
|
|
default:
|
|
return;
|
|
case NOTIFICATION_READY:
|
|
child_order_changed();
|
|
set_leaf(get_child_behaviours().is_empty());
|
|
return;
|
|
case NOTIFICATION_CHILD_ORDER_CHANGED:
|
|
if (is_ready()) {
|
|
child_order_changed();
|
|
}
|
|
return;
|
|
}
|
|
}
|