Commit Graph

262 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
smix8
2bc2b52bd1 Use threads for baking navigation mesh inside editor
Enables threaded navigation mesh baking inside the editor.
2024-04-11 03:53:26 +02:00
smix8
d6ddeec0fd Make 2D navigation mesh baking parse all TileMapLayers
Makes 2D navigation mesh baking parse all TileMapLayers.
2024-04-04 10:45:53 +02:00
Pawel Lampe
64fc9e2156 Add navigation baking crash prevention mechanism 2024-03-23 22:20:00 +01:00
smix8
5d5e85fe07 Add NavigationObstacle options to affect and carve navigation mesh
Adds NavigationObstacle options to affect and carve navigation mesh.
2024-03-15 01:45:44 +01:00
Aaron Franke
6aac3e4a16 Disable all 3D nodes, physics, and resources when compiling without 3D 2024-03-11 01:00:55 -07:00
Jakub Marcowski
973448ec4c
clipper2: Update to 1.3.0 2024-03-01 11:12:59 +01:00
blackbird806
e2f1af8742
Remove self includes in some files 2024-02-27 17:10:54 +01:00
smix8
35dafc9fa8 Split monolithic physics class files
Splits monolithic physics class files.
2024-02-27 11:18:16 +01:00
Aaron Franke
c399424db9
Move 3D-only resources to their own folder 2024-02-26 05:23:04 -06:00
Aaron Franke
1cb531ddb6
Move 2D-only resources to their own folder 2024-02-26 05:22:45 -06:00
Aaron Franke
138180fe01
Move 3D-only navigation code to its own subfolder 2024-02-26 04:19:12 -06:00
Aaron Franke
fd582dca62
Move 2D-only navigation code to its own subfolder 2024-02-26 04:18:13 -06:00
A Thousand Ships
12cecf726f
[Navigation] Add some missing compile checks 2024-02-22 20:21:43 +01:00
smix8
2da69294fc Improve NavigationServer NavMap sync error msgs
Improves NavigationServer NavMap sync error msgs.
2024-02-22 13:49:31 +01:00
smix8
313c1d1100 Add function to get navigation map iteration id from NavigationServer
Adds function to get navigation map iteration id from NavigationServer.
2024-02-22 09:45:49 +01:00
Rémi Verschelde
24bd30716e
Merge pull request #87959 from Scony/fix-navi-sync-errors
Add means for fixing navmap synchronization errors
2024-02-12 13:34:30 +01:00
Rémi Verschelde
42c3a3827b
Merge pull request #79577 from smix8/navmap_rwlock_4.x
Make navigation map spatial queries thread-safe
2024-02-12 13:33:16 +01:00
Pawel Lampe
9ea8d4fa38 Add means for fixing navmap synchronization errors 2024-02-11 21:06:47 +01:00
A Thousand Ships
684752e75b
Replace error checks against size with is_empty 2024-02-09 12:50:15 +01:00
Rémi Verschelde
261952a4c7
Merge pull request #87378 from smix8/navmesh_bordersize
Add NavigationMesh `border_size` property for tile baking
2024-02-08 10:53:30 +01:00
Rémi Verschelde
8daa633d0d
Merge pull request #87961 from smix8/navmesh2d_bordersize
Add NavigationPolygon `border_size` property for tile baking
2024-02-07 11:01:42 +01:00
Rémi Verschelde
251d5b3669
Merge pull request #87715 from Scony/add-is-baking
Expose `is_baking` method in navigation servers and region nodes.
2024-02-07 10:58:27 +01:00
smix8
4cc8748c47 Make navigation map spatial queries thread-safe
Makes navigation map spatial queries thread-safe by adding a readers–writer lock.
2024-02-06 19:27:59 +01:00
Pawel Lampe
c2cfc0d409 Expose is_baking method in navigation servers and region nodes. 2024-02-05 22:04:22 +01:00
smix8
085bc9504b Add NavigationPolygon border_size property for tile baking
Adds NavigationPolygon border_size property for tile baking. Also adds baking Rect2 bounds.
2024-02-05 00:38:28 +01:00
A Thousand Ships
15369fdb1d
Remove unnecessary this-> expressions 2024-01-29 09:59:18 +01:00
smix8
d6c31017a6 Add NavigationMesh border_size property for tile baking
Adds NavigationMesh border_size property for tile baking.
2024-01-19 17:31:36 +01:00
Robert Yevdokimov
f9826a1dd7 Fix various spelling errors 2024-01-04 09:56:43 -05: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
d4806d2d84 Merge pull request #85253 from sandygk/fix-reachable-polygon-closest-to-end-point
[Navigation] Do not use travel cost for minimum when re-selecting end point
2023-12-19 13:01:45 +01:00
Gilles Roudière
18fe0bd025 Move tile transforms handling cache to TileData 2023-12-13 17:44:59 +01:00
Rémi Verschelde
84692c6252
Navigation: Fix GCC 12.3 -Wtype-limits warnings 2023-12-12 11:00:06 +01:00
smix8
64a56245d8 Add NavigationServer random point queries
Adds query functions to get random points on navigation mesh to the NavigationServer.
2023-12-08 00:18:05 +01:00
Rémi Verschelde
8a9e3ad8d5
Merge pull request #84816 from Scony/add-obstacle-navserver-tests
Fix memory leak in 'NavigationServer3D' involving static obstacles
2023-12-04 23:05:39 +01:00
Sandy Gutierrez
11e63d244e Do not use travel cost for minimum when re-selecting end point 2023-11-28 07:23:58 -05:00
Pawel Lampe
a4b3546577 Fix memory leak in 'NavigationServer3D' involving static obstacles 2023-11-17 21:20:14 +01:00
smix8
3f26191d16 Fix NavigationObstacle height
Fixes NavigationObstacle height.
2023-11-13 21:32:22 +01:00
smix8
fc4cc27e66 Fix NavigationObstacle elevation
FixesNavigationObstacle elevation.
2023-11-13 06:55:31 +01:00
smix8
5e4ff965cc Fix potential crashes with TileMap navmesh baking
Fixes potential crashes with TileMap navmesh baking.
2023-10-24 14:51:52 +02:00
smix8
9416f0c266 Fix hole in heightmap navigation mesh baking
Fixes hole in heightmap navigation mesh baking.
2023-10-22 18:23:43 +02:00
smix8
ade4d3cf28 Fix NavigationLink enabled toggle
Fixes NavigationLink enabled toggle.
2023-10-21 03:11:37 +02:00
smix8
36146258de Fix NavRegion sync error messages
Fixes NavRegion sync error messages
2023-10-18 21:09:48 +02:00
kobewi
09b30be86d Add vararg call() method to C++ Callable 2023-10-05 11:35:29 +02:00
A Thousand Ships
517e9f8aef [Modules] Replace ERR_FAIL_COND with ERR_FAIL_NULL where applicable 2023-09-26 16:44:52 +02:00
kleonc
5904c2ca19 Fix typo in dev assert in NavMeshGenerator2D 2023-09-26 14:30:23 +02:00
smix8
0ee7e3102b Add 2D navigation mesh baking
Adds 2D navigation mesh baking.
2023-09-25 19:48:14 +02:00
Yuri Sizov
4bd569be95 Replace flat buttons with flat-styled buttons with a visible pressed state 2023-09-19 22:36:29 +02:00
Yuri Sizov
3c63dce3cd Merge pull request #80573 from KoBeWi/2k_lines_of_changes_created_at_2AM
Add EditorStringNames singleton
2023-09-06 14:49:02 +02:00
Aaron Franke
93cf3391bd
Fix compiling with 3D disabled due to unused navigation variable 2023-09-04 03:16:55 -05:00
kobewi
6de34fde27 Add EditorStringNames singleton 2023-09-03 19:58:18 +02:00
Rémi Verschelde
37d213b24e
Merge pull request #79972 from smix8/navgenerator_multithreading_4.x
Add multi-threaded NavMesh baking to NavigationServer
2023-08-17 11:22:11 +02:00
Ninni Pipping
740e2f3f62 Fix missing include for NavigationMesh 2023-08-08 11:12:20 +02:00
smix8
8686e84b44 Add multi-threaded NavMesh baking to NavigationServer
Adds multi-threaded NavMesh baking to NavigationServer.
2023-08-07 17:14:37 +02:00
Rémi Verschelde
7eb047a5ed
Merge pull request #79643 from smix8/navgenerator_4.x
Move navigation mesh baking to NavigationServer
2023-08-07 14:48:15 +02:00
smix8
744fa87da2 Move navigation mesh baking to NavigationServer
Moves navigation mesh baking to NavigationServer.
2023-08-03 19:49:07 +02:00
Ben Rog-Wilhelm
d0564f2466
Fix NavMesh map_update_id returning 0 results in errors 2023-08-03 18:57:35 +02:00
Yuri Sizov
d7f07820aa Merge pull request #79228 from smix8/fix_funnel_4.x
Fix pathfinding funnel adding unwanted point
2023-08-02 21:36:46 +02:00
Yuri Sizov
8367152723 Merge pull request #79916 from smix8/navobstacle_mutex_4.x
Update NavObstacle creation to new Mutex style
2023-07-26 18:40:45 +02:00
smix8
a8f5bd6d43 Update NavObstacle creation to new Mutex style
Updates NavObstacle creation to new Mutex style.
2023-07-26 12:56:27 +02:00
smix8
69fad39cf5 Add NavigationServer API to enable regions and links
Adds NavigationServer API to enable regions and links.
2023-07-26 01:20:15 +02:00
smix8
c51e264446 Fix pathfinding funnel adding unwanted point
Fixes pathfinding funnel adding unwanted point due to precision issues.
2023-07-23 03:24:14 +02:00
smix8
90e2d9fa7e Add more hints to navigation map cell size errors
Adds more hints to navigation map cell size errors.
2023-07-14 23:10:09 +02:00
Yuri Sizov
d676246647 Merge pull request #79137 from smix8/region_bake_depr_4.x
Mark NavigationServer3D.region_bake_navigation_mesh() as deprecated
2023-07-12 15:09:50 +02:00
smix8
e5c24f7118 Fix closest possible navigation path position
Fixes closest possible navigation path position.
2023-07-08 23:16:47 +02:00
smix8
f7ebce2626 Mark NavigationServer3D.region_bake_navigation_mesh() as deprecated
Marks NavigationServer3D.region_bake_navigation_mesh() as deprecated.
2023-07-07 02:30:14 +02:00
Rémi Verschelde
d0c1dd16ee
Revert "Update RVO2 to git 2022.09"
This reverts commit c920881105.

