summaryrefslogtreecommitdiff
path: root/scene/2d
AgeCommit message (Collapse)Author
2021-09-06Proper support for custom mass properties in 2D/3D physics bodiesPouleyKetchoupp
Changes: -Added support for custom inertia and center of mass in 3D -Added support for custom center of mass in 2D -Calculated center of mass from shapes in 2D (same as in 3D) -Fixed mass properties calculation with disabled shapes in 2D/3D -Removed first_integration which is not used in 2D and doesn't seem to make a lot of sense (prevents omit_force_integration to work during the first frame) -Support for custom inertia on different axes for RigidBody3D
2021-09-06Merge pull request #52286 from nekomatata/restore-kinematic-bodyCamille Mohr-Daurat
Add AnimatableBody inherited from StaticBody for moving platforms
2021-09-06Fix crash in TileMap physicsGilles Roudière
2021-08-31Add AnimatableBody inherited from StaticBody for moving platformsPouleyKetchoupp
Instead of having a physics node named Static that can be either Static or Kinematic, AnimatableBody is added again as a separate node: -Inherited from StaticBody to make its usage clearer -Still separated from CharacterBody to make its usage more focused Properly implemented constant velocity for kinematic bodies in godot physics servers (induced velocity without actually moving). Also updated description for the different physics nodes to make their usage clearer.
2021-08-31Merge pull request #49471 from nekomatata/body-state-sync-callbackJuan Linietsky
Clean physics direct body state usage in 2D and 3D physics
2021-08-31Merge pull request #52279 from fabriceci/delta-doubleCamille Mohr-Daurat
Change delta type to double in Physics_body_2/3D
2021-08-31delta time as doublefabriceci
2021-08-31Change platform detection by allowing select layers by type (wall or floor)fabriceci
2021-08-29Revert "Display a matrix for Node2D and don't display a duplicate origin"Juan Linietsky
2021-08-29Display a matrix for Node2D and don't display a duplicate originAaron Franke
2021-08-27Merge pull request #51296 from ellenhp/mix_in_audio_serverJuan Linietsky
Move mixing out of the AudioStreamPlayback* nodes
2021-08-27Merge pull request #52135 from fabriceci/fix-transmission-velocity-on-wall-4Camille Mohr-Daurat
Remove velocity transmission on_wall when collider is CharacterBody.
2021-08-27Do all audio mixing in the AudioServerEllen Poe
2021-08-26Remove velocity transmission on_wall when collider is CharacterBody.fabriceci
2021-08-25Clean physics direct body state usage in 2D and 3D physicsPouleyKetchoupp
Use a C++ callback instead of Callable for synchronizing physics nodes' state with physics servers. Remove usage of PhysicsDirectBodyState in physics nodes when not necessary. Store PhysicsDirectBodyState for bodies individually instead of a singleton to avoid issues when accessing direct body state for multiple bodies. PhysicsDirectBodyState is initialized only when needed, so it doesn't have to be created when using the physics server directly. Move PhysicsDirectBodyState2D and PhysicsDirectBodyState3D to separate cpp files.
2021-08-24Fix CharacterBody motion with RayShapePouleyKetchoupp
Make separation ray shapes work properly in move_and_slide, wihtout the specific code in CharacterBody like before. Now most of the logic is handled inside the physics server. The only thing that's needed is to use ray shapes only for recovery and ignore them when performing the motion itself (unless we're snapping or slips on slope is on).
2021-08-23Implement NativeExtension pointer argumentsreduz
* Allows calling into native extensions directly with a pointer * Makes it easier to implement some APIs more efficiently * Appears with a "*" in the documentation for the argument. * Implementing the pointer handling is entirely up to the implementation, although the extension API provides some hint. * AudioStream has been implemented as an example, allowing to create NativeExtension based AudioStreams.
2021-08-23Merge pull request #51259 from nekomatata/fix-tilemap-one-way-collisionHugo Locurcio
Fix one-way collision in Tilemap
2021-08-23Entirely removes BIND_VMETHOD in favor of GDVIRTUALreduz
* `_gui_input`, `_input`, `_unhandled_input` and `_unhandled_key_input` are now regular C++ virutal functions. * Everything else converted to GDVIRTUAL * BIND_VMETHOD is gone, always use the new syntax from now on. Creating `_gui_input` method and using the binder to register events will no longer work, simply override the virtual function now.
2021-08-22moved particle parameters to minmax and split scale axisQbieShay
This commit adds quite a chunk of modifications to particles - particle (value + randomness) now use min and max instead - passing a curveXYZtexture is now possible and will scale particles per-axis - CPUParticle3D have an optional parameter to split the scale curve per-axis
2021-08-22Replace BIND_VMETHOD by new GDVIRTUAL syntaxreduz
* New syntax is type safe. * New syntax allows for type safe virtuals in native extensions. * New syntax permits extremely fast calling. Note: Everything was replaced where possible except for `_gui_input` `_input` and `_unhandled_input`. These will require API rework on a separate PR as they work different than the rest of the functions. Added a new method flag METHOD_FLAG_OBJECT_CORE, used internally. Allows to not dump the core virtuals like `_notification` to the json API, since each language will implement those as it is best fits.
2021-08-20add motion mode to handle TPSfabriceci
2021-08-19Merge pull request #51881 from KoBeWi/zz__iinnddeexxRémi Verschelde
Fix z_index applied twice for TileMap layers
2021-08-19fixed camera2d's "current" property getting reset when switching scenesThreeRhinosInAnElephantCostume
2021-08-19Fix z_index applied twice for TileMap layerskobewi
2021-08-16Correct jitter and clean codefabriceci
2021-08-15API improvement on physics, mainly CharacterBodyfabriceci
Changes: - Rename few methods/property and group them in the editor when it's possible - Make MotionResult API consistency with KinematicCollision - Return a boolean in move_and_slide if there was a collision - New methods: - get_floor_angle on CharacterBody to get the floor angle. - get_angle on KinematicCollision to get the collision angle. - get_last_slide_collision to quickly get the latest collision of move_and_slide.
2021-08-14Use get_global_* functions instead of using transforms.Anilforextra
2021-08-13Fix some unnecessary includesAaron Franke
2021-08-12Use real_t and double where appropriate in ParticlesAaron Franke
2021-08-12Merge pull request #51532 from nekomatata/layer-mask-accessorsRémi Verschelde
Uniformize layer names, script methods and documentation
2021-08-12Uniformize layer names, script methods and documentationPouleyKetchoupp
- Back to 1-based layer names to make it clearer in editor UI - Layer bit accessors are renamed to layer value and 1-based too - Uniform errors and documentation in render and physics - Fix a few remaining collision_layer used in place of collision_mask
2021-08-12Merge pull request #51568 from AnilBK/remove-swapRémi Verschelde
Remove unused swap template.
2021-08-12Merge pull request #50363 from JestemStefan/node2D_zero_scale_det_errorRémi Verschelde
Limit scale of `Node2D` to EPSILON (0.00001) to prevent `det==0` error
2021-08-12Remove unused swap template.Anilforextra
2021-08-10Remove infinite inertia and ray shapes from CharacterBodyPouleyKetchoupp
Infinite inertia: Not needed anymore, since it's now possible to set one-directional collision layers in order for characters to ignore rigid bodies, while rigid bodies still collide with characters. Ray shapes: They were introduced as a work around to allow constant speed on slopes, which is now possible with the new property in CharacterBody instead.
2021-08-10Add properties to CharacterBody for more move_and_slide optionsfabriceci
2021-08-10Merge pull request #51457 from nekomatata/moving-platforms-3dRémi Verschelde
Fix 3D moving platform logic
2021-08-09Fix 3D moving platform logicPouleyKetchoupp
Same thing that was already done in 2D, applies moving platform motion by using a call to move_and_collide that excludes the platform itself, instead of making it part of the body motion. Helps with handling walls and slopes correctly when the character walks on the moving platform. Also made some minor adjustments to the 2D version and documentation. Co-authored-by: fabriceci <fabricecipolla@gmail.com>
2021-08-09Some work on double supportAaron Franke
2021-08-09Merge pull request #51446 from nekomatata/fix-moving-platform-rotationRémi Verschelde
Fix applied rotation from moving platforms in move_and_slide
2021-08-09Fix applied rotation from moving platforms in move_and_slidePouleyKetchoupp
When synchronizing CharacterBody motion with moving the platform using direct body state, only the linear velocity was taken into account. This change exposes velocity at local point in direct body state and uses it in move_and_slide to get the proper velocity that includes rotations.
2021-08-09Use doubles for time in many other placesAaron Franke
2021-08-05Fix one-way collision in TilemapPouleyKetchoupp
In a given quadrant there can be one or more bodies used, and the process iterated over cells to add the shapes, so the shape index doesn't necessarily correspond to the polygon shape index. Instead body shape indices need to be tracked separately.
2021-08-05Fix get_used_rect() calculationkobewi
2021-08-03Fix inverted condition in CharacterBody2D/3D set_max_slidesPouleyKetchoupp
2021-08-02Implements TileMap layers and move TileSetPlugins's functions to the TileMap ↵Gilles Roudière
node instead
2021-07-30Merge pull request #50935 from Vitika9/50807Rémi Verschelde
2021-07-27Merge pull request #50905 from fabriceci/fix-multiple-direction-collisionRémi Verschelde
Allow multiple collision direction at the same time
2021-07-27Fixed Camera2D's reset_smoothing() does not work as describedvitika9