Commit Graph

80 Commits

Author SHA1 Message Date
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
Rémi Verschelde 1389d8a23f
Merge pull request #83814 from smix8/navagent_properties
Fix missing NavigationAgent property updates in constructor
2023-12-04 22:59:38 +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
smix8 b7be45279d Solve race condition between AThousandShips and Akien
Solves race condition between AThousandShips and Akien.
2023-10-21 19:04:41 +02:00
smix8 4771431b28 Fix NavigationAgent3D stored y-axis velocity and make it optional
Fixes NavigationAgent3D stored y-axis velocity and makes it optional.
2023-10-21 01:11:26 +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 2926ddec1c
Merge pull request #78939 from Scony/navi-crash-fix
Fix crash in `NavigationAgent3D`
2023-07-03 15:26:14 +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
Pawel Lampe fcbb521392 Fix crash in 'NavigationAgent3D', fixes #78910 2023-07-02 22:30:03 +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 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 0b8798a995 Fix NavigationAgent3D debug path duplicated points
Fixes duplicated points in NavigationAgent3D debug path.
2023-03-16 09:19:04 +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
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
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