Commit Graph

2211 Commits

Author SHA1 Message Date
Rémi Verschelde 3df0c5be6a
Merge pull request #86473 from reduz/audio-playback-parameters
Implement audio stream playback parameters.
2024-01-16 10:35:36 +01:00
Juan Linietsky a40fe16866 Implement audio stream playback parameters.
Implements a way for audio stream playback to be configured via parameters
directly in the edited AudioStreamPlayer[2D/3D].

Currently, configuring the playback stream is not possible (or is sometimes hacky
as the user has to obtain the currently played stream, which is not always immediately available).

This PR only implements this new feature to control looping in stream playback instances (a commonly requested feature, which was lost in the transition from Godot 2 to Godot 3).
But the idea is that it can do a lot more:

* If effects are bundled to the stream, control per playback instance parameters such as cutoff or resoance, or any other exposed effect parameter per playback instance.
* For the upcoming interactive music PR (#64488), this exposes an easy way to change the active clip, which was not possible before.
* For the upcoming parametrizable audio support (https://github.com/godotengine/godot-proposals/issues/3394) this allows editing and animating audio graph parameters.

In any case, this PR is required to complete #64488.

Update modules/vorbis/audio_stream_ogg_vorbis.h

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>

Update modules/minimp3/audio_stream_mp3.h

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>

Update modules/minimp3/audio_stream_mp3.h

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>

Update modules/vorbis/audio_stream_ogg_vorbis.h

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>

Update doc/classes/AudioStream.xml

Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
2024-01-16 10:31:52 +01:00
Rémi Verschelde fe76b61743
Merge pull request #87160 from kleonc/tilemap-fix-debug-drawing-truncations-to-ints
Fix some `TileMap` debug drawing truncating to ints
2024-01-15 13:31:04 +01:00
Rémi Verschelde ebc30b93ac
Merge pull request #84465 from KeyboardDanni/deferred_camera
Fix Camera2D frame delay (port from 3.x)
2024-01-15 13:22:28 +01:00
kleonc baa5504700 Fix some TileMap debug drawing truncating to ints 2024-01-14 02:02:46 +01:00
Rémi Verschelde 1b25b4ca5f
Merge pull request #83397 from thiagola92/readability_skeleton_2d_calculate_length_and_rotation
Refactor function `calculate_length_and_rotation()` from Skeleton2D
2024-01-11 20:44:26 +01:00
thiagola92 6a05825b24 Refactor function `calculate_length_and_rotation()` from Skeleton2D 2024-01-11 13:35:28 -03:00
kobewi 0e8f90f4c8 Update deferred calls to use Callables 2024-01-09 16:11:47 +01:00
Rémi Verschelde d8dc554241
Merge pull request #86847 from kleonc/tilemap-make-quadrant-canvas-item-position-local
Fix `TileMap` quadrant canvas item position not being local
2024-01-08 14:52:54 +01:00
kleonc 3c25274870 Fix TileMap quadrant canvas item position not being local 2024-01-08 14:20:16 +01:00
Rémi Verschelde 4ca33d318b
Merge pull request #86908 from AdSkipper1337/collision-object-2d-gdextension-virtuals
Fix virtual calls for GDExtension in `CollisionObject2D`
2024-01-08 12:01:31 +01:00
Rémi Verschelde c7fb7273c5
Merge pull request #86811 from TheSofox/light2d-blend-3to4
Added compatibility for Blend Mode in `Light2D`/`PointLight2D` when converting from Godot 3 to 4.
2024-01-08 11:57:07 +01:00
Rémi Verschelde 665c3edee2
Merge pull request #86557 from kleonc/polygon2d-with-skeleton-transform-fix
Fix Polygon2D to Skeleton2D transform calculation
2024-01-08 11:55:06 +01:00
Rémi Verschelde 97607b6ab3
Merge pull request #86474 from KoBeWi/particular_velocity
Only update particle velocity when it changes
2024-01-08 11:53:53 +01:00
Nikolai Davydov 0517000e6f Fix virtual calls for GDExtension in `CollisionObject2D` for _mouse_enter, _mouse_exit, _mouse_shape_enter, _mouse_shape_exit 2024-01-07 05:30:26 +01:00
A Thousand Ships 904ecb1d36
[Core] Prevent copying of `SelfList` and `SelfList::List`
Copying of these types is unsafe and should be detected

Also removed unnecessary constructors for `TileMap` `DebugQuadrant` and
`RenderingQuadrant` which used copying of `SelfList::List`
2024-01-07 00:48:23 +01:00
Sofox 58ae3c577c Added compatibility for Blend Mode in Light2D/PointLight2D when converting from Godot 3 to 4 2024-01-05 15:39:47 +00:00
Gilles Roudière 6bc5b3f812 Move TileMapLayer to its own files 2024-01-05 11:58:21 +01:00
Rémi Verschelde b88eddb682
Merge pull request #78378 from 0xafbf/curve-evaluate-correct-transform
Changed the way the rotation of a curve at a point is evaluated to match PathFollow2D
2024-01-04 16:38:38 +01:00
Rémi Verschelde d822fd5322
Merge pull request #86733 from Mickeon/autocompletion-more-animated-sprite
Add autocompletion options for AnimatedSprite's other play methods
2024-01-03 10:15:01 +01:00
Micky d5a7c7818c Add autocompletion options for AnimatedSprite's other play methods 2024-01-03 01:33:08 +01:00
Micky ca2f340384 Fix missing autocompletion for inheriting classes 2024-01-03 00:13:04 +01:00
kleonc 41e4f3c215 Fix Polygon2D to Skeleton2D transform calculation 2023-12-27 18:46:59 +01:00
kobewi cb0a37f61a Only update particle velocity when it changes 2023-12-23 18:04:24 +01: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 5d9dce43bb Merge pull request #84575 from rsburke4/fix-cpu-tangent-force
Fix `CPUParticles2D` tangential force does not match `GPUParticles2D`
2023-12-19 13:01:05 +01:00
Yuri Sizov 4600acfc41 Merge pull request #85311 from miv391/add-change-guards-to-sprite2d
Add property change guards to Sprite2D, Sprite3D and AnimatedSprite2D
2023-12-18 18:17:49 +01:00
A Thousand Ships 0081a50e32 Prevent mapping areas with invalid IDs for `Area2D/3D`
This occurs when areas are created directly from the servers, and no
instance is linked.
2023-12-18 16:02:46 +01:00
Mika Viskari 5b9e67e0a5 Add property change guards to Sprite2D and AnimatedSprite2D 2023-12-16 20:25:35 +02:00
Yuri Sizov 1e86ce0b40 Merge pull request #85317 from miv391/fix-breaking-frame-index-in-sprites
Fix invalid `frame` index when Sprite2D's `hframes` or `vframes` has been changed
2023-12-16 17:49:38 +01:00
风青山 ea30aabfb1 Clear monitoring in `Area*` when its space changes to invalid
So that it can work properly when the space changes to valid again.

Change `space` in advance to prevent disabled areas from being queried again.
2023-12-15 20:54:54 +01:00
Mika Viskari 484c5b5aff Fix invalid frame index when Sprite2D's hframes or vframes has been changed 2023-12-15 20:32:18 +02:00
Yuri Sizov 302e41c264 Merge pull request #82561 from ershn/fix_navigation_agents_is_target_reached_behavior
Make `target_desired_distance` affect the navigation of `NavigationAgent2D/3D`
2023-12-14 21:22:35 +01:00
Gilles Roudière 18fe0bd025 Move tile transforms handling cache to TileData 2023-12-13 17:44:59 +01:00
Rémi Verschelde 4943b6e6b3
Merge pull request #84451 from ShirenY/FixSkeletonMeshCulling
Transform mesh's AABB to skeleton's space when calculating mesh's bounds
2023-12-12 00:16:51 +01:00
ShirenY 27f71c4e78 Transform mesh's AABB to skeleton's space when calculate mesh's bounds. 2023-12-09 11:41:15 +08:00
Gilles Roudière fcb8d19de0 Fixes TileMap occluders 2023-12-08 10:07:28 +01:00
Rémi Verschelde 654132cb9c
Merge pull request #85753 from groud/allow_invisible_scene_tiles
Keep scene tiles even if the TileMap is invisible
2023-12-04 23:29:33 +01:00
Rémi Verschelde 0e4aead7a1
Merge pull request #85258 from smix8/navregion2d_transform
Fix NavigationRegion2D transform update
2023-12-04 23:11:15 +01:00
Rémi Verschelde 4ce65c6190
Merge pull request #83816 from smix8/navobstacle_properties
Fix missing NavigationObstacle property updates in constructor
2023-12-04 23:00:02 +01:00
Rémi Verschelde 1389d8a23f
Merge pull request #83814 from smix8/navagent_properties
Fix missing NavigationAgent property updates in constructor
2023-12-04 22:59:38 +01:00
Rémi Verschelde 4bd5ffd669
Merge pull request #83812 from smix8/navregion_properties
Fix missing NavigationRegion property updates in constructor
2023-12-04 22:59:13 +01:00
Rémi Verschelde 9be2f25c57
Merge pull request #83802 from smix8/navlink_properties
Fix missing NavigationLink property updates in constructor
2023-12-04 22:58:49 +01:00
smix8 25bf20d7a5 Fix missing NavigationRegion property updates in constructor
Fixes missing NavigationRegion property updates in constructor.
2023-12-04 19:50:17 +01:00
Gilles Roudière 25e927e56b Keep scene tiles even if the TileMap is invisible 2023-12-04 18:39:16 +01:00
Ershn fce16b6662 Make target_desired_distance affect the navigation of NavigationAgent2D/3D
When the target is reachable, stop the navigation only when the target is reached.
2023-11-29 23:48:54 +09:00
Rémi Verschelde efe5c856b8
TileMap: Fix compatibility code for old `cell_quadrant_size` property name
Fixes #85423.
2023-11-28 12:44:07 +01:00
smix8 6fdb16af47 Fix NavigationRegion2D transform update
Fixes NavigationRegion2D transform update.
2023-11-23 07:23:20 +01:00
Rémi Verschelde 4065266119
Merge pull request #84968 from groud/fix_tilemap_reparenting
Update tilemap physics' world2D on reparenting
2023-11-16 14:53:15 +01:00
Gilles Roudière dae641625a Update tilemap physics' world2D on reparenting
Co-authored-by: Alon Ran <newdefectus@gmail.com>
2023-11-16 11:31:42 +01:00
Mikael Hermansson a3278c772e Fix transform sync in `RigidBody*D::_body_state_changed` 2023-11-15 01:45:45 +01:00
kobewi 4296f0a771 Fill remaining global scope constant descriptions 2023-11-13 15:17:10 +01:00
Mikael Hermansson 21a3ed1715 Fix transform changes in `_integrate_forces` being overwritten 2023-11-12 19:32:08 +01:00
Rémi Verschelde 491160c33d
Merge pull request #83888 from KoBeWi/remove_all_properties_instead_of_adding_one
Fix TileMap layer reverts and defaults
2023-11-08 19:08:19 +01:00
rsburke 76377230ac Fixed CPUParticle tangential force to match GPUParticle implimentation 2023-11-07 08:02:43 -05:00
Danni 734166f796 Ensure Camera2D scroll is updated on transform like 3.x 2023-11-05 18:01:34 -05:00
kobewi b63533bf3f Fix rotated tile collision not working at runtime 2023-10-31 18:22:26 +01:00
Andrés Botero acae382010 Changed the way the rotation of a curve at a point is evaluated to match PathFollow2D 2023-10-28 01:23:38 -05:00
A Thousand Ships 3ef6314980 Fix invalid return from some more `_get/_set`
Invalidly returned `true` on the non-matched path
2023-10-27 21:26:13 +02:00
Rémi Verschelde d3fb6c17b6
Merge pull request #83560 from groud/allow_physics_for_hidden_tilemap
Allow TileMap physics/navigation to still work when hidden
2023-10-27 11:36:57 +02:00
Gilles Roudière 9d90f1774c Allow TileMap physics/navigation to still work when hidden 2023-10-26 16:54:35 +02:00
Gilles Roudière 3b5a288bc8 Fix Y-sort origin not working when set in TileMap runtime updates 2023-10-26 15:45:30 +02:00
Gilles Roudière a2bc599450 Fixes get_used_rect, get_used_cells and get_used_cells_by_id in TileMap after a call to clear() 2023-10-24 14:43:43 +02:00
kobewi 99262705a8 Fix TileMap layer reverts and defaults 2023-10-24 13:44:07 +02:00
smix8 618d9492d9 Fix missing NavigationObstacle property updates in constructor
Fixes missing NavigationObstacle property updates in constructor.
2023-10-23 05:10:58 +02:00
smix8 9640179f93 Fix missing NavigationAgent property updates in constructor
Fixes missing NavigationAgent property updates in constructor.
2023-10-23 04:27:49 +02:00
smix8 2f1668804c Fix missing NavigationLink property updates in constructor
Fixes missing NavigationLink property updates in constructor.
2023-10-23 01:43:55 +02:00
A Thousand Ships 72fccd82c5 [Audio] Fix pausing stream on entering tree
The paused notifications are only sent when pause status is changed,
this ensures that streams that are non-processing do not play when added
to the tree. Also ensures that the `process_mode` property applies
generally.
2023-10-22 22:35:32 +02:00
Eoin O'Neill f17a569ccf Fix bug where TileMap will not update material correct on assignment
This seemed to be a simple case of a missing condition in an if
statement with a few different flags. I'm not super familiar with the
tilemap code but hopefully this is the correct place to add this check.

Fixes #83474
2023-10-16 21:02:46 -07:00
Rémi Verschelde 2ba83f2578
Merge pull request #83427 from kleonc/camera2d-screen-center-position-when-rotated
Fix screen center position returned for rotated Camera2D
2023-10-16 13:01:23 +02:00
Rémi Verschelde cbfa941061
Merge pull request #83365 from Malcolmnixon/fix-disabled-nav-region
Fix enabling NavigationRegion3D saved disabled
2023-10-16 13:00:35 +02:00
Rémi Verschelde 75b4fd84e3
Merge pull request #83323 from Rindbee/fix-not-update-remote-local-transform-in-2d
Fix cannot update remote after disabling `use_global_coordinates` in `RemoteTransform2D`
2023-10-16 13:00:12 +02:00
kleonc 836d80b306 Fix screen center position returned for rotated Camera2D 2023-10-16 09:02:49 +02:00
Malcolm Nixon 0646b230e4 Fix enabling NavigationRegion3D saved disabled
This PR fixes issue #83364 by always registering the region when it enters the tree, and instead using region_set_enabled to control whether its enabled. The same logical changes have been applied to NavigationRegion2D.
2023-10-14 23:17:57 -04:00
风青山 30904ed3bc Fix cannot update remote after disabling `use_global_coordinates` in `RemoteTransform2D`
Due to the optimization in `CanvasItem`, `global_transform` is only
updated when `get_global_transform()` is called, and then notify
`NOTIFICATION_TRANSFORM_CHANGED`. That is, in the case where
`global_transform` is not obtained, the notification will not be sent.

So we use `NOTIFICATION_LOCAL_TRANSFORM_CHANGED` in this case. Use in
combination to prevent certain optimizations.

Same change for `RemoteTransform3D`, to prevent the same optimization
from being used in `Node3D` in the future.
2023-10-15 00:16:52 +08:00
A Thousand Ships bea7cc784d Make error suggestion less ambiguous 2023-10-14 14:56:05 +02:00
Rémi Verschelde 1d3854665f
Merge pull request #83273 from groud/disable_tilemap_navigation
Allow disabling the built-in tilemap navigation
2023-10-13 22:19:48 +02:00
Gilles Roudière c820c8d1e6 Allow disabling the built-in tilemap navigation 2023-10-13 17:42:28 +02:00
Rémi Verschelde 9957f1ad4e
Merge pull request #83151 from kleonc/tile-map-layer-draw-index-update
Update `TileMap` layer draw index when it's dirty
2023-10-11 18:31:12 +02:00
kleonc a529bf81b8 Update TileMap layer draw index when it's dirty 2023-10-11 16:55:19 +02:00
Gilles Roudière a3bfd9b797 Warn users when TileMap is set as Y-sorted but no layer is 2023-10-11 13:44:28 +02:00
QbieShay c228fe1a0d Particle internal refactor and additions for more artistic control
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
Co-authored-by: A Thousand Ships <96648715+AThousandShips@users.noreply.github.com>
Co-authored-by: Raul Santos <raulsntos@gmail.com>
Co-authored-by: Mew Pur Pur <85438892+MewPurPur@users.noreply.github.com>
Co-authored-by: Clay John <claynjohn@gmail.com>
2023-10-10 20:03:35 +02:00
Rémi Verschelde 72cdb0b4c5
Merge pull request #82393 from jrouwe/body_changed_state
Fix performance regression in RigidBody2D/3D and PhysicalBone3D
2023-10-04 15:35:30 +02:00
bitsawer 12a2177967 Fix notification thread guards 2023-10-02 19:31:54 +03:00
Hugo Locurcio 14f40ec70e
Tweak Gravity Scale property hints to make dragging more useful
This also allows a more precise step.
2023-10-01 20:01:46 +02:00
Jorrit Rouwe eff7f27c48 Fixed performance regression in godot 4.2 in RigidBody2D/3D and PhysicalBone3D
After change c118256865 the body state is synched 2x, but this is only needed if _integrate_forces is overridden.

Adding this extra if increases the FPS by 2.5% in a heavy physics scene, see: https://github.com/godot-jolt/godot-jolt/discussions/611
2023-09-26 21:19:58 +02:00
Rémi Verschelde 1a7ea4ba50
Merge pull request #82360 from kleonc/tilemap-tile-animation-time-float-error
Fix animated tile time-slice calculation accumulating float errors
2023-09-26 17:52:55 +02:00
Rémi Verschelde eefe161549
Merge pull request #81610 from Ughuuu/add-angle-limits-and-motor-to-pin-joint-2d
Update PinJoint2D API with angle limits and motor speed
2023-09-26 13:45:07 +02:00
kleonc 20d6a9b2e1 Fix animated tile time-slice calculation accumulating float errors 2023-09-26 12:07:42 +02:00
Dragos Daian 0fcfb07246 Update PinJoint2D API with angle limits and motor speed
add enabled methods for motor and angular limits
use correct name to get joint
update copyright
2023-09-26 10:29:23 +02:00
Rémi Verschelde 7dccb9e039
Merge pull request #80796 from smix8/navgenerator_2d_4.x
Add 2D navigation mesh baking
2023-09-26 08:17:58 +02:00
Rémi Verschelde 023b6b30c1
Merge pull request #73813 from groud/improve_y_sort_performances
Greatly improve Y-sort performance on TileMaps
2023-09-25 22:47:22 +02:00
smix8 0ee7e3102b Add 2D navigation mesh baking
Adds 2D navigation mesh baking.
2023-09-25 19:48:14 +02:00
Gilles Roudière 30b94bb8ab Improve TileMap Y-sorting performance 2023-09-25 18:49:04 +02:00
A Thousand Ships e45927b2f2 Replace `radians` range hint with `radians_as_degrees` 2023-09-25 08:50:19 +02:00
Rémi Verschelde 04d2aa61a3
Merge pull request #81641 from MewPurPur/bus-go-brrrr-2
Add a `bus_renamed` AudioServer signal
2023-09-17 14:47:29 +02:00
Rémi Verschelde f4d85d58f7
Merge pull request #80736 from Ughuuu/add-get-rid-to-joints
Expose the `get_rid` method of Joint2D and Joint3D
2023-09-17 14:47:04 +02:00
Rémi Verschelde 4c01c62233
Merge pull request #79182 from MewPurPur/polyline-close
Add closed property to Line2D
2023-09-16 21:20:47 +02:00
MewPurPur f29b6e73c2 Add a bus_renamed AudioServer signal 2023-09-15 13:02:03 +03:00
A Thousand Ships a29416e332 [Scene,Main] Replace `ERR_FAIL_COND` with `ERR_FAIL_NULL` where applicable 2023-09-12 12:53:06 +02:00