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
smix8
b51cab3411
Improve NavigationServer.free() error msg when RID not found
...
Improves the error msg when NavigationServer.free() does not find the RID e.g. because it was already deleted or did never exist in the first place.
2023-02-13 23:44:05 +01:00
smix8
0d80705f11
Rename NavigationServer internal RvoAgent to NavAgent
...
Renames the NavigationServer internal RvoAgent to NavAgent.
2023-02-01 22:27:48 +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
0927e2cffc
Merge pull request #63251 from SaracenOne/disable_data_generation_on_foreign_resources
...
Disable navmesh, lightmap, and VoxelGI generation on foreign data
2023-01-23 15:35:31 +01:00
Rémi Verschelde
5b1df48c6c
Convert en_GB spelling to en_US with codespell
2023-01-23 11:02:20 +01:00
kobewi
615c517034
Use range iterators in LocalVector loops
2023-01-21 18:44:42 +01:00
Rémi Verschelde
e62f57f51d
Merge pull request #70904 from huangjiaminhhh/master
...
Fix for navmesh baking when parsing StaticBody colliders
2023-01-12 22:24:37 +01:00
smix8
9802914f97
Add NavigationServer Performance Monitor
...
Adds Performance Monitor for NavigationServer3D.
2023-01-08 22:58:21 +01:00
Josh Jones
a0715b30f9
Rework const on NavigationServer methods
...
`const` is used on all methods, even when they cause modification of the server. This reworks the methods of the server to only use `const` on method that don't change the state of the server.
2023-01-07 17:29:00 -08:00
SaracenOne
f5edeb8f58
Disable navmesh, lightmap, and VoxelGI generation on foreign data
2023-01-06 08:39:27 -08: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
huangjiamin
dbdcc8e968
Fix for navmesh baking. Error message: Condition “!shapes.has(p_owner)” is true
2023-01-03 19:13:32 +08:00
Rémi Verschelde
5ad02aa08d
Merge pull request #67111 from DarkKilauea/nav-queries-link
...
Added signal to NavigationAgent when entering a link
2022-12-21 19:38:20 +01:00
Josh Jones
0572346985
Fix typo and ensure backwards compatibility for changed property names
...
Changes to the name of the `navmesh` and `navpoly` properties on
`NavigationRegion` caused navigation data to be lost on load.
This PR creates uses `_set`/`_get` to handle compatibility with the
older names on load, preserving the data.
Also fixes a typo on `get_vertices_per_polygon` in `NavigationMesh`,
and renames the property to remove the `polygon_` prefix which doesn't
match the setter/getter.
Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
2022-12-20 09:57:54 +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
Rémi Verschelde
ec8f52df8f
Merge pull request #69629 from smix8/agent_wild_callback_pointer_4.x
...
Fix Navigation agent callback wild pointer crash
2022-12-12 13:51:48 +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
Josh Jones
5769b0e8d8
Enable assigning an owner to navigation regions and links
...
This allows users of the server APIs to get back the nodes that created certain regions and links.
2022-12-10 12:03:06 -08:00
Markus Sauermann
3b14f0334c
Remove redundant Variant-types initializations
2022-11-14 19:35:19 +01:00
trollodel
ba9e619b51
Use forward-declarations in EditorPlugin where possible
2022-11-11 20:25:51 +01:00
Juan Linietsky
71d2e38cb5
Optimize Convex Collision
...
Implements the Gauss Mapping optimization to SAT convex collision test.
* Described [here](https://ubm-twvideo01.s3.amazonaws.com/o1/vault/gdc2013/slides/822403Gregorius_Dirk_TheSeparatingAxisTest.pdf ) by Dirk Gregorius.
* Requires adding of face information to edges in MeshData
* Took the chance to convert MeshData to LocalVector for performance.
2022-10-13 19:07:53 +02:00
Sean
9b525da531
Fix crash in navigation 3d when target is not reachable
...
The code that resets variables to retry navigation to the closest possible poly was not resetting 1 variable, which caused it to exceed the vector bounds
2022-10-02 13:18:33 -06:00
Rémi Verschelde
f47979f087
Merge pull request #66242 from akien-mga/scons-unify-tools-target
2022-09-30 12:28:50 +02:00
Haoyu Qiu
9d58454567
Fix heap-use-after-free in NavMap::get_path()
2022-09-28 10:50:03 +08:00
Rémi Verschelde
39facb35a0
SCons: Unify tools/target build type configuration
...
Implements https://github.com/godotengine/godot-proposals/issues/3371 .
New `target` presets
====================
The `tools` option is removed and `target` changes to use three new presets,
which match the builds users are familiar with. These targets control the
default optimization level and enable editor-specific and debugging code:
- `editor`: Replaces `tools=yes target=release_debug`.
* Defines: `TOOLS_ENABLED`, `DEBUG_ENABLED`, `-O2`/`/O2`
- `template_debug`: Replaces `tools=no target=release_debug`.
* Defines: `DEBUG_ENABLED`, `-O2`/`/O2`
- `template_release`: Replaces `tools=no target=release`.
* Defines: `-O3`/`/O2`
New `dev_build` option
======================
The previous `target=debug` is now replaced by a separate `dev_build=yes`
option, which can be used in combination with either of the three targets,
and changes the following:
- `dev_build`: Defines `DEV_ENABLED`, disables optimization (`-O0`/`/0d`),
enables generating debug symbols, does not define `NDEBUG` so `assert()`
works in thirdparty libraries, adds a `.dev` suffix to the binary name.
Note: Unlike previously, `dev_build` defaults to off so that users who
compile Godot from source get an optimized and small build by default.
Engine contributors should now set `dev_build=yes` in their build scripts or
IDE configuration manually.
Changed binary names
====================
The name of generated binaries and object files are changed too, to follow
this format:
`godot.<platform>.<target>[.dev][.double].<arch>[.<extra_suffix>][.<ext>]`
For example:
- `godot.linuxbsd.editor.dev.arm64`
- `godot.windows.template_release.double.x86_64.mono.exe`
Be sure to update your links/scripts/IDE config accordingly.
More flexible `optimize` and `debug_symbols` options
====================================================
The optimization level and whether to generate debug symbols can be further
specified with the `optimize` and `debug_symbols` options. So the default
values listed above for the various `target` and `dev_build` combinations
are indicative and can be replaced when compiling, e.g.:
`scons p=linuxbsd target=template_debug dev_build=yes optimize=debug`
will make a "debug" export template with dev-only code enabled, `-Og`
optimization level for GCC/Clang, and debug symbols. Perfect for debugging
complex crashes at runtime in an exported project.
2022-09-26 16:31:46 +02:00
Rémi Verschelde
9521849da6
Merge pull request #62429 from smix8/navigation_path_query_4.x
...
Add NavigationPathQuery objects and NavigationServer query_path()
2022-09-21 13:25:48 +02:00
smix8
63dcb9aa80
Add NavigationPathQuery
...
Adds NavigationPathQueryParameters objects that can be used with NavigationServer.query_path() to query a customized navigation path.
2022-09-20 22:20:11 +02:00
smix8
534ff93b05
Exclude disabled CollisionShapes from Navigationmesh baking
...
Excludes disabled CollisionShapes from the geometry parsing for the NavigationMesh baking.
2022-09-14 10:41:33 +02:00
Yuri Sizov
1459507ed2
Rename EditorInterface.get_editor_main_control to get_editor_main_screen
2022-09-07 03:01:58 +03:00
Aaron Franke
817ae95667
Replace AABB has_no_volume with has_volume
...
Also replace has_no_surface with has_surface
2022-09-04 23:03:36 -05:00
Rémi Verschelde
2e0cffdb6f
Merge pull request #63479 from DarkKilauea/nav-link
2022-09-01 23:44:22 +02:00
Josh Jones
3dd59013f4
Added node for Navigation links
2022-08-26 22:05:15 -07:00
Micky
ef5b9a06a9
Rename hint_tooltip
to tooltip_text
& setget
...
`hint_tooltip` -> `tooltip_text`
`set_tooltip` -> `set_tooltip_text`
`_get_tooltip` -> `get_tooltip_text`
Updates documentation, too.
2022-08-27 01:35:01 +02:00
Rémi Verschelde
af88438c71
Merge pull request #64354 from Mickeon/rename-navigation-distance
2022-08-25 18:35:23 +02:00
kobewi
1abdffe7a0
Replace Array return types with TypedArray 2
2022-08-23 23:21:32 +02: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
5137cd9d87
Add NavigationMesh baking for HeightMapShape
...
Adds HeightMapShape for StaticColliders and GridMap to the NavigationMeshGenerator for baking NavigationMesh.
2022-08-05 08:56:38 +02:00
smix8
8d4922cfb1
Replace Navigation std::vector use with LocalVector
...
Replace Navigation std::vector use with LocalVector.
2022-07-28 20:29:15 +02:00
Juan Linietsky
c7255388e1
Remove ThreadWorkPool, replace by WorkerThreadPool
...
The former needs to be allocated once per usage. The later is shared for all threads, which is more efficient.
It can also be better debugged.
2022-07-25 15:39:50 +02:00
Rémi Verschelde
faae24637c
Merge pull request #62300 from smix8/navigation_map_force_update_4.x
2022-06-24 10:13:07 +02:00
smix8
e57360d8df
Add NavigationServer.region_owns_point() helper function
...
Adds a helper function to check if a world space position is currently owned by a navigation region.
2022-06-23 23:32:05 +02:00
smix8
fdea269805
Add NavigationServer map_force_update() function
...
Adds map_force_update() function to NavigationServer. This function immediately flushes the Navigationserver command queue and recalculates all navigationmeshes and region connections for a specific map.
2022-06-23 17:32:07 +02:00