summaryrefslogtreecommitdiff
path: root/scene/2d/collision_object_2d.cpp
AgeCommit message (Collapse)Author
2022-08-29Expose input interaction virtual functions in CollisionObjectrafallus
2022-08-22Replace Array return types with TypedArraykobewi
2022-08-18Add collision weight to PhysicsBody for penetrations must be avoidedSilc Renew
Co-authored-by: Juan Linietsky <reduzio@gmail.com>
2022-05-12Capitalize/fix some property enum hintsFireForge
2022-04-04Revert "Fix that collision objects ignore canvas transform"Markus Sauermann
This reverts commit 5521b93750977b3c283672f478360b866e8de202.
2022-03-31Fix that collision objects ignore canvas transformMarkus Sauermann
This aligns collision areas with visual areas within a viewport
2022-03-28String: Remove TTR and DTR defines in non-tools buildRémi Verschelde
This ensures we don't use TTR in runtime code, as it's specifically meant to source translations for the editor.
2022-02-12Improve compilation speed (forward declarations/includes cleanup)Hendrik Brucker
2022-01-25Store ObjectID instead of raw pointer for Shape OwnersHaoyu Qiu
2022-01-03Update copyright statements to 2022Rémi Verschelde
Happy new year to the wonderful Godot community!
2021-11-23Rename `remove()` to `remove_at()` when removing by indexLightning_A
2021-10-27Merge pull request #54157 from bjauny/fix_potential_nullpointer_collision3dCamille Mohr-Daurat
Fix potential null pointer use, based on #54094 fix
2021-10-27Fix potential null pointer use, based on #54094 fixBastien JAUNY
2021-10-21Change the unreacheable return value of shape_find_owner()Kemikal1
Update collision_object_3d.cpp 2d modified and UINT32 usage Proper uINT32max usage Change the unreacheable return value of shape_find_owner() This reverts commit 5be98b81428169ba2dd5baecd00f1adfd9260e5c, reversing changes made to efa3ff6b9587d674cd448aca32abfd31b2c7f4d3. Change the unreacheable return value of shape_find_owner() changed from 0 to uint32_max" This reverts commit c143bb099af2666454f82428a57f2721af60a84d. Revert "changed from 0 to uint32_max"" This reverts commit 59e94edb9a32edff15f3cb881e6fc394d2aa7f65. Revert "changed from 0 to uint32_max" This reverts commit c143bb099af2666454f82428a57f2721af60a84d. Revert "Revert "changed from 0 to uint32_max""" This reverts commit c81d1073ec21b4cde4684a6dbd595f3359283bad. Revert "changed from 0 to uint32_max" This reverts commit c143bb099af2666454f82428a57f2721af60a84d. Revert "changed from 0 to uint32_max"" This reverts commit 59e94edb9a32edff15f3cb881e6fc394d2aa7f65. Revert "Revert "changed from 0 to uint32_max""" This reverts commit 6dbd972aa5c4580d4f6270ead6c66eea18617f29. Revert "changed from 0 to uint32_max"" This reverts commit 59e94edb9a32edff15f3cb881e6fc394d2aa7f65. Revert "Revert "changed from 0 to uint32_max""" This reverts commit b769ac2d11ad12f02a388d9dad17519f81d9c3b6. Revert "Revert "Revert "changed from 0 to uint32_max"""" This reverts commit 1e8d84f7ec12da01c3153e08bb8609cf2c6fd58a. Revert "Revert "Revert "Revert "changed from 0 to uint32_max""""" This reverts commit 0dc17abefad6d540c18bba7b4df9d8c04e090d0c. Change the unreacheable return value of shape_find_owner()
2021-09-30Use range iterators for `Map`Lightning_A
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-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-07-16Merge pull request #47395 from sygi/shape_idx_collisionHugo Locurcio
Add shape_idx to CollisionObject2D mouse_entered signal
2021-07-02Add mouse_shape_entered and mouse_shape_exited signals to CollisionObject2D.sygi
Co-authored-by: Hugo Locurcio <hugo.locurcio@hugo.pro>
2021-06-30Add support for controlling physics nodes' behavior when disabledPouleyKetchoupp
New property disable_mode to set different behaviors: Remove: remove from physics simulation MakeStatic: change body mode to static (doesn't affect area and soft body) KeepActive: do nothing Extra change: Handle disable/enable node state with specific notifications, in order to differentiate global pause from disabled nodes.
2021-06-04KinematicBody split between new CharacterBody and PhysicsBodyPouleyKetchoupp
PhysicsBody now has methods move_and_collide/test_move and needed properties for these methods: safe margin, locked axes (3D only). Moved collision_exceptions from StaticBody to PhysicsBody for 3D (same as 2D, and conforms to documentation). RigidBody doesn't have test_motion method anymore, it's now redundant with PhysicsBody.test_move.
2021-04-30Prevent setting too big or too small Collision Mask and LayerRafał Mikrut
2021-04-20Move collision layer and mask into CollisionObject.Marcel Admiraal
2021-04-11Use Array for node configuration warningsNathan Franke
Previously, the warnings were passed as a string and delimitation of which were hard coded at each implementation.
2021-01-29Use real_t in physics nodesAaron Franke
2021-01-01Update copyright statements to 2021Rémi Verschelde
Happy new year to the wonderful Godot community! 2020 has been a tough year for most of us personally, but a good year for Godot development nonetheless with a huge amount of work done towards Godot 4.0 and great improvements backported to the long-lived 3.2 branch. We've had close to 400 contributors to engine code this year, authoring near 7,000 commit! (And that's only for the `master` branch and for the engine code, there's a lot more when counting docs, demos and other first-party repos.) Here's to a great year 2021 for all Godot users 🎆
2020-12-28Rename empty() to is_empty()Marcel Admiraal
2020-05-14Style: Enforce braces around if blocks and loopsRémi Verschelde
Using clang-tidy's `readability-braces-around-statements`. https://clang.llvm.org/extra/clang-tidy/checks/readability-braces-around-statements.html
2020-05-14Style: Enforce separation line between function definitionsRémi Verschelde
I couldn't find a tool that enforces it, so I went the manual route: ``` find -name "thirdparty" -prune \ -o -name "*.cpp" -o -name "*.h" -o -name "*.m" -o -name "*.mm" \ -o -name "*.glsl" > files perl -0777 -pi -e 's/\n}\n([^#])/\n}\n\n\1/g' $(cat files) misc/scripts/fix_style.sh -c ``` This adds a newline after all `}` on the first column, unless they are followed by `#` (typically `#endif`). This leads to having lots of places with two lines between function/class definitions, but clang-format then fixes it as we enforce max one line of separation. This doesn't fix potential occurrences of function definitions which are indented (e.g. for a helper class defined in a .cpp), but it's better than nothing. Also can't be made to run easily on CI/hooks so we'll have to be careful with new code. Part of #33027.
2020-05-14Style: clang-format: Disable KeepEmptyLinesAtTheStartOfBlocksRémi Verschelde
Which means that reduz' beloved style which we all became used to will now be changed automatically to remove the first empty line. This makes us lean closer to 1TBS (the one true brace style) instead of hybridating it with some Allman-inspired spacing. There's still the case of braces around single-statement blocks that needs to be addressed (but clang-format can't help with that, but clang-tidy may if we agree about it). Part of #33027.
2020-04-02Replace NULL with nullptrlupoDharkael
2020-03-27Renaming of servers for coherency.Juan Linietsky
VisualServer -> RenderingServer PhysicsServer -> PhysicsServer3D Physics2DServer -> PhysicsServer2D NavigationServer -> NavigationServer3D Navigation2DServer -> NavigationServer2D Also renamed corresponding files.
2020-02-12ObjectID converted to a structure, fixes many bugs where used incorrectly as ↵Juan Linietsky
32 bits.
2020-01-01Update copyright statements to 2020Rémi Verschelde
Happy new year to the wonderful Godot community! We're starting a new decade with a well-established, non-profit, free and open source game engine, and tons of further improvements in the pipeline from hundreds of contributors. Godot will keep getting better, and we're looking forward to all the games that the community will keep developing and releasing with it.
2019-09-23fix kinematicBody2D jitters when sync_to_physics is turned on, closes #28181RaphaelHunter
2019-08-30Remove some unneeded checks in CollisionObject(2D)Michael Alexsander Silva Dias
2019-07-09Improve the node configuration warning displayHugo Locurcio
- Refer to properties explicitly when possible - When multiple warnings are returned, always separate them by one blank line to make them easier to distinguish - Improve grammar and formatting
2019-06-27Allow ColisionObject2D to get shapes from tilemapsBojidar Marinov
Fixes #4454 and likely resolves #22285
2019-04-23Allow adding disabled shapesShyRed
Adds the ability to directly add disabled shapes to a collision object. Before this commit a shape has always been assumed to be enabled and had to be disabled in an extra step.
2019-04-05Fix -Wimplicit-fallthrough warnings from GCC 8Rémi Verschelde
Adds `FALLTHROUGH` macro to specify when a fallthrough is intentional. Can be replaced by `[[fallthrough]]` if/when we switch to C++17. The warning is now enabled by default for GCC on `extra` warnings level (part of GCC's `-Wextra`). It's not enabled in Clang's `-Wextra` yet, but we could enable it manually once we switch to C++11. There's no equivalent feature in MSVC for now. Fixes #26135.
2019-01-18-Re-added margins in one way collision (made in a more user friendly way ↵Juan Linietsky
than in Godot 2.1), fixes #23860 -Fixed potential bug in OWC (i dont think anyone had it but..)
2019-01-01Update copyright statements to 2019Rémi Verschelde
Happy new year to the wonderful Godot community!
2018-11-07Merge pull request #21386 from RandomShaper/fix-picking-in-canvas-layersJuan Linietsky
Fix picking in CanvasLayer
2018-09-01Improve ClassDB information for some some signal parametersKelly Thomas
2018-08-25Fix picking in CanvasLayerPedro J. Estébanez
New APIs in 2D physics allow intersection queries filtered by CanvasLayer object instance id. Viewport keep an inventory of its descendant CanvasLayers and takes advantage of all that to test picking with the mouse/touch position correctly transformed for each CanvasLayer.
2018-08-23Revert "Take CanvasLayer transform into account for 2D physics"Rémi Verschelde
This reverts commit 4839e5f6d9ed1c0afee933009ab44b9913310d27. Fixes #21289.
2018-08-21Take CanvasLayer transform into account for 2D physicsPedro J. Estébanez
Fixes #18073.
2018-07-26Reduce unnecessary COW on Vector by make writing explicitHein-Pieter van Braam
This commit makes operator[] on Vector const and adds a write proxy to it. From now on writes to Vectors need to happen through the .write proxy. So for instance: Vector<int> vec; vec.push_back(10); std::cout << vec[0] << std::endl; vec.write[0] = 20; Failing to use the .write proxy will cause a compilation error. In addition COWable datatypes can now embed a CowData pointer to their data. This means that String, CharString, and VMap no longer use or derive from Vector. _ALWAYS_INLINE_ and _FORCE_INLINE_ are now equivalent for debug and non-debug builds. This is a lot faster for Vector in the editor and while running tests. The reason why this difference used to exist is because force-inlined methods used to give a bad debugging experience. After extensive testing with modern compilers this is no longer the case.
2018-07-17Further fixes to KinematicBody2D API, support for sync motion in moving objectsJuan Linietsky
2018-02-19Improve CollisionObject/CollisionObject2D warning messageChris Bradfield