Age | Commit message (Collapse) | Author |
|
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.
|
|
Fixed PR issues.
Update vehicle_body_3d.cpp
Apply suggestions from code review
Co-authored-by: Camille Mohr-Daurat <pouleyKetchoup@gmail.com>
|
|
|
|
|
|
|
|
Also:
- Adds two stress tests to test_string.h
- Changes to .empty() on std::strings
|
|
|
|
GPUParticles attractors and collision are currently only available in 3D.
Their 2D counterparts haven't been implemented yet, but they will use
separate nodes.
|
|
|
|
|
|
|
|
Works with 2D and 3D GPU Particles
|
|
|
|
|
|
We prefer to prevent using chained assignment (`T a = b = c = T();`) as this
can lead to confusing code and subtle bugs.
According to https://en.wikipedia.org/wiki/Assignment_operator_(C%2B%2B), C++
allows any arbitrary return type, so this is standard compliant.
This could be re-assessed if/when we have an actual need for a behavior more
akin to that of the C++ STL, for now this PR simply changes a handful of
cases which were inconsistent with the rest of the codebase (`void` return
type was already the most common case prior to this commit).
|
|
cpu) as mentioned here: https://github.com/godotengine/godot/issues/54993
|
|
|
|
|
|
Fix wall acceleration in move and slide (3D)
|
|
|
|
|
|
All 32 layers are now exposed in the editor.
|
|
This matches the name of the GDScript function (except it's uppercase
here).
|
|
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`.
|
|
|
|
Improve NavigationObstacle3D usability
|
|
|
|
|
|
|
|
Improved RigidDynamicBody linear/angular damping override
|
|
- Use lowercase driver names for the `--rendering-driver`
command line argument.
|
|
|
|
FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFog
|
|
Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
|
|
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
|
|
|
|
|
|
clang-format keeps breaking the way it handles break *after* ternary operators,
so I give up and go with the only style they seem to actually test.
|
|
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
|
|
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`.
|
|
|