Fix broken NavigationAgent3D collision avoidance callbacks #48028
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #47337
Fixes #39692
Fix broken NavigationAgent3D collision avoidance callbacks.
Collision avoidance is broken and this is only a mini pr in advance cause it is important to make it testable again for larger fixes.
The callbacks are responsible for the
safe_velocity
signal received by the agents. The dispatched callbacks by the RVO agent would all fail silently if the NavigationAgent3D was not registered on a navigation map before calling the agent_set_callback function.Now all agents are placed on the default navigation map for the agents parent node so they work by default and can be customized later by the user. This pr also exposes the
NavigationAgent3D.get_rid()
function for scripting cause the agent RID is required by manyNavigationServer3D
queries, e.g. to change agent map or create new callbacks after changes.