aboutsummaryrefslogtreecommitdiff
path: root/scene/2d/collision_polygon_2d.cpp
diff options
context:
space:
mode:
authorJuan Linietsky2015-03-23 11:31:03 -0300
committerJuan Linietsky2015-03-23 11:31:23 -0300
commit7ad7f2f6a986fa6598ae10f2bb940e15c3658f44 (patch)
treef8019c0ab73f7a2eb9088429ec6e3673d299f95d /scene/2d/collision_polygon_2d.cpp
parent393e5605c9e1b5baa91bff9ad61c7a0118b10cac (diff)
downloadgodot-7ad7f2f6a986fa6598ae10f2bb940e15c3658f44.tar.gz
godot-7ad7f2f6a986fa6598ae10f2bb940e15c3658f44.tar.zst
godot-7ad7f2f6a986fa6598ae10f2bb940e15c3658f44.zip
Diffstat (limited to 'scene/2d/collision_polygon_2d.cpp')
-rw-r--r--scene/2d/collision_polygon_2d.cpp12
1 files changed, 12 insertions, 0 deletions
diff --git a/scene/2d/collision_polygon_2d.cpp b/scene/2d/collision_polygon_2d.cpp
index 1c0be6076..049017c0a 100644
--- a/scene/2d/collision_polygon_2d.cpp
+++ b/scene/2d/collision_polygon_2d.cpp
@@ -33,6 +33,9 @@
void CollisionPolygon2D::_add_to_collision_object(Object *p_obj) {
+ if (unparenting)
+ return;
+
CollisionObject2D *co = p_obj->cast_to<CollisionObject2D>();
ERR_FAIL_COND(!co);
@@ -96,6 +99,9 @@ void CollisionPolygon2D::_notification(int p_what) {
switch(p_what) {
+ case NOTIFICATION_ENTER_TREE: {
+ unparenting=false;
+ } break;
case NOTIFICATION_LOCAL_TRANSFORM_CHANGED: {
if (!is_inside_tree())
@@ -123,6 +129,11 @@ void CollisionPolygon2D::_notification(int p_what) {
}
#endif
} break;
+ case NOTIFICATION_UNPARENTED: {
+ unparenting = true;
+ _update_parent();
+ } break;
+
}
}
@@ -203,6 +214,7 @@ CollisionPolygon2D::CollisionPolygon2D() {
aabb=Rect2(-10,-10,20,20);
build_mode=BUILD_SOLIDS;
trigger=false;
+ unparenting=false;
}