Commit Graph

54 Commits

Author SHA1 Message Date
smix8
e037bd3bb6 Group NavigationAgent properties
Groups the ill-defined NavigationAgent properties between pathfinding and avoidance to make it more clear which property affects what.

(cherry picked from commit dde09be302afa08f5744533e82247bb49eff1f83)
2022-07-29 16:30:15 +02:00
6101beb960 Ported: Add NavigationAgent desired path distance - smix8
88e42b2915
2022-07-29 11:36:09 +02:00
2e0589f63a Ported: [3.5] Add NavigationAgent2D/3D set_navigation_map() function
Add NavigationAgent2D/3D set_navigation_map() function. Also fixes some bugs from leftover code before the backport update.
- smix8
c6f9627c74
2022-07-29 10:34:10 +02:00
bb5acfd745 Ported: [3.5] Update NavigationServer backport
Backports features and bugfixes from current Godot 4.0 to 3.5 and brings functions and codebase of both version largely in sync to make tutorials more compatible and future backports easier.
- smix8
8bd7c6188b
2022-07-28 22:34:28 +02:00
lawnjelly
48c1a1ae34 VisibilityNotifier - add max_distance feature
Enables turning off objects by distance to the camera in addition to testing whether they are in the view frustum.
2022-07-28 14:59:45 +02:00
smix8
4409bae4dc Add NavigationMesh debug when navmesh is added later through scripts
Add NavigationMesh debug when navmesh is added later through scripts

(cherry picked from commit b6eff47bac0a2745da6e3aa95ffa340eb71c7248)
2022-07-28 14:43:28 +02:00
lawnjelly
693c503213 Optimized Mesh Merging
Changes from PoolVector to LocalVector and pre-reserving vectors rather than push_back.
2022-07-28 13:46:56 +02:00
d161a30a4b Ported: Backport TextMesh and expose dynamic font vector outlines - bruvzg
d502bd4847
2022-07-28 00:01:20 +02:00
7fd0b29642 Ported: Backport Label3D node implementation and Sprite*3D material render priority. - bruvzg
dc6d8d6098
2022-07-27 23:40:35 +02:00
smix8
eaf28297ec Process NavigationAgent2D/3D avoidance on demand only
Changes NavigationAgent avoidance callback to a toggle that is disabled by default.
Also fixes a few missing descriptions / wrong warnings.

(cherry picked from commit 7f3688603cb3662e425cb7a1dce15459162c1dc6)
2022-07-27 23:13:40 +02:00
60b854d657 Ported: Make Navigation Agents and Obstacles respect parent process mode
Temporarily removes agent from navigation map when parent node cannot process due to SceneTree pause and process_mode property. Normal process_mode does not work as other agents would still avoid the paused agents because they were still active on the navigation map and the rvo world. Also fixes potential crash when region_get_map or agent_get_map is called while no map is set.
- smix8
88acb5b798
2022-07-27 20:07:55 +02:00
ad080c7017 Ported: Disable threaded NavigationMesh bake on unsupported OS. Automatically disables threaded NavigationMesh bake when OS does not support threads. - smix8
c3b39ca1e9
2022-07-27 18:51:18 +02:00
smix8
4a5982b9e1 Expose NavigationObstacle2D/3D get_rid() and add config warning
Exposes get_rid() function for scripting.
Adds configuration warning when obstacle is used with not intended static body parent.

(cherry picked from commit 001d89223f1377717d2b3d5ec453ff8dd3604182)
2022-07-27 18:49:00 +02:00
smix8
96b8c4d323 Fix NavigationObstacle2D/3D get_global_transform() error
Fixes NavigationObstacle2D/3D reporting a 'get_global_transform: Condition "!is_inside_tree()" error when estimating the agent radius.

The collisionshapes that are lower in the SceneTree order than the obstacle node are not loaded in the SceneTree yet so the global_transform function fails.

Also adds warning message when this happens.

(cherry picked from commit cc707412e909f117ad53ebe53e19bad43acf086a)
2022-07-27 18:48:43 +02:00
75606b352f Ported: Physics Interpolation - Reset on adding child to SceneTree. For convenience, branches added to the SceneTree now have physics interpolation reset after the first update of the transform to the VisualServer. - lawnjelly
328866ee6a
2022-07-27 17:51:39 +02:00
285c02bf76 Ported: Add autocompletion for AnimatedSprite.play() - timothyqiu
0f7f3d08ba
2022-07-27 14:23:27 +02:00
Pawel Lampe
106c45519b Add ability to bake_navigation_mesh off thread.
This feature makes it possible to workaround problems such as:
 - long baking time due to heavy synchronization when parsing geometry
   from mesh instances
 - crash when freeing `NavigationMeshInstance` while baking
 - errors when actively baking node tree is being detached from the
   scene tree
