Exemple #1
0
void Area2D::_notification(int p_what) {

	switch(p_what) {

		case NOTIFICATION_EXIT_TREE: {

			_clear_monitoring();
		} break;
	}

}
Exemple #2
0
void Area2D::set_enable_monitoring(bool p_enable) {

	if (locked) {
		ERR_EXPLAIN("This function can't be used during the in/out signal.");
	}
	ERR_FAIL_COND(locked);

	if (p_enable==monitoring)
		return;

	monitoring=p_enable;

	if (monitoring) {

		Physics2DServer::get_singleton()->area_set_monitor_callback(get_rid(),this,"_body_inout");
	} else {
		Physics2DServer::get_singleton()->area_set_monitor_callback(get_rid(),NULL,StringName());
		_clear_monitoring();

	}
}
Exemple #3
0
void Area::set_monitoring(bool p_enable) {

	if (locked) {
		ERR_EXPLAIN("Function blocked during in/out signal. Use set_deferred(\"monitoring\",true/false)");
	}
	ERR_FAIL_COND(locked);

	if (p_enable == monitoring)
		return;

	monitoring = p_enable;

	if (monitoring) {

		PhysicsServer::get_singleton()->area_set_monitor_callback(get_rid(), this, SceneStringNames::get_singleton()->_body_inout);
		PhysicsServer::get_singleton()->area_set_area_monitor_callback(get_rid(), this, SceneStringNames::get_singleton()->_area_inout);
	} else {
		PhysicsServer::get_singleton()->area_set_monitor_callback(get_rid(), NULL, StringName());
		PhysicsServer::get_singleton()->area_set_area_monitor_callback(get_rid(), NULL, StringName());
		_clear_monitoring();
	}
}
Exemple #4
0
void Area::_notification(int p_what) {

	if (p_what==NOTIFICATION_EXIT_TREE) {
		_clear_monitoring();
	}
}