Browse Source

add 2d paths and joints to collision/navigation debug, fixes #2439

reduz 9 years ago
parent
commit
b8f18cd73c
2 changed files with 32 additions and 13 deletions
  1. 27 12
      scene/2d/joints_2d.cpp
  2. 5 1
      scene/2d/path_2d.cpp

+ 27 - 12
scene/2d/joints_2d.cpp

@@ -164,11 +164,17 @@ void PinJoint2D::_notification(int p_what) {
 
 	switch(p_what) {
 		case NOTIFICATION_DRAW: {
-			if (is_inside_tree() && get_tree()->is_editor_hint()) {
 
-				draw_line(Point2(-10,0),Point2(+10,0),Color(0.7,0.6,0.0,0.5),3);
-				draw_line(Point2(0,-10),Point2(0,+10),Color(0.7,0.6,0.0,0.5),3);
+			if (!is_inside_tree())
+				break;
+
+			if (!get_tree()->is_editor_hint() && !get_tree()->is_debugging_collisions_hint()) {
+				break;
 			}
+
+
+			draw_line(Point2(-10,0),Point2(+10,0),Color(0.7,0.6,0.0,0.5),3);
+			draw_line(Point2(0,-10),Point2(0,+10),Color(0.7,0.6,0.0,0.5),3);
 		} break;
 	}
 
@@ -241,13 +247,17 @@ void GrooveJoint2D::_notification(int p_what) {
 
 	switch(p_what) {
 		case NOTIFICATION_DRAW: {
-			if (is_inside_tree() && get_tree()->is_editor_hint()) {
+			if (!is_inside_tree())
+				break;
 
-				draw_line(Point2(-10,0),Point2(+10,0),Color(0.7,0.6,0.0,0.5),3);
-				draw_line(Point2(-10,length),Point2(+10,length),Color(0.7,0.6,0.0,0.5),3);
-				draw_line(Point2(0,0),Point2(0,length),Color(0.7,0.6,0.0,0.5),3);
-				draw_line(Point2(-10,initial_offset),Point2(+10,initial_offset),Color(0.8,0.8,0.9,0.5),5);
+			if (!get_tree()->is_editor_hint() && !get_tree()->is_debugging_collisions_hint()) {
+				break;
 			}
+
+			draw_line(Point2(-10,0),Point2(+10,0),Color(0.7,0.6,0.0,0.5),3);
+			draw_line(Point2(-10,length),Point2(+10,length),Color(0.7,0.6,0.0,0.5),3);
+			draw_line(Point2(0,0),Point2(0,length),Color(0.7,0.6,0.0,0.5),3);
+			draw_line(Point2(-10,initial_offset),Point2(+10,initial_offset),Color(0.8,0.8,0.9,0.5),5);
 		} break;
 	}
 }
@@ -339,12 +349,17 @@ void DampedSpringJoint2D::_notification(int p_what) {
 
 	switch(p_what) {
 		case NOTIFICATION_DRAW: {
-			if (is_inside_tree() && get_tree()->is_editor_hint()) {
 
-				draw_line(Point2(-10,0),Point2(+10,0),Color(0.7,0.6,0.0,0.5),3);
-				draw_line(Point2(-10,length),Point2(+10,length),Color(0.7,0.6,0.0,0.5),3);
-				draw_line(Point2(0,0),Point2(0,length),Color(0.7,0.6,0.0,0.5),3);
+			if (!is_inside_tree())
+				break;
+
+			if (!get_tree()->is_editor_hint() && !get_tree()->is_debugging_collisions_hint()) {
+				break;
 			}
+
+			draw_line(Point2(-10,0),Point2(+10,0),Color(0.7,0.6,0.0,0.5),3);
+			draw_line(Point2(-10,length),Point2(+10,length),Color(0.7,0.6,0.0,0.5),3);
+			draw_line(Point2(0,0),Point2(0,length),Color(0.7,0.6,0.0,0.5),3);
 		} break;
 	}
 }

+ 5 - 1
scene/2d/path_2d.cpp

@@ -31,9 +31,13 @@
 
 void Path2D::_notification(int p_what) {
 
-	if (p_what==NOTIFICATION_DRAW && curve.is_valid() && is_inside_tree() && get_tree()->is_editor_hint()) {
+	if (p_what==NOTIFICATION_DRAW && curve.is_valid()) {
 		//draw the curve!!
 
+		if (!get_tree()->is_editor_hint() && !get_tree()->is_debugging_navigation_hint()) {
+			return;
+		}
+
 		for(int i=0;i<curve->get_point_count();i++) {
 
 			Vector2 prev_p=curve->get_point_pos(i);