|
@@ -118,7 +118,7 @@ void Area2D::_body_enter_tree(ObjectID p_id) {
|
|
|
E->get().in_tree = true;
|
|
|
emit_signal(SceneStringNames::get_singleton()->body_entered, node);
|
|
|
for (int i = 0; i < E->get().shapes.size(); i++) {
|
|
|
- emit_signal(SceneStringNames::get_singleton()->body_shape_entered, p_id, node, E->get().shapes[i].body_shape, E->get().shapes[i].area_shape);
|
|
|
+ emit_signal(SceneStringNames::get_singleton()->body_shape_entered, E->get().rid, node, E->get().shapes[i].body_shape, E->get().shapes[i].area_shape);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -132,7 +132,7 @@ void Area2D::_body_exit_tree(ObjectID p_id) {
|
|
|
E->get().in_tree = false;
|
|
|
emit_signal(SceneStringNames::get_singleton()->body_exited, node);
|
|
|
for (int i = 0; i < E->get().shapes.size(); i++) {
|
|
|
- emit_signal(SceneStringNames::get_singleton()->body_shape_exited, p_id, node, E->get().shapes[i].body_shape, E->get().shapes[i].area_shape);
|
|
|
+ emit_signal(SceneStringNames::get_singleton()->body_shape_exited, E->get().rid, node, E->get().shapes[i].body_shape, E->get().shapes[i].area_shape);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -154,6 +154,7 @@ void Area2D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, i
|
|
|
if (body_in) {
|
|
|
if (!E) {
|
|
|
E = body_map.insert(objid, BodyState());
|
|
|
+ E->get().rid = p_body;
|
|
|
E->get().rc = 0;
|
|
|
E->get().in_tree = node && node->is_inside_tree();
|
|
|
if (node) {
|
|
@@ -170,7 +171,7 @@ void Area2D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, i
|
|
|
}
|
|
|
|
|
|
if (!node || E->get().in_tree) {
|
|
|
- emit_signal(SceneStringNames::get_singleton()->body_shape_entered, objid, node, p_body_shape, p_area_shape);
|
|
|
+ emit_signal(SceneStringNames::get_singleton()->body_shape_entered, p_body, node, p_body_shape, p_area_shape);
|
|
|
}
|
|
|
|
|
|
} else {
|
|
@@ -192,7 +193,7 @@ void Area2D::_body_inout(int p_status, const RID &p_body, ObjectID p_instance, i
|
|
|
}
|
|
|
}
|
|
|
if (!node || in_tree) {
|
|
|
- emit_signal(SceneStringNames::get_singleton()->body_shape_exited, objid, obj, p_body_shape, p_area_shape);
|
|
|
+ emit_signal(SceneStringNames::get_singleton()->body_shape_exited, p_body, obj, p_body_shape, p_area_shape);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -211,7 +212,7 @@ void Area2D::_area_enter_tree(ObjectID p_id) {
|
|
|
E->get().in_tree = true;
|
|
|
emit_signal(SceneStringNames::get_singleton()->area_entered, node);
|
|
|
for (int i = 0; i < E->get().shapes.size(); i++) {
|
|
|
- emit_signal(SceneStringNames::get_singleton()->area_shape_entered, p_id, node, E->get().shapes[i].area_shape, E->get().shapes[i].self_shape);
|
|
|
+ emit_signal(SceneStringNames::get_singleton()->area_shape_entered, E->get().rid, node, E->get().shapes[i].area_shape, E->get().shapes[i].self_shape);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -225,7 +226,7 @@ void Area2D::_area_exit_tree(ObjectID p_id) {
|
|
|
E->get().in_tree = false;
|
|
|
emit_signal(SceneStringNames::get_singleton()->area_exited, node);
|
|
|
for (int i = 0; i < E->get().shapes.size(); i++) {
|
|
|
- emit_signal(SceneStringNames::get_singleton()->area_shape_exited, p_id, node, E->get().shapes[i].area_shape, E->get().shapes[i].self_shape);
|
|
|
+ emit_signal(SceneStringNames::get_singleton()->area_shape_exited, E->get().rid, node, E->get().shapes[i].area_shape, E->get().shapes[i].self_shape);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -246,6 +247,7 @@ void Area2D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, i
|
|
|
if (area_in) {
|
|
|
if (!E) {
|
|
|
E = area_map.insert(objid, AreaState());
|
|
|
+ E->get().rid = p_area;
|
|
|
E->get().rc = 0;
|
|
|
E->get().in_tree = node && node->is_inside_tree();
|
|
|
if (node) {
|
|
@@ -262,7 +264,7 @@ void Area2D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, i
|
|
|
}
|
|
|
|
|
|
if (!node || E->get().in_tree) {
|
|
|
- emit_signal(SceneStringNames::get_singleton()->area_shape_entered, objid, node, p_area_shape, p_self_shape);
|
|
|
+ emit_signal(SceneStringNames::get_singleton()->area_shape_entered, p_area, node, p_area_shape, p_self_shape);
|
|
|
}
|
|
|
|
|
|
} else {
|
|
@@ -284,7 +286,7 @@ void Area2D::_area_inout(int p_status, const RID &p_area, ObjectID p_instance, i
|
|
|
}
|
|
|
}
|
|
|
if (!node || in_tree) {
|
|
|
- emit_signal(SceneStringNames::get_singleton()->area_shape_exited, objid, obj, p_area_shape, p_self_shape);
|
|
|
+ emit_signal(SceneStringNames::get_singleton()->area_shape_exited, p_area, obj, p_area_shape, p_self_shape);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -315,7 +317,7 @@ void Area2D::_clear_monitoring() {
|
|
|
}
|
|
|
|
|
|
for (int i = 0; i < E->get().shapes.size(); i++) {
|
|
|
- emit_signal(SceneStringNames::get_singleton()->body_shape_exited, E->key(), node, E->get().shapes[i].body_shape, E->get().shapes[i].area_shape);
|
|
|
+ emit_signal(SceneStringNames::get_singleton()->body_shape_exited, E->get().rid, node, E->get().shapes[i].body_shape, E->get().shapes[i].area_shape);
|
|
|
}
|
|
|
|
|
|
emit_signal(SceneStringNames::get_singleton()->body_exited, obj);
|
|
@@ -343,7 +345,7 @@ void Area2D::_clear_monitoring() {
|
|
|
}
|
|
|
|
|
|
for (int i = 0; i < E->get().shapes.size(); i++) {
|
|
|
- emit_signal(SceneStringNames::get_singleton()->area_shape_exited, E->key(), node, E->get().shapes[i].area_shape, E->get().shapes[i].self_shape);
|
|
|
+ emit_signal(SceneStringNames::get_singleton()->area_shape_exited, E->get().rid, node, E->get().shapes[i].area_shape, E->get().shapes[i].self_shape);
|
|
|
}
|
|
|
|
|
|
emit_signal(SceneStringNames::get_singleton()->area_exited, obj);
|
|
@@ -532,13 +534,13 @@ void Area2D::_bind_methods() {
|
|
|
ClassDB::bind_method(D_METHOD("_body_inout"), &Area2D::_body_inout);
|
|
|
ClassDB::bind_method(D_METHOD("_area_inout"), &Area2D::_area_inout);
|
|
|
|
|
|
- ADD_SIGNAL(MethodInfo("body_shape_entered", PropertyInfo(Variant::INT, "body_id"), PropertyInfo(Variant::OBJECT, "body", PROPERTY_HINT_RESOURCE_TYPE, "Node2D"), PropertyInfo(Variant::INT, "body_shape"), PropertyInfo(Variant::INT, "local_shape")));
|
|
|
- ADD_SIGNAL(MethodInfo("body_shape_exited", PropertyInfo(Variant::INT, "body_id"), PropertyInfo(Variant::OBJECT, "body", PROPERTY_HINT_RESOURCE_TYPE, "Node2D"), PropertyInfo(Variant::INT, "body_shape"), PropertyInfo(Variant::INT, "local_shape")));
|
|
|
+ ADD_SIGNAL(MethodInfo("body_shape_entered", PropertyInfo(Variant::RID, "body_rid"), PropertyInfo(Variant::OBJECT, "body", PROPERTY_HINT_RESOURCE_TYPE, "Node2D"), PropertyInfo(Variant::INT, "body_shape"), PropertyInfo(Variant::INT, "local_shape")));
|
|
|
+ ADD_SIGNAL(MethodInfo("body_shape_exited", PropertyInfo(Variant::RID, "body_rid"), PropertyInfo(Variant::OBJECT, "body", PROPERTY_HINT_RESOURCE_TYPE, "Node2D"), PropertyInfo(Variant::INT, "body_shape"), PropertyInfo(Variant::INT, "local_shape")));
|
|
|
ADD_SIGNAL(MethodInfo("body_entered", PropertyInfo(Variant::OBJECT, "body", PROPERTY_HINT_RESOURCE_TYPE, "Node2D")));
|
|
|
ADD_SIGNAL(MethodInfo("body_exited", PropertyInfo(Variant::OBJECT, "body", PROPERTY_HINT_RESOURCE_TYPE, "Node2D")));
|
|
|
|
|
|
- ADD_SIGNAL(MethodInfo("area_shape_entered", PropertyInfo(Variant::INT, "area_id"), PropertyInfo(Variant::OBJECT, "area", PROPERTY_HINT_RESOURCE_TYPE, "Area2D"), PropertyInfo(Variant::INT, "area_shape"), PropertyInfo(Variant::INT, "local_shape")));
|
|
|
- ADD_SIGNAL(MethodInfo("area_shape_exited", PropertyInfo(Variant::INT, "area_id"), PropertyInfo(Variant::OBJECT, "area", PROPERTY_HINT_RESOURCE_TYPE, "Area2D"), PropertyInfo(Variant::INT, "area_shape"), PropertyInfo(Variant::INT, "local_shape")));
|
|
|
+ ADD_SIGNAL(MethodInfo("area_shape_entered", PropertyInfo(Variant::RID, "area_rid"), PropertyInfo(Variant::OBJECT, "area", PROPERTY_HINT_RESOURCE_TYPE, "Area2D"), PropertyInfo(Variant::INT, "area_shape"), PropertyInfo(Variant::INT, "local_shape")));
|
|
|
+ ADD_SIGNAL(MethodInfo("area_shape_exited", PropertyInfo(Variant::RID, "area_rid"), PropertyInfo(Variant::OBJECT, "area", PROPERTY_HINT_RESOURCE_TYPE, "Area2D"), PropertyInfo(Variant::INT, "area_shape"), PropertyInfo(Variant::INT, "local_shape")));
|
|
|
ADD_SIGNAL(MethodInfo("area_entered", PropertyInfo(Variant::OBJECT, "area", PROPERTY_HINT_RESOURCE_TYPE, "Area2D")));
|
|
|
ADD_SIGNAL(MethodInfo("area_exited", PropertyInfo(Variant::OBJECT, "area", PROPERTY_HINT_RESOURCE_TYPE, "Area2D")));
|
|
|
|