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:
commit
6de8b9e4c4
|
@ -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);
|
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 {
|
Ref<BTTask> BTTask::clone() const {
|
||||||
|
@ -235,9 +234,9 @@ BT::Status BTTask::execute(double p_delta) {
|
||||||
data.children.get(i)->abort();
|
data.children.get(i)->abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!GDVIRTUAL_CALL(_enter)) {
|
// First native, then script.
|
||||||
_enter();
|
_enter();
|
||||||
}
|
GDVIRTUAL_CALL(_enter);
|
||||||
} else {
|
} else {
|
||||||
data.elapsed += p_delta;
|
data.elapsed += p_delta;
|
||||||
}
|
}
|
||||||
|
@ -247,9 +246,9 @@ BT::Status BTTask::execute(double p_delta) {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (data.status != RUNNING) {
|
if (data.status != RUNNING) {
|
||||||
if (!GDVIRTUAL_CALL(_exit)) {
|
// First script, then native.
|
||||||
_exit();
|
GDVIRTUAL_CALL(_exit);
|
||||||
}
|
_exit();
|
||||||
data.elapsed = 0.0;
|
data.elapsed = 0.0;
|
||||||
}
|
}
|
||||||
return data.status;
|
return data.status;
|
||||||
|
@ -260,9 +259,9 @@ void BTTask::abort() {
|
||||||
get_child(i)->abort();
|
get_child(i)->abort();
|
||||||
}
|
}
|
||||||
if (data.status == RUNNING) {
|
if (data.status == RUNNING) {
|
||||||
if (!GDVIRTUAL_CALL(_exit)) {
|
// First script, then native.
|
||||||
_exit();
|
GDVIRTUAL_CALL(_exit);
|
||||||
}
|
_exit();
|
||||||
}
|
}
|
||||||
data.status = FRESH;
|
data.status = FRESH;
|
||||||
data.elapsed = 0.0;
|
data.elapsed = 0.0;
|
||||||
|
|
Loading…
Reference in New Issue