Fix crash while initializing blackboard in the BTPlayer node
This commit is contained in:
parent
dc40109ade
commit
f84127657b
|
@ -70,11 +70,12 @@ void Blackboard::add_var(const String &p_name, const BBVariable &p_var) {
|
||||||
|
|
||||||
void Blackboard::prefetch_nodepath_vars(Node *p_node) {
|
void Blackboard::prefetch_nodepath_vars(Node *p_node) {
|
||||||
ERR_FAIL_COND(p_node == nullptr);
|
ERR_FAIL_COND(p_node == nullptr);
|
||||||
for (KeyValue<String, BBVariable> &kv : data) {
|
for (const KeyValue<String, BBVariable> &kv : data) {
|
||||||
if (kv.value.get_value().get_type() == Variant::NODE_PATH) {
|
BBVariable var = kv.value;
|
||||||
Node *fetched_node = p_node->get_node_or_null(kv.value.get_value());
|
if (var.get_value().get_type() == Variant::NODE_PATH) {
|
||||||
|
Node *fetched_node = p_node->get_node_or_null(var.get_value());
|
||||||
if (fetched_node != nullptr) {
|
if (fetched_node != nullptr) {
|
||||||
kv.value.set_value(fetched_node);
|
var.set_value(fetched_node);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -179,8 +179,11 @@ void BTPlayer::_notification(int p_notification) {
|
||||||
} break;
|
} break;
|
||||||
case NOTIFICATION_READY: {
|
case NOTIFICATION_READY: {
|
||||||
if (!Engine::get_singleton()->is_editor_hint()) {
|
if (!Engine::get_singleton()->is_editor_hint()) {
|
||||||
|
if (blackboard.is_null()) {
|
||||||
|
blackboard = Ref<Blackboard>(memnew(Blackboard));
|
||||||
|
}
|
||||||
if (blackboard_source.is_valid()) {
|
if (blackboard_source.is_valid()) {
|
||||||
blackboard = blackboard_source->create_blackboard();
|
blackboard_source->populate_blackboard(blackboard, false);
|
||||||
}
|
}
|
||||||
if (behavior_tree.is_valid()) {
|
if (behavior_tree.is_valid()) {
|
||||||
_load_tree();
|
_load_tree();
|
||||||
|
@ -247,6 +250,7 @@ void BTPlayer::_bind_methods() {
|
||||||
}
|
}
|
||||||
|
|
||||||
BTPlayer::BTPlayer() {
|
BTPlayer::BTPlayer() {
|
||||||
|
blackboard = Ref<Blackboard>(memnew(Blackboard));
|
||||||
}
|
}
|
||||||
|
|
||||||
BTPlayer::~BTPlayer() {
|
BTPlayer::~BTPlayer() {
|
||||||
|
|
Loading…
Reference in New Issue