1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

49 Commits

Author SHA1 Message Date
smix8
419fc6e22d Make NavigationServer backend engine selectable
Adds engine backend selection for NavigationServers, aka allows to swap navigation module for other backend implementations.
2025-10-30 08:59:06 +01:00
Thaddeus Crews
b17aa3343a Revert "SCons: Add CPPEXTPATH for external includes" 2025-10-06 13:09:22 -05:00
chocola-mint
19c47c5d99 Remove #include "scene/main/timer.h" from control.h 2025-10-05 14:41:06 +09:00
Aaron Franke
3d1c9fd5de Move server files into their subfolders 2025-09-30 19:39:39 -07:00
Aaron Franke
9fbf5808a0 Rename server "free" functions to "free_rid" to match exposed API 2025-09-30 16:52:25 -07:00
smix8
19df15f1dc Make navmesh rasterization errors more lenient
Make navmesh rasterization on the navigation regions and map more lenient by starting out with a lower internal cell scale by default and changing the merge error to just warning that can be toggled.
2025-09-25 20:18:18 +02:00
Edward Moulsdale
e366471fdc Add GDSOFTCLASS to deeper inheritors of Object 2025-09-24 19:15:56 +01:00
A Thousand Ships
f8d72ba783 [Navigation 2D] Fix sign of cross product
Regression from splitting the servers. Also replaces the method for
getting the triangle area.
2025-09-23 14:55:17 +02:00
smix8
a3f393a3e1 Fix path post-processing edgecentered
Fixes path post-processing edgecentered.
2025-08-01 15:06:30 +02:00
smix8
3dc876c695 Fix flipped clipper2 ifdef
Fix flipped clipper2 ifdef
2025-07-23 19:54:23 +02:00
Thaddeus Crews
aa035bc1e8 Merge pull request #108284 from dmlary/nav2d_obstacle-avoidance-enabled-fix
NavMap2D: check if obstacles have avoidance enabled
2025-07-07 10:08:03 -05:00
A Thousand Ships
f11aff3841 Editor: Restructure editor code
Moving various editor files into sub folders to reduce clutter
2025-07-04 18:18:22 +02:00
David M. Lary
780f3d5e3b NavMap2D: check if obstacles have avoidance enabled
In NavMap2D::_update_rvo_obstacles_tree() check if the NavObstacle2D
has avoidance enabled before adding it to the tree.

