Commit graph

88 commits

Author SHA1 Message Date
kobewi
413c11357d Use Core/Scene stringnames consistently 2024-05-13 23:41:07 +02:00
smix8
1c134f4a3d Add navigation path simplification
Adds navigation path simplification for NavigationServer and NavigationAgent.
2024-04-11 12:32:21 +02:00
Rémi Verschelde
21f0529aa9
Revert "Update Node::get_configuration_warnings signature"
This reverts commit d3852deaa4.
2024-02-17 19:03:21 +01:00
RedMser
d3852deaa4 Update Node::get_configuration_warnings signature 2024-02-08 23:05:20 +01:00
Nicholas Foo
e7ee672120 Add getters to navigation servers
Add virtual functions and bind to navigation servers
Implement getters
Add documentation
2023-12-19 19:51:49 +01:00
Yuri Sizov
302e41c264 Merge pull request #82561 from ershn/fix_navigation_agents_is_target_reached_behavior
Make `target_desired_distance` affect the navigation of `NavigationAgent2D/3D`
2023-12-14 21:22:35 +01:00
Ershn
fce16b6662 Make target_desired_distance affect the navigation of NavigationAgent2D/3D
When the target is reachable, stop the navigation only when the target is reached.
2023-11-29 23:48:54 +09:00
smix8
9640179f93 Fix missing NavigationAgent property updates in constructor
Fixes missing NavigationAgent property updates in constructor.
2023-10-23 04:27:49 +02:00
A Thousand Ships
a29416e332 [Scene,Main] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-09-12 12:53:06 +02:00
Rémi Verschelde
813ff4b460
Merge pull request #78857 from smix8/navagent_pos_fix_4.x
Fix NavigationAgent position not always updating
2023-07-03 15:26:11 +02:00
smix8
34bc410fb4 Fix NavigationAgent position not always updating
Fixes NavigationAgent position not always updating.
2023-06-30 00:18:26 +02:00
smix8
c912df9d05 Fix NavigationAgent continues avoidance velocity
Fixes NavigationAgent continues avoidance velocity.
2023-06-29 21:10:03 +02:00
smix8
e3f9994d54 Fix NavigationAgent2D path debug hidden behind canvas items
Fixes NavigationAgent2D path debug hidden behind canvas items.
2023-06-19 15:43:35 +02:00
smix8
ae9dd47d0c Add agent pause mode to NavigationServer
Adds agent pause mode to NavigationServer.
2023-06-18 12:37:03 +02:00
smix8
a6ac305f96 Rework Navigation Avoidance
Rework Navigation Avoidance.
2023-05-10 05:01:58 +02:00
smix8
6e324bb341 Expose NavigationAgent path postprocessing and pathfinding algorithm options
Exposes the path postprocessing and pathfinding algorithm options of the NavigationAgent internal NavigationPathQueryParameters object.
2023-03-25 21:37:18 +01:00
smix8
f6a10c0565 Allow negative NavigationAgent2D path debug line_width for thin lines
Allows the line_width for NavigationAgent2D path debug to go negativ for thin line rendering.
2023-03-16 09:04:53 +01:00
smix8
8be4af38e4 Tweak NavigationAgent3D defaults
Tweaks default values for NavigationAgent3D to work better out of the box within a new 3D project.
2023-02-16 14:26:39 +01:00
smix8
d87f124768 Add NavigationLink helper functions for global positions
Adds helper functions to set the links start and end position with global positions or get them as global positions.

Adds global start and end position for the navigation link to the 'link_reached' signal of NavigationAgent. That signal gets emitted when a navigation link waypoint is reached. Requires that 'owner' meta data is enabled on the NavigationAgent.
2023-02-14 21:56:58 +01:00
Haoyu Qiu
65223e98de Strip name prefix of navigation agent debug properties in the inspector 2023-02-11 16:34:08 +08:00
Rémi Verschelde
d69809cab6
Merge pull request #72947 from DarkKilauea/nav-fix-avoidance-callback
Fix missing avoidance updates when using same velocity
2023-02-09 10:13:35 +01:00
Josh Jones
097f8a5fdb Fix missing avoidance updates when using same velocity
When using avoidance, if you set the same velocity for the agent, you won't get an update from the avoidance system.