Fixes #78826.
2023-06-29 12:50:49 +02:00
smix8
4ae5dcca45 Fix NavObjects map assignments
Fixes NavObject map assignments.
2023-06-25 12:22:42 +02:00
smix8
ea96f5259f Fix NavigationMesh not clearing old polygons
Fixes NavigationMesh not clearing old polygons.
2023-06-23 02:53:09 +02:00
Rémi Verschelde
d252f43a86
Merge pull request #78449 from Scony/add-agent-n-map-navserver-tests
Add `agent` and `map` tests for 'NavigationServer3D'
2023-06-21 10:19:24 +02:00
Pawel Lampe
e1bdde911c Add agent and map tests for 'NavigationServer3D'
This commits fixes a bug in `free()` function as well.
2023-06-20 17:48:06 +02:00
Rémi Verschelde
73ac33342f
Merge pull request #78442 from smix8/navmesh_bake_geo_errors_4.x
Fix potential crashes in navmesh bake geometry functions
2023-06-20 09:22:03 +02:00
Rémi Verschelde
e4deaa2727
Merge pull request #76787 from RedworkDE/avoid-localvector-copy
Avoid making unnecessary copies of `LocalVector`
2023-06-20 00:01:55 +02:00
smix8
f3a6e04f8b Fix potential crashes in navmesh bake geometry functions
Fixes potential crashes in navmesh geometry functions.
2023-06-19 20:58:36 +02:00
smix8
ae9dd47d0c Add agent pause mode to NavigationServer
Adds agent pause mode to NavigationServer.
2023-06-18 12:37:03 +02:00
Rémi Verschelde
25b2f1780a
Style: Harmonize header includes in modules
This applies our existing style guide, and adds a new rule to that style
guide for modular components such as platform ports and modules:

