begin work on debugging collisions....

This commit is contained in:
Juan Linietsky 2015-09-18 23:10:58 -03:00
parent 89a901c4b6
commit 3f9e5afe68
4 changed files with 28 additions and 0 deletions

View file

@ -97,6 +97,7 @@ static OS::VideoMode video_mode;
static bool init_maximized=false;
static bool init_fullscreen=false;
static bool init_use_custom_pos=false;
static bool debug_collisions=false;
static Vector2 init_custom_pos;
static int video_driver_idx=-1;
static int audio_driver_idx=-1;
@ -514,6 +515,8 @@ Error Main::setup(const char *execpath,int argc, char *argv[],bool p_second_phas
} else if (I->get()=="-debug" || I->get()=="-d") {
debug_mode="local";
} else if (I->get()=="-debugcol" || I->get()=="-dc") {
debug_collisions=true;
} else if (I->get()=="-editor_scene") {
if (I->next()) {
@ -1154,8 +1157,12 @@ bool Main::start() {
SceneTree *sml = main_loop->cast_to<SceneTree>();
if (debug_collisions) {
sml->set_debug_collisions_hint(true);
}
#ifdef TOOLS_ENABLED
EditorNode *editor_node=NULL;
if (editor) {

View file

@ -92,8 +92,12 @@ void CollisionShape2D::_notification(int p_what) {
} break;*/
case NOTIFICATION_DRAW: {
if (!get_tree()->is_editor_hint() && !get_tree()->is_debugging_collisions_hint())
break;
rect=Rect2();
Color draw_col=Color(0,0.6,0.7,0.5);
if (shape->cast_to<LineShape2D>()) {

View file

@ -471,6 +471,7 @@ void SceneTree::init() {
editor_hint=false;
debug_collisions_hint=false;
pause=false;
root->_set_tree(this);
@ -624,6 +625,16 @@ bool SceneTree::is_editor_hint() const {
return editor_hint;
}
void SceneTree::set_debug_collisions_hint(bool p_enabled) {
debug_collisions_hint=p_enabled;
}
bool SceneTree::is_debugging_collisions_hint() const {
return debug_collisions_hint;
}
void SceneTree::set_pause(bool p_enabled) {
if (p_enabled==pause)
@ -1424,6 +1435,8 @@ void SceneTree::_bind_methods() {
ObjectTypeDB::bind_method(_MD("set_editor_hint","enable"),&SceneTree::set_editor_hint);
ObjectTypeDB::bind_method(_MD("is_editor_hint"),&SceneTree::is_editor_hint);
ObjectTypeDB::bind_method(_MD("set_debug_collisions_hint","enable"),&SceneTree::set_debug_collisions_hint);
ObjectTypeDB::bind_method(_MD("is_debugging_collisions_hint"),&SceneTree::is_debugging_collisions_hint);
#ifdef TOOLS_ENABLED
ObjectTypeDB::bind_method(_MD("set_edited_scene_root","scene"),&SceneTree::set_edited_scene_root);
ObjectTypeDB::bind_method(_MD("get_edited_scene_root"),&SceneTree::get_edited_scene_root);

View file

@ -87,6 +87,7 @@ private:
uint32_t last_id;
bool editor_hint;
bool debug_collisions_hint;
bool pause;
int root_lock;
@ -270,6 +271,9 @@ public:
void set_camera(const RID& p_camera);
RID get_camera() const;
void set_debug_collisions_hint(bool p_enabled);
bool is_debugging_collisions_hint() const;
int64_t get_frame() const;
int get_node_count() const;