// Checking if folder contains valid Godot 3 project.
// Project should not be converted more than once.
{
Stringconverter_text="; Project was converted by built-in tool to Godot 4.0";
Stringconverter_text="; Project was converted by built-in tool to Godot 4";
ERR_FAIL_COND_V_MSG(!FileAccess::exists("project.godot"),false,"Current working directory doesn't contain a \"project.godot\" file for a Godot 3 project.");
valid=valid&&test_conversion_gdscript_builtin("\tvar aa = roman(r.move_and_slide( a, b, c, d, e, f )) # Roman","\tr.set_velocity(a)\n\tr.set_up_direction(b)\n\tr.set_floor_stop_on_slope_enabled(c)\n\tr.set_max_slides(d)\n\tr.set_floor_max_angle(e)\n\t# TODOConverter40 infinite_inertia were removed in Godot 4.0 - previous value `f`\n\tr.move_and_slide()\n\tvar aa = roman(r.velocity) # Roman",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("\tmove_and_slide( a, b, c, d, e, f ) # Roman","\tset_velocity(a)\n\tset_up_direction(b)\n\tset_floor_stop_on_slope_enabled(c)\n\tset_max_slides(d)\n\tset_floor_max_angle(e)\n\t# TODOConverter40 infinite_inertia were removed in Godot 4.0 - previous value `f`\n\tmove_and_slide() # Roman",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("\tvar aa = roman(r.move_and_slide_with_snap( a, g, b, c, d, e, f )) # Roman","\tr.set_velocity(a)\n\t# TODOConverter40 looks that snap in Godot 4.0 is float, not vector like in Godot 3 - previous value `g`\n\tr.set_up_direction(b)\n\tr.set_floor_stop_on_slope_enabled(c)\n\tr.set_max_slides(d)\n\tr.set_floor_max_angle(e)\n\t# TODOConverter40 infinite_inertia were removed in Godot 4.0 - previous value `f`\n\tr.move_and_slide()\n\tvar aa = roman(r.velocity) # Roman",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("\tmove_and_slide_with_snap( a, g, b, c, d, e, f ) # Roman","\tset_velocity(a)\n\t# TODOConverter40 looks that snap in Godot 4.0 is float, not vector like in Godot 3 - previous value `g`\n\tset_up_direction(b)\n\tset_floor_stop_on_slope_enabled(c)\n\tset_max_slides(d)\n\tset_floor_max_angle(e)\n\t# TODOConverter40 infinite_inertia were removed in Godot 4.0 - previous value `f`\n\tmove_and_slide() # Roman",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("\tvar aa = roman(r.move_and_slide( a, b, c, d, e, f )) # Roman","\tr.set_velocity(a)\n\tr.set_up_direction(b)\n\tr.set_floor_stop_on_slope_enabled(c)\n\tr.set_max_slides(d)\n\tr.set_floor_max_angle(e)\n\t# TODOConverter3To4 infinite_inertia were removed in Godot 4 - previous value `f`\n\tr.move_and_slide()\n\tvar aa = roman(r.velocity) # Roman",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("\tmove_and_slide( a, b, c, d, e, f ) # Roman","\tset_velocity(a)\n\tset_up_direction(b)\n\tset_floor_stop_on_slope_enabled(c)\n\tset_max_slides(d)\n\tset_floor_max_angle(e)\n\t# TODOConverter3To4 infinite_inertia were removed in Godot 4 - previous value `f`\n\tmove_and_slide() # Roman",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("\tvar aa = roman(r.move_and_slide_with_snap( a, g, b, c, d, e, f )) # Roman","\tr.set_velocity(a)\n\t# TODOConverter3To4 looks that snap in Godot 4 is float, not vector like in Godot 3 - previous value `g`\n\tr.set_up_direction(b)\n\tr.set_floor_stop_on_slope_enabled(c)\n\tr.set_max_slides(d)\n\tr.set_floor_max_angle(e)\n\t# TODOConverter3To4 infinite_inertia were removed in Godot 4 - previous value `f`\n\tr.move_and_slide()\n\tvar aa = roman(r.velocity) # Roman",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("\tmove_and_slide_with_snap( a, g, b, c, d, e, f ) # Roman","\tset_velocity(a)\n\t# TODOConverter3To4 looks that snap in Godot 4 is float, not vector like in Godot 3 - previous value `g`\n\tset_up_direction(b)\n\tset_floor_stop_on_slope_enabled(c)\n\tset_max_slides(d)\n\tset_floor_max_angle(e)\n\t# TODOConverter3To4 infinite_inertia were removed in Godot 4 - previous value `f`\n\tmove_and_slide() # Roman",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("list_dir_begin( a , b )","list_dir_begin() # TODOGODOT4 fill missing arguments https://github.com/godotengine/godot/pull/40547",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("list_dir_begin( a )","list_dir_begin() # TODOGODOT4 fill missing arguments https://github.com/godotengine/godot/pull/40547",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("list_dir_begin( )","list_dir_begin() # TODOGODOT4 fill missing arguments https://github.com/godotengine/godot/pull/40547",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("list_dir_begin( a , b )","list_dir_begin() # TODOConverter3To4 fill missing arguments https://github.com/godotengine/godot/pull/40547",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("list_dir_begin( a )","list_dir_begin() # TODOConverter3To4 fill missing arguments https://github.com/godotengine/godot/pull/40547",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("list_dir_begin( )","list_dir_begin() # TODOConverter3To4 fill missing arguments https://github.com/godotengine/godot/pull/40547",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("sort_custom( a , b )","sort_custom(Callable(a, b))",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("\timage.lock()","\tfalse # image.lock() # TODOConverter40, Image no longer requires locking, `false` helps to not break one line if/else, so it can freely be removed",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("\timage.unlock()","\tfalse # image.unlock() # TODOConverter40, Image no longer requires locking, `false` helps to not break one line if/else, so it can freely be removed",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("\troman.image.unlock()","\tfalse # roman.image.unlock() # TODOConverter40, Image no longer requires locking, `false` helps to not break one line if/else, so it can freely be removed",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("\timage.lock()","\tfalse # image.lock() # TODOConverter3To4, Image no longer requires locking, `false` helps to not break one line if/else, so it can freely be removed",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("\timage.unlock()","\tfalse # image.unlock() # TODOConverter3To4, Image no longer requires locking, `false` helps to not break one line if/else, so it can freely be removed",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
valid=valid&&test_conversion_gdscript_builtin("\troman.image.unlock()","\tfalse # roman.image.unlock() # TODOConverter3To4, Image no longer requires locking, `false` helps to not break one line if/else, so it can freely be removed",&ProjectConverter3To4::rename_gdscript_functions,"custom rename",reg_container,false);
line=reg_container.reg_image_lock.sub(line,"false # $1.lock() # TODOConverter40, Image no longer requires locking, `false` helps to not break one line if/else, so it can freely be removed",true);
line=reg_container.reg_image_unlock.sub(line,"false # $1.unlock() # TODOConverter40, Image no longer requires locking, `false` helps to not break one line if/else, so it can freely be removed",true);
line=reg_container.reg_image_lock.sub(line,"false # $1.lock() # TODOConverter3To4, Image no longer requires locking, `false` helps to not break one line if/else, so it can freely be removed",true);
line=reg_container.reg_image_unlock.sub(line,"false # $1.unlock() # TODOConverter3To4, Image no longer requires locking, `false` helps to not break one line if/else, so it can freely be removed",true);
ask_full_convert_dialog->set_text(TTR("This option will perform full project conversion, updating scenes, resources and scripts from Godot 3.x to work in Godot 4.0.\n\nNote that this is a best-effort conversion, i.e. it makes upgrading the project easier, but it will not open out-of-the-box and will still require manual adjustments.\n\nIMPORTANT: Make sure to backup your project before converting, as this operation makes it impossible to open it in older versions of Godot."));
ask_full_convert_dialog->set_text(TTR("This option will perform full project conversion, updating scenes, resources and scripts from Godot 3 to work in Godot 4.\n\nNote that this is a best-effort conversion, i.e. it makes upgrading the project easier, but it will not open out-of-the-box and will still require manual adjustments.\n\nIMPORTANT: Make sure to backup your project before converting, as this operation makes it impossible to open it in older versions of Godot."));