Allow Area2D and 3D mouse events without a collision layer
Co-authored-by: Tomasz Chabora <kobewi4e@gmail.com>
This commit is contained in:
committed by
Marcel Admiraal
parent
c2a4ce9380
commit
15850687a8
@ -34,9 +34,9 @@
|
||||
#include "core/project_settings.h"
|
||||
#include "physics_server_sw.h"
|
||||
|
||||
_FORCE_INLINE_ static bool _can_collide_with(CollisionObjectSW *p_object, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas) {
|
||||
_FORCE_INLINE_ static bool _can_collide_with(CollisionObjectSW *p_object, uint32_t p_collision_mask, bool p_collide_with_bodies, bool p_collide_with_areas, bool p_ignore_layers = false) {
|
||||
|
||||
if (!(p_object->get_collision_layer() & p_collision_mask)) {
|
||||
if (!p_ignore_layers && !(p_object->get_collision_layer() & p_collision_mask)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -115,7 +115,7 @@ bool PhysicsDirectSpaceStateSW::intersect_ray(const Vector3 &p_from, const Vecto
|
||||
|
||||
for (int i = 0; i < amount; i++) {
|
||||
|
||||
if (!_can_collide_with(space->intersection_query_results[i], p_collision_mask, p_collide_with_bodies, p_collide_with_areas))
|
||||
if (!_can_collide_with(space->intersection_query_results[i], p_collision_mask, p_collide_with_bodies, p_collide_with_areas, p_pick_ray))
|
||||
continue;
|
||||
|
||||
if (p_pick_ray && !(space->intersection_query_results[i]->is_ray_pickable()))
|
||||
|
||||
Reference in New Issue
Block a user