Merge pull request #227 from limbonaut/fix-bttask-setup-overriding

Call both native and script `_setup/_enter/_exit` in BTTask
This commit is contained in:
Serhii Snitsaruk 2024-11-01 06:19:13 -07:00 committed by GitHub
commit 6de8b9e4c4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 11 additions and 12 deletions

View File

@ -172,9 +172,8 @@ void BTTask::initialize(Node *p_agent, const Ref<Blackboard> &p_blackboard, Node
get_child(i)->initialize(p_agent, p_blackboard, p_scene_root);
}
if (!GDVIRTUAL_CALL(_setup)) {
_setup();
}
_setup();
GDVIRTUAL_CALL(_setup);
}
Ref<BTTask> BTTask::clone() const {
@ -235,9 +234,9 @@ BT::Status BTTask::execute(double p_delta) {
data.children.get(i)->abort();
}
}
if (!GDVIRTUAL_CALL(_enter)) {
_enter();
}
// First native, then script.
_enter();
GDVIRTUAL_CALL(_enter);
} else {
data.elapsed += p_delta;
}
@ -247,9 +246,9 @@ BT::Status BTTask::execute(double p_delta) {
}
if (data.status != RUNNING) {
if (!GDVIRTUAL_CALL(_exit)) {
_exit();
}
// First script, then native.
GDVIRTUAL_CALL(_exit);
_exit();
data.elapsed = 0.0;
}
return data.status;
@ -260,9 +259,9 @@ void BTTask::abort() {
get_child(i)->abort();
}
if (data.status == RUNNING) {
if (!GDVIRTUAL_CALL(_exit)) {
_exit();
}
// First script, then native.
GDVIRTUAL_CALL(_exit);
_exit();
}
data.status = FRESH;
data.elapsed = 0.0;