This changes both the `set_target_position` and `set_velocity` setters to always accept user provided values, even if they are the same. This ensures that repathing and avoidance logic is always run when the user expects.
2023-02-08 23:18:53 -08:00
smix8
820b841fcb Fix NavigationAgent debug functions bindings in release builds
Fixes that certain NavigationAgent debug functions bindings were not available in release builds.
2023-02-08 21:49:04 +01:00
Josh Jones
20fdfd466b Improve consistency of NavigationAgent setters 2023-02-02 22:51:37 -08:00
Rémi Verschelde
e52213e2fa
More codespell fixes, do more changes from previous ignore list 2023-02-01 12:11:36 +01:00
smix8
0ab764e84b Add NavigationAgent Path Debug Visualization
Adds path debug visuals for NavigationAgent2D, NavigationAgent3D and NavigationServer.
2023-01-31 18:27:35 +01:00
Josh Jones
22f9ef19e1 Use Callable for Navigation Agent callbacks 2023-01-27 23:14:36 -08:00
smix8
bf1571979c Rename Navigation uses of 'location' to 'position'
Contrary to the entire rest of the engine NavigationAgent's and NavigationLinks decided to deal with locations instead of positions.
2023-01-26 18:19:03 +01:00
smix8
594ffd2200 Tweak NavigationAgent2D defaults
Tweaks default values for NavigationAgent2D to work better out of the box within a new 2D project using default resolution.
2023-01-11 23:47:16 +01:00
Rémi Verschelde
d95794ec8a
One Copyright Update to rule them all
As many open source projects have started doing it, we're removing the
current year from the copyright notice, so that we don't need to bump
it every year.

It seems like only the first year of publication is technically
relevant for copyright notices, and even that seems to be something
that many companies stopped listing altogether (in a version controlled
codebase, the commits are a much better source of date of publication
than a hardcoded copyright statement).

We also now list Godot Engine contributors first as we're collectively
the current maintainers of the project, and we clarify that the
"exclusive" copyright of the co-founders covers the timespan before
opensourcing (their further contributions are included as part of Godot
Engine contributors).

Also fixed "cf." Frenchism - it's meant as "refer to / see".
2023-01-05 13:25:55 +01:00
Adam Scott
ea33001b95 Add safety-checks before some servers free() 2022-12-29 16:23:38 -05:00
Rémi Verschelde
f84c308cf8
Merge pull request #69688 from smix8/navagent_stop_origin_automove_4.x
Stop NavigationAgents without a target from moving to world origin
2022-12-21 19:39:25 +01:00
Josh Jones
5d8ba2b2d1 Add support for emitting a signal when entering a NavLink 2022-12-17 16:33:41 -08:00
smix8
34e7628f5f Fix Navigation API abbreviations inconsistency
Schema for navigation to name user facing API with  "navigation" without abbreviation and e.g. NavigationServer internals with abbr "nav".
2022-12-17 22:06:22 +01:00
smix8
194c1c44e0 Fix Navigation agent callback wild pointer crash
Fixes crash in sanitizer builds when callback agent or object are already freed.
2022-12-12 13:03:55 +01:00
smix8
860379fc16 Stop NavigationAgents without a target from moving to world origin
Stops NavigationAgents moving to the world origin without anyone telling them to do so.
2022-12-06 22:53:18 +01:00
Rémi Verschelde
0844f0ed10
Merge pull request #65452 from timothyqiu/agent-target
Make NavigationAgent `target_location` a property
2022-10-31 11:56:17 +01:00
Clay John
ada2661a2c
Merge pull request #67956 from RedMser/safe-velocity-type
Fix type of `safe_velocity` parameter
2022-10-28 10:57:46 -07:00
RedMser
b9c3a5534b Fix type of safe_velocity parameter 2022-10-27 22:45:24 +02:00
Sam Briels
815231943b Emit target_reached signal after state is updated 2022-10-27 14:05:43 +02:00
Haoyu Qiu
e4100495b5 Make NavigationAgent target_location a property 2022-10-27 13:51:38 +08:00
Josh Jones
a2c53b881b Update NavigationAgent to use query_path
This paves the way for having agents respond to link traversal.
2022-09-28 23:01:12 -06:00
Marc Gilleron
aed3822a93 Change return type of get_configuration_warnings to PackedStringArray 2022-09-19 16:43:15 +01:00
Micky
b62d06fbed Rename Navigation's neighbor_dist to neightbor_distance
NavigationAgent2D/3D.`neighbor_dist` -> `neighbor_distance` (also affects setters and getters)

NavigationServer2D/3D.`agent_set_neighbor_dist()` -> `agent_set_neighbor_distance()`

Also changes their parameters' names.

Doesn't affect "Agent.neighborDist_" in Agent.h
2022-08-13 12:40:55 +02:00
smix8
dde09be302 Group NavigationAgent properties
Groups the ill-defined NavigationAgent properties between pathfinding and avoidance to make it more clear which property affects what.
2022-06-29 18:42:51 +02:00
Rémi Verschelde
21b0c7fc22
Merge pull request #62214 from smix8/navigation_layer_bitmask_helpers_4.x 2022-06-20 15:13:33 +02:00
smix8
55923ade68 Add navigation layer bitmask helper functions
Adds helper functions to work with the navigation layer bitmask.
2022-06-19 13:47:19 +02:00
smix8
07740302f3 Add NavigationAgent desired path distance
Add NavigationAgent desired path distance
2022-06-18 19:11:49 +02:00
smix8
245da150e7 Streamline Navigation layer function names.
Streamline Navigation layer function names.
2022-06-15 00:18:48 +02:00
smix8
f10ff0efda Add NavigationAgent set_navigation_map() function
Add NavigationAgent set_navigation_map() and get_navigation_map() function.
2022-06-14 21:48:47 +02:00