Merge pull request #9165 from Noshyaar/pr-area
Refactor layer_mask to collision_layer
This commit is contained in:
commit
bccee07ae7
|
@ -501,15 +501,15 @@ uint32_t Area2D::get_collision_mask() const {
|
|||
return collision_mask;
|
||||
}
|
||||
|
||||
void Area2D::set_layer_mask(uint32_t p_mask) {
|
||||
void Area2D::set_collision_layer(uint32_t p_layer) {
|
||||
|
||||
layer_mask = p_mask;
|
||||
Physics2DServer::get_singleton()->area_set_layer_mask(get_rid(), p_mask);
|
||||
collision_layer = p_layer;
|
||||
Physics2DServer::get_singleton()->area_set_collision_layer(get_rid(), p_layer);
|
||||
}
|
||||
|
||||
uint32_t Area2D::get_layer_mask() const {
|
||||
uint32_t Area2D::get_collision_layer() const {
|
||||
|
||||
return layer_mask;
|
||||
return collision_layer;
|
||||
}
|
||||
|
||||
void Area2D::set_collision_mask_bit(int p_bit, bool p_value) {
|
||||
|
@ -527,19 +527,19 @@ bool Area2D::get_collision_mask_bit(int p_bit) const {
|
|||
return get_collision_mask() & (1 << p_bit);
|
||||
}
|
||||
|
||||
void Area2D::set_layer_mask_bit(int p_bit, bool p_value) {
|
||||
void Area2D::set_collision_layer_bit(int p_bit, bool p_value) {
|
||||
|
||||
uint32_t mask = get_layer_mask();
|
||||
uint32_t layer = get_collision_layer();
|
||||
if (p_value)
|
||||
mask |= 1 << p_bit;
|
||||
layer |= 1 << p_bit;
|
||||
else
|
||||
mask &= ~(1 << p_bit);
|
||||
set_layer_mask(mask);
|
||||
layer &= ~(1 << p_bit);
|
||||
set_collision_layer(layer);
|
||||
}
|
||||
|
||||
bool Area2D::get_layer_mask_bit(int p_bit) const {
|
||||
bool Area2D::get_collision_layer_bit(int p_bit) const {
|
||||
|
||||
return get_layer_mask() & (1 << p_bit);
|
||||
return get_collision_layer() & (1 << p_bit);
|
||||
}
|
||||
|
||||
void Area2D::_bind_methods() {
|
||||
|
@ -577,14 +577,14 @@ void Area2D::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("set_collision_mask", "collision_mask"), &Area2D::set_collision_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_mask"), &Area2D::get_collision_mask);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_layer_mask", "layer_mask"), &Area2D::set_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_layer_mask"), &Area2D::get_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("set_collision_layer", "collision_layer"), &Area2D::set_collision_layer);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_layer"), &Area2D::get_collision_layer);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_collision_mask_bit", "bit", "value"), &Area2D::set_collision_mask_bit);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_mask_bit", "bit"), &Area2D::get_collision_mask_bit);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_layer_mask_bit", "bit", "value"), &Area2D::set_layer_mask_bit);
|
||||
ClassDB::bind_method(D_METHOD("get_layer_mask_bit", "bit"), &Area2D::get_layer_mask_bit);
|
||||
ClassDB::bind_method(D_METHOD("set_collision_layer_bit", "bit", "value"), &Area2D::set_collision_layer_bit);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_layer_bit", "bit"), &Area2D::get_collision_layer_bit);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_monitoring", "enable"), &Area2D::set_monitoring);
|
||||
ClassDB::bind_method(D_METHOD("is_monitoring"), &Area2D::is_monitoring);
|
||||
|
@ -622,7 +622,7 @@ void Area2D::_bind_methods() {
|
|||
ADD_PROPERTYNO(PropertyInfo(Variant::BOOL, "monitoring"), "set_monitoring", "is_monitoring");
|
||||
ADD_PROPERTYNO(PropertyInfo(Variant::BOOL, "monitorable"), "set_monitorable", "is_monitorable");
|
||||
ADD_GROUP("Collision", "collision_");
|
||||
ADD_PROPERTYNO(PropertyInfo(Variant::INT, "collision_layers", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_layer_mask", "get_layer_mask");
|
||||
ADD_PROPERTYNO(PropertyInfo(Variant::INT, "collision_layer", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_collision_layer", "get_collision_layer");
|
||||
ADD_PROPERTYNO(PropertyInfo(Variant::INT, "collision_mask", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_collision_mask", "get_collision_mask");
|
||||
}
|
||||
|
||||
|
@ -641,7 +641,7 @@ Area2D::Area2D()
|
|||
monitoring = false;
|
||||
monitorable = false;
|
||||
collision_mask = 1;
|
||||
layer_mask = 1;
|
||||
collision_layer = 1;
|
||||
set_monitoring(true);
|
||||
set_monitorable(true);
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ private:
|
|||
real_t linear_damp;
|
||||
real_t angular_damp;
|
||||
uint32_t collision_mask;
|
||||
uint32_t layer_mask;
|
||||
uint32_t collision_layer;
|
||||
int priority;
|
||||
bool monitoring;
|
||||
bool monitorable;
|
||||
|
@ -164,14 +164,14 @@ public:
|
|||
void set_collision_mask(uint32_t p_mask);
|
||||
uint32_t get_collision_mask() const;
|
||||
|
||||
void set_layer_mask(uint32_t p_mask);
|
||||
uint32_t get_layer_mask() const;
|
||||
void set_collision_layer(uint32_t p_layer);
|
||||
uint32_t get_collision_layer() const;
|
||||
|
||||
void set_collision_mask_bit(int p_bit, bool p_value);
|
||||
bool get_collision_mask_bit(int p_bit) const;
|
||||
|
||||
void set_layer_mask_bit(int p_bit, bool p_value);
|
||||
bool get_layer_mask_bit(int p_bit) const;
|
||||
void set_collision_layer_bit(int p_bit, bool p_value);
|
||||
bool get_collision_layer_bit(int p_bit) const;
|
||||
|
||||
Array get_overlapping_bodies() const; //function for script
|
||||
Array get_overlapping_areas() const; //function for script
|
||||
|
|
|
@ -79,7 +79,7 @@ uint32_t PhysicsBody2D::_get_layers() const {
|
|||
|
||||
void PhysicsBody2D::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_collision_layer", "mask"), &PhysicsBody2D::set_collision_layer);
|
||||
ClassDB::bind_method(D_METHOD("set_collision_layer", "layer"), &PhysicsBody2D::set_collision_layer);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_layer"), &PhysicsBody2D::get_collision_layer);
|
||||
ClassDB::bind_method(D_METHOD("set_collision_mask", "mask"), &PhysicsBody2D::set_collision_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_mask"), &PhysicsBody2D::get_collision_mask);
|
||||
|
@ -108,15 +108,15 @@ void PhysicsBody2D::_bind_methods() {
|
|||
ADD_PROPERTYNZ(PropertyInfo(Variant::REAL, "one_way_collision/max_depth"), "set_one_way_collision_max_depth", "get_one_way_collision_max_depth");
|
||||
}
|
||||
|
||||
void PhysicsBody2D::set_collision_layer(uint32_t p_mask) {
|
||||
void PhysicsBody2D::set_collision_layer(uint32_t p_layer) {
|
||||
|
||||
mask = p_mask;
|
||||
Physics2DServer::get_singleton()->body_set_layer_mask(get_rid(), p_mask);
|
||||
collision_layer = p_layer;
|
||||
Physics2DServer::get_singleton()->body_set_collision_layer(get_rid(), p_layer);
|
||||
}
|
||||
|
||||
uint32_t PhysicsBody2D::get_collision_layer() const {
|
||||
|
||||
return mask;
|
||||
return collision_layer;
|
||||
}
|
||||
|
||||
void PhysicsBody2D::set_collision_mask(uint32_t p_mask) {
|
||||
|
@ -146,12 +146,12 @@ bool PhysicsBody2D::get_collision_mask_bit(int p_bit) const {
|
|||
|
||||
void PhysicsBody2D::set_collision_layer_bit(int p_bit, bool p_value) {
|
||||
|
||||
uint32_t mask = get_collision_layer();
|
||||
uint32_t collision_layer = get_collision_layer();
|
||||
if (p_value)
|
||||
mask |= 1 << p_bit;
|
||||
collision_layer |= 1 << p_bit;
|
||||
else
|
||||
mask &= ~(1 << p_bit);
|
||||
set_collision_layer(mask);
|
||||
collision_layer &= ~(1 << p_bit);
|
||||
set_collision_layer(collision_layer);
|
||||
}
|
||||
|
||||
bool PhysicsBody2D::get_collision_layer_bit(int p_bit) const {
|
||||
|
@ -162,7 +162,7 @@ bool PhysicsBody2D::get_collision_layer_bit(int p_bit) const {
|
|||
PhysicsBody2D::PhysicsBody2D(Physics2DServer::BodyMode p_mode)
|
||||
: CollisionObject2D(Physics2DServer::get_singleton()->body_create(p_mode), false) {
|
||||
|
||||
mask = 1;
|
||||
collision_layer = 1;
|
||||
collision_mask = 1;
|
||||
set_one_way_collision_max_depth(0);
|
||||
set_pickable(false);
|
||||
|
|
|
@ -38,7 +38,7 @@ class PhysicsBody2D : public CollisionObject2D {
|
|||
|
||||
GDCLASS(PhysicsBody2D, CollisionObject2D);
|
||||
|
||||
uint32_t mask;
|
||||
uint32_t collision_layer;
|
||||
uint32_t collision_mask;
|
||||
Vector2 one_way_collision_direction;
|
||||
float one_way_collision_max_depth;
|
||||
|
@ -53,7 +53,7 @@ protected:
|
|||
static void _bind_methods();
|
||||
|
||||
public:
|
||||
void set_collision_layer(uint32_t p_mask);
|
||||
void set_collision_layer(uint32_t p_layer);
|
||||
uint32_t get_collision_layer() const;
|
||||
|
||||
void set_collision_mask(uint32_t p_mask);
|
||||
|
|
|
@ -44,14 +44,14 @@ Vector2 RayCast2D::get_cast_to() const {
|
|||
return cast_to;
|
||||
}
|
||||
|
||||
void RayCast2D::set_layer_mask(uint32_t p_mask) {
|
||||
void RayCast2D::set_collision_layer(uint32_t p_layer) {
|
||||
|
||||
layer_mask = p_mask;
|
||||
collision_layer = p_layer;
|
||||
}
|
||||
|
||||
uint32_t RayCast2D::get_layer_mask() const {
|
||||
uint32_t RayCast2D::get_collision_layer() const {
|
||||
|
||||
return layer_mask;
|
||||
return collision_layer;
|
||||
}
|
||||
|
||||
void RayCast2D::set_type_mask(uint32_t p_mask) {
|
||||
|
@ -201,7 +201,7 @@ void RayCast2D::_update_raycast_state() {
|
|||
|
||||
Physics2DDirectSpaceState::RayResult rr;
|
||||
|
||||
if (dss->intersect_ray(gt.get_origin(), gt.xform(to), rr, exclude, layer_mask, type_mask)) {
|
||||
if (dss->intersect_ray(gt.get_origin(), gt.xform(to), rr, exclude, collision_layer, type_mask)) {
|
||||
|
||||
collided = true;
|
||||
against = rr.collider_id;
|
||||
|
@ -274,8 +274,8 @@ void RayCast2D::_bind_methods() {
|
|||
|
||||
ClassDB::bind_method(D_METHOD("clear_exceptions"), &RayCast2D::clear_exceptions);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_layer_mask", "mask"), &RayCast2D::set_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_layer_mask"), &RayCast2D::get_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("set_collision_layer", "layer"), &RayCast2D::set_collision_layer);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_layer"), &RayCast2D::get_collision_layer);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_type_mask", "mask"), &RayCast2D::set_type_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_type_mask"), &RayCast2D::get_type_mask);
|
||||
|
@ -286,7 +286,7 @@ void RayCast2D::_bind_methods() {
|
|||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "enabled"), "set_enabled", "is_enabled");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "exclude_parent"), "set_exclude_parent_body", "get_exclude_parent_body");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::VECTOR2, "cast_to"), "set_cast_to", "get_cast_to");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "layer_mask", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_layer_mask", "get_layer_mask");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "collision_layer", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_collision_layer", "get_collision_layer");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "type_mask", PROPERTY_HINT_FLAGS, "Static,Kinematic,Rigid,Character,Area"), "set_type_mask", "get_type_mask");
|
||||
}
|
||||
|
||||
|
@ -296,7 +296,7 @@ RayCast2D::RayCast2D() {
|
|||
against = 0;
|
||||
collided = false;
|
||||
against_shape = 0;
|
||||
layer_mask = 1;
|
||||
collision_layer = 1;
|
||||
type_mask = Physics2DDirectSpaceState::TYPE_MASK_COLLISION;
|
||||
cast_to = Vector2(0, 50);
|
||||
exclude_parent_body = true;
|
||||
|
|
|
@ -43,7 +43,7 @@ class RayCast2D : public Node2D {
|
|||
Vector2 collision_point;
|
||||
Vector2 collision_normal;
|
||||
Set<RID> exclude;
|
||||
uint32_t layer_mask;
|
||||
uint32_t collision_layer;
|
||||
uint32_t type_mask;
|
||||
bool exclude_parent_body;
|
||||
|
||||
|
@ -61,8 +61,8 @@ public:
|
|||
void set_cast_to(const Vector2 &p_point);
|
||||
Vector2 get_cast_to() const;
|
||||
|
||||
void set_layer_mask(uint32_t p_mask);
|
||||
uint32_t get_layer_mask() const;
|
||||
void set_collision_layer(uint32_t p_layer);
|
||||
uint32_t get_collision_layer() const;
|
||||
|
||||
void set_type_mask(uint32_t p_mask);
|
||||
uint32_t get_type_mask() const;
|
||||
|
|
|
@ -587,7 +587,7 @@ Map<TileMap::PosKey, TileMap::Quadrant>::Element *TileMap::_create_quadrant(cons
|
|||
//q.canvas_item = VisualServer::get_singleton()->canvas_item_create();
|
||||
q.body = Physics2DServer::get_singleton()->body_create(use_kinematic ? Physics2DServer::BODY_MODE_KINEMATIC : Physics2DServer::BODY_MODE_STATIC);
|
||||
Physics2DServer::get_singleton()->body_attach_object_instance_ID(q.body, get_instance_ID());
|
||||
Physics2DServer::get_singleton()->body_set_layer_mask(q.body, collision_layer);
|
||||
Physics2DServer::get_singleton()->body_set_collision_layer(q.body, collision_layer);
|
||||
Physics2DServer::get_singleton()->body_set_collision_mask(q.body, collision_mask);
|
||||
Physics2DServer::get_singleton()->body_set_param(q.body, Physics2DServer::BODY_PARAM_FRICTION, friction);
|
||||
Physics2DServer::get_singleton()->body_set_param(q.body, Physics2DServer::BODY_PARAM_BOUNCE, bounce);
|
||||
|
@ -863,7 +863,7 @@ void TileMap::set_collision_layer(uint32_t p_layer) {
|
|||
for (Map<PosKey, Quadrant>::Element *E = quadrant_map.front(); E; E = E->next()) {
|
||||
|
||||
Quadrant &q = E->get();
|
||||
Physics2DServer::get_singleton()->body_set_layer_mask(q.body, collision_layer);
|
||||
Physics2DServer::get_singleton()->body_set_collision_layer(q.body, collision_layer);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1286,7 +1286,7 @@ void TileMap::_bind_methods() {
|
|||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "collision_use_kinematic", PROPERTY_HINT_NONE, ""), "set_collision_use_kinematic", "get_collision_use_kinematic");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "collision_friction", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_collision_friction", "get_collision_friction");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::REAL, "collision_bounce", PROPERTY_HINT_RANGE, "0,1,0.01"), "set_collision_bounce", "get_collision_bounce");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "collision_layers", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_collision_layer", "get_collision_layer");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "collision_layer", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_collision_layer", "get_collision_layer");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "collision_mask", PROPERTY_HINT_LAYERS_2D_PHYSICS), "set_collision_mask", "get_collision_mask");
|
||||
|
||||
ADD_GROUP("Occluder", "occluder_");
|
||||
|
|
|
@ -489,15 +489,15 @@ uint32_t Area::get_collision_mask() const {
|
|||
|
||||
return collision_mask;
|
||||
}
|
||||
void Area::set_layer_mask(uint32_t p_mask) {
|
||||
void Area::set_collision_layer(uint32_t p_layer) {
|
||||
|
||||
layer_mask = p_mask;
|
||||
PhysicsServer::get_singleton()->area_set_layer_mask(get_rid(), p_mask);
|
||||
collision_layer = p_layer;
|
||||
PhysicsServer::get_singleton()->area_set_collision_layer(get_rid(), p_layer);
|
||||
}
|
||||
|
||||
uint32_t Area::get_layer_mask() const {
|
||||
uint32_t Area::get_collision_layer() const {
|
||||
|
||||
return layer_mask;
|
||||
return collision_layer;
|
||||
}
|
||||
|
||||
void Area::set_collision_mask_bit(int p_bit, bool p_value) {
|
||||
|
@ -515,19 +515,19 @@ bool Area::get_collision_mask_bit(int p_bit) const {
|
|||
return get_collision_mask() & (1 << p_bit);
|
||||
}
|
||||
|
||||
void Area::set_layer_mask_bit(int p_bit, bool p_value) {
|
||||
void Area::set_collision_layer_bit(int p_bit, bool p_value) {
|
||||
|
||||
uint32_t mask = get_layer_mask();
|
||||
uint32_t layer = get_collision_layer();
|
||||
if (p_value)
|
||||
mask |= 1 << p_bit;
|
||||
layer |= 1 << p_bit;
|
||||
else
|
||||
mask &= ~(1 << p_bit);
|
||||
set_layer_mask(mask);
|
||||
layer &= ~(1 << p_bit);
|
||||
set_collision_layer(layer);
|
||||
}
|
||||
|
||||
bool Area::get_layer_mask_bit(int p_bit) const {
|
||||
bool Area::get_collision_layer_bit(int p_bit) const {
|
||||
|
||||
return get_layer_mask() & (1 << p_bit);
|
||||
return get_collision_layer() & (1 << p_bit);
|
||||
}
|
||||
|
||||
void Area::_bind_methods() {
|
||||
|
@ -565,14 +565,14 @@ void Area::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("set_collision_mask", "collision_mask"), &Area::set_collision_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_mask"), &Area::get_collision_mask);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_layer_mask", "layer_mask"), &Area::set_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_layer_mask"), &Area::get_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("set_collision_layer", "collision_layer"), &Area::set_collision_layer);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_layer"), &Area::get_collision_layer);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_collision_mask_bit", "bit", "value"), &Area::set_collision_mask_bit);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_mask_bit", "bit"), &Area::get_collision_mask_bit);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_layer_mask_bit", "bit", "value"), &Area::set_layer_mask_bit);
|
||||
ClassDB::bind_method(D_METHOD("get_layer_mask_bit", "bit"), &Area::get_layer_mask_bit);
|
||||
ClassDB::bind_method(D_METHOD("set_collision_layer_bit", "bit", "value"), &Area::set_collision_layer_bit);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_layer_bit", "bit"), &Area::get_collision_layer_bit);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_monitorable", "enable"), &Area::set_monitorable);
|
||||
ClassDB::bind_method(D_METHOD("is_monitorable"), &Area::is_monitorable);
|
||||
|
@ -610,7 +610,7 @@ void Area::_bind_methods() {
|
|||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "monitoring"), "set_monitoring", "is_monitoring");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "monitorable"), "set_monitorable", "is_monitorable");
|
||||
ADD_GROUP("Collision", "collision_");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "collision_layers", PROPERTY_HINT_LAYERS_3D_PHYSICS), "set_layer_mask", "get_layer_mask");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "collision_layer", PROPERTY_HINT_LAYERS_3D_PHYSICS), "set_collision_layer", "get_collision_layer");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "collision_mask", PROPERTY_HINT_LAYERS_3D_PHYSICS), "set_collision_mask", "get_collision_mask");
|
||||
}
|
||||
|
||||
|
@ -628,7 +628,7 @@ Area::Area()
|
|||
priority = 0;
|
||||
monitoring = false;
|
||||
collision_mask = 1;
|
||||
layer_mask = 1;
|
||||
collision_layer = 1;
|
||||
set_ray_pickable(false);
|
||||
set_monitoring(true);
|
||||
set_monitorable(true);
|
||||
|
|
|
@ -55,7 +55,7 @@ private:
|
|||
real_t angular_damp;
|
||||
real_t linear_damp;
|
||||
uint32_t collision_mask;
|
||||
uint32_t layer_mask;
|
||||
uint32_t collision_layer;
|
||||
int priority;
|
||||
bool monitoring;
|
||||
bool monitorable;
|
||||
|
@ -164,14 +164,14 @@ public:
|
|||
void set_collision_mask(uint32_t p_mask);
|
||||
uint32_t get_collision_mask() const;
|
||||
|
||||
void set_layer_mask(uint32_t p_mask);
|
||||
uint32_t get_layer_mask() const;
|
||||
void set_collision_layer(uint32_t p_layer);
|
||||
uint32_t get_collision_layer() const;
|
||||
|
||||
void set_collision_mask_bit(int p_bit, bool p_value);
|
||||
bool get_collision_mask_bit(int p_bit) const;
|
||||
|
||||
void set_layer_mask_bit(int p_bit, bool p_value);
|
||||
bool get_layer_mask_bit(int p_bit) const;
|
||||
void set_collision_layer_bit(int p_bit, bool p_value);
|
||||
bool get_collision_layer_bit(int p_bit) const;
|
||||
|
||||
Array get_overlapping_bodies() const;
|
||||
Array get_overlapping_areas() const; //function for script
|
||||
|
|
|
@ -59,15 +59,15 @@ float PhysicsBody::get_inverse_mass() const {
|
|||
return 0;
|
||||
}
|
||||
|
||||
void PhysicsBody::set_collision_layer(uint32_t p_mask) {
|
||||
void PhysicsBody::set_collision_layer(uint32_t p_layer) {
|
||||
|
||||
layer_mask = p_mask;
|
||||
PhysicsServer::get_singleton()->body_set_layer_mask(get_rid(), p_mask);
|
||||
collision_layer = p_layer;
|
||||
PhysicsServer::get_singleton()->body_set_collision_layer(get_rid(), p_layer);
|
||||
}
|
||||
|
||||
uint32_t PhysicsBody::get_collision_layer() const {
|
||||
|
||||
return layer_mask;
|
||||
return collision_layer;
|
||||
}
|
||||
|
||||
void PhysicsBody::set_collision_mask(uint32_t p_mask) {
|
||||
|
@ -167,7 +167,7 @@ void PhysicsBody::_bind_methods() {
|
|||
PhysicsBody::PhysicsBody(PhysicsServer::BodyMode p_mode)
|
||||
: CollisionObject(PhysicsServer::get_singleton()->body_create(p_mode), false) {
|
||||
|
||||
layer_mask = 1;
|
||||
collision_layer = 1;
|
||||
collision_mask = 1;
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ class PhysicsBody : public CollisionObject {
|
|||
|
||||
GDCLASS(PhysicsBody, CollisionObject);
|
||||
|
||||
uint32_t layer_mask;
|
||||
uint32_t collision_layer;
|
||||
uint32_t collision_mask;
|
||||
|
||||
void _set_layers(uint32_t p_mask);
|
||||
|
@ -54,7 +54,7 @@ public:
|
|||
virtual Vector3 get_angular_velocity() const;
|
||||
virtual float get_inverse_mass() const;
|
||||
|
||||
void set_collision_layer(uint32_t p_mask);
|
||||
void set_collision_layer(uint32_t p_layer);
|
||||
uint32_t get_collision_layer() const;
|
||||
|
||||
void set_collision_mask(uint32_t p_mask);
|
||||
|
|
|
@ -46,14 +46,14 @@ Vector3 RayCast::get_cast_to() const {
|
|||
return cast_to;
|
||||
}
|
||||
|
||||
void RayCast::set_layer_mask(uint32_t p_mask) {
|
||||
void RayCast::set_collision_layer(uint32_t p_layer) {
|
||||
|
||||
layer_mask = p_mask;
|
||||
collision_layer = p_layer;
|
||||
}
|
||||
|
||||
uint32_t RayCast::get_layer_mask() const {
|
||||
uint32_t RayCast::get_collision_layer() const {
|
||||
|
||||
return layer_mask;
|
||||
return collision_layer;
|
||||
}
|
||||
|
||||
void RayCast::set_type_mask(uint32_t p_mask) {
|
||||
|
@ -170,7 +170,7 @@ void RayCast::_update_raycast_state() {
|
|||
|
||||
PhysicsDirectSpaceState::RayResult rr;
|
||||
|
||||
if (dss->intersect_ray(gt.get_origin(), gt.xform(to), rr, exclude, layer_mask, type_mask)) {
|
||||
if (dss->intersect_ray(gt.get_origin(), gt.xform(to), rr, exclude, collision_layer, type_mask)) {
|
||||
|
||||
collided = true;
|
||||
against = rr.collider_id;
|
||||
|
@ -243,15 +243,15 @@ void RayCast::_bind_methods() {
|
|||
|
||||
ClassDB::bind_method(D_METHOD("clear_exceptions"), &RayCast::clear_exceptions);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_layer_mask", "mask"), &RayCast::set_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_layer_mask"), &RayCast::get_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("set_collision_layer", "layer"), &RayCast::set_collision_layer);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_layer"), &RayCast::get_collision_layer);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_type_mask", "mask"), &RayCast::set_type_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_type_mask"), &RayCast::get_type_mask);
|
||||
|
||||
ADD_PROPERTY(PropertyInfo(Variant::BOOL, "enabled"), "set_enabled", "is_enabled");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::VECTOR3, "cast_to"), "set_cast_to", "get_cast_to");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "layer_mask", PROPERTY_HINT_LAYERS_3D_PHYSICS), "set_layer_mask", "get_layer_mask");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "collision_layer", PROPERTY_HINT_LAYERS_3D_PHYSICS), "set_collision_layer", "get_collision_layer");
|
||||
ADD_PROPERTY(PropertyInfo(Variant::INT, "type_mask", PROPERTY_HINT_FLAGS, "Static,Kinematic,Rigid,Character,Area"), "set_type_mask", "get_type_mask");
|
||||
}
|
||||
|
||||
|
@ -323,7 +323,7 @@ RayCast::RayCast() {
|
|||
against = 0;
|
||||
collided = false;
|
||||
against_shape = 0;
|
||||
layer_mask = 1;
|
||||
collision_layer = 1;
|
||||
type_mask = PhysicsDirectSpaceState::TYPE_MASK_COLLISION;
|
||||
cast_to = Vector3(0, -1, 0);
|
||||
debug_shape = NULL;
|
||||
|
|
|
@ -47,7 +47,7 @@ class RayCast : public Spatial {
|
|||
|
||||
Set<RID> exclude;
|
||||
|
||||
uint32_t layer_mask;
|
||||
uint32_t collision_layer;
|
||||
uint32_t type_mask;
|
||||
|
||||
Node *debug_shape;
|
||||
|
@ -69,8 +69,8 @@ public:
|
|||
void set_cast_to(const Vector3 &p_point);
|
||||
Vector3 get_cast_to() const;
|
||||
|
||||
void set_layer_mask(uint32_t p_mask);
|
||||
uint32_t get_layer_mask() const;
|
||||
void set_collision_layer(uint32_t p_layer);
|
||||
uint32_t get_collision_layer() const;
|
||||
|
||||
void set_type_mask(uint32_t p_mask);
|
||||
uint32_t get_type_mask() const;
|
||||
|
|
|
@ -208,7 +208,7 @@ CollisionObjectSW::CollisionObjectSW(Type p_type) {
|
|||
type = p_type;
|
||||
space = NULL;
|
||||
instance_id = 0;
|
||||
layer_mask = 1;
|
||||
collision_layer = 1;
|
||||
collision_mask = 1;
|
||||
ray_pickable = true;
|
||||
}
|
||||
|
|
|
@ -53,7 +53,7 @@ private:
|
|||
Type type;
|
||||
RID self;
|
||||
ObjectID instance_id;
|
||||
uint32_t layer_mask;
|
||||
uint32_t collision_layer;
|
||||
uint32_t collision_mask;
|
||||
|
||||
struct Shape {
|
||||
|
@ -134,14 +134,14 @@ public:
|
|||
_FORCE_INLINE_ void set_shape_as_trigger(int p_idx, bool p_enable) { shapes[p_idx].trigger = p_enable; }
|
||||
_FORCE_INLINE_ bool is_shape_set_as_trigger(int p_idx) const { return shapes[p_idx].trigger; }
|
||||
|
||||
_FORCE_INLINE_ void set_layer_mask(uint32_t p_mask) { layer_mask = p_mask; }
|
||||
_FORCE_INLINE_ uint32_t get_layer_mask() const { return layer_mask; }
|
||||
_FORCE_INLINE_ void set_collision_layer(uint32_t p_layer) { collision_layer = p_layer; }
|
||||
_FORCE_INLINE_ uint32_t get_collision_layer() const { return collision_layer; }
|
||||
|
||||
_FORCE_INLINE_ void set_collision_mask(uint32_t p_mask) { collision_mask = p_mask; }
|
||||
_FORCE_INLINE_ uint32_t get_collision_mask() const { return collision_mask; }
|
||||
|
||||
_FORCE_INLINE_ bool test_collision_mask(CollisionObjectSW *p_other) const {
|
||||
return layer_mask & p_other->collision_mask || p_other->layer_mask & collision_mask;
|
||||
return collision_layer & p_other->collision_mask || p_other->collision_layer & collision_mask;
|
||||
}
|
||||
|
||||
void remove_shape(ShapeSW *p_shape);
|
||||
|
|
|
@ -389,12 +389,12 @@ Transform PhysicsServerSW::area_get_transform(RID p_area) const {
|
|||
return area->get_transform();
|
||||
};
|
||||
|
||||
void PhysicsServerSW::area_set_layer_mask(RID p_area, uint32_t p_mask) {
|
||||
void PhysicsServerSW::area_set_collision_layer(RID p_area, uint32_t p_layer) {
|
||||
|
||||
AreaSW *area = area_owner.get(p_area);
|
||||
ERR_FAIL_COND(!area);
|
||||
|
||||
area->set_layer_mask(p_mask);
|
||||
area->set_collision_layer(p_layer);
|
||||
}
|
||||
|
||||
void PhysicsServerSW::area_set_collision_mask(RID p_area, uint32_t p_mask) {
|
||||
|
@ -609,21 +609,21 @@ bool PhysicsServerSW::body_is_continuous_collision_detection_enabled(RID p_body)
|
|||
return body->is_continuous_collision_detection_enabled();
|
||||
}
|
||||
|
||||
void PhysicsServerSW::body_set_layer_mask(RID p_body, uint32_t p_mask) {
|
||||
void PhysicsServerSW::body_set_collision_layer(RID p_body, uint32_t p_layer) {
|
||||
|
||||
BodySW *body = body_owner.get(p_body);
|
||||
ERR_FAIL_COND(!body);
|
||||
|
||||
body->set_layer_mask(p_mask);
|
||||
body->set_collision_layer(p_layer);
|
||||
body->wakeup();
|
||||
}
|
||||
|
||||
uint32_t PhysicsServerSW::body_get_layer_mask(RID p_body, uint32_t p_mask) const {
|
||||
uint32_t PhysicsServerSW::body_get_collision_layer(RID p_body) const {
|
||||
|
||||
const BodySW *body = body_owner.get(p_body);
|
||||
ERR_FAIL_COND_V(!body, 0);
|
||||
|
||||
return body->get_layer_mask();
|
||||
return body->get_collision_layer();
|
||||
}
|
||||
|
||||
void PhysicsServerSW::body_set_collision_mask(RID p_body, uint32_t p_mask) {
|
||||
|
@ -635,7 +635,7 @@ void PhysicsServerSW::body_set_collision_mask(RID p_body, uint32_t p_mask) {
|
|||
body->wakeup();
|
||||
}
|
||||
|
||||
uint32_t PhysicsServerSW::body_get_collision_mask(RID p_body, uint32_t p_mask) const {
|
||||
uint32_t PhysicsServerSW::body_get_collision_mask(RID p_body) const {
|
||||
|
||||
const BodySW *body = body_owner.get(p_body);
|
||||
ERR_FAIL_COND_V(!body, 0);
|
||||
|
@ -665,7 +665,7 @@ void PhysicsServerSW::body_set_user_flags(RID p_body, uint32_t p_flags) {
|
|||
ERR_FAIL_COND(!body);
|
||||
};
|
||||
|
||||
uint32_t PhysicsServerSW::body_get_user_flags(RID p_body, uint32_t p_flags) const {
|
||||
uint32_t PhysicsServerSW::body_get_user_flags(RID p_body) const {
|
||||
|
||||
BodySW *body = body_owner.get(p_body);
|
||||
ERR_FAIL_COND_V(!body, 0);
|
||||
|
|
|
@ -130,7 +130,7 @@ public:
|
|||
virtual bool area_is_ray_pickable(RID p_area) const;
|
||||
|
||||
virtual void area_set_collision_mask(RID p_area, uint32_t p_mask);
|
||||
virtual void area_set_layer_mask(RID p_area, uint32_t p_mask);
|
||||
virtual void area_set_collision_layer(RID p_area, uint32_t p_layer);
|
||||
|
||||
virtual void area_set_monitorable(RID p_area, bool p_monitorable);
|
||||
|
||||
|
@ -168,14 +168,14 @@ public:
|
|||
virtual void body_set_enable_continuous_collision_detection(RID p_body, bool p_enable);
|
||||
virtual bool body_is_continuous_collision_detection_enabled(RID p_body) const;
|
||||
|
||||
virtual void body_set_layer_mask(RID p_body, uint32_t p_mask);
|
||||
virtual uint32_t body_get_layer_mask(RID p_body, uint32_t p_mask) const;
|
||||
virtual void body_set_collision_layer(RID p_body, uint32_t p_layer);
|
||||
virtual uint32_t body_get_collision_layer(RID p_body) const;
|
||||
|
||||
virtual void body_set_collision_mask(RID p_body, uint32_t p_mask);
|
||||
virtual uint32_t body_get_collision_mask(RID p_body, uint32_t p_mask) const;
|
||||
virtual uint32_t body_get_collision_mask(RID p_body) const;
|
||||
|
||||
virtual void body_set_user_flags(RID p_body, uint32_t p_flags);
|
||||
virtual uint32_t body_get_user_flags(RID p_body, uint32_t p_flags) const;
|
||||
virtual uint32_t body_get_user_flags(RID p_body) const;
|
||||
|
||||
virtual void body_set_param(RID p_body, BodyParameter p_param, real_t p_value);
|
||||
virtual real_t body_get_param(RID p_body, BodyParameter p_param) const;
|
||||
|
|
|
@ -32,12 +32,12 @@
|
|||
#include "global_config.h"
|
||||
#include "physics_server_sw.h"
|
||||
|
||||
_FORCE_INLINE_ static bool _match_object_type_query(CollisionObjectSW *p_object, uint32_t p_layer_mask, uint32_t p_type_mask) {
|
||||
_FORCE_INLINE_ static bool _match_object_type_query(CollisionObjectSW *p_object, uint32_t p_collision_layer, uint32_t p_type_mask) {
|
||||
|
||||
if (p_object->get_type() == CollisionObjectSW::TYPE_AREA)
|
||||
return p_type_mask & PhysicsDirectSpaceState::TYPE_MASK_AREA;
|
||||
|
||||
if ((p_object->get_layer_mask() & p_layer_mask) == 0)
|
||||
if ((p_object->get_collision_layer() & p_collision_layer) == 0)
|
||||
return false;
|
||||
|
||||
BodySW *body = static_cast<BodySW *>(p_object);
|
||||
|
@ -45,7 +45,7 @@ _FORCE_INLINE_ static bool _match_object_type_query(CollisionObjectSW *p_object,
|
|||
return (1 << body->get_mode()) & p_type_mask;
|
||||
}
|
||||
|
||||
bool PhysicsDirectSpaceStateSW::intersect_ray(const Vector3 &p_from, const Vector3 &p_to, RayResult &r_result, const Set<RID> &p_exclude, uint32_t p_layer_mask, uint32_t p_object_type_mask, bool p_pick_ray) {
|
||||
bool PhysicsDirectSpaceStateSW::intersect_ray(const Vector3 &p_from, const Vector3 &p_to, RayResult &r_result, const Set<RID> &p_exclude, uint32_t p_collision_layer, uint32_t p_object_type_mask, bool p_pick_ray) {
|
||||
|
||||
ERR_FAIL_COND_V(space->locked, false);
|
||||
|
||||
|
@ -67,7 +67,7 @@ bool PhysicsDirectSpaceStateSW::intersect_ray(const Vector3 &p_from, const Vecto
|
|||
|
||||
for (int i = 0; i < amount; i++) {
|
||||
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_layer_mask, p_object_type_mask))
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_collision_layer, p_object_type_mask))
|
||||
continue;
|
||||
|
||||
if (p_pick_ray && !(static_cast<CollisionObjectSW *>(space->intersection_query_results[i])->is_ray_pickable()))
|
||||
|
@ -123,7 +123,7 @@ bool PhysicsDirectSpaceStateSW::intersect_ray(const Vector3 &p_from, const Vecto
|
|||
return true;
|
||||
}
|
||||
|
||||
int PhysicsDirectSpaceStateSW::intersect_shape(const RID &p_shape, const Transform &p_xform, real_t p_margin, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude, uint32_t p_layer_mask, uint32_t p_object_type_mask) {
|
||||
int PhysicsDirectSpaceStateSW::intersect_shape(const RID &p_shape, const Transform &p_xform, real_t p_margin, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude, uint32_t p_collision_layer, uint32_t p_object_type_mask) {
|
||||
|
||||
if (p_result_max <= 0)
|
||||
return 0;
|
||||
|
@ -144,7 +144,7 @@ int PhysicsDirectSpaceStateSW::intersect_shape(const RID &p_shape, const Transfo
|
|||
if (cc >= p_result_max)
|
||||
break;
|
||||
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_layer_mask, p_object_type_mask))
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_collision_layer, p_object_type_mask))
|
||||
continue;
|
||||
|
||||
//area can't be picked by ray (default)
|
||||
|
@ -174,7 +174,7 @@ int PhysicsDirectSpaceStateSW::intersect_shape(const RID &p_shape, const Transfo
|
|||
return cc;
|
||||
}
|
||||
|
||||
bool PhysicsDirectSpaceStateSW::cast_motion(const RID &p_shape, const Transform &p_xform, const Vector3 &p_motion, real_t p_margin, real_t &p_closest_safe, real_t &p_closest_unsafe, const Set<RID> &p_exclude, uint32_t p_layer_mask, uint32_t p_object_type_mask, ShapeRestInfo *r_info) {
|
||||
bool PhysicsDirectSpaceStateSW::cast_motion(const RID &p_shape, const Transform &p_xform, const Vector3 &p_motion, real_t p_margin, real_t &p_closest_safe, real_t &p_closest_unsafe, const Set<RID> &p_exclude, uint32_t p_collision_layer, uint32_t p_object_type_mask, ShapeRestInfo *r_info) {
|
||||
|
||||
ShapeSW *shape = static_cast<PhysicsServerSW *>(PhysicsServer::get_singleton())->shape_owner.get(p_shape);
|
||||
ERR_FAIL_COND_V(!shape, false);
|
||||
|
@ -204,7 +204,7 @@ bool PhysicsDirectSpaceStateSW::cast_motion(const RID &p_shape, const Transform
|
|||
|
||||
for (int i = 0; i < amount; i++) {
|
||||
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_layer_mask, p_object_type_mask))
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_collision_layer, p_object_type_mask))
|
||||
continue;
|
||||
|
||||
if (p_exclude.has(space->intersection_query_results[i]->get_self()))
|
||||
|
@ -295,7 +295,7 @@ bool PhysicsDirectSpaceStateSW::cast_motion(const RID &p_shape, const Transform
|
|||
return true;
|
||||
}
|
||||
|
||||
bool PhysicsDirectSpaceStateSW::collide_shape(RID p_shape, const Transform &p_shape_xform, real_t p_margin, Vector3 *r_results, int p_result_max, int &r_result_count, const Set<RID> &p_exclude, uint32_t p_layer_mask, uint32_t p_object_type_mask) {
|
||||
bool PhysicsDirectSpaceStateSW::collide_shape(RID p_shape, const Transform &p_shape_xform, real_t p_margin, Vector3 *r_results, int p_result_max, int &r_result_count, const Set<RID> &p_exclude, uint32_t p_collision_layer, uint32_t p_object_type_mask) {
|
||||
|
||||
if (p_result_max <= 0)
|
||||
return 0;
|
||||
|
@ -325,7 +325,7 @@ bool PhysicsDirectSpaceStateSW::collide_shape(RID p_shape, const Transform &p_sh
|
|||
|
||||
for (int i = 0; i < amount; i++) {
|
||||
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_layer_mask, p_object_type_mask))
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_collision_layer, p_object_type_mask))
|
||||
continue;
|
||||
|
||||
const CollisionObjectSW *col_obj = space->intersection_query_results[i];
|
||||
|
@ -374,7 +374,7 @@ static void _rest_cbk_result(const Vector3 &p_point_A, const Vector3 &p_point_B,
|
|||
rd->best_object = rd->object;
|
||||
rd->best_shape = rd->shape;
|
||||
}
|
||||
bool PhysicsDirectSpaceStateSW::rest_info(RID p_shape, const Transform &p_shape_xform, real_t p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude, uint32_t p_layer_mask, uint32_t p_object_type_mask) {
|
||||
bool PhysicsDirectSpaceStateSW::rest_info(RID p_shape, const Transform &p_shape_xform, real_t p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude, uint32_t p_collision_layer, uint32_t p_object_type_mask) {
|
||||
|
||||
ShapeSW *shape = static_cast<PhysicsServerSW *>(PhysicsServer::get_singleton())->shape_owner.get(p_shape);
|
||||
ERR_FAIL_COND_V(!shape, 0);
|
||||
|
@ -391,7 +391,7 @@ bool PhysicsDirectSpaceStateSW::rest_info(RID p_shape, const Transform &p_shape_
|
|||
|
||||
for (int i = 0; i < amount; i++) {
|
||||
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_layer_mask, p_object_type_mask))
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_collision_layer, p_object_type_mask))
|
||||
continue;
|
||||
|
||||
const CollisionObjectSW *col_obj = space->intersection_query_results[i];
|
||||
|
|
|
@ -47,11 +47,11 @@ class PhysicsDirectSpaceStateSW : public PhysicsDirectSpaceState {
|
|||
public:
|
||||
SpaceSW *space;
|
||||
|
||||
virtual bool intersect_ray(const Vector3 &p_from, const Vector3 &p_to, RayResult &r_result, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION, bool p_pick_ray = false);
|
||||
virtual int intersect_shape(const RID &p_shape, const Transform &p_xform, real_t p_margin, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual bool cast_motion(const RID &p_shape, const Transform &p_xform, const Vector3 &p_motion, real_t p_margin, real_t &p_closest_safe, real_t &p_closest_unsafe, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION, ShapeRestInfo *r_info = NULL);
|
||||
virtual bool collide_shape(RID p_shape, const Transform &p_shape_xform, real_t p_margin, Vector3 *r_results, int p_result_max, int &r_result_count, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual bool rest_info(RID p_shape, const Transform &p_shape_xform, real_t p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual bool intersect_ray(const Vector3 &p_from, const Vector3 &p_to, RayResult &r_result, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION, bool p_pick_ray = false);
|
||||
virtual int intersect_shape(const RID &p_shape, const Transform &p_xform, real_t p_margin, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual bool cast_motion(const RID &p_shape, const Transform &p_xform, const Vector3 &p_motion, real_t p_margin, real_t &p_closest_safe, real_t &p_closest_unsafe, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION, ShapeRestInfo *r_info = NULL);
|
||||
virtual bool collide_shape(RID p_shape, const Transform &p_shape_xform, real_t p_margin, Vector3 *r_results, int p_result_max, int &r_result_count, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual bool rest_info(RID p_shape, const Transform &p_shape_xform, real_t p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
|
||||
PhysicsDirectSpaceStateSW();
|
||||
};
|
||||
|
|
|
@ -214,6 +214,6 @@ CollisionObject2DSW::CollisionObject2DSW(Type p_type) {
|
|||
space = NULL;
|
||||
instance_id = 0;
|
||||
collision_mask = 1;
|
||||
layer_mask = 1;
|
||||
collision_layer = 1;
|
||||
pickable = true;
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ private:
|
|||
Transform2D transform;
|
||||
Transform2D inv_transform;
|
||||
uint32_t collision_mask;
|
||||
uint32_t layer_mask;
|
||||
uint32_t collision_layer;
|
||||
bool _static;
|
||||
|
||||
void _update_shapes();
|
||||
|
@ -122,8 +122,8 @@ public:
|
|||
void set_collision_mask(uint32_t p_mask) { collision_mask = p_mask; }
|
||||
_FORCE_INLINE_ uint32_t get_collision_mask() const { return collision_mask; }
|
||||
|
||||
void set_layer_mask(uint32_t p_mask) { layer_mask = p_mask; }
|
||||
_FORCE_INLINE_ uint32_t get_layer_mask() const { return layer_mask; }
|
||||
void set_collision_layer(uint32_t p_layer) { collision_layer = p_layer; }
|
||||
_FORCE_INLINE_ uint32_t get_collision_layer() const { return collision_layer; }
|
||||
|
||||
void remove_shape(Shape2DSW *p_shape);
|
||||
void remove_shape(int p_index);
|
||||
|
@ -137,7 +137,7 @@ public:
|
|||
|
||||
_FORCE_INLINE_ bool test_collision_mask(CollisionObject2DSW *p_other) const {
|
||||
|
||||
return layer_mask & p_other->collision_mask || p_other->layer_mask & collision_mask;
|
||||
return collision_layer & p_other->collision_mask || p_other->collision_layer & collision_mask;
|
||||
}
|
||||
|
||||
virtual ~CollisionObject2DSW() {}
|
||||
|
|
|
@ -476,12 +476,12 @@ void Physics2DServerSW::area_set_collision_mask(RID p_area, uint32_t p_mask) {
|
|||
area->set_collision_mask(p_mask);
|
||||
}
|
||||
|
||||
void Physics2DServerSW::area_set_layer_mask(RID p_area, uint32_t p_mask) {
|
||||
void Physics2DServerSW::area_set_collision_layer(RID p_area, uint32_t p_layer) {
|
||||
|
||||
Area2DSW *area = area_owner.get(p_area);
|
||||
ERR_FAIL_COND(!area);
|
||||
|
||||
area->set_layer_mask(p_mask);
|
||||
area->set_collision_layer(p_layer);
|
||||
}
|
||||
|
||||
void Physics2DServerSW::area_set_monitor_callback(RID p_area, Object *p_receiver, const StringName &p_method) {
|
||||
|
@ -691,19 +691,19 @@ uint32_t Physics2DServerSW::body_get_object_instance_ID(RID p_body) const {
|
|||
return body->get_instance_id();
|
||||
};
|
||||
|
||||
void Physics2DServerSW::body_set_layer_mask(RID p_body, uint32_t p_flags) {
|
||||
void Physics2DServerSW::body_set_collision_layer(RID p_body, uint32_t p_flags) {
|
||||
|
||||
Body2DSW *body = body_owner.get(p_body);
|
||||
ERR_FAIL_COND(!body);
|
||||
body->set_layer_mask(p_flags);
|
||||
body->set_collision_layer(p_flags);
|
||||
};
|
||||
|
||||
uint32_t Physics2DServerSW::body_get_layer_mask(RID p_body) const {
|
||||
uint32_t Physics2DServerSW::body_get_collision_layer(RID p_body) const {
|
||||
|
||||
Body2DSW *body = body_owner.get(p_body);
|
||||
ERR_FAIL_COND_V(!body, 0);
|
||||
|
||||
return body->get_layer_mask();
|
||||
return body->get_collision_layer();
|
||||
};
|
||||
|
||||
void Physics2DServerSW::body_set_collision_mask(RID p_body, uint32_t p_flags) {
|
||||
|
|
|
@ -136,7 +136,7 @@ public:
|
|||
virtual Transform2D area_get_transform(RID p_area) const;
|
||||
virtual void area_set_monitorable(RID p_area, bool p_monitorable);
|
||||
virtual void area_set_collision_mask(RID p_area, uint32_t p_mask);
|
||||
virtual void area_set_layer_mask(RID p_area, uint32_t p_mask);
|
||||
virtual void area_set_collision_layer(RID p_area, uint32_t p_layer);
|
||||
|
||||
virtual void area_set_monitor_callback(RID p_area, Object *p_receiver, const StringName &p_method);
|
||||
virtual void area_set_area_monitor_callback(RID p_area, Object *p_receiver, const StringName &p_method);
|
||||
|
@ -176,8 +176,8 @@ public:
|
|||
virtual void body_set_continuous_collision_detection_mode(RID p_body, CCDMode p_mode);
|
||||
virtual CCDMode body_get_continuous_collision_detection_mode(RID p_body) const;
|
||||
|
||||
virtual void body_set_layer_mask(RID p_body, uint32_t p_mask);
|
||||
virtual uint32_t body_get_layer_mask(RID p_body) const;
|
||||
virtual void body_set_collision_layer(RID p_body, uint32_t p_layer);
|
||||
virtual uint32_t body_get_collision_layer(RID p_body) const;
|
||||
|
||||
virtual void body_set_collision_mask(RID p_body, uint32_t p_mask);
|
||||
virtual uint32_t body_get_collision_mask(RID p_) const;
|
||||
|
|
|
@ -162,7 +162,7 @@ public:
|
|||
FUNC1RC(Transform2D, area_get_transform, RID);
|
||||
|
||||
FUNC2(area_set_collision_mask, RID, uint32_t);
|
||||
FUNC2(area_set_layer_mask, RID, uint32_t);
|
||||
FUNC2(area_set_collision_layer, RID, uint32_t);
|
||||
|
||||
FUNC2(area_set_monitorable, RID, bool);
|
||||
FUNC2(area_set_pickable, RID, bool);
|
||||
|
@ -203,8 +203,8 @@ public:
|
|||
FUNC2(body_set_continuous_collision_detection_mode, RID, CCDMode);
|
||||
FUNC1RC(CCDMode, body_get_continuous_collision_detection_mode, RID);
|
||||
|
||||
FUNC2(body_set_layer_mask, RID, uint32_t);
|
||||
FUNC1RC(uint32_t, body_get_layer_mask, RID);
|
||||
FUNC2(body_set_collision_layer, RID, uint32_t);
|
||||
FUNC1RC(uint32_t, body_get_collision_layer, RID);
|
||||
|
||||
FUNC2(body_set_collision_mask, RID, uint32_t);
|
||||
FUNC1RC(uint32_t, body_get_collision_mask, RID);
|
||||
|
|
|
@ -31,9 +31,9 @@
|
|||
#include "collision_solver_2d_sw.h"
|
||||
#include "physics_2d_server_sw.h"
|
||||
|
||||
_FORCE_INLINE_ static bool _match_object_type_query(CollisionObject2DSW *p_object, uint32_t p_layer_mask, uint32_t p_type_mask) {
|
||||
_FORCE_INLINE_ static bool _match_object_type_query(CollisionObject2DSW *p_object, uint32_t p_collision_layer, uint32_t p_type_mask) {
|
||||
|
||||
if ((p_object->get_layer_mask() & p_layer_mask) == 0)
|
||||
if ((p_object->get_collision_layer() & p_collision_layer) == 0)
|
||||
return false;
|
||||
|
||||
if (p_object->get_type() == CollisionObject2DSW::TYPE_AREA)
|
||||
|
@ -44,7 +44,7 @@ _FORCE_INLINE_ static bool _match_object_type_query(CollisionObject2DSW *p_objec
|
|||
return (1 << body->get_mode()) & p_type_mask;
|
||||
}
|
||||
|
||||
int Physics2DDirectSpaceStateSW::intersect_point(const Vector2 &p_point, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude, uint32_t p_layer_mask, uint32_t p_object_type_mask, bool p_pick_point) {
|
||||
int Physics2DDirectSpaceStateSW::intersect_point(const Vector2 &p_point, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude, uint32_t p_collision_layer, uint32_t p_object_type_mask, bool p_pick_point) {
|
||||
|
||||
if (p_result_max <= 0)
|
||||
return 0;
|
||||
|
@ -59,7 +59,7 @@ int Physics2DDirectSpaceStateSW::intersect_point(const Vector2 &p_point, ShapeRe
|
|||
|
||||
for (int i = 0; i < amount; i++) {
|
||||
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_layer_mask, p_object_type_mask))
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_collision_layer, p_object_type_mask))
|
||||
continue;
|
||||
|
||||
if (p_exclude.has(space->intersection_query_results[i]->get_self()))
|
||||
|
@ -95,7 +95,7 @@ int Physics2DDirectSpaceStateSW::intersect_point(const Vector2 &p_point, ShapeRe
|
|||
return cc;
|
||||
}
|
||||
|
||||
bool Physics2DDirectSpaceStateSW::intersect_ray(const Vector2 &p_from, const Vector2 &p_to, RayResult &r_result, const Set<RID> &p_exclude, uint32_t p_layer_mask, uint32_t p_object_type_mask) {
|
||||
bool Physics2DDirectSpaceStateSW::intersect_ray(const Vector2 &p_from, const Vector2 &p_to, RayResult &r_result, const Set<RID> &p_exclude, uint32_t p_collision_layer, uint32_t p_object_type_mask) {
|
||||
|
||||
ERR_FAIL_COND_V(space->locked, false);
|
||||
|
||||
|
@ -117,7 +117,7 @@ bool Physics2DDirectSpaceStateSW::intersect_ray(const Vector2 &p_from, const Vec
|
|||
|
||||
for (int i = 0; i < amount; i++) {
|
||||
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_layer_mask, p_object_type_mask))
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_collision_layer, p_object_type_mask))
|
||||
continue;
|
||||
|
||||
if (p_exclude.has(space->intersection_query_results[i]->get_self()))
|
||||
|
@ -175,7 +175,7 @@ bool Physics2DDirectSpaceStateSW::intersect_ray(const Vector2 &p_from, const Vec
|
|||
return true;
|
||||
}
|
||||
|
||||
int Physics2DDirectSpaceStateSW::intersect_shape(const RID &p_shape, const Transform2D &p_xform, const Vector2 &p_motion, real_t p_margin, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude, uint32_t p_layer_mask, uint32_t p_object_type_mask) {
|
||||
int Physics2DDirectSpaceStateSW::intersect_shape(const RID &p_shape, const Transform2D &p_xform, const Vector2 &p_motion, real_t p_margin, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude, uint32_t p_collision_layer, uint32_t p_object_type_mask) {
|
||||
|
||||
if (p_result_max <= 0)
|
||||
return 0;
|
||||
|
@ -192,7 +192,7 @@ int Physics2DDirectSpaceStateSW::intersect_shape(const RID &p_shape, const Trans
|
|||
|
||||
for (int i = 0; i < amount; i++) {
|
||||
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_layer_mask, p_object_type_mask))
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_collision_layer, p_object_type_mask))
|
||||
continue;
|
||||
|
||||
if (p_exclude.has(space->intersection_query_results[i]->get_self()))
|
||||
|
@ -217,7 +217,7 @@ int Physics2DDirectSpaceStateSW::intersect_shape(const RID &p_shape, const Trans
|
|||
return cc;
|
||||
}
|
||||
|
||||
bool Physics2DDirectSpaceStateSW::cast_motion(const RID &p_shape, const Transform2D &p_xform, const Vector2 &p_motion, real_t p_margin, real_t &p_closest_safe, real_t &p_closest_unsafe, const Set<RID> &p_exclude, uint32_t p_layer_mask, uint32_t p_object_type_mask) {
|
||||
bool Physics2DDirectSpaceStateSW::cast_motion(const RID &p_shape, const Transform2D &p_xform, const Vector2 &p_motion, real_t p_margin, real_t &p_closest_safe, real_t &p_closest_unsafe, const Set<RID> &p_exclude, uint32_t p_collision_layer, uint32_t p_object_type_mask) {
|
||||
|
||||
Shape2DSW *shape = Physics2DServerSW::singletonsw->shape_owner.get(p_shape);
|
||||
ERR_FAIL_COND_V(!shape, false);
|
||||
|
@ -238,7 +238,7 @@ bool Physics2DDirectSpaceStateSW::cast_motion(const RID &p_shape, const Transfor
|
|||
|
||||
for (int i = 0; i < amount; i++) {
|
||||
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_layer_mask, p_object_type_mask))
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_collision_layer, p_object_type_mask))
|
||||
continue;
|
||||
|
||||
if (p_exclude.has(space->intersection_query_results[i]->get_self()))
|
||||
|
@ -330,7 +330,7 @@ bool Physics2DDirectSpaceStateSW::cast_motion(const RID &p_shape, const Transfor
|
|||
return true;
|
||||
}
|
||||
|
||||
bool Physics2DDirectSpaceStateSW::collide_shape(RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, real_t p_margin, Vector2 *r_results, int p_result_max, int &r_result_count, const Set<RID> &p_exclude, uint32_t p_layer_mask, uint32_t p_object_type_mask) {
|
||||
bool Physics2DDirectSpaceStateSW::collide_shape(RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, real_t p_margin, Vector2 *r_results, int p_result_max, int &r_result_count, const Set<RID> &p_exclude, uint32_t p_collision_layer, uint32_t p_object_type_mask) {
|
||||
|
||||
if (p_result_max <= 0)
|
||||
return 0;
|
||||
|
@ -361,7 +361,7 @@ bool Physics2DDirectSpaceStateSW::collide_shape(RID p_shape, const Transform2D &
|
|||
|
||||
for (int i = 0; i < amount; i++) {
|
||||
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_layer_mask, p_object_type_mask))
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_collision_layer, p_object_type_mask))
|
||||
continue;
|
||||
|
||||
const CollisionObject2DSW *col_obj = space->intersection_query_results[i];
|
||||
|
@ -428,7 +428,7 @@ static void _rest_cbk_result(const Vector2 &p_point_A, const Vector2 &p_point_B,
|
|||
rd->best_shape = rd->shape;
|
||||
}
|
||||
|
||||
bool Physics2DDirectSpaceStateSW::rest_info(RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, real_t p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude, uint32_t p_layer_mask, uint32_t p_object_type_mask) {
|
||||
bool Physics2DDirectSpaceStateSW::rest_info(RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, real_t p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude, uint32_t p_collision_layer, uint32_t p_object_type_mask) {
|
||||
|
||||
Shape2DSW *shape = Physics2DServerSW::singletonsw->shape_owner.get(p_shape);
|
||||
ERR_FAIL_COND_V(!shape, 0);
|
||||
|
@ -446,7 +446,7 @@ bool Physics2DDirectSpaceStateSW::rest_info(RID p_shape, const Transform2D &p_sh
|
|||
|
||||
for (int i = 0; i < amount; i++) {
|
||||
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_layer_mask, p_object_type_mask))
|
||||
if (!_match_object_type_query(space->intersection_query_results[i], p_collision_layer, p_object_type_mask))
|
||||
continue;
|
||||
|
||||
const CollisionObject2DSW *col_obj = space->intersection_query_results[i];
|
||||
|
|
|
@ -47,12 +47,12 @@ class Physics2DDirectSpaceStateSW : public Physics2DDirectSpaceState {
|
|||
public:
|
||||
Space2DSW *space;
|
||||
|
||||
virtual int intersect_point(const Vector2 &p_point, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION, bool p_pick_point = false);
|
||||
virtual bool intersect_ray(const Vector2 &p_from, const Vector2 &p_to, RayResult &r_result, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual int intersect_shape(const RID &p_shape, const Transform2D &p_xform, const Vector2 &p_motion, real_t p_margin, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual bool cast_motion(const RID &p_shape, const Transform2D &p_xform, const Vector2 &p_motion, real_t p_margin, real_t &p_closest_safe, real_t &p_closest_unsafe, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual bool collide_shape(RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, real_t p_margin, Vector2 *r_results, int p_result_max, int &r_result_count, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual bool rest_info(RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, real_t p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual int intersect_point(const Vector2 &p_point, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION, bool p_pick_point = false);
|
||||
virtual bool intersect_ray(const Vector2 &p_from, const Vector2 &p_to, RayResult &r_result, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual int intersect_shape(const RID &p_shape, const Transform2D &p_xform, const Vector2 &p_motion, real_t p_margin, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual bool cast_motion(const RID &p_shape, const Transform2D &p_xform, const Vector2 &p_motion, real_t p_margin, real_t &p_closest_safe, real_t &p_closest_unsafe, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual bool collide_shape(RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, real_t p_margin, Vector2 *r_results, int p_result_max, int &r_result_count, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
virtual bool rest_info(RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, real_t p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION);
|
||||
|
||||
Physics2DDirectSpaceStateSW();
|
||||
};
|
||||
|
|
|
@ -154,13 +154,13 @@ float Physics2DShapeQueryParameters::get_margin() const {
|
|||
return margin;
|
||||
}
|
||||
|
||||
void Physics2DShapeQueryParameters::set_layer_mask(int p_layer_mask) {
|
||||
void Physics2DShapeQueryParameters::set_collision_layer(int p_collision_layer) {
|
||||
|
||||
layer_mask = p_layer_mask;
|
||||
collision_layer = p_collision_layer;
|
||||
}
|
||||
int Physics2DShapeQueryParameters::get_layer_mask() const {
|
||||
int Physics2DShapeQueryParameters::get_collision_layer() const {
|
||||
|
||||
return layer_mask;
|
||||
return collision_layer;
|
||||
}
|
||||
|
||||
void Physics2DShapeQueryParameters::set_object_type_mask(int p_object_type_mask) {
|
||||
|
@ -204,8 +204,8 @@ void Physics2DShapeQueryParameters::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("set_margin", "margin"), &Physics2DShapeQueryParameters::set_margin);
|
||||
ClassDB::bind_method(D_METHOD("get_margin"), &Physics2DShapeQueryParameters::get_margin);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_layer_mask", "layer_mask"), &Physics2DShapeQueryParameters::set_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_layer_mask"), &Physics2DShapeQueryParameters::get_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("set_collision_layer", "collision_layer"), &Physics2DShapeQueryParameters::set_collision_layer);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_layer"), &Physics2DShapeQueryParameters::get_collision_layer);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_object_type_mask", "object_type_mask"), &Physics2DShapeQueryParameters::set_object_type_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_object_type_mask"), &Physics2DShapeQueryParameters::get_object_type_mask);
|
||||
|
@ -217,7 +217,7 @@ void Physics2DShapeQueryParameters::_bind_methods() {
|
|||
Physics2DShapeQueryParameters::Physics2DShapeQueryParameters() {
|
||||
|
||||
margin = 0;
|
||||
layer_mask = 0x7FFFFFFF;
|
||||
collision_layer = 0x7FFFFFFF;
|
||||
object_type_mask = Physics2DDirectSpaceState::TYPE_MASK_COLLISION;
|
||||
}
|
||||
|
||||
|
@ -249,7 +249,7 @@ Array Physics2DDirectSpaceState::_intersect_shape(const Ref<Physics2DShapeQueryP
|
|||
|
||||
Vector<ShapeResult> sr;
|
||||
sr.resize(p_max_results);
|
||||
int rc = intersect_shape(psq->shape, psq->transform, psq->motion, psq->margin, sr.ptr(), sr.size(), psq->exclude, psq->layer_mask, psq->object_type_mask);
|
||||
int rc = intersect_shape(psq->shape, psq->transform, psq->motion, psq->margin, sr.ptr(), sr.size(), psq->exclude, psq->collision_layer, psq->object_type_mask);
|
||||
Array ret;
|
||||
ret.resize(rc);
|
||||
for (int i = 0; i < rc; i++) {
|
||||
|
@ -269,7 +269,7 @@ Array Physics2DDirectSpaceState::_intersect_shape(const Ref<Physics2DShapeQueryP
|
|||
Array Physics2DDirectSpaceState::_cast_motion(const Ref<Physics2DShapeQueryParameters> &psq) {
|
||||
|
||||
float closest_safe, closest_unsafe;
|
||||
bool res = cast_motion(psq->shape, psq->transform, psq->motion, psq->margin, closest_safe, closest_unsafe, psq->exclude, psq->layer_mask, psq->object_type_mask);
|
||||
bool res = cast_motion(psq->shape, psq->transform, psq->motion, psq->margin, closest_safe, closest_unsafe, psq->exclude, psq->collision_layer, psq->object_type_mask);
|
||||
if (!res)
|
||||
return Array();
|
||||
Array ret;
|
||||
|
@ -312,7 +312,7 @@ Array Physics2DDirectSpaceState::_collide_shape(const Ref<Physics2DShapeQueryPar
|
|||
Vector<Vector2> ret;
|
||||
ret.resize(p_max_results * 2);
|
||||
int rc = 0;
|
||||
bool res = collide_shape(psq->shape, psq->transform, psq->motion, psq->margin, ret.ptr(), p_max_results, rc, psq->exclude, psq->layer_mask, psq->object_type_mask);
|
||||
bool res = collide_shape(psq->shape, psq->transform, psq->motion, psq->margin, ret.ptr(), p_max_results, rc, psq->exclude, psq->collision_layer, psq->object_type_mask);
|
||||
if (!res)
|
||||
return Array();
|
||||
Array r;
|
||||
|
@ -325,7 +325,7 @@ Dictionary Physics2DDirectSpaceState::_get_rest_info(const Ref<Physics2DShapeQue
|
|||
|
||||
ShapeRestInfo sri;
|
||||
|
||||
bool res = rest_info(psq->shape, psq->transform, psq->motion, psq->margin, &sri, psq->exclude, psq->layer_mask, psq->object_type_mask);
|
||||
bool res = rest_info(psq->shape, psq->transform, psq->motion, psq->margin, &sri, psq->exclude, psq->collision_layer, psq->object_type_mask);
|
||||
Dictionary r;
|
||||
if (!res)
|
||||
return r;
|
||||
|
@ -346,8 +346,8 @@ Physics2DDirectSpaceState::Physics2DDirectSpaceState() {
|
|||
|
||||
void Physics2DDirectSpaceState::_bind_methods() {
|
||||
|
||||
ClassDB::bind_method(D_METHOD("intersect_point", "point", "max_results", "exclude", "layer_mask", "type_mask"), &Physics2DDirectSpaceState::_intersect_point, DEFVAL(32), DEFVAL(Array()), DEFVAL(0x7FFFFFFF), DEFVAL(TYPE_MASK_COLLISION));
|
||||
ClassDB::bind_method(D_METHOD("intersect_ray:Dictionary", "from", "to", "exclude", "layer_mask", "type_mask"), &Physics2DDirectSpaceState::_intersect_ray, DEFVAL(Array()), DEFVAL(0x7FFFFFFF), DEFVAL(TYPE_MASK_COLLISION));
|
||||
ClassDB::bind_method(D_METHOD("intersect_point", "point", "max_results", "exclude", "collision_layer", "type_mask"), &Physics2DDirectSpaceState::_intersect_point, DEFVAL(32), DEFVAL(Array()), DEFVAL(0x7FFFFFFF), DEFVAL(TYPE_MASK_COLLISION));
|
||||
ClassDB::bind_method(D_METHOD("intersect_ray:Dictionary", "from", "to", "exclude", "collision_layer", "type_mask"), &Physics2DDirectSpaceState::_intersect_ray, DEFVAL(Array()), DEFVAL(0x7FFFFFFF), DEFVAL(TYPE_MASK_COLLISION));
|
||||
ClassDB::bind_method(D_METHOD("intersect_shape", "shape:Physics2DShapeQueryParameters", "max_results"), &Physics2DDirectSpaceState::_intersect_shape, DEFVAL(32));
|
||||
ClassDB::bind_method(D_METHOD("cast_motion", "shape:Physics2DShapeQueryParameters"), &Physics2DDirectSpaceState::_cast_motion);
|
||||
ClassDB::bind_method(D_METHOD("collide_shape", "shape:Physics2DShapeQueryParameters", "max_results"), &Physics2DDirectSpaceState::_collide_shape, DEFVAL(32));
|
||||
|
@ -504,7 +504,7 @@ void Physics2DServer::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("area_remove_shape", "area", "shape_idx"), &Physics2DServer::area_remove_shape);
|
||||
ClassDB::bind_method(D_METHOD("area_clear_shapes", "area"), &Physics2DServer::area_clear_shapes);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("area_set_layer_mask", "area", "mask"), &Physics2DServer::area_set_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("area_set_collision_layer", "area", "layer"), &Physics2DServer::area_set_collision_layer);
|
||||
ClassDB::bind_method(D_METHOD("area_set_collision_mask", "area", "mask"), &Physics2DServer::area_set_collision_mask);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("area_set_param", "area", "param", "value"), &Physics2DServer::area_set_param);
|
||||
|
@ -548,8 +548,8 @@ void Physics2DServer::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("body_set_continuous_collision_detection_mode", "body", "mode"), &Physics2DServer::body_set_continuous_collision_detection_mode);
|
||||
ClassDB::bind_method(D_METHOD("body_get_continuous_collision_detection_mode", "body"), &Physics2DServer::body_get_continuous_collision_detection_mode);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("body_set_layer_mask", "body", "mask"), &Physics2DServer::body_set_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("body_get_layer_mask", "body"), &Physics2DServer::body_get_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("body_set_collision_layer", "body", "layer"), &Physics2DServer::body_set_collision_layer);
|
||||
ClassDB::bind_method(D_METHOD("body_get_collision_layer", "body"), &Physics2DServer::body_get_collision_layer);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("body_set_collision_mask", "body", "mask"), &Physics2DServer::body_set_collision_mask);
|
||||
ClassDB::bind_method(D_METHOD("body_get_collision_mask", "body"), &Physics2DServer::body_get_collision_mask);
|
||||
|
|
|
@ -97,7 +97,7 @@ class Physics2DShapeQueryParameters : public Reference {
|
|||
Vector2 motion;
|
||||
float margin;
|
||||
Set<RID> exclude;
|
||||
uint32_t layer_mask;
|
||||
uint32_t collision_layer;
|
||||
uint32_t object_type_mask;
|
||||
|
||||
protected:
|
||||
|
@ -117,8 +117,8 @@ public:
|
|||
void set_margin(float p_margin);
|
||||
float get_margin() const;
|
||||
|
||||
void set_layer_mask(int p_layer_mask);
|
||||
int get_layer_mask() const;
|
||||
void set_collision_layer(int p_collision_layer);
|
||||
int get_collision_layer() const;
|
||||
|
||||
void set_object_type_mask(int p_object_type_mask);
|
||||
int get_object_type_mask() const;
|
||||
|
@ -166,7 +166,7 @@ public:
|
|||
Variant metadata;
|
||||
};
|
||||
|
||||
virtual bool intersect_ray(const Vector2 &p_from, const Vector2 &p_to, RayResult &r_result, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
virtual bool intersect_ray(const Vector2 &p_from, const Vector2 &p_to, RayResult &r_result, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
|
||||
struct ShapeResult {
|
||||
|
||||
|
@ -177,13 +177,13 @@ public:
|
|||
Variant metadata;
|
||||
};
|
||||
|
||||
virtual int intersect_point(const Vector2 &p_point, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION, bool p_pick_point = false) = 0;
|
||||
virtual int intersect_point(const Vector2 &p_point, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION, bool p_pick_point = false) = 0;
|
||||
|
||||
virtual int intersect_shape(const RID &p_shape, const Transform2D &p_xform, const Vector2 &p_motion, float p_margin, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
virtual int intersect_shape(const RID &p_shape, const Transform2D &p_xform, const Vector2 &p_motion, float p_margin, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
|
||||
virtual bool cast_motion(const RID &p_shape, const Transform2D &p_xform, const Vector2 &p_motion, float p_margin, float &p_closest_safe, float &p_closest_unsafe, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
virtual bool cast_motion(const RID &p_shape, const Transform2D &p_xform, const Vector2 &p_motion, float p_margin, float &p_closest_safe, float &p_closest_unsafe, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
|
||||
virtual bool collide_shape(RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, float p_margin, Vector2 *r_results, int p_result_max, int &r_result_count, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
virtual bool collide_shape(RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, float p_margin, Vector2 *r_results, int p_result_max, int &r_result_count, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
|
||||
struct ShapeRestInfo {
|
||||
|
||||
|
@ -196,7 +196,7 @@ public:
|
|||
Variant metadata;
|
||||
};
|
||||
|
||||
virtual bool rest_info(RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, float p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
virtual bool rest_info(RID p_shape, const Transform2D &p_shape_xform, const Vector2 &p_motion, float p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
|
||||
Physics2DDirectSpaceState();
|
||||
};
|
||||
|
@ -342,7 +342,7 @@ public:
|
|||
virtual Transform2D area_get_transform(RID p_area) const = 0;
|
||||
|
||||
virtual void area_set_collision_mask(RID p_area, uint32_t p_mask) = 0;
|
||||
virtual void area_set_layer_mask(RID p_area, uint32_t p_mask) = 0;
|
||||
virtual void area_set_collision_layer(RID p_area, uint32_t p_layer) = 0;
|
||||
|
||||
virtual void area_set_monitorable(RID p_area, bool p_monitorable) = 0;
|
||||
virtual void area_set_pickable(RID p_area, bool p_pickable) = 0;
|
||||
|
@ -398,8 +398,8 @@ public:
|
|||
virtual void body_set_continuous_collision_detection_mode(RID p_body, CCDMode p_mode) = 0;
|
||||
virtual CCDMode body_get_continuous_collision_detection_mode(RID p_body) const = 0;
|
||||
|
||||
virtual void body_set_layer_mask(RID p_body, uint32_t p_mask) = 0;
|
||||
virtual uint32_t body_get_layer_mask(RID p_body) const = 0;
|
||||
virtual void body_set_collision_layer(RID p_body, uint32_t p_layer) = 0;
|
||||
virtual uint32_t body_get_collision_layer(RID p_body) const = 0;
|
||||
|
||||
virtual void body_set_collision_mask(RID p_body, uint32_t p_mask) = 0;
|
||||
virtual uint32_t body_get_collision_mask(RID p_body) const = 0;
|
||||
|
|
|
@ -151,13 +151,13 @@ float PhysicsShapeQueryParameters::get_margin() const {
|
|||
return margin;
|
||||
}
|
||||
|
||||
void PhysicsShapeQueryParameters::set_layer_mask(int p_layer_mask) {
|
||||
void PhysicsShapeQueryParameters::set_collision_layer(int p_collision_layer) {
|
||||
|
||||
layer_mask = p_layer_mask;
|
||||
collision_layer = p_collision_layer;
|
||||
}
|
||||
int PhysicsShapeQueryParameters::get_layer_mask() const {
|
||||
int PhysicsShapeQueryParameters::get_collision_layer() const {
|
||||
|
||||
return layer_mask;
|
||||
return collision_layer;
|
||||
}
|
||||
|
||||
void PhysicsShapeQueryParameters::set_object_type_mask(int p_object_type_mask) {
|
||||
|
@ -198,8 +198,8 @@ void PhysicsShapeQueryParameters::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("set_margin", "margin"), &PhysicsShapeQueryParameters::set_margin);
|
||||
ClassDB::bind_method(D_METHOD("get_margin"), &PhysicsShapeQueryParameters::get_margin);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_layer_mask", "layer_mask"), &PhysicsShapeQueryParameters::set_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_layer_mask"), &PhysicsShapeQueryParameters::get_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("set_collision_layer", "collision_layer"), &PhysicsShapeQueryParameters::set_collision_layer);
|
||||
ClassDB::bind_method(D_METHOD("get_collision_layer"), &PhysicsShapeQueryParameters::get_collision_layer);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("set_object_type_mask", "object_type_mask"), &PhysicsShapeQueryParameters::set_object_type_mask);
|
||||
ClassDB::bind_method(D_METHOD("get_object_type_mask"), &PhysicsShapeQueryParameters::get_object_type_mask);
|
||||
|
@ -211,7 +211,7 @@ void PhysicsShapeQueryParameters::_bind_methods() {
|
|||
PhysicsShapeQueryParameters::PhysicsShapeQueryParameters() {
|
||||
|
||||
margin = 0;
|
||||
layer_mask = 0x7FFFFFFF;
|
||||
collision_layer = 0x7FFFFFFF;
|
||||
object_type_mask = PhysicsDirectSpaceState::TYPE_MASK_COLLISION;
|
||||
}
|
||||
|
||||
|
@ -274,7 +274,7 @@ Array PhysicsDirectSpaceState::_intersect_shape(const Ref<PhysicsShapeQueryParam
|
|||
|
||||
Vector<ShapeResult> sr;
|
||||
sr.resize(p_max_results);
|
||||
int rc = intersect_shape(psq->shape, psq->transform, psq->margin, sr.ptr(), sr.size(), psq->exclude, psq->layer_mask, psq->object_type_mask);
|
||||
int rc = intersect_shape(psq->shape, psq->transform, psq->margin, sr.ptr(), sr.size(), psq->exclude, psq->collision_layer, psq->object_type_mask);
|
||||
Array ret;
|
||||
ret.resize(rc);
|
||||
for (int i = 0; i < rc; i++) {
|
||||
|
@ -293,7 +293,7 @@ Array PhysicsDirectSpaceState::_intersect_shape(const Ref<PhysicsShapeQueryParam
|
|||
Array PhysicsDirectSpaceState::_cast_motion(const Ref<PhysicsShapeQueryParameters> &psq, const Vector3 &p_motion) {
|
||||
|
||||
float closest_safe, closest_unsafe;
|
||||
bool res = cast_motion(psq->shape, psq->transform, p_motion, psq->margin, closest_safe, closest_unsafe, psq->exclude, psq->layer_mask, psq->object_type_mask);
|
||||
bool res = cast_motion(psq->shape, psq->transform, p_motion, psq->margin, closest_safe, closest_unsafe, psq->exclude, psq->collision_layer, psq->object_type_mask);
|
||||
if (!res)
|
||||
return Array();
|
||||
Array ret;
|
||||
|
@ -307,7 +307,7 @@ Array PhysicsDirectSpaceState::_collide_shape(const Ref<PhysicsShapeQueryParamet
|
|||
Vector<Vector3> ret;
|
||||
ret.resize(p_max_results * 2);
|
||||
int rc = 0;
|
||||
bool res = collide_shape(psq->shape, psq->transform, psq->margin, ret.ptr(), p_max_results, rc, psq->exclude, psq->layer_mask, psq->object_type_mask);
|
||||
bool res = collide_shape(psq->shape, psq->transform, psq->margin, ret.ptr(), p_max_results, rc, psq->exclude, psq->collision_layer, psq->object_type_mask);
|
||||
if (!res)
|
||||
return Array();
|
||||
Array r;
|
||||
|
@ -320,7 +320,7 @@ Dictionary PhysicsDirectSpaceState::_get_rest_info(const Ref<PhysicsShapeQueryPa
|
|||
|
||||
ShapeRestInfo sri;
|
||||
|
||||
bool res = rest_info(psq->shape, psq->transform, psq->margin, &sri, psq->exclude, psq->layer_mask, psq->object_type_mask);
|
||||
bool res = rest_info(psq->shape, psq->transform, psq->margin, &sri, psq->exclude, psq->collision_layer, psq->object_type_mask);
|
||||
Dictionary r;
|
||||
if (!res)
|
||||
return r;
|
||||
|
@ -343,7 +343,7 @@ void PhysicsDirectSpaceState::_bind_methods() {
|
|||
//ClassDB::bind_method(D_METHOD("intersect_ray","from","to","exclude","umask"),&PhysicsDirectSpaceState::_intersect_ray,DEFVAL(Array()),DEFVAL(0));
|
||||
//ClassDB::bind_method(D_METHOD("intersect_shape:PhysicsShapeQueryResult","shape","xform","result_max","exclude","umask"),&PhysicsDirectSpaceState::_intersect_shape,DEFVAL(Array()),DEFVAL(0));
|
||||
|
||||
ClassDB::bind_method(D_METHOD("intersect_ray:Dictionary", "from", "to", "exclude", "layer_mask", "type_mask"), &PhysicsDirectSpaceState::_intersect_ray, DEFVAL(Array()), DEFVAL(0x7FFFFFFF), DEFVAL(TYPE_MASK_COLLISION));
|
||||
ClassDB::bind_method(D_METHOD("intersect_ray:Dictionary", "from", "to", "exclude", "collision_layer", "type_mask"), &PhysicsDirectSpaceState::_intersect_ray, DEFVAL(Array()), DEFVAL(0x7FFFFFFF), DEFVAL(TYPE_MASK_COLLISION));
|
||||
ClassDB::bind_method(D_METHOD("intersect_shape", "shape:PhysicsShapeQueryParameters", "max_results"), &PhysicsDirectSpaceState::_intersect_shape, DEFVAL(32));
|
||||
ClassDB::bind_method(D_METHOD("cast_motion", "shape:PhysicsShapeQueryParameters", "motion"), &PhysicsDirectSpaceState::_cast_motion);
|
||||
ClassDB::bind_method(D_METHOD("collide_shape", "shape:PhysicsShapeQueryParameters", "max_results"), &PhysicsDirectSpaceState::_collide_shape, DEFVAL(32));
|
||||
|
@ -425,7 +425,7 @@ void PhysicsServer::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("area_remove_shape", "area", "shape_idx"), &PhysicsServer::area_remove_shape);
|
||||
ClassDB::bind_method(D_METHOD("area_clear_shapes", "area"), &PhysicsServer::area_clear_shapes);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("area_set_layer_mask", "area", "mask"), &PhysicsServer::area_set_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("area_set_collision_layer", "area", "layer"), &PhysicsServer::area_set_collision_layer);
|
||||
ClassDB::bind_method(D_METHOD("area_set_collision_mask", "area", "mask"), &PhysicsServer::area_set_collision_mask);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("area_set_param", "area", "param", "value"), &PhysicsServer::area_set_param);
|
||||
|
@ -450,8 +450,8 @@ void PhysicsServer::_bind_methods() {
|
|||
ClassDB::bind_method(D_METHOD("body_set_mode", "body", "mode"), &PhysicsServer::body_set_mode);
|
||||
ClassDB::bind_method(D_METHOD("body_get_mode", "body"), &PhysicsServer::body_get_mode);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("body_set_layer_mask", "body", "mask"), &PhysicsServer::body_set_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("body_get_layer_mask", "body"), &PhysicsServer::body_get_layer_mask);
|
||||
ClassDB::bind_method(D_METHOD("body_set_collision_layer", "body", "layer"), &PhysicsServer::body_set_collision_layer);
|
||||
ClassDB::bind_method(D_METHOD("body_get_collision_layer", "body"), &PhysicsServer::body_get_collision_layer);
|
||||
|
||||
ClassDB::bind_method(D_METHOD("body_set_collision_mask", "body", "mask"), &PhysicsServer::body_set_collision_mask);
|
||||
ClassDB::bind_method(D_METHOD("body_get_collision_mask", "body"), &PhysicsServer::body_get_collision_mask);
|
||||
|
|
|
@ -100,7 +100,7 @@ class PhysicsShapeQueryParameters : public Reference {
|
|||
Transform transform;
|
||||
float margin;
|
||||
Set<RID> exclude;
|
||||
uint32_t layer_mask;
|
||||
uint32_t collision_layer;
|
||||
uint32_t object_type_mask;
|
||||
|
||||
protected:
|
||||
|
@ -117,8 +117,8 @@ public:
|
|||
void set_margin(float p_margin);
|
||||
float get_margin() const;
|
||||
|
||||
void set_layer_mask(int p_layer_mask);
|
||||
int get_layer_mask() const;
|
||||
void set_collision_layer(int p_collision_layer);
|
||||
int get_collision_layer() const;
|
||||
|
||||
void set_object_type_mask(int p_object_type_mask);
|
||||
int get_object_type_mask() const;
|
||||
|
@ -166,7 +166,7 @@ public:
|
|||
int shape;
|
||||
};
|
||||
|
||||
virtual bool intersect_ray(const Vector3 &p_from, const Vector3 &p_to, RayResult &r_result, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION, bool p_pick_ray = false) = 0;
|
||||
virtual bool intersect_ray(const Vector3 &p_from, const Vector3 &p_to, RayResult &r_result, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION, bool p_pick_ray = false) = 0;
|
||||
|
||||
struct ShapeResult {
|
||||
|
||||
|
@ -176,7 +176,7 @@ public:
|
|||
int shape;
|
||||
};
|
||||
|
||||
virtual int intersect_shape(const RID &p_shape, const Transform &p_xform, float p_margin, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
virtual int intersect_shape(const RID &p_shape, const Transform &p_xform, float p_margin, ShapeResult *r_results, int p_result_max, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
|
||||
struct ShapeRestInfo {
|
||||
|
||||
|
@ -188,11 +188,11 @@ public:
|
|||
Vector3 linear_velocity; //velocity at contact point
|
||||
};
|
||||
|
||||
virtual bool cast_motion(const RID &p_shape, const Transform &p_xform, const Vector3 &p_motion, float p_margin, float &p_closest_safe, float &p_closest_unsafe, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION, ShapeRestInfo *r_info = NULL) = 0;
|
||||
virtual bool cast_motion(const RID &p_shape, const Transform &p_xform, const Vector3 &p_motion, float p_margin, float &p_closest_safe, float &p_closest_unsafe, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION, ShapeRestInfo *r_info = NULL) = 0;
|
||||
|
||||
virtual bool collide_shape(RID p_shape, const Transform &p_shape_xform, float p_margin, Vector3 *r_results, int p_result_max, int &r_result_count, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
virtual bool collide_shape(RID p_shape, const Transform &p_shape_xform, float p_margin, Vector3 *r_results, int p_result_max, int &r_result_count, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
|
||||
virtual bool rest_info(RID p_shape, const Transform &p_shape_xform, float p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_layer_mask = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
virtual bool rest_info(RID p_shape, const Transform &p_shape_xform, float p_margin, ShapeRestInfo *r_info, const Set<RID> &p_exclude = Set<RID>(), uint32_t p_collision_layer = 0xFFFFFFFF, uint32_t p_object_type_mask = TYPE_MASK_COLLISION) = 0;
|
||||
|
||||
PhysicsDirectSpaceState();
|
||||
};
|
||||
|
@ -332,7 +332,7 @@ public:
|
|||
virtual Transform area_get_transform(RID p_area) const = 0;
|
||||
|
||||
virtual void area_set_collision_mask(RID p_area, uint32_t p_mask) = 0;
|
||||
virtual void area_set_layer_mask(RID p_area, uint32_t p_mask) = 0;
|
||||
virtual void area_set_collision_layer(RID p_area, uint32_t p_layer) = 0;
|
||||
|
||||
virtual void area_set_monitorable(RID p_area, bool p_monitorable) = 0;
|
||||
|
||||
|
@ -382,14 +382,14 @@ public:
|
|||
virtual void body_set_enable_continuous_collision_detection(RID p_body, bool p_enable) = 0;
|
||||
virtual bool body_is_continuous_collision_detection_enabled(RID p_body) const = 0;
|
||||
|
||||
virtual void body_set_layer_mask(RID p_body, uint32_t p_mask) = 0;
|
||||
virtual uint32_t body_get_layer_mask(RID p_body, uint32_t p_mask) const = 0;
|
||||
virtual void body_set_collision_layer(RID p_body, uint32_t p_layer) = 0;
|
||||
virtual uint32_t body_get_collision_layer(RID p_body) const = 0;
|
||||
|
||||
virtual void body_set_collision_mask(RID p_body, uint32_t p_mask) = 0;
|
||||
virtual uint32_t body_get_collision_mask(RID p_body, uint32_t p_mask) const = 0;
|
||||
virtual uint32_t body_get_collision_mask(RID p_body) const = 0;
|
||||
|
||||
virtual void body_set_user_flags(RID p_body, uint32_t p_flags) = 0;
|
||||
virtual uint32_t body_get_user_flags(RID p_body, uint32_t p_flags) const = 0;
|
||||
virtual uint32_t body_get_user_flags(RID p_body) const = 0;
|
||||
|
||||
// common body variables
|
||||
enum BodyParameter {
|
||||
|
|
Loading…
Reference in New Issue