summaryrefslogtreecommitdiff
path: root/scene/3d
AgeCommit message (Collapse)Author
2021-12-10Improve RigidDynamicBody force and torque APIPouleyKetchoupp
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.
2021-12-10VehicleWheel can now return the surface it's colliding with.Steve Szilágyi
Fixed PR issues. Update vehicle_body_3d.cpp Apply suggestions from code review Co-authored-by: Camille Mohr-Daurat <pouleyKetchoup@gmail.com>
2021-12-10Merge pull request #55263 from RPicster/ParticleMaterial-random-start-colorRémi Verschelde
2021-12-10Merge pull request #55572 from aaronfranke/ci-doubleRémi Verschelde
2021-12-09Add a double-precision editor build to CIAaron Franke
2021-12-09Replace String comparisons with "", String() to is_empty()Nathan Franke
Also: - Adds two stress tests to test_string.h - Changes to .empty() on std::strings
2021-12-08Fix _validate_property on AnimatedSprite 2D and 3DJonathan Gollnick
2021-12-08Rename GPUParticles attractor and collision nodes to have a 3D suffixHugo Locurcio
GPUParticles attractors and collision are currently only available in 3D. Their 2D counterparts haven't been implemented yet, but they will use separate nodes.
2021-12-06Remove ProximityGroup3D nodekobewi
2021-12-06Merge pull request #55544 from V-Sekai/audio_camera_null_mitigationRémi Verschelde
2021-12-03Fix WorldEnvironment node warning about unset resourcesPedro J. Estébanez
2021-12-03Random initial color parameter for ParticleMaterialRaffaele Picca
Works with 2D and 3D GPU Particles
2021-12-02Merge pull request #55474 from akien-mga/copy-operators-no-referenceRémi Verschelde
2021-12-02Merge pull request #53287 from Chaosus/sprite3d_fixRémi Verschelde
2021-11-30Don't return reference on copy assignment operatorsRémi Verschelde
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).
2021-11-26Fixed texture animation speed when using random lifetime ( Particle2D gpu + ↵Raffaele Picca
cpu) as mentioned here: https://github.com/godotengine/godot/issues/54993
2021-11-23Rename `remove()` to `remove_at()` when removing by indexLightning_A
2021-11-23Fix horizontal velocity being always reset when the body hit a wall in 3dfabriceci
2021-11-22Merge pull request #55202 from fabriceci/fix-wall-acceleration-in-3dCamille Mohr-Daurat
Fix wall acceleration in move and slide (3D)
2021-11-22Fix body stuck in some 3d advanced scenariofabriceci
2021-11-21Fix wall acceleration in move and slide (3D)fabriceci
2021-11-18Remove outdated comments related to the 20-layer editor limitationHugo Locurcio
All 32 layers are now exposed in the editor.
2021-11-16Rename built-in `SGN()` macro to `SIGN()`Hugo Locurcio
This matches the name of the GDScript function (except it's uppercase here).
2021-11-11Merge pull request #54810 from nekomatata/area-separate-override-modesCamille Mohr-Daurat
Separate space override modes for gravity/damping in Area
2021-11-10Add raycast options to hit when starting inside / hit back facesPouleyKetchoupp
Makes the results consistent for all shape types with options to set the desired behavior.
2021-11-10Merge pull request #54847 from nekomatata/fix-test-move-regressionRémi Verschelde
2021-11-10Fix test_move reporting collision when touching another bodyPouleyKetchoupp
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.
2021-11-10Fix errors in CharacterBody when floor is destroyed or removedPouleyKetchoupp
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.
2021-11-09Separate space override modes for gravity/damping in AreaPouleyKetchoupp
Also make inspector clearer for gravity point properties.
2021-11-07Rename `GradientTexture` to `GradientTexture1D`Andrii Doroshenko (Xrayez)
1. Explicit and unambiguous when comparing to `GradientTexture2D` 2. Consistent with other class names where 1D is used in the engine.
2021-11-05Merge pull request #54573 from nekomatata/query-parametersRémi Verschelde
2021-11-04Use parameter classes instead of arguments for all physics queriesPouleyKetchoupp
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.
2021-11-03Rename `PROPERTY_USAGE_NOEDITOR` to `PROPERTY_USAGE_NO_EDITOR`Hugo Locurcio
This is consistent with other constants that include `NO`, such as `PROPERTY_HINT_COLOR_NO_ALPHA`.
2021-11-03Merge pull request #54072 from KoBeWi/hrcr_is_dedRémi Verschelde
2021-11-03Merge pull request #54104 from Scony/improve-navigation-obstaclesRémi Verschelde
Improve NavigationObstacle3D usability
2021-11-02Merge pull request #54471 from rafallus/callable_area_monitorRémi Verschelde
2021-11-01Validate fog volume propertiesclayjohn
2021-11-01Use `Callable` in Area monitor callbackrafallus
2021-11-01Merge pull request #37880 from nekomatata/rigid-body-damping-overrideCamille Mohr-Daurat
Improved RigidDynamicBody linear/angular damping override
2021-10-30Rename GLES2 driver to OpenGL to prepare for the upgrade to GLES3Hugo Locurcio
- Use lowercase driver names for the `--rendering-driver` command line argument.
2021-10-29Fix crashing of `FogVolume`s when `WorldEnvironment` was addedYuri Roubinsky
2021-10-29Merge pull request #53353 from clayjohn/VULKAN-fog-volumesRémi Verschelde
FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFog
2021-10-28Addition of FogVolumes, FogShaders, FogMaterial, and overhaul of VolumetricFogclayjohn
Co-authored-by: Brian Semrau <brian.semrau@gmail.com>
2021-10-28Fix crash due to reentrancy in AudioStreamPlayer* finished signal.Lyuma
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
2021-10-28Merge pull request #54350 from akien-mga/clang-format-dont-align-operandsRémi Verschelde
2021-10-28Merge pull request #54222 from JFonS/instance-fadeRémi Verschelde
2021-10-28clang-format: Enable `BreakBeforeTernaryOperators`Rémi Verschelde
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.
2021-10-28clang-format: Various fixes to comments alignment from `clang-format` 13Rémi Verschelde
All reviewed manually and occasionally rewritten to avoid bad auto formatting.
2021-10-28clang-format: Disable alignment of operands, too unreliableRémi Verschelde
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`.
2021-10-28Remove node_hrcr hackkobewi