Age | Commit message (Collapse) | Author |
|
Node2D member renames.
|
|
Makes the API for forces and impulses more flexible, easier to
understand and harmonized between 2D and 3D.
Rigid bodies now have 3 sets of methods for forces and impulses:
-apply_impulse() for impulses (one-shot and time independent)
-apply_force() for forces (time dependent) applied for the current step
-add_constant_force() for forces that keeps being applied each step
Also updated the documentation to clarify the different methods and
parameters in rigid body nodes, body direct state and physics servers.
|
|
|
|
|
|
|
|
|
|
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
|
|
|
|
Works with 2D and 3D GPU Particles
|
|
|
|
Changes the Path2D drawing to use POLYLINE instead of thick lines.
|
|
|
|
clutter in scenes with a lot of Particle nodes.
|
|
cpu) as mentioned here: https://github.com/godotengine/godot/issues/54993
|
|
|
|
|
|
|
|
This is a fix for: #54856
|
|
|
|
brunosxs/fix-game-crash-when-sending-a-notification-from-a-camera-class
|
|
Add `ShapeCast2D` node
|
|
The physics API cannot provide needed functionality to ensure the correct behavior, which might lead to confusion (see `rest_info()`).
However `get_closest_collision_safe/unsafe_fraction()` methods are not removed, because they return correct result from `cast_motion()`.
|
|
|
|
|
|
Separate space override modes for gravity/damping in Area
|
|
Makes the results consistent for all shape types with options to set
the desired behavior.
|
|
|
|
Reporting rest collision information is needed for move_and_collide and
move_and_slide so floor detection can be done properly, but in the case
of just testing the motion for collision, it makes sense to return false
if the body is able to move all along the path without being stopped.
Updated the logic in test_move and clarified the documentation for
test_move and move_and_collide.
|
|
In all physics servers, body_get_direct_state() now silently returns
nullptr when the body has been already freed or is removed from space,
so the client code can detect this state and invalidate the body rid.
In 2D, there is no change in behavior (just no more errors).
In 3D, the Bullet server returned a valid direct body state when the
body was removed from the physics space, but in this case it didn't
make sense to use the information from the body state.
|
|
Also make inspector clearer for gravity point properties.
|
|
1. Explicit and unambiguous when comparing to `GradientTexture2D`
2. Consistent with other class names where 1D is used in the engine.
|
|
|
|
Same as what is already done for shape queries, applied to point and ray
queries. Easier to document and more flexible to add more parameters.
Also expose intersect_point method to script in 3D.
Remove intersect_point_on_canvas in 2D, replaced with a parameter.
|
|
This is consistent with other constants that include `NO`,
such as `PROPERTY_HINT_COLOR_NO_ALPHA`.
|
|
|
|
NodePath properties are designed to be relative to the given node, so
validity checks are failing in the editor for Polygon2D nodes, which are
relative to the Skeleton2D node rather than the Polygon2D node.
Fixed by saving bone paths as String properties instead of NodePath.
Shouldn't cause a difference for performance since NodePath properties
are technically saved as String anyway.
|
|
Improve NavigationObstacle3D usability
|
|
|
|
|
|
Improved RigidDynamicBody linear/angular damping override
|
|
- Use lowercase driver names for the `--rendering-driver`
command line argument.
|
|
|
|
This crash occurred when an audio stream finished playing in NOTIFICATION_INTERNAL_PROCESS,
during which it would iterate through a loop of playbacks,
leading to a "finished" signal, which removed the audio player from the tree
which led to a NOTIFICATION_EXIT_TREE,
which would mutate the array of playbacks while within the above loop.
This moves the signal callback outside of the loop which avoids the crash.
Note: previously, the signal was called multiple times if the same player finishes multiple times in one frame. Now it is at most once per frame.
Affects AudioStreamPlayer, AudioStreamPlayer2D and AudioStreamPlayer3D
|
|
Sets `AlignOperands` to `DontAlign`.
`clang-format` developers seem to mostly care about space-based indentation and
every other version of clang-format breaks the bad mismatch of tabs and spaces
that it seems to use for operand alignment. So it's better without, so that it
respects our two-tabs `ContinuationIndentWidth`.
|
|
Fix potential null pointer use, based on #54094 fix
|
|
|
|
Fix #54298 where a CharacterBody2D can be stuck on the wall.
|
|
|
|
|
|
|