Rename BTTask::cancel() to abort() and expose it.
This commit is contained in:
parent
14c162de39
commit
166cc8b1d9
|
@ -90,7 +90,7 @@ void BTPlayer::update(double p_delta) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void BTPlayer::restart() {
|
void BTPlayer::restart() {
|
||||||
tree_instance->cancel();
|
tree_instance->abort();
|
||||||
set_active(true);
|
set_active(true);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -30,7 +30,7 @@ void BTState::_setup() {
|
||||||
|
|
||||||
void BTState::_exit() {
|
void BTState::_exit() {
|
||||||
ERR_FAIL_COND(tree_instance == nullptr);
|
ERR_FAIL_COND(tree_instance == nullptr);
|
||||||
tree_instance->cancel();
|
tree_instance->abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
void BTState::_update(double p_delta) {
|
void BTState::_update(double p_delta) {
|
||||||
|
|
|
@ -161,7 +161,7 @@ BT::Status BTTask::execute(double p_delta) {
|
||||||
// Reset children status.
|
// Reset children status.
|
||||||
if (data.status != FRESH) {
|
if (data.status != FRESH) {
|
||||||
for (int i = 0; i < get_child_count(); i++) {
|
for (int i = 0; i < get_child_count(); i++) {
|
||||||
data.children.get(i)->cancel();
|
data.children.get(i)->abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!GDVIRTUAL_CALL(_enter)) {
|
if (!GDVIRTUAL_CALL(_enter)) {
|
||||||
|
@ -184,9 +184,9 @@ BT::Status BTTask::execute(double p_delta) {
|
||||||
return data.status;
|
return data.status;
|
||||||
}
|
}
|
||||||
|
|
||||||
void BTTask::cancel() {
|
void BTTask::abort() {
|
||||||
for (int i = 0; i < data.children.size(); i++) {
|
for (int i = 0; i < data.children.size(); i++) {
|
||||||
get_child(i)->cancel();
|
get_child(i)->abort();
|
||||||
}
|
}
|
||||||
if (data.status == RUNNING) {
|
if (data.status == RUNNING) {
|
||||||
if (!GDVIRTUAL_CALL(_exit)) {
|
if (!GDVIRTUAL_CALL(_exit)) {
|
||||||
|
@ -320,8 +320,7 @@ void BTTask::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("next_sibling"), &BTTask::next_sibling);
|
ClassDB::bind_method(D_METHOD("next_sibling"), &BTTask::next_sibling);
|
||||||
ClassDB::bind_method(D_METHOD("print_tree", "p_initial_tabs"), &BTTask::print_tree, Variant(0));
|
ClassDB::bind_method(D_METHOD("print_tree", "p_initial_tabs"), &BTTask::print_tree, Variant(0));
|
||||||
ClassDB::bind_method(D_METHOD("get_task_name"), &BTTask::get_task_name);
|
ClassDB::bind_method(D_METHOD("get_task_name"), &BTTask::get_task_name);
|
||||||
ClassDB::bind_method(D_METHOD("get_custom_name"), &BTTask::get_custom_name);
|
ClassDB::bind_method(D_METHOD("abort"), &BTTask::abort);
|
||||||
ClassDB::bind_method(D_METHOD("set_custom_name", "p_name"), &BTTask::set_custom_name);
|
|
||||||
|
|
||||||
// Properties, setters and getters.
|
// Properties, setters and getters.
|
||||||
ClassDB::bind_method(D_METHOD("get_agent"), &BTTask::get_agent);
|
ClassDB::bind_method(D_METHOD("get_agent"), &BTTask::get_agent);
|
||||||
|
@ -332,6 +331,8 @@ void BTTask::_bind_methods() {
|
||||||
ClassDB::bind_method(D_METHOD("get_parent"), &BTTask::get_parent);
|
ClassDB::bind_method(D_METHOD("get_parent"), &BTTask::get_parent);
|
||||||
ClassDB::bind_method(D_METHOD("get_status"), &BTTask::get_status);
|
ClassDB::bind_method(D_METHOD("get_status"), &BTTask::get_status);
|
||||||
ClassDB::bind_method(D_METHOD("get_elapsed_time"), &BTTask::get_elapsed_time);
|
ClassDB::bind_method(D_METHOD("get_elapsed_time"), &BTTask::get_elapsed_time);
|
||||||
|
ClassDB::bind_method(D_METHOD("get_custom_name"), &BTTask::get_custom_name);
|
||||||
|
ClassDB::bind_method(D_METHOD("set_custom_name", "p_name"), &BTTask::set_custom_name);
|
||||||
|
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::STRING, "custom_name"), "set_custom_name", "get_custom_name");
|
ADD_PROPERTY(PropertyInfo(Variant::STRING, "custom_name"), "set_custom_name", "get_custom_name");
|
||||||
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "agent", PROPERTY_HINT_RESOURCE_TYPE, "Node", PROPERTY_USAGE_NONE), "set_agent", "get_agent");
|
ADD_PROPERTY(PropertyInfo(Variant::OBJECT, "agent", PROPERTY_HINT_RESOURCE_TYPE, "Node", PROPERTY_USAGE_NONE), "set_agent", "get_agent");
|
||||||
|
|
|
@ -103,7 +103,7 @@ public:
|
||||||
virtual PackedStringArray get_configuration_warnings() const;
|
virtual PackedStringArray get_configuration_warnings() const;
|
||||||
|
|
||||||
Status execute(double p_delta);
|
Status execute(double p_delta);
|
||||||
void cancel();
|
void abort();
|
||||||
Status get_status() const { return data.status; }
|
Status get_status() const { return data.status; }
|
||||||
double get_elapsed_time() const { return data.elapsed; };
|
double get_elapsed_time() const { return data.elapsed; };
|
||||||
|
|
||||||
|
|
|
@ -27,7 +27,7 @@ BT::Status BTDynamicSelector::_tick(double p_delta) {
|
||||||
// If the last node ticked is earlier in the tree than the previous runner,
|
// If the last node ticked is earlier in the tree than the previous runner,
|
||||||
// cancel previous runner.
|
// cancel previous runner.
|
||||||
if (last_running_idx > i && get_child(last_running_idx)->get_status() == RUNNING) {
|
if (last_running_idx > i && get_child(last_running_idx)->get_status() == RUNNING) {
|
||||||
get_child(last_running_idx)->cancel();
|
get_child(last_running_idx)->abort();
|
||||||
}
|
}
|
||||||
last_running_idx = i;
|
last_running_idx = i;
|
||||||
return status;
|
return status;
|
||||||
|
|
|
@ -27,7 +27,7 @@ BT::Status BTDynamicSequence::_tick(double p_delta) {
|
||||||
// If the last node ticked is earlier in the tree than the previous runner,
|
// If the last node ticked is earlier in the tree than the previous runner,
|
||||||
// cancel previous runner.
|
// cancel previous runner.
|
||||||
if (last_running_idx > i && get_child(last_running_idx)->get_status() == RUNNING) {
|
if (last_running_idx > i && get_child(last_running_idx)->get_status() == RUNNING) {
|
||||||
get_child(last_running_idx)->cancel();
|
get_child(last_running_idx)->abort();
|
||||||
}
|
}
|
||||||
last_running_idx = i;
|
last_running_idx = i;
|
||||||
return status;
|
return status;
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
void BTParallel::_enter() {
|
void BTParallel::_enter() {
|
||||||
for (int i = 0; i < get_child_count(); i++) {
|
for (int i = 0; i < get_child_count(); i++) {
|
||||||
get_child(i)->cancel();
|
get_child(i)->abort();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ BT::Status BTTimeLimit::_tick(double p_delta) {
|
||||||
ERR_FAIL_COND_V_MSG(get_child_count() == 0, FAILURE, "BT decorator has no child.");
|
ERR_FAIL_COND_V_MSG(get_child_count() == 0, FAILURE, "BT decorator has no child.");
|
||||||
Status status = get_child(0)->execute(p_delta);
|
Status status = get_child(0)->execute(p_delta);
|
||||||
if (status == RUNNING && get_elapsed_time() >= time_limit) {
|
if (status == RUNNING && get_elapsed_time() >= time_limit) {
|
||||||
get_child(0)->cancel();
|
get_child(0)->abort();
|
||||||
return FAILURE;
|
return FAILURE;
|
||||||
}
|
}
|
||||||
return status;
|
return status;
|
||||||
|
|
|
@ -185,7 +185,7 @@ TEST_CASE("[Modules][LimboAI] BTTask") {
|
||||||
CHECK(task->get_elapsed_time() == 0.0);
|
CHECK(task->get_elapsed_time() == 0.0);
|
||||||
}
|
}
|
||||||
SUBCASE("When cancelled") {
|
SUBCASE("When cancelled") {
|
||||||
task->cancel();
|
task->abort();
|
||||||
CHECK(task->get_elapsed_time() == 0.0);
|
CHECK(task->get_elapsed_time() == 0.0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -102,7 +102,7 @@ TEST_CASE("[Modules][LimboAI] BTRandomWait") {
|
||||||
num_undefined += 1;
|
num_undefined += 1;
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
wait->cancel();
|
wait->abort();
|
||||||
}
|
}
|
||||||
|
|
||||||
// * Expected ~500/500 SUCCESS/RUNNING.
|
// * Expected ~500/500 SUCCESS/RUNNING.
|
||||||
|
|
Loading…
Reference in New Issue