This is the 2D fix for #108259
2025-07-04 10:30:49 -05:00
notgoyome
e37efa8722 Fix: make nav_map_2d uses rasterizer cell scale options in 2d navigation settings 2025-06-21 16:51:17 +02:00
smix8
cbd446ac29 Add navigation path query parameter limits
Adds navigation path query parameter limits.
2025-06-13 14:42:26 +02:00
smix8
2458370de4 Change 2D navigation region and link updates to an async process
Changes 2D navigation region and link updates to an async process.
2025-06-11 00:51:02 +02:00
Rémi Verschelde
151db00f2c Merge pull request #107256 from smix8/avoidance2dcallback
Change `NavigationServer2D` avoidance callbacks from `Vector3` to `Vector2`
2025-06-09 00:45:39 +02:00
smix8
0ce53ffc69 Change 2D avoidance callbacks from Vector3 to Vector2
Changes 2D avoidance callbacks from Vector3 to Vector2.
2025-06-07 14:21:28 +02:00
smix8
03e5d64dd9 Match avoidance defaults for NavigationAgent and NavigationServer NavAgent
Matches avoidance defaults for NavigationAgent and NavigationServer NavAgent. The node had different properties than the server agent and the 2d version still used outdate defaults form the 3d version.
2025-06-07 13:49:12 +02:00
Aaron Franke
6eedddbd3c Rename nav_2d namespace to Nav2D to match Nav3D 2025-05-12 16:59:53 -07:00
smix8
cc1b51e8a2 Move 2d navigation related editor plugins to navigation_2d module
Moves 2d navigation related editor plugins to navigation_2d module.
2025-05-08 23:59:13 +02:00
Thaddeus Crews
fd1168620f Merge pull request #105718 from aaronfranke/nav-const-caps
Capitalize global navigation constants
2025-05-06 08:38:07 -05:00
Thaddeus Crews
c4de8ef825 Merge pull request #105765 from smix8/navlink_iteration_id
Add function to get navigation link iteration id from NavigationServer
2025-05-06 08:38:00 -05:00
Aaron Franke
783728fcb4 Capitalize global navigation constants 2025-05-05 12:08:15 -07:00
smix8
b002ade3ed Add function to get navigation link iteration id from NavigationServer
Adds function to get navigation link iteration id from NavigationServer.
2025-04-25 20:59:10 +02:00
Lukas Tenbrink
d74ef8cb01 Rename LocalVector.invert() -> LocalVector.reverse() to match the Vector, String and List APIs. 2025-04-24 22:36:32 +02:00
Yyf2333
1a70a06a43 Change RID_Owner::get_owned_list. 2025-04-21 01:04:27 +08:00
Thaddeus Crews
0110048d46 Merge pull request #104826 from smix8/navregion_iteration_id
Add function to get navigation region iteration id from NavigationServer
2025-04-16 10:45:13 -05:00
Thaddeus Crews
2bf96fe18c Merge pull request #105257 from smix8/navbuilder_linkpolys
Remove no longer needed link polygons from NavMapBuilder
2025-04-15 12:28:38 -05:00
smix8
2b8531d944 Add function to get navigation region iteration id from NavigationServer
Adds function to get navigation region iteration id from NavigationServer.
2025-04-15 19:17:45 +02:00
Thaddeus Crews
e1509d533e Merge pull request #105071 from smix8/map_changed
Make navigation maps emit map_changed directly
2025-04-14 19:39:52 -05:00
Thaddeus Crews
756053f05f Merge pull request #105067 from smix8/navmesh_sync
Move NavigationServer navmesh sync from main() to process()
2025-04-14 19:39:51 -05:00
smix8
c901f39cda Remove no longer needed link polygons from NavMapBuilder
Removes no longer needed link polygons from NavMapBuilder.
2025-04-14 17:32:55 +02:00
smix8
1c03b15b4f Replace NavigationServer2D Point struct with Vector2
Replaces NavigationServer2D Point struct with Vector2.
2025-04-10 20:18:54 +02:00
smix8
4d76c197a7 Make navigation maps emit map_changed directly
Makes navigation maps emit map_changed directly.
2025-04-05 22:50:48 +02:00
smix8
a4c56d478a Move NavigationServer navmesh sync from main() to process()
Moves NavigationServer navmesh sync from main() to process().
2025-04-05 21:29:24 +02:00
smix8
565ea927d2 Emit changed signal after baking navigation mesh
Emits changed signal after baking navigation mesh.
2025-04-02 16:54:48 +02:00
Thaddeus Crews
1f56d96cf2 Merge pull request #104893 from Repiteo/scons/external-includes-alt
SCons: Add `CPPEXTPATH` for external includes
2025-04-02 07:48:03 -05:00
Thaddeus Crews
c9c8556a47 Merge pull request #104862 from smix8/navserver_process
Prepare NavigationServer for `process()` and `physics_process()` split
2025-04-02 07:37:32 -05:00
Thaddeus Crews
9f222d500d Merge pull request #104375 from YYF233333/is_empty
Replace `size() == 0` with `is_empty()`
2025-04-02 07:37:31 -05:00
Thaddeus Crews
f25fc34439 SCons: Add CPPEXTPATH for external includes 2025-04-02 07:29:08 -05:00
Yufeng Ying
4f4031a675 Replace size() == 0 with is_empty(). 2025-04-02 19:18:43 +08:00
smix8
16fd7b6ae1 Prepare NavigationServer for process() and physics_process() split
Prepares the NavigationServer API for a split of its functionality between frame process() and stepped physics_process().
2025-04-02 11:01:08 +02:00
LuoZhihao
06c8a7d396 Navigation: Replace the deprecated Geometry2D::get_closest_point_to_segment 2025-04-02 13:45:06 +08:00
Thaddeus Crews
f72511d908 Merge pull request #104811 from YeldhamDev/build_no_navigation
Allow to compile templates without navigation features
2025-04-01 19:53:29 -05:00
smix8
79ae9bf775 Change navigation module LocalVector size_t uses to uint32_t
Changes navigation module LocalVector size_t uses to uint32_t.
2025-04-01 23:44:43 +02:00
Michael Alexsander
556933306a Allow to compile templates without navigation features 2025-04-01 11:53:35 -03:00
Lukas Tenbrink
ccdc5862e9 Add LocalVector.erase_unordered, mimicking erase but with remove_at_unordered, to remove duplicate logic.
`erase_unordered` should be preferred over `erase` where order is not important, for its performance benefits.

Co-authored-by: smix8 <smix8@users.noreply.github.com>
2025-03-31 13:31:53 +02:00
A Thousand Ships
5cc0539961 [Navigation] Create a dedicated 2D navigation server
* Add a dedicated 2D server
* Create dedicated tests
* Split performance metrics between 2D and 3D
* Rename the 3D only server module
2025-03-29 12:10:50 +01:00