Commit Graph

180 Commits

Author SHA1 Message Date
43c11fcdf5 Backported from godot4: 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.
- DarkKilauea, akien-mga
0572346985
2023-09-05 09:13:54 +02:00
397a9e9bcd Backported from godot4: Fix NavigationAgent continues avoidance velocity
Fixes NavigationAgent continues avoidance velocity.
- smix8
c912df9d05
2023-09-05 08:01:57 +02:00
7001325758 Backported form godot4: Add NavigationRegion function to change navigation map
Adds NavigationRegion function to change navigation map.
- smix8
84647ab09e
2023-09-04 21:17:49 +02:00
a222159442 Backported from godot4: Add NavigationServer API to enable regions and links
Adds NavigationServer API to enable regions and links.
- smix8
69fad39cf5
2023-09-04 20:22:28 +02:00
b37e0e6a4e Backported from godot4: Update navigation obstacle API
Updates navigation obstacle API.
- smix8
c1fc331b88
2023-09-04 19:55:32 +02:00
aeb4d3fbe2 Backported from godot4: Add agent pause mode to NavigationServer
Adds agent pause mode to NavigationServer.
- smix8
https://github.com/godotengine/godot/commit/ae9dd47d0c1c237d0733439862aa5ff651dcac2
2023-09-04 19:04:29 +02:00
e2fd645a42 Ported from godot4: Fix NavigationAgent position not always updating
Fixes NavigationAgent position not always updating.
- smix8
34bc410fb4
2023-09-04 17:38:32 +02:00
8485b37515 Ported from godot4: 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".
- smix8
34e7628f5f
2023-09-04 17:09:39 +02:00
568b2541b8 Backported from godot4: Fix NavigationAgent3D debug path duplicated points
Fixes duplicated points in NavigationAgent3D debug path.
- smix8
0b8798a995
2023-09-04 16:35:59 +02:00
b4dbd26415 Backported from godot4: Expose NavigationAgent path postprocessing and pathfinding algorithm options
Exposes the path postprocessing and pathfinding algorithm options of the NavigationAgent internal NavigationPathQueryParameters object.
- smix8
6e324bb341
2023-09-03 10:12:41 +02:00
a516cf2e1b Backported from godot4: Tweak NavigationAgent3D defaults
Tweaks default values for NavigationAgent3D to work better out of the box within a new 3D project.
- smix8
8be4af38e4
2023-09-03 09:43:32 +02:00
d2e7ced27b Backported from godot4: Fix NavigationRegion3D debug mesh rendering twice in Editor
Fixes double rendering of NavigationRegion3D debug mesh due to both 3DGizmo and runtime debug rendering the mesh at the same time.
- smix8
0e4c31ce57
2023-09-03 08:45:25 +02:00
d5499c69ba Backported from godot4: Fix crash in 'NavigationAgent3D', fixes #78910
- Scony
fcbb521392
2023-09-02 13:28:16 +02:00
d1d8f8505e Backported from godot4: Strip name prefix of navigation agent debug properties in the inspector.
- timothyqiu
65223e98de
2023-09-02 12:56:02 +02:00
2dc300a0fc Backported from godot4: Stops NavigationAgents moving to the world origin without anyone telling them to do so.
-smix8
860379fc16
2023-09-02 12:47:13 +02:00
eb8943a4f6 Backported from godot4: Add Path2D/3D debug options
- smix8
e12e239ab4
2023-09-02 11:38:01 +02:00
2c3c7dcc73 Fix threaded bake logic in NavigationPolygonInstance and NavigationMeshInstance. 2023-08-30 14:36:33 +02:00
87b91721da Ported: Physics interpolation - Move out of Scenario
Move VisualServer interpolation data out of Scenario and into VisualServerScene, so the interpolation data and enabled status is now common to all Scenarios.

Fix physics interpolation in multithreaded mode by ensuring tick and pre-draw are called.
- lawnjelly
d2b1d29634
2023-08-27 17:25:38 +02:00
53d36345e6 Added back CSG support code I removed. 2023-07-11 12:23:46 +02:00
Maganty Rushyendra
97dee88433 Fix overwriting of Spatial's local transform
Modifies when 'DIRTY_LOCAL' flag is set to prevent a transform applied
using `set_transform` to be overwritten by previous calls to change the
node's rotation, translation or scale.

Fixes #43130.
2023-06-28 12:23:08 +02:00
de1763d40d Renamed neighbor_dist properties / getters / setters for the navigation server. 2023-06-12 08:37:57 +02:00
975e5c4a9e Rethink the previous fix. 2023-06-11 18:32:15 +02:00
50c96d5414 Fix building with ptrcall on. 2023-06-11 18:02:58 +02:00
lawnjelly
22d90711da Make acos and asin safe
A common bug with using acos and asin is that input outside -1 to 1 range will result in Nan output. This can occur due to floating point error in the input.

