Fix not registering BT instance with debugger when BTPlayer is removed and then added to SceneTree
This commit is contained in:
parent
a625173786
commit
97eee2a801
|
@ -151,6 +151,11 @@ void BTPlayer::_notification(int p_notification) {
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
#ifdef DEBUG_ENABLED
|
#ifdef DEBUG_ENABLED
|
||||||
|
case NOTIFICATION_ENTER_TREE: {
|
||||||
|
if (tree_instance.is_valid()) {
|
||||||
|
LimboDebugger::get_singleton()->register_bt_instance(tree_instance, get_path());
|
||||||
|
}
|
||||||
|
} break;
|
||||||
case NOTIFICATION_EXIT_TREE: {
|
case NOTIFICATION_EXIT_TREE: {
|
||||||
if (tree_instance.is_valid()) {
|
if (tree_instance.is_valid()) {
|
||||||
LimboDebugger::get_singleton()->unregister_bt_instance(tree_instance, get_path());
|
LimboDebugger::get_singleton()->unregister_bt_instance(tree_instance, get_path());
|
||||||
|
|
|
@ -47,6 +47,11 @@ void BTState::_update(double p_delta) {
|
||||||
#ifdef DEBUG_ENABLED
|
#ifdef DEBUG_ENABLED
|
||||||
void BTState::_notification(int p_notification) {
|
void BTState::_notification(int p_notification) {
|
||||||
switch (p_notification) {
|
switch (p_notification) {
|
||||||
|
case NOTIFICATION_ENTER_TREE: {
|
||||||
|
if (tree_instance.is_valid()) {
|
||||||
|
LimboDebugger::get_singleton()->register_bt_instance(tree_instance, get_path());
|
||||||
|
}
|
||||||
|
} break;
|
||||||
case NOTIFICATION_EXIT_TREE: {
|
case NOTIFICATION_EXIT_TREE: {
|
||||||
if (tree_instance.is_valid()) {
|
if (tree_instance.is_valid()) {
|
||||||
LimboDebugger::get_singleton()->unregister_bt_instance(tree_instance, get_path());
|
LimboDebugger::get_singleton()->unregister_bt_instance(tree_instance, get_path());
|
||||||
|
|
|
@ -69,7 +69,12 @@ Error LimboDebugger::parse_message(void *p_user, const String &p_msg, const Arra
|
||||||
}
|
}
|
||||||
|
|
||||||
void LimboDebugger::register_bt_instance(Ref<BTTask> p_instance, NodePath p_player_path) {
|
void LimboDebugger::register_bt_instance(Ref<BTTask> p_instance, NodePath p_player_path) {
|
||||||
ERR_FAIL_COND(active_trees.has(p_player_path));
|
ERR_FAIL_COND(p_instance.is_null());
|
||||||
|
ERR_FAIL_COND(p_player_path.is_empty());
|
||||||
|
if (active_trees.has(p_player_path)) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
print_line("DEBUG :: register :: ", p_player_path);
|
||||||
|
|
||||||
active_trees.insert(p_player_path, p_instance);
|
active_trees.insert(p_player_path, p_instance);
|
||||||
if (session_active) {
|
if (session_active) {
|
||||||
|
@ -78,7 +83,9 @@ void LimboDebugger::register_bt_instance(Ref<BTTask> p_instance, NodePath p_play
|
||||||
}
|
}
|
||||||
|
|
||||||
void LimboDebugger::unregister_bt_instance(Ref<BTTask> p_instance, NodePath p_player_path) {
|
void LimboDebugger::unregister_bt_instance(Ref<BTTask> p_instance, NodePath p_player_path) {
|
||||||
|
ERR_FAIL_COND(p_instance.is_null());
|
||||||
ERR_FAIL_COND(p_player_path.is_empty());
|
ERR_FAIL_COND(p_player_path.is_empty());
|
||||||
|
print_line("DEBUG :: unregister :: ", p_player_path);
|
||||||
ERR_FAIL_COND(!active_trees.has(p_player_path));
|
ERR_FAIL_COND(!active_trees.has(p_player_path));
|
||||||
|
|
||||||
if (tracked_tree == p_player_path) {
|
if (tracked_tree == p_player_path) {
|
||||||
|
|
Loading…
Reference in New Issue