Includes from the platform port or module ("local" includes) should be listed
first in their own block using relative paths, before Godot's "core" includes
which use "absolute" (project folder relative) paths, and finally thirdparty
includes.

Includes in `#ifdef`s come after their relevant section, i.e. the overall
structure is:

- Local includes
  * Conditional local includes
- Core includes
  * Conditional core includes
- Thirdparty includes
  * Conditional thirdparty includes
2023-06-15 14:35:45 +02:00
Rémi Verschelde
0da20d019e
Merge pull request #77412 from smix8/fix_threaded_navmesh_baking_4.x
Fix for threaded NavigationMesh baking under new thread guards
2023-06-15 10:49:58 +02:00
Rémi Verschelde
754a52a4ab
Merge pull request #78201 from smix8/navmesh_cell_height_4.x
Fix `cell_height` for navigation meshes
2023-06-14 09:27:33 +02:00
Rémi Verschelde
375156a637
Merge pull request #78099 from DeeJayLSP/rvo2023
Update RVO2 to git 2022.09
2023-06-14 09:25:10 +02:00
DeeJayLSP
c920881105 Update RVO2 to git 2022.09 2023-06-13 21:13:21 -03:00
smix8
ee14b010ac Fix for threaded NavigationMesh baking under new thread guards
Fixes threaded NavigationMesh baking under new SceneTree thread guards that blocked the process.
2023-06-14 01:53:37 +02:00
smix8
180a5cded1 Fix cell_height for navigation meshes
Fixes `cell_height` for navigation meshes.
2023-06-13 23:24:32 +02:00
Rémi Verschelde
2b373f795c
Merge pull request #78173 from smix8/navregion_rot_warning_4.x
Add NavigationRegion rotation warning
2023-06-13 13:53:09 +02:00
Rémi Verschelde
c3e4dd86ff
Merge pull request #77693 from smix8/navmap_sync_warnings_4.x
Add navigation map synchronization warnings
2023-06-13 13:52:46 +02:00
smix8
4d8553ff63 Add NavigationRegion rotation warning
Adds NavigationRegion rotation warning.
2023-06-13 11:58:47 +02:00
smix8
c1fc331b88 Update navigation obstacle API
Updates navigation obstacle API.
2023-06-12 14:26:45 +02:00
smix8
7f2417135f Improve navigation map synchronisation error msgs
Improves navigation map synchronisation error msgs related to mismatch of cell sizes.
2023-06-03 11:40:33 +02:00
smix8
fef7b4efdc Add navigation map synchronization warnings.
Adds navigation map synchronization warnings.
2023-05-31 16:23:27 +02:00
smix8
f986b52b3c Make navigation mesh edge connections optional
Makes navigation mesh edge connections optional.
2023-05-11 18:46:34 +02:00
smix8
7e1a261cc6 Prevent unnecessary navigation map synchronizations
Prevents unnecessary navigation map synchronizations triggered by redundant calls to setters of e.g. region, link or map properties.
2023-05-11 07:38:16 +02:00
smix8
a6ac305f96 Rework Navigation Avoidance
Rework Navigation Avoidance.
2023-05-10 05:01:58 +02:00
RedworkDE
1324c7d06a Avoid making unnecessary copies of LocalVector 2023-05-06 20:39:03 +02:00
smix8
71c453a426 Fix NavigationMesh baking for HeightMapShape
Fixes NavigationMesh baking for HeightMapShape.
2023-04-18 20:39:43 +02:00
Yuri Sizov
4154039832 Improve includes of EditorNode (and everything else)
Also start organizing editor-specific GUI components
into a dedicated folder, `editor/gui`.
Also move `editor_file_server` next to the rest of debugger classes.
2023-04-07 18:59:49 +02:00
Rémi Verschelde
38094dfc4a
Merge pull request #74558 from smix8/navserver_real_t_4.x
Fix NavigationServer internals still using float instead of real_t
2023-04-03 16:00:42 +02:00
smix8
184427196f Fix NavigationAgent enable avoidance crash
Fixes NavigationAgent enable avoidance crash.
2023-04-01 12:52:15 +02:00
smix8
64ce93cee9 Fix agents with disabled avoidance getting added to avoidance simulation
Fixes that agents with disabled avoidance were getting added to avoidance simulation.
2023-03-14 04:20:57 +01:00
smix8
217a27014b Fix NavigationServer internals still using float instead of real_t
Fixes that some NavigationServer internals still used float instead of real_t in some parts.
2023-03-07 22:10:48 +01:00
smix8
73dc680fc1 Fix NavigationServer free error print
Fixes error print for NavigationServer free when a RID can not be found.
2023-03-05 14:11:35 +01:00
Rémi Verschelde
e2fc0acd36
Fix includes of thirdparty libs which can be unbundled on Linux
Changes `builtin_icu` and `builtin_recast` to match the folder names in
`thirdparty`.
2023-02-16 15:52:13 +01:00