The standard solution is to provide safe_acos function with clamped input. For Godot it may make more sense to make the standard functions safe.
2023-06-11 08:41:42 +02:00
f058c87868 Backported from godot4: Rework Navigation Avoidance
Rework Navigation Avoidance.
- smix8
a6ac305f96
2023-06-10 20:58:49 +02:00
8b18898609 Backported from godot4: 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.
- DarkKilauea
a0715b30f9
2023-06-09 22:03:42 +02:00
6384b9624f Ported from godot4: Make navigation mesh edge connections optional
Makes navigation mesh edge connections optional.
- smix8
f986b52b3c
2023-06-09 20:54:05 +02:00
81c392489a Ported from godot4: 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.
- smix8
d87f124768
2023-06-09 20:00:28 +02:00
29784d5d5b Ported from godot4: 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.
- DarkKilauea
5769b0e8d8
2023-06-09 19:46:44 +02:00
160cb38a50 Ported from godot4: Add support for emitting a signal when entering a NavLink
- DarkKilauea
5d8ba2b2d1
2023-06-09 19:08:38 +02:00
e07fd6da59 Ported from godot4: Prevent unnecessary navigation map synchronizations
Prevents unnecessary navigation map synchronizations triggered by redundant calls to setters of e.g. region, link or map properties.
- smix8
7e1a261cc6
2023-06-09 16:43:14 +02:00
19fac49904 Turn PoolVectors in NavigationPathQueryResults into Vectors. 2023-06-09 16:27:24 +02:00
b2d8199a7b Ported from godot4: Update NavigationAgent to use query_path
This paves the way for having agents respond to link traversal.
- DarkKilauea
a2c53b881b
2023-06-09 16:19:22 +02:00
12b95cdc1f Ported from godot4: Add navigation layer bitmask helper functions
Adds helper functions to work with the navigation layer bitmask.
- smix8
55923ade68
2023-06-09 15:44:12 +02:00
268645ff0b Ported from godot4: Add NavigationAgent Path Debug Visualization
Adds path debug visuals for NavigationAgent2D, NavigationAgent3D and NavigationServer.
- smix8
0ab764e84b
2023-06-09 14:17:54 +02:00
11c84049fa Ported from godot4: Fix NavigationMesh debug visuals for non-triangulated meshes
Fixes NavigationMesh debug visuals for non-triangulated meshes.
- smix8
4490a3303b
2023-06-09 13:03:30 +02:00
c11500d480 Ported from godot4: 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.
- smix8
bf1571979c
2023-06-09 10:28:31 +02:00
0438c3cc3f Backported from godot4: Added node for Navigation links .
- DarkKilauea
3dd59013f4
2023-06-08 20:46:09 +02:00
09118cb939 Port small tweaks fot NavigationMeshInstance. 2023-06-06 10:14:15 +02:00
a1b23406a1 Rework NavigationMeshInstance as per the navigation mesh generators pr. 2023-06-06 09:35:59 +02:00
3c9d9bdad4 Ported from godot4: Fix NavigationRegion3D gizmo's odd visual behavior .
- DarkKilauea
92c40bcf32
2023-06-05 19:02:24 +02:00
25078b1437 Ported from godot4: Remove / Replace old Navigation Debug Visualization
- removes / replaces leftovers from old navigation debug code
- cleanes SceneTree and ProjectSettings from old navigation debug
- smix8
d7f75fab60
2023-06-05 18:56:41 +02:00
b6de23ac8a Fix non tools build. 2023-06-05 18:21:45 +02:00
68b9f4c90e Ported from godot4: Add more detailed Navigation Debug Visualization
- Adds more customization options to ProjectSettings.
- Displays navregion edge connections and navigation polygon edges in editor and at runtime.
- Majority of debug code moved from SceneTree to NavigationServer.
- Removes the irritating debug MeshInstance child node from NavigationRegion3D and replaces it with direct RenderingServer API.
- smix8
c394ea518e
2023-06-05 18:05:15 +02:00
8cbb1bb879 Started porting pull request from godot 4: Rework NavigationMeshGenerator
Reworks NavigationMeshGenerator and navigation mesh parse and bake process. Adds navigation mesh baking for 2D.
- smix8
https://github.com/godotengine/godot/pull/70724
38699a8259
2023-06-03 18:22:12 +02:00
smix8
90f81c0013 Add error messages for collision exception functions
Adds error messages to collision exception functions when used with the wrong object/node instead of failing silently.
2023-03-12 14:24:56 +01:00
stmSi
9b65e9df6a Fix Editor hanging if audiostream's pitch_scale is NaN 2023-03-12 14:14:29 +01:00
1f20512f8c Ported: Improve error messages and classref for occluders and portals
Misused functions would previously produce no error messages which was confusing for users.
- lawnjelly
5a0cb54b3a
2023-02-07 02:28:29 +01:00
Haoyu Qiu
dc27330752 Make CollisionShape selection box use shape AABB 2023-01-16 14:19:35 +01:00
Hugo Locurcio
04338a5018 Tweak particles animation offset property hint to allow more precise values 2023-01-16 13:47:55 +01:00