2022-07-27 14:14:50 +02:00
smix8
1317f7000a Add get_region_rid() to NavigationPolygonInstance and NavigationMeshInstance
Add get_region_rid() to NavigationPolygonInstance and NavigationMeshInstance
2022-07-27 13:54:43 +02:00
lawnjelly
3a191189ca Physics interpolation - fix streaking when unhiding nodes
The data flow to the VisualServer of current and previous transforms is essential for allowing correct interpolation. An optimization was present that disabled sending transforms when nodes were hidden, however this meant that when unhidden, nodes would interpolate incorrectly from the last transform received when hiding, rather than the up to date previous transform.

This PR disables the optimization and sends always sends transforms when a node is interpolated.
2022-07-27 13:06:20 +02:00
lawnjelly
4d6dda4df0 Fix CPUParticles emission updating using physics interpolation
When switching emission on and off, processing was always being switched on and off using internal_process, which was incorrect for using physics interpolation (where physics_process is the relevant one).

This PR correctly updates the process mode according to whether physics interpolation is being used.
2022-07-26 15:03:37 +02:00
8275f6b161 Ported: Add missing argument names in bindings - akien-mga
21c3048397
2022-07-25 23:51:34 +02:00
Hugo Locurcio
371b5513d3 Allow size values as low as 0.001 in Camera's orthogonal/frustum mode
This allows for lower field of view (or higher zoom) in orthogonal
and frustum camera modes.

The property hint also allows setting the size with greater precision.
2022-07-25 18:19:48 +02:00
Pedro J. Estébanez
ff5bae8d0e Fix crash when passing null to AudioStreamPlayer::set_stream() 2022-07-25 18:09:39 +02:00
Ellen Poe
94c765d065 instance audio streams before AudioServer::lock call 2022-07-25 17:58:48 +02:00
fabriceci
75a882d02e Fix wrong collision reported on move_and_collide 2022-07-25 17:31:13 +02:00
accd8458c8 Backported: Rename iterations_per_second to physics_ticks_per_second - Calinou - 937c1a716c 2022-03-24 11:10:56 +01:00
32f148ac0c Mass replaced godot to pandemonium. 2022-03-23 20:46:05 +01:00
c9b612f012 Added StringName as a variant type, with eventually the help of 3c0059650d . 2022-03-21 21:29:06 +01:00
5ab825ddf8 Backported: Bind mesh merging functionality in MeshInstance. The portal system introduced basic mesh merging functionality, this has wide ranging uses outside of the portal system.
For this reason, this PR binds the mesh merging functionality.
It also slightly modifies the calling from RoomManager to use a Vector of Node *, in order to allow binding of the function. - lawnjelly - cf1b3fdd55
2022-03-20 20:50:58 +01:00
34c3176c39 Fix skinning by default in MeshInstance even if the mesh is merged. 2022-03-20 14:13:44 +01:00
4d7df62b8e Clang format all files. 2022-03-18 19:00:13 +01:00
8fbdcd18f9 Same change to classes under scene. 2022-03-17 22:57:56 +01:00
678ee45c4f Move back shape's include to the header in collision object. 2022-03-17 21:02:40 +01:00
44bd2e0119 Added destructors to physics bodies to hopefully fix failing compile on some platforms. 2022-03-17 20:00:20 +01:00
3965d70ac5 Moved more includes to cpp files. 2022-03-17 19:35:23 +01:00
84d139213d Moved more includes to cpp files. 2022-03-17 10:39:38 +01:00
052027dce4 Moved more includes to cpp files. 2022-03-17 10:26:23 +01:00
6bae38ca23 Moved more includes to cpp files. 2022-03-17 09:31:00 +01:00
c621049e61 Moved more includes to cpp files. 2022-03-17 09:07:18 +01:00
38fc0c402e Moved more includes from headers to cpp files. 2022-03-17 08:38:34 +01:00
c1ebd9905a Moved more includes. 2022-03-16 21:09:41 +01:00
eeb7c04aaf Moved more includes to cpp files. 2022-03-16 20:53:38 +01:00
d996789533 Moved more includes from headers to cpp files. 2022-03-16 20:46:00 +01:00
f105eba923 Moved more includes from headers to cpp files. 2022-03-16 20:40:41 +01:00
e85cef1745 Run godot's formatting script. 2022-03-16 09:02:48 +01:00
ce953ad1d6 Removed the arvr nodes. 2022-03-16 01:57:33 +01:00
aaf91df4c1 Also removed the MeshLibrary. 2022-03-16 01:30:44 +01:00
a9fca142bc Fully removed Particles and Particles2D, as they were not implemented in gles2. 2022-03-16 00:06:53 +01:00
c0dfdd77f3 Removed particles editor plugins. 2022-03-15 22:25:33 +01:00
e111edf4f2 Cleaned up (hopefully all remaining) light baking things. 2022-03-15 21:07:14